diff --git a/.gitignore b/.gitignore index 774d52a..85bf635 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,5 @@ build/ *.egg-info/ *__pycache__/ -*logs/ -*outputs/ dataset/ -models/ \ No newline at end of file +models/ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/events.out.tfevents.1783644718.workstation.15403.0 b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/events.out.tfevents.1783644718.workstation.15403.0 new file mode 100644 index 0000000..2d00f2b Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/events.out.tfevents.1783644718.workstation.15403.0 differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/exported/model_1499.onnx b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/exported/model_1499.onnx new file mode 100644 index 0000000..ff65212 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/exported/model_1499.onnx differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/git/engineai_amp.diff b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/git/engineai_amp.diff new file mode 100644 index 0000000..e2124fa --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/git/engineai_amp.diff @@ -0,0 +1,224 @@ +--- git commit --- +83ba64bbb58a02e14483e52adce5f893f3f31cdf + + +--- git status --- +On branch main +Your branch is up to date with 'origin/main'. + +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: scripts/cli_args.py + modified: scripts/train.py + modified: source/engineai_lab/tasks/velocity/mdp/__init__.py + modified: source/engineai_lab/tasks/velocity/mdp/rewards.py + +Untracked files: + (use "git add ..." to include in what will be committed) + IsaacLab/ + source/engineai_lab/robots/gen2.py + source/engineai_lab/tasks/velocity/config/gen2/ + source/engineai_lab/tasks/velocity/mdp/terminations.py + source/gen2_lab/ + uv.lock + +no changes added to commit (use "git add" and/or "git commit -a") + + +--- git diff --- +diff --git a/scripts/cli_args.py b/scripts/cli_args.py +index 36f91c5..b4a3257 100644 +--- a/scripts/cli_args.py ++++ b/scripts/cli_args.py +@@ -34,6 +34,12 @@ def add_rsl_rl_args(parser: argparse.ArgumentParser): + arg_group.add_argument( + "--wandb_path", type=str, default=None, help="Name of the logging project when using wandb or neptune." + ) ++ arg_group.add_argument( ++ "--rl_device", ++ type=str, ++ default=None, ++ help="Device used by the RSL-RL policy/optimizer, e.g. cpu, cuda, or cuda:0.", ++ ) + + + def parse_rsl_rl_cfg(task_name: str, args_cli: argparse.Namespace) -> RslRlOnPolicyRunnerCfg: +@@ -77,6 +83,8 @@ def update_rsl_rl_cfg(agent_cfg: RslRlOnPolicyRunnerCfg, args_cli: argparse.Name + agent_cfg.run_name = args_cli.run_name + if args_cli.logger is not None: + agent_cfg.logger = args_cli.logger ++ if getattr(args_cli, "rl_device", None) is not None: ++ agent_cfg.device = args_cli.rl_device + # set the project name for wandb and neptune + if agent_cfg.logger in {"wandb", "neptune"} and args_cli.log_project_name: + agent_cfg.wandb_project = args_cli.log_project_name +diff --git a/scripts/train.py b/scripts/train.py +index 01039e3..6f6ffc4 100644 +--- a/scripts/train.py ++++ b/scripts/train.py +@@ -22,6 +22,9 @@ parser.add_argument("--num_envs", type=int, default=None, help="Number of enviro + parser.add_argument("--task", type=str, default=None, help="Name of the task.") + parser.add_argument("--seed", type=int, default=None, help="Seed used for the environment") + parser.add_argument("--max_iterations", type=int, default=None, help="RL Policy training iterations.") ++parser.add_argument( ++ "--distributed", action="store_true", default=False, help="Run training with multiple GPUs or nodes." ++) + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) +@@ -81,6 +84,19 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # note: certain randomizations occur in the environment initialization so we set the seed here + env_cfg.seed = agent_cfg.seed + env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device ++ if args_cli.distributed and args_cli.device is not None and "cpu" in args_cli.device: ++ raise ValueError( ++ "Distributed training is not supported when using CPU device. " ++ "Please use GPU device (e.g. --device cuda) for distributed training." ++ ) ++ ++ if args_cli.distributed: ++ env_cfg.sim.device = f"cuda:{app_launcher.local_rank}" ++ agent_cfg.device = f"cuda:{app_launcher.local_rank}" ++ ++ seed = agent_cfg.seed + app_launcher.local_rank ++ env_cfg.seed = seed ++ agent_cfg.seed = seed + + # specify directory for logging experiments + log_root_path = os.path.join("logs", "rsl_rl", agent_cfg.experiment_name) +diff --git a/source/engineai_lab/tasks/velocity/mdp/__init__.py b/source/engineai_lab/tasks/velocity/mdp/__init__.py +index 6fe10e8..553a153 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/__init__.py ++++ b/source/engineai_lab/tasks/velocity/mdp/__init__.py +@@ -3,3 +3,4 @@ from isaaclab_tasks.manager_based.locomotion.velocity.mdp import * + from .rewards import * # noqa: F401, F403 + from .observations import * # noqa: F401, F403 + from .events import * # noqa: F401, F403 ++from .terminations import * # noqa: F401, F403 +diff --git a/source/engineai_lab/tasks/velocity/mdp/rewards.py b/source/engineai_lab/tasks/velocity/mdp/rewards.py +index 36c3e1c..1b7cbbf 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/rewards.py ++++ b/source/engineai_lab/tasks/velocity/mdp/rewards.py +@@ -18,6 +18,12 @@ from isaaclab.utils.math import ( + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedRLEnv + ++ ++def _to_env_device(env: ManagerBasedRLEnv, tensor: torch.Tensor) -> torch.Tensor: ++ """Move sensor tensors back to the RL environment device when Isaac uses another CUDA device.""" ++ return tensor.to(env.device) ++ ++ + def action_smoothness(env: ManagerBasedRLEnv) -> torch.Tensor: + """Penalize action second-order differences to encourage smooth control.""" + action_manager = env.action_manager +@@ -90,8 +96,8 @@ def feet_air_time_similarity( + if body_ids is None or len(body_ids) != 2: + raise ValueError("feet_air_time_similarity expects exactly two foot body ids in sensor_cfg.body_ids.") + +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, body_ids] +- last_air_time = contact_sensor.data.last_air_time[:, body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, body_ids]) + + recent_contact = torch.any(first_contact > 0.0, dim=1) + valid = torch.all(last_air_time > min_air_time, dim=1) +@@ -100,6 +106,34 @@ def feet_air_time_similarity( + return reward * (recent_contact & valid) + + ++def feet_air_time( ++ env: ManagerBasedRLEnv, command_name: str, sensor_cfg: SceneEntityCfg, threshold: float ++) -> torch.Tensor: ++ """Reward long steps while keeping contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ reward = torch.sum((last_air_time - threshold) * first_contact, dim=1) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ ++def feet_air_time_positive_biped( ++ env: ManagerBasedRLEnv, command_name: str, threshold: float, sensor_cfg: SceneEntityCfg ++) -> torch.Tensor: ++ """Dense biped air-time reward with contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ air_time = _to_env_device(env, contact_sensor.data.current_air_time[:, sensor_cfg.body_ids]) ++ contact_time = _to_env_device(env, contact_sensor.data.current_contact_time[:, sensor_cfg.body_ids]) ++ in_contact = contact_time > 0.0 ++ in_mode_time = torch.where(in_contact, contact_time, air_time) ++ single_stance = torch.sum(in_contact.int(), dim=1) == 1 ++ reward = torch.min(torch.where(single_stance.unsqueeze(-1), in_mode_time, 0.0), dim=1)[0] ++ reward = torch.clamp(reward, max=threshold) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ + def track_lin_vel_xy_yaw_frame_exp( + env, sigma: float, command_name: str, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), stand_threshold: float = 0.06 + ) -> torch.Tensor: +@@ -141,7 +175,7 @@ def feet_stumble( + below ``normal_threshold``. Returns the count of stumbling feet per environment. + """ + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- forces = contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) + tangential = torch.norm(forces[..., :2], dim=-1) > tangential_threshold + small_normal = torch.abs(forces[..., 2]) < normal_threshold + stumble = tangential & small_normal +@@ -165,6 +199,7 @@ def feet_contact( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -194,6 +229,7 @@ def feet_contact_fixed( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -207,6 +243,17 @@ def feet_contact_fixed( + return reward + + ++def feet_slide(env: ManagerBasedRLEnv, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: ++ """Penalize foot sliding while keeping contact tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 ++ asset = env.scene[asset_cfg.name] ++ body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] ++ return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) ++ ++ + + def feet_position(env, + asset_cfg: SceneEntityCfg, +@@ -293,7 +340,7 @@ def feet_landing_velocity( + ) -> torch.Tensor: + """Penalize high downward landing speed at first contact to reduce impact noise.""" + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) + + asset = env.scene[asset_cfg.name] + foot_vel_z = asset.data.body_lin_vel_w[:, sensor_cfg.body_ids, 2] +@@ -412,7 +459,9 @@ def reward_waist_pos( + + def penalize_foot_stumble(env, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- contacts = contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] > 1.0 ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 + asset = env.scene[asset_cfg.name] + body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] + return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) \ No newline at end of file diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/model_1499.pt b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/model_1499.pt new file mode 100644 index 0000000..14c2acb Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/model_1499.pt differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/params/agent.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/params/agent.yaml new file mode 100644 index 0000000..b518bf4 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/params/agent.yaml @@ -0,0 +1,63 @@ +seed: 42 +device: cuda:0 +num_steps_per_env: 24 +max_iterations: 1500 +empirical_normalization: {} +obs_groups: + actor: + - policy + critic: + - policy +clip_actions: null +check_for_nan: true +save_interval: 50 +experiment_name: velocity_flat_terrain_gen2 +run_name: gen2_walk_v0 +logger: tensorboard +neptune_project: isaaclab +wandb_project: isaaclab +resume: false +load_run: .* +load_checkpoint: model_.*.pt +class_name: OnPolicyRunner +actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar +critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null +algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null +policy: {} diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/params/env.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/params/env.yaml new file mode 100644 index 0000000..c012658 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0/params/env.yaml @@ -0,0 +1,1946 @@ +viewer: + eye: !!python/tuple + - 7.5 + - 7.5 + - 7.5 + lookat: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: !!python/tuple + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null +sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: !!python/tuple + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null +ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow +seed: 42 +decimation: 5 +scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: /World/envs/env_.*/Robot + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 1.25 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + ang_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 4096 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: !!python/tuple + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + obstacle_height_mode: choice + obstacle_width_range: !!python/tuple + - 1.0 + - 2.0 + obstacle_height_range: !!python/tuple + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + noise_range: !!python/tuple + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: !!python/tuple + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: 3.0 + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: !!python/tuple + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: /World/envs/env_.*/Robot/body_link + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: !!python/tuple + - 0.0 + - 0.0 + - 20.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: !!python/tuple + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: !!python/tuple + - 0.0 + - 0.0 + ray_cast_drift_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: /World/envs/env_.*/Robot/.* + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: !!python/tuple + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false +recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false +observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true +actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true +events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: .* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + static_friction_range: !!python/tuple + - 0.3 + - 1.6 + dynamic_friction_range: !!python/tuple + - 0.3 + - 1.2 + restitution_range: !!python/tuple + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + pos_distribution_params: !!python/tuple + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + com_range: + x: !!python/tuple + - -0.03 + - 0.03 + y: !!python/tuple + - -0.06 + - 0.06 + z: !!python/tuple + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: !!python/tuple + - -0.3 + - 0.3 + y: !!python/tuple + - -0.3 + - 0.3 + z: !!python/tuple + - -0.15 + - 0.15 + roll: !!python/tuple + - -0.35 + - 0.35 + pitch: !!python/tuple + - -0.35 + - 0.35 + yaw: !!python/tuple + - -0.52 + - 0.52 + mode: interval + interval_range_s: !!python/tuple + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: !!python/tuple + - -0.5 + - 0.5 + y: !!python/tuple + - -0.5 + - 0.5 + yaw: !!python/tuple + - -3.14 + - 3.14 + velocity_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + roll: !!python/tuple + - 0.0 + - 0.0 + pitch: !!python/tuple + - 0.0 + - 0.0 + yaw: !!python/tuple + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: !!python/tuple + - 0.8 + - 1.2 + velocity_range: !!python/tuple + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 +rerender_on_reset: false +num_rerenders_on_reset: 0 +wait_for_textures: true +xr: null +teleop_devices: + devices: {} +export_io_descriptors: false +log_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_08-51-41_gen2_walk_v0 +is_finite_horizon: false +episode_length_s: 20.0 +rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 +terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 1.0 + time_out: false +curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} +commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: !!python/tuple + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: !!python/tuple + - -0.2 + - 0.4 + lin_vel_y: !!python/tuple + - -0.2 + - 0.2 + ang_vel_z: !!python/tuple + - -0.5 + - 0.5 + heading: !!python/tuple + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 0.0 + - 1.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/events.out.tfevents.1783648926.workstation.69256.0 b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/events.out.tfevents.1783648926.workstation.69256.0 new file mode 100644 index 0000000..743728d Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/events.out.tfevents.1783648926.workstation.69256.0 differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/exported/model_1999.onnx b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/exported/model_1999.onnx new file mode 100644 index 0000000..59f9a68 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/exported/model_1999.onnx differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/git/engineai_amp.diff b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/git/engineai_amp.diff new file mode 100644 index 0000000..889f572 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/git/engineai_amp.diff @@ -0,0 +1,227 @@ +--- git commit --- +83ba64bbb58a02e14483e52adce5f893f3f31cdf + + +--- git status --- +On branch main +Your branch is up to date with 'origin/main'. + +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: scripts/cli_args.py + modified: scripts/train.py + modified: source/engineai_lab/tasks/velocity/mdp/__init__.py + modified: source/engineai_lab/tasks/velocity/mdp/rewards.py + +Untracked files: + (use "git add ..." to include in what will be committed) + IsaacLab/ + scripts/gen2_check_rl_readiness.py + scripts/gen2_generate_simplified_collisions.py + scripts/gen2_visualize_collisions.py + source/engineai_lab/robots/gen2.py + source/engineai_lab/tasks/velocity/config/gen2/ + source/engineai_lab/tasks/velocity/mdp/terminations.py + source/gen2_lab/ + uv.lock + +no changes added to commit (use "git add" and/or "git commit -a") + + +--- git diff --- +diff --git a/scripts/cli_args.py b/scripts/cli_args.py +index 36f91c5..b4a3257 100644 +--- a/scripts/cli_args.py ++++ b/scripts/cli_args.py +@@ -34,6 +34,12 @@ def add_rsl_rl_args(parser: argparse.ArgumentParser): + arg_group.add_argument( + "--wandb_path", type=str, default=None, help="Name of the logging project when using wandb or neptune." + ) ++ arg_group.add_argument( ++ "--rl_device", ++ type=str, ++ default=None, ++ help="Device used by the RSL-RL policy/optimizer, e.g. cpu, cuda, or cuda:0.", ++ ) + + + def parse_rsl_rl_cfg(task_name: str, args_cli: argparse.Namespace) -> RslRlOnPolicyRunnerCfg: +@@ -77,6 +83,8 @@ def update_rsl_rl_cfg(agent_cfg: RslRlOnPolicyRunnerCfg, args_cli: argparse.Name + agent_cfg.run_name = args_cli.run_name + if args_cli.logger is not None: + agent_cfg.logger = args_cli.logger ++ if getattr(args_cli, "rl_device", None) is not None: ++ agent_cfg.device = args_cli.rl_device + # set the project name for wandb and neptune + if agent_cfg.logger in {"wandb", "neptune"} and args_cli.log_project_name: + agent_cfg.wandb_project = args_cli.log_project_name +diff --git a/scripts/train.py b/scripts/train.py +index 01039e3..6f6ffc4 100644 +--- a/scripts/train.py ++++ b/scripts/train.py +@@ -22,6 +22,9 @@ parser.add_argument("--num_envs", type=int, default=None, help="Number of enviro + parser.add_argument("--task", type=str, default=None, help="Name of the task.") + parser.add_argument("--seed", type=int, default=None, help="Seed used for the environment") + parser.add_argument("--max_iterations", type=int, default=None, help="RL Policy training iterations.") ++parser.add_argument( ++ "--distributed", action="store_true", default=False, help="Run training with multiple GPUs or nodes." ++) + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) +@@ -81,6 +84,19 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # note: certain randomizations occur in the environment initialization so we set the seed here + env_cfg.seed = agent_cfg.seed + env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device ++ if args_cli.distributed and args_cli.device is not None and "cpu" in args_cli.device: ++ raise ValueError( ++ "Distributed training is not supported when using CPU device. " ++ "Please use GPU device (e.g. --device cuda) for distributed training." ++ ) ++ ++ if args_cli.distributed: ++ env_cfg.sim.device = f"cuda:{app_launcher.local_rank}" ++ agent_cfg.device = f"cuda:{app_launcher.local_rank}" ++ ++ seed = agent_cfg.seed + app_launcher.local_rank ++ env_cfg.seed = seed ++ agent_cfg.seed = seed + + # specify directory for logging experiments + log_root_path = os.path.join("logs", "rsl_rl", agent_cfg.experiment_name) +diff --git a/source/engineai_lab/tasks/velocity/mdp/__init__.py b/source/engineai_lab/tasks/velocity/mdp/__init__.py +index 6fe10e8..553a153 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/__init__.py ++++ b/source/engineai_lab/tasks/velocity/mdp/__init__.py +@@ -3,3 +3,4 @@ from isaaclab_tasks.manager_based.locomotion.velocity.mdp import * + from .rewards import * # noqa: F401, F403 + from .observations import * # noqa: F401, F403 + from .events import * # noqa: F401, F403 ++from .terminations import * # noqa: F401, F403 +diff --git a/source/engineai_lab/tasks/velocity/mdp/rewards.py b/source/engineai_lab/tasks/velocity/mdp/rewards.py +index 36c3e1c..1b7cbbf 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/rewards.py ++++ b/source/engineai_lab/tasks/velocity/mdp/rewards.py +@@ -18,6 +18,12 @@ from isaaclab.utils.math import ( + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedRLEnv + ++ ++def _to_env_device(env: ManagerBasedRLEnv, tensor: torch.Tensor) -> torch.Tensor: ++ """Move sensor tensors back to the RL environment device when Isaac uses another CUDA device.""" ++ return tensor.to(env.device) ++ ++ + def action_smoothness(env: ManagerBasedRLEnv) -> torch.Tensor: + """Penalize action second-order differences to encourage smooth control.""" + action_manager = env.action_manager +@@ -90,8 +96,8 @@ def feet_air_time_similarity( + if body_ids is None or len(body_ids) != 2: + raise ValueError("feet_air_time_similarity expects exactly two foot body ids in sensor_cfg.body_ids.") + +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, body_ids] +- last_air_time = contact_sensor.data.last_air_time[:, body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, body_ids]) + + recent_contact = torch.any(first_contact > 0.0, dim=1) + valid = torch.all(last_air_time > min_air_time, dim=1) +@@ -100,6 +106,34 @@ def feet_air_time_similarity( + return reward * (recent_contact & valid) + + ++def feet_air_time( ++ env: ManagerBasedRLEnv, command_name: str, sensor_cfg: SceneEntityCfg, threshold: float ++) -> torch.Tensor: ++ """Reward long steps while keeping contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ reward = torch.sum((last_air_time - threshold) * first_contact, dim=1) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ ++def feet_air_time_positive_biped( ++ env: ManagerBasedRLEnv, command_name: str, threshold: float, sensor_cfg: SceneEntityCfg ++) -> torch.Tensor: ++ """Dense biped air-time reward with contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ air_time = _to_env_device(env, contact_sensor.data.current_air_time[:, sensor_cfg.body_ids]) ++ contact_time = _to_env_device(env, contact_sensor.data.current_contact_time[:, sensor_cfg.body_ids]) ++ in_contact = contact_time > 0.0 ++ in_mode_time = torch.where(in_contact, contact_time, air_time) ++ single_stance = torch.sum(in_contact.int(), dim=1) == 1 ++ reward = torch.min(torch.where(single_stance.unsqueeze(-1), in_mode_time, 0.0), dim=1)[0] ++ reward = torch.clamp(reward, max=threshold) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ + def track_lin_vel_xy_yaw_frame_exp( + env, sigma: float, command_name: str, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), stand_threshold: float = 0.06 + ) -> torch.Tensor: +@@ -141,7 +175,7 @@ def feet_stumble( + below ``normal_threshold``. Returns the count of stumbling feet per environment. + """ + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- forces = contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) + tangential = torch.norm(forces[..., :2], dim=-1) > tangential_threshold + small_normal = torch.abs(forces[..., 2]) < normal_threshold + stumble = tangential & small_normal +@@ -165,6 +199,7 @@ def feet_contact( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -194,6 +229,7 @@ def feet_contact_fixed( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -207,6 +243,17 @@ def feet_contact_fixed( + return reward + + ++def feet_slide(env: ManagerBasedRLEnv, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: ++ """Penalize foot sliding while keeping contact tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 ++ asset = env.scene[asset_cfg.name] ++ body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] ++ return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) ++ ++ + + def feet_position(env, + asset_cfg: SceneEntityCfg, +@@ -293,7 +340,7 @@ def feet_landing_velocity( + ) -> torch.Tensor: + """Penalize high downward landing speed at first contact to reduce impact noise.""" + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) + + asset = env.scene[asset_cfg.name] + foot_vel_z = asset.data.body_lin_vel_w[:, sensor_cfg.body_ids, 2] +@@ -412,7 +459,9 @@ def reward_waist_pos( + + def penalize_foot_stumble(env, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- contacts = contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] > 1.0 ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 + asset = env.scene[asset_cfg.name] + body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] + return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) \ No newline at end of file diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/model_1999.pt b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/model_1999.pt new file mode 100644 index 0000000..0e2e15b Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/model_1999.pt differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/params/agent.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/params/agent.yaml new file mode 100644 index 0000000..2c2a956 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/params/agent.yaml @@ -0,0 +1,63 @@ +seed: 42 +device: cuda:0 +num_steps_per_env: 24 +max_iterations: 2000 +empirical_normalization: {} +obs_groups: + actor: + - policy + critic: + - policy +clip_actions: null +check_for_nan: true +save_interval: 50 +experiment_name: velocity_flat_terrain_gen2 +run_name: gen2_collision_v1 +logger: tensorboard +neptune_project: isaaclab +wandb_project: isaaclab +resume: false +load_run: .* +load_checkpoint: model_.*.pt +class_name: OnPolicyRunner +actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar +critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null +algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null +policy: {} diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/params/env.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/params/env.yaml new file mode 100644 index 0000000..9458f38 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1/params/env.yaml @@ -0,0 +1,1946 @@ +viewer: + eye: !!python/tuple + - 7.5 + - 7.5 + - 7.5 + lookat: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: !!python/tuple + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null +sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: !!python/tuple + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null +ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow +seed: 42 +decimation: 5 +scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: /World/envs/env_.*/Robot + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 1.282 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + ang_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 4096 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: !!python/tuple + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + obstacle_height_mode: choice + obstacle_width_range: !!python/tuple + - 1.0 + - 2.0 + obstacle_height_range: !!python/tuple + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + noise_range: !!python/tuple + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: !!python/tuple + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: 3.0 + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: !!python/tuple + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: /World/envs/env_.*/Robot/body_link + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: !!python/tuple + - 0.0 + - 0.0 + - 20.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: !!python/tuple + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: !!python/tuple + - 0.0 + - 0.0 + ray_cast_drift_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: /World/envs/env_.*/Robot/.* + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: !!python/tuple + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false +recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false +observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true +actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true +events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: .* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + static_friction_range: !!python/tuple + - 0.3 + - 1.6 + dynamic_friction_range: !!python/tuple + - 0.3 + - 1.2 + restitution_range: !!python/tuple + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + pos_distribution_params: !!python/tuple + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + com_range: + x: !!python/tuple + - -0.03 + - 0.03 + y: !!python/tuple + - -0.06 + - 0.06 + z: !!python/tuple + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: !!python/tuple + - -0.3 + - 0.3 + y: !!python/tuple + - -0.3 + - 0.3 + z: !!python/tuple + - -0.15 + - 0.15 + roll: !!python/tuple + - -0.35 + - 0.35 + pitch: !!python/tuple + - -0.35 + - 0.35 + yaw: !!python/tuple + - -0.52 + - 0.52 + mode: interval + interval_range_s: !!python/tuple + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: !!python/tuple + - -0.5 + - 0.5 + y: !!python/tuple + - -0.5 + - 0.5 + yaw: !!python/tuple + - -3.14 + - 3.14 + velocity_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + roll: !!python/tuple + - 0.0 + - 0.0 + pitch: !!python/tuple + - 0.0 + - 0.0 + yaw: !!python/tuple + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: !!python/tuple + - 0.8 + - 1.2 + velocity_range: !!python/tuple + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 +rerender_on_reset: false +num_rerenders_on_reset: 0 +wait_for_textures: true +xr: null +teleop_devices: + devices: {} +export_io_descriptors: false +log_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_10-01-52_gen2_collision_v1 +is_finite_horizon: false +episode_length_s: 20.0 +rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.282 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.282 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 +terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 1.0 + time_out: false +curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} +commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: !!python/tuple + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: !!python/tuple + - -0.2 + - 0.4 + lin_vel_y: !!python/tuple + - -0.2 + - 0.2 + ang_vel_z: !!python/tuple + - -0.5 + - 0.5 + heading: !!python/tuple + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 0.0 + - 1.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/events.out.tfevents.1783654091.workstation.124002.0 b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/events.out.tfevents.1783654091.workstation.124002.0 new file mode 100644 index 0000000..7daeecf Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/events.out.tfevents.1783654091.workstation.124002.0 differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/exported/model_1499.onnx b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/exported/model_1499.onnx new file mode 100644 index 0000000..31cdfa1 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/exported/model_1499.onnx differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/git/engineai_amp.diff b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/git/engineai_amp.diff new file mode 100644 index 0000000..1b0bdb2 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/git/engineai_amp.diff @@ -0,0 +1,506 @@ +--- git commit --- +83ba64bbb58a02e14483e52adce5f893f3f31cdf + + +--- git status --- +On branch main +Your branch is up to date with 'origin/main'. + +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: scripts/cli_args.py + modified: scripts/train.py + modified: source/engineai_lab/tasks/velocity/mdp/__init__.py + modified: source/engineai_lab/tasks/velocity/mdp/observations.py + modified: source/engineai_lab/tasks/velocity/mdp/rewards.py + +Untracked files: + (use "git add ..." to include in what will be committed) + IsaacLab/ + scripts/gen2_check_rl_readiness.py + scripts/gen2_generate_simplified_collisions.py + scripts/gen2_visualize_collisions.py + source/engineai_lab/robots/gen2.py + source/engineai_lab/tasks/velocity/config/gen2/ + source/engineai_lab/tasks/velocity/mdp/terminations.py + source/gen2_lab/ + uv.lock + +no changes added to commit (use "git add" and/or "git commit -a") + + +--- git diff --- +diff --git a/scripts/cli_args.py b/scripts/cli_args.py +index 36f91c5..b4a3257 100644 +--- a/scripts/cli_args.py ++++ b/scripts/cli_args.py +@@ -34,6 +34,12 @@ def add_rsl_rl_args(parser: argparse.ArgumentParser): + arg_group.add_argument( + "--wandb_path", type=str, default=None, help="Name of the logging project when using wandb or neptune." + ) ++ arg_group.add_argument( ++ "--rl_device", ++ type=str, ++ default=None, ++ help="Device used by the RSL-RL policy/optimizer, e.g. cpu, cuda, or cuda:0.", ++ ) + + + def parse_rsl_rl_cfg(task_name: str, args_cli: argparse.Namespace) -> RslRlOnPolicyRunnerCfg: +@@ -77,6 +83,8 @@ def update_rsl_rl_cfg(agent_cfg: RslRlOnPolicyRunnerCfg, args_cli: argparse.Name + agent_cfg.run_name = args_cli.run_name + if args_cli.logger is not None: + agent_cfg.logger = args_cli.logger ++ if getattr(args_cli, "rl_device", None) is not None: ++ agent_cfg.device = args_cli.rl_device + # set the project name for wandb and neptune + if agent_cfg.logger in {"wandb", "neptune"} and args_cli.log_project_name: + agent_cfg.wandb_project = args_cli.log_project_name +diff --git a/scripts/train.py b/scripts/train.py +index 01039e3..6f6ffc4 100644 +--- a/scripts/train.py ++++ b/scripts/train.py +@@ -22,6 +22,9 @@ parser.add_argument("--num_envs", type=int, default=None, help="Number of enviro + parser.add_argument("--task", type=str, default=None, help="Name of the task.") + parser.add_argument("--seed", type=int, default=None, help="Seed used for the environment") + parser.add_argument("--max_iterations", type=int, default=None, help="RL Policy training iterations.") ++parser.add_argument( ++ "--distributed", action="store_true", default=False, help="Run training with multiple GPUs or nodes." ++) + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) +@@ -81,6 +84,19 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # note: certain randomizations occur in the environment initialization so we set the seed here + env_cfg.seed = agent_cfg.seed + env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device ++ if args_cli.distributed and args_cli.device is not None and "cpu" in args_cli.device: ++ raise ValueError( ++ "Distributed training is not supported when using CPU device. " ++ "Please use GPU device (e.g. --device cuda) for distributed training." ++ ) ++ ++ if args_cli.distributed: ++ env_cfg.sim.device = f"cuda:{app_launcher.local_rank}" ++ agent_cfg.device = f"cuda:{app_launcher.local_rank}" ++ ++ seed = agent_cfg.seed + app_launcher.local_rank ++ env_cfg.seed = seed ++ agent_cfg.seed = seed + + # specify directory for logging experiments + log_root_path = os.path.join("logs", "rsl_rl", agent_cfg.experiment_name) +diff --git a/source/engineai_lab/tasks/velocity/mdp/__init__.py b/source/engineai_lab/tasks/velocity/mdp/__init__.py +index 6fe10e8..553a153 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/__init__.py ++++ b/source/engineai_lab/tasks/velocity/mdp/__init__.py +@@ -3,3 +3,4 @@ from isaaclab_tasks.manager_based.locomotion.velocity.mdp import * + from .rewards import * # noqa: F401, F403 + from .observations import * # noqa: F401, F403 + from .events import * # noqa: F401, F403 ++from .terminations import * # noqa: F401, F403 +diff --git a/source/engineai_lab/tasks/velocity/mdp/observations.py b/source/engineai_lab/tasks/velocity/mdp/observations.py +index 0881dba..9dc20ff 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/observations.py ++++ b/source/engineai_lab/tasks/velocity/mdp/observations.py +@@ -3,12 +3,30 @@ from __future__ import annotations + import torch + from typing import TYPE_CHECKING + +-from isaaclab.utils.math import quat_apply_inverse ++from isaaclab.managers import SceneEntityCfg ++from isaaclab.utils.math import euler_xyz_from_quat, quat_apply_inverse, quat_from_euler_xyz + + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedEnv + + ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ + def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + """Base linear velocity expressed in the base frame.""" + asset = env.scene["robot"] +@@ -18,3 +36,22 @@ def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + # fallback: rotate world velocity into base frame + return quat_apply_inverse(asset.data.root_quat_w, asset.data.root_lin_vel_w) + ++ ++def body_ang_vel_yaw_frame( ++ env: ManagerBasedEnv, ++ asset_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Body angular velocity expressed in a yaw-aligned frame for that body.""" ++ body_id = _single_body_id(asset_cfg, "body_ang_vel_yaw_frame") ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_ang_vel_w = asset.data.body_ang_vel_w[:, body_id, :] ++ return quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_ang_vel_w) ++ ++ ++def body_projected_gravity(env: ManagerBasedEnv, asset_cfg: SceneEntityCfg) -> torch.Tensor: ++ """Gravity projection in a configured body's local frame.""" ++ body_id = _single_body_id(asset_cfg, "body_projected_gravity") ++ asset = env.scene[asset_cfg.name] ++ return quat_apply_inverse(asset.data.body_quat_w[:, body_id, :], asset.data.GRAVITY_VEC_W) +diff --git a/source/engineai_lab/tasks/velocity/mdp/rewards.py b/source/engineai_lab/tasks/velocity/mdp/rewards.py +index 36c3e1c..4ec7a99 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/rewards.py ++++ b/source/engineai_lab/tasks/velocity/mdp/rewards.py +@@ -18,6 +18,34 @@ from isaaclab.utils.math import ( + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedRLEnv + ++ ++def _to_env_device(env: ManagerBasedRLEnv, tensor: torch.Tensor) -> torch.Tensor: ++ """Move sensor tensors back to the RL environment device when Isaac uses another CUDA device.""" ++ return tensor.to(env.device) ++ ++ ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ ++def _heading_yaw_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ return wrap_to_pi(yaw - heading_yaw_offset) ++ ++ + def action_smoothness(env: ManagerBasedRLEnv) -> torch.Tensor: + """Penalize action second-order differences to encourage smooth control.""" + action_manager = env.action_manager +@@ -90,8 +118,8 @@ def feet_air_time_similarity( + if body_ids is None or len(body_ids) != 2: + raise ValueError("feet_air_time_similarity expects exactly two foot body ids in sensor_cfg.body_ids.") + +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, body_ids] +- last_air_time = contact_sensor.data.last_air_time[:, body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, body_ids]) + + recent_contact = torch.any(first_contact > 0.0, dim=1) + valid = torch.all(last_air_time > min_air_time, dim=1) +@@ -100,6 +128,34 @@ def feet_air_time_similarity( + return reward * (recent_contact & valid) + + ++def feet_air_time( ++ env: ManagerBasedRLEnv, command_name: str, sensor_cfg: SceneEntityCfg, threshold: float ++) -> torch.Tensor: ++ """Reward long steps while keeping contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ reward = torch.sum((last_air_time - threshold) * first_contact, dim=1) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ ++def feet_air_time_positive_biped( ++ env: ManagerBasedRLEnv, command_name: str, threshold: float, sensor_cfg: SceneEntityCfg ++) -> torch.Tensor: ++ """Dense biped air-time reward with contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ air_time = _to_env_device(env, contact_sensor.data.current_air_time[:, sensor_cfg.body_ids]) ++ contact_time = _to_env_device(env, contact_sensor.data.current_contact_time[:, sensor_cfg.body_ids]) ++ in_contact = contact_time > 0.0 ++ in_mode_time = torch.where(in_contact, contact_time, air_time) ++ single_stance = torch.sum(in_contact.int(), dim=1) == 1 ++ reward = torch.min(torch.where(single_stance.unsqueeze(-1), in_mode_time, 0.0), dim=1)[0] ++ reward = torch.clamp(reward, max=threshold) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ + def track_lin_vel_xy_yaw_frame_exp( + env, sigma: float, command_name: str, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), stand_threshold: float = 0.06 + ) -> torch.Tensor: +@@ -132,6 +188,53 @@ def track_ang_vel_z_world_exp( + rew_abs = torch.exp(-ang_vel_error_abs * sigma) + return torch.where(stand_command, rew_abs, rew_square) + ++ ++def track_lin_vel_xy_yaw_frame_exp_body( ++ env, ++ sigma: float, ++ command_name: str, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Track planar velocity of a configured body in its yaw-aligned frame.""" ++ body_id = _single_body_id(asset_cfg, "track_lin_vel_xy_yaw_frame_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_lin_vel_w = asset.data.body_lin_vel_w[:, body_id, :] ++ vel_yaw = quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_lin_vel_w) ++ lin_vel_error_square = torch.sum(torch.square(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ lin_vel_error_abs = torch.sum(torch.abs(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ rew_square = torch.exp(-lin_vel_error_square * sigma) ++ rew_abs = torch.exp(-lin_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_body( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track world-frame yaw angular velocity of a configured body.""" ++ body_id = _single_body_id(asset_cfg, "track_ang_vel_z_world_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ ang_vel_error_square = torch.square(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ ang_vel_error_abs = torch.abs(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ + def feet_stumble( + env, sensor_cfg: SceneEntityCfg, tangential_threshold: float = 2.0, normal_threshold: float = 1.0 + ) -> torch.Tensor: +@@ -141,7 +244,7 @@ def feet_stumble( + below ``normal_threshold``. Returns the count of stumbling feet per environment. + """ + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- forces = contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) + tangential = torch.norm(forces[..., :2], dim=-1) > tangential_threshold + small_normal = torch.abs(forces[..., 2]) < normal_threshold + stumble = tangential & small_normal +@@ -165,6 +268,7 @@ def feet_contact( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -194,6 +298,7 @@ def feet_contact_fixed( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -207,6 +312,17 @@ def feet_contact_fixed( + return reward + + ++def feet_slide(env: ManagerBasedRLEnv, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: ++ """Penalize foot sliding while keeping contact tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 ++ asset = env.scene[asset_cfg.name] ++ body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] ++ return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) ++ ++ + + def feet_position(env, + asset_cfg: SceneEntityCfg, +@@ -253,6 +369,43 @@ def feet_position(env, + return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) + + ++def feet_position_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ desired_foot_positions: tuple[tuple[float, float, float], ...], ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ scale: float = 3.0, ++) -> torch.Tensor: ++ """Reward standing foot positions relative to a configured reference body.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_position_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = asset.data.body_pos_w[:, asset_cfg.body_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_pos_w.shape ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat_per_foot = heading_quat.unsqueeze(1).expand(-1, num_feet, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat_per_foot, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, num_feet, 3) ++ ++ desired = torch.tensor(desired_foot_positions, dtype=feet_pos_heading.dtype, device=feet_pos_heading.device) ++ if desired.shape != (num_feet, 3): ++ raise ValueError(f"desired_foot_positions must have shape ({num_feet}, 3), got {tuple(desired.shape)}.") ++ position_error = torch.sum(torch.abs(feet_pos_heading - desired.unsqueeze(0)), dim=(1, 2)) ++ reward_stand = torch.exp(-position_error * scale) ++ return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) ++ ++ + def feet_regulation( + env, + asset_cfg: SceneEntityCfg, +@@ -293,7 +446,7 @@ def feet_landing_velocity( + ) -> torch.Tensor: + """Penalize high downward landing speed at first contact to reduce impact noise.""" + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) + + asset = env.scene[asset_cfg.name] + foot_vel_z = asset.data.body_lin_vel_w[:, sensor_cfg.body_ids, 2] +@@ -350,6 +503,20 @@ def base_height_tracking(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot" + height_error = torch.abs(asset.data.root_pos_w[:, 2] - target_height) + return torch.exp(-height_error * 30.0) + ++ ++def body_height_tracking( ++ env, ++ asset_cfg: SceneEntityCfg, ++ target_height: float, ++ scale: float = 30.0, ++) -> torch.Tensor: ++ """Reward keeping a configured body height near a target height.""" ++ body_id = _single_body_id(asset_cfg, "body_height_tracking") ++ asset = env.scene[asset_cfg.name] ++ height_error = torch.abs(asset.data.body_pos_w[:, body_id, 2] - target_height) ++ return torch.exp(-height_error * scale) ++ ++ + def energy_cost(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Penalize energy consumption approximated by the sum of squared joint torques.""" + asset = env.scene[asset_cfg.name] +@@ -385,6 +552,41 @@ def feet_orientation(env, asset_cfg: SceneEntityCfg, command_name: str, stand_th + return torch.exp(-rew * 2.0) + + ++def feet_orientation_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ scale: float = 2.0, ++) -> torch.Tensor: ++ """Reward foot orientation relative to a configured reference body's heading.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_orientation_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ yaw_command = torch.abs(commands[:, 2]) > stand_threshold ++ ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ feet_quat = asset.data.body_quat_w[:, asset_cfg.body_ids, :] ++ reference_quat = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_quat.shape ++ feet_flat = feet_quat.reshape(-1, 4) ++ roll, pitch, yaw = euler_xyz_from_quat(feet_flat) ++ roll = roll.reshape(num_envs, num_feet) ++ pitch = pitch.reshape(num_envs, num_feet) ++ yaw = yaw.reshape(num_envs, num_feet) ++ ++ reference_yaw = _heading_yaw_with_offset(reference_quat, heading_yaw_offset) ++ feet_roll_pitch_error = torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) ++ feet_yaw_error = torch.abs(wrap_to_pi(yaw - reference_yaw.unsqueeze(1))) ++ ++ rew = torch.sum(feet_roll_pitch_error + feet_yaw_error, dim=1) ++ rew[yaw_command] = torch.sum(feet_roll_pitch_error[yaw_command], dim=1) ++ return torch.exp(-rew * scale) ++ ++ + def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Reward keeping the base roll/pitch near zero.""" + asset = env.scene[asset_cfg.name] +@@ -392,6 +594,35 @@ def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) - + base_euler = torch.stack((roll, pitch, yaw), dim=-1) + return torch.exp(-torch.sum(torch.abs(base_euler[:, :2]), dim=-1) * 10.0) + ++ ++def body_orientation(env, asset_cfg: SceneEntityCfg, scale: float = 10.0) -> torch.Tensor: ++ """Reward keeping a configured body's roll/pitch near zero.""" ++ body_id = _single_body_id(asset_cfg, "body_orientation") ++ asset = env.scene[asset_cfg.name] ++ roll, pitch, yaw = euler_xyz_from_quat(asset.data.body_quat_w[:, body_id, :]) ++ return torch.exp(-torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) * scale) ++ ++ ++def body_yaw_alignment( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++ reference_heading_yaw_offset: float = 0.0, ++ scale: float = 4.0, ++) -> torch.Tensor: ++ """Reward keeping one body's heading aligned with another body's heading.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_alignment") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_alignment") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ body_yaw = _heading_yaw_with_offset(asset.data.body_quat_w[:, body_id, :], heading_yaw_offset) ++ reference_yaw = _heading_yaw_with_offset( ++ reference_asset.data.body_quat_w[:, reference_body_id, :], reference_heading_yaw_offset ++ ) ++ return torch.exp(-torch.abs(wrap_to_pi(body_yaw - reference_yaw)) * scale) ++ ++ + def reward_waist_pos( + env, + asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), +@@ -412,7 +643,9 @@ def reward_waist_pos( + + def penalize_foot_stumble(env, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- contacts = contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] > 1.0 ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 + asset = env.scene[asset_cfg.name] + body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] + return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) \ No newline at end of file diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/model_1499.pt b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/model_1499.pt new file mode 100644 index 0000000..d9a694c Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/model_1499.pt differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/params/agent.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/params/agent.yaml new file mode 100644 index 0000000..4efb64b --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/params/agent.yaml @@ -0,0 +1,63 @@ +seed: 42 +device: cuda:0 +num_steps_per_env: 24 +max_iterations: 1500 +empirical_normalization: {} +obs_groups: + actor: + - policy + critic: + - policy +clip_actions: null +check_for_nan: true +save_interval: 50 +experiment_name: velocity_flat_terrain_gen2 +run_name: gen2_pelvis_base_v1 +logger: tensorboard +neptune_project: isaaclab +wandb_project: isaaclab +resume: false +load_run: .* +load_checkpoint: model_.*.pt +class_name: OnPolicyRunner +actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar +critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null +algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null +policy: {} diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/params/env.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/params/env.yaml new file mode 100644 index 0000000..8a0e92d --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1/params/env.yaml @@ -0,0 +1,2296 @@ +viewer: + eye: !!python/tuple + - 7.5 + - 7.5 + - 7.5 + lookat: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: !!python/tuple + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null +sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: !!python/tuple + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null +ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow +seed: 42 +decimation: 5 +scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: /World/envs/env_.*/Robot + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 1.282 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + ang_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 4096 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: !!python/tuple + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + obstacle_height_mode: choice + obstacle_width_range: !!python/tuple + - 1.0 + - 2.0 + obstacle_height_range: !!python/tuple + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + noise_range: !!python/tuple + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: !!python/tuple + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: 3.0 + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: !!python/tuple + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: /World/envs/env_.*/Robot/body_link + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: !!python/tuple + - 0.0 + - 0.0 + - 20.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: !!python/tuple + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: !!python/tuple + - 0.0 + - 0.0 + ray_cast_drift_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: /World/envs/env_.*/Robot/.* + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: !!python/tuple + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false +recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false +observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true +actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true +events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: .* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + static_friction_range: !!python/tuple + - 0.3 + - 1.6 + dynamic_friction_range: !!python/tuple + - 0.3 + - 1.2 + restitution_range: !!python/tuple + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + pos_distribution_params: !!python/tuple + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + com_range: + x: !!python/tuple + - -0.03 + - 0.03 + y: !!python/tuple + - -0.06 + - 0.06 + z: !!python/tuple + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: !!python/tuple + - -0.3 + - 0.3 + y: !!python/tuple + - -0.3 + - 0.3 + z: !!python/tuple + - -0.15 + - 0.15 + roll: !!python/tuple + - -0.35 + - 0.35 + pitch: !!python/tuple + - -0.35 + - 0.35 + yaw: !!python/tuple + - -0.52 + - 0.52 + mode: interval + interval_range_s: !!python/tuple + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: !!python/tuple + - -0.5 + - 0.5 + y: !!python/tuple + - -0.5 + - 0.5 + yaw: !!python/tuple + - -3.14 + - 3.14 + velocity_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + roll: !!python/tuple + - 0.0 + - 0.0 + pitch: !!python/tuple + - 0.0 + - 0.0 + yaw: !!python/tuple + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: !!python/tuple + - 0.8 + - 1.2 + velocity_range: !!python/tuple + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 +rerender_on_reset: false +num_rerenders_on_reset: 0 +wait_for_textures: true +xr: null +teleop_devices: + devices: {} +export_io_descriptors: false +log_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_11-27-56_gen2_pelvis_base_v1 +is_finite_horizon: false +episode_length_s: 20.0 +rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + pelvis_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 0.861 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 1.282 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: !!python/tuple + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 +terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 1.0 + time_out: false +curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} +commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: !!python/tuple + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: !!python/tuple + - -0.2 + - 0.4 + lin_vel_y: !!python/tuple + - -0.2 + - 0.2 + ang_vel_z: !!python/tuple + - -0.5 + - 0.5 + heading: !!python/tuple + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 0.0 + - 1.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/events.out.tfevents.1783663347.workstation.230835.0 b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/events.out.tfevents.1783663347.workstation.230835.0 new file mode 100644 index 0000000..6da4d72 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/events.out.tfevents.1783663347.workstation.230835.0 differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/exported/model_1199.onnx b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/exported/model_1199.onnx new file mode 100644 index 0000000..7d3e3f1 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/exported/model_1199.onnx differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/git/engineai_amp.diff b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/git/engineai_amp.diff new file mode 100644 index 0000000..dc628ae --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/git/engineai_amp.diff @@ -0,0 +1,652 @@ +--- git commit --- +83ba64bbb58a02e14483e52adce5f893f3f31cdf + + +--- git status --- +On branch main +Your branch is up to date with 'origin/main'. + +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: scripts/cli_args.py + modified: scripts/train.py + modified: source/engineai_lab/tasks/velocity/mdp/__init__.py + modified: source/engineai_lab/tasks/velocity/mdp/observations.py + modified: source/engineai_lab/tasks/velocity/mdp/rewards.py + +Untracked files: + (use "git add ..." to include in what will be committed) + IsaacLab/ + scripts/gen2_check_rl_readiness.py + scripts/gen2_generate_simplified_collisions.py + scripts/gen2_visualize_collisions.py + source/engineai_lab/robots/gen2.py + source/engineai_lab/tasks/velocity/config/gen2/ + source/engineai_lab/tasks/velocity/mdp/terminations.py + source/gen2_lab/ + uv.lock + +no changes added to commit (use "git add" and/or "git commit -a") + + +--- git diff --- +diff --git a/scripts/cli_args.py b/scripts/cli_args.py +index 36f91c5..b4a3257 100644 +--- a/scripts/cli_args.py ++++ b/scripts/cli_args.py +@@ -34,6 +34,12 @@ def add_rsl_rl_args(parser: argparse.ArgumentParser): + arg_group.add_argument( + "--wandb_path", type=str, default=None, help="Name of the logging project when using wandb or neptune." + ) ++ arg_group.add_argument( ++ "--rl_device", ++ type=str, ++ default=None, ++ help="Device used by the RSL-RL policy/optimizer, e.g. cpu, cuda, or cuda:0.", ++ ) + + + def parse_rsl_rl_cfg(task_name: str, args_cli: argparse.Namespace) -> RslRlOnPolicyRunnerCfg: +@@ -77,6 +83,8 @@ def update_rsl_rl_cfg(agent_cfg: RslRlOnPolicyRunnerCfg, args_cli: argparse.Name + agent_cfg.run_name = args_cli.run_name + if args_cli.logger is not None: + agent_cfg.logger = args_cli.logger ++ if getattr(args_cli, "rl_device", None) is not None: ++ agent_cfg.device = args_cli.rl_device + # set the project name for wandb and neptune + if agent_cfg.logger in {"wandb", "neptune"} and args_cli.log_project_name: + agent_cfg.wandb_project = args_cli.log_project_name +diff --git a/scripts/train.py b/scripts/train.py +index 01039e3..6f6ffc4 100644 +--- a/scripts/train.py ++++ b/scripts/train.py +@@ -22,6 +22,9 @@ parser.add_argument("--num_envs", type=int, default=None, help="Number of enviro + parser.add_argument("--task", type=str, default=None, help="Name of the task.") + parser.add_argument("--seed", type=int, default=None, help="Seed used for the environment") + parser.add_argument("--max_iterations", type=int, default=None, help="RL Policy training iterations.") ++parser.add_argument( ++ "--distributed", action="store_true", default=False, help="Run training with multiple GPUs or nodes." ++) + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) +@@ -81,6 +84,19 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # note: certain randomizations occur in the environment initialization so we set the seed here + env_cfg.seed = agent_cfg.seed + env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device ++ if args_cli.distributed and args_cli.device is not None and "cpu" in args_cli.device: ++ raise ValueError( ++ "Distributed training is not supported when using CPU device. " ++ "Please use GPU device (e.g. --device cuda) for distributed training." ++ ) ++ ++ if args_cli.distributed: ++ env_cfg.sim.device = f"cuda:{app_launcher.local_rank}" ++ agent_cfg.device = f"cuda:{app_launcher.local_rank}" ++ ++ seed = agent_cfg.seed + app_launcher.local_rank ++ env_cfg.seed = seed ++ agent_cfg.seed = seed + + # specify directory for logging experiments + log_root_path = os.path.join("logs", "rsl_rl", agent_cfg.experiment_name) +diff --git a/source/engineai_lab/tasks/velocity/mdp/__init__.py b/source/engineai_lab/tasks/velocity/mdp/__init__.py +index 6fe10e8..553a153 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/__init__.py ++++ b/source/engineai_lab/tasks/velocity/mdp/__init__.py +@@ -3,3 +3,4 @@ from isaaclab_tasks.manager_based.locomotion.velocity.mdp import * + from .rewards import * # noqa: F401, F403 + from .observations import * # noqa: F401, F403 + from .events import * # noqa: F401, F403 ++from .terminations import * # noqa: F401, F403 +diff --git a/source/engineai_lab/tasks/velocity/mdp/observations.py b/source/engineai_lab/tasks/velocity/mdp/observations.py +index 0881dba..9dc20ff 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/observations.py ++++ b/source/engineai_lab/tasks/velocity/mdp/observations.py +@@ -3,12 +3,30 @@ from __future__ import annotations + import torch + from typing import TYPE_CHECKING + +-from isaaclab.utils.math import quat_apply_inverse ++from isaaclab.managers import SceneEntityCfg ++from isaaclab.utils.math import euler_xyz_from_quat, quat_apply_inverse, quat_from_euler_xyz + + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedEnv + + ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ + def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + """Base linear velocity expressed in the base frame.""" + asset = env.scene["robot"] +@@ -18,3 +36,22 @@ def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + # fallback: rotate world velocity into base frame + return quat_apply_inverse(asset.data.root_quat_w, asset.data.root_lin_vel_w) + ++ ++def body_ang_vel_yaw_frame( ++ env: ManagerBasedEnv, ++ asset_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Body angular velocity expressed in a yaw-aligned frame for that body.""" ++ body_id = _single_body_id(asset_cfg, "body_ang_vel_yaw_frame") ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_ang_vel_w = asset.data.body_ang_vel_w[:, body_id, :] ++ return quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_ang_vel_w) ++ ++ ++def body_projected_gravity(env: ManagerBasedEnv, asset_cfg: SceneEntityCfg) -> torch.Tensor: ++ """Gravity projection in a configured body's local frame.""" ++ body_id = _single_body_id(asset_cfg, "body_projected_gravity") ++ asset = env.scene[asset_cfg.name] ++ return quat_apply_inverse(asset.data.body_quat_w[:, body_id, :], asset.data.GRAVITY_VEC_W) +diff --git a/source/engineai_lab/tasks/velocity/mdp/rewards.py b/source/engineai_lab/tasks/velocity/mdp/rewards.py +index 36c3e1c..d272621 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/rewards.py ++++ b/source/engineai_lab/tasks/velocity/mdp/rewards.py +@@ -10,6 +10,7 @@ from isaaclab.utils.math import ( + euler_xyz_from_quat, + quat_apply_inverse, + quat_from_euler_xyz, ++ quat_mul, + quat_rotate_inverse, + wrap_to_pi, + yaw_quat, +@@ -18,6 +19,46 @@ from isaaclab.utils.math import ( + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedRLEnv + ++ ++def _to_env_device(env: ManagerBasedRLEnv, tensor: torch.Tensor) -> torch.Tensor: ++ """Move sensor tensors back to the RL environment device when Isaac uses another CUDA device.""" ++ return tensor.to(env.device) ++ ++ ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ ++def _heading_yaw_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ return wrap_to_pi(yaw - heading_yaw_offset) ++ ++ ++def _command_is_moving( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ commands = env.command_manager.get_command(command_name) ++ return (torch.norm(commands[:, :2], dim=1) > linear_threshold) | ( ++ torch.abs(commands[:, 2]) > angular_threshold ++ ) ++ ++ + def action_smoothness(env: ManagerBasedRLEnv) -> torch.Tensor: + """Penalize action second-order differences to encourage smooth control.""" + action_manager = env.action_manager +@@ -90,8 +131,8 @@ def feet_air_time_similarity( + if body_ids is None or len(body_ids) != 2: + raise ValueError("feet_air_time_similarity expects exactly two foot body ids in sensor_cfg.body_ids.") + +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, body_ids] +- last_air_time = contact_sensor.data.last_air_time[:, body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, body_ids]) + + recent_contact = torch.any(first_contact > 0.0, dim=1) + valid = torch.all(last_air_time > min_air_time, dim=1) +@@ -100,6 +141,61 @@ def feet_air_time_similarity( + return reward * (recent_contact & valid) + + ++def feet_air_time( ++ env: ManagerBasedRLEnv, command_name: str, sensor_cfg: SceneEntityCfg, threshold: float ++) -> torch.Tensor: ++ """Reward long steps while keeping contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ reward = torch.sum((last_air_time - threshold) * first_contact, dim=1) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ ++def feet_air_time_positive_on_contact( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ sensor_cfg: SceneEntityCfg, ++ min_air_time: float = 0.05, ++ max_air_time: float = 0.25, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward completed swing times without penalizing short exploratory steps.""" ++ if max_air_time <= min_air_time: ++ raise ValueError("max_air_time must be greater than min_air_time.") ++ ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ completed_swing = torch.clamp(last_air_time - min_air_time, min=0.0, max=max_air_time - min_air_time) ++ reward = torch.sum(completed_swing * first_contact, dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ ++def feet_air_time_positive_biped( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ threshold: float, ++ sensor_cfg: SceneEntityCfg, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Dense biped air-time reward with contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ air_time = _to_env_device(env, contact_sensor.data.current_air_time[:, sensor_cfg.body_ids]) ++ contact_time = _to_env_device(env, contact_sensor.data.current_contact_time[:, sensor_cfg.body_ids]) ++ in_contact = contact_time > 0.0 ++ in_mode_time = torch.where(in_contact, contact_time, air_time) ++ single_stance = torch.sum(in_contact.int(), dim=1) == 1 ++ reward = torch.min(torch.where(single_stance.unsqueeze(-1), in_mode_time, 0.0), dim=1)[0] ++ reward = torch.clamp(reward, max=threshold) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ + def track_lin_vel_xy_yaw_frame_exp( + env, sigma: float, command_name: str, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), stand_threshold: float = 0.06 + ) -> torch.Tensor: +@@ -132,6 +228,79 @@ def track_ang_vel_z_world_exp( + rew_abs = torch.exp(-ang_vel_error_abs * sigma) + return torch.where(stand_command, rew_abs, rew_square) + ++ ++def track_lin_vel_xy_yaw_frame_exp_body( ++ env, ++ sigma: float, ++ command_name: str, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Track planar velocity of a configured body in its yaw-aligned frame.""" ++ body_id = _single_body_id(asset_cfg, "track_lin_vel_xy_yaw_frame_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_lin_vel_w = asset.data.body_lin_vel_w[:, body_id, :] ++ vel_yaw = quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_lin_vel_w) ++ lin_vel_error_square = torch.sum(torch.square(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ lin_vel_error_abs = torch.sum(torch.abs(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ rew_square = torch.exp(-lin_vel_error_square * sigma) ++ rew_abs = torch.exp(-lin_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_body( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track world-frame yaw angular velocity of a configured body.""" ++ body_id = _single_body_id(asset_cfg, "track_ang_vel_z_world_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ ang_vel_error_square = torch.square(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ ang_vel_error_abs = torch.abs(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_bodies( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track yaw rate across all configured bodies so internal waist motion cannot satisfy the command alone.""" ++ body_ids = asset_cfg.body_ids ++ if body_ids is None or isinstance(body_ids, slice): ++ raise ValueError("track_ang_vel_z_world_exp_bodies requires one or more explicitly resolved body ids.") ++ ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_yaw_rates = asset.data.body_ang_vel_w[:, body_ids, 2] ++ command_yaw_rate = commands[:, 2].unsqueeze(1) ++ ang_vel_error_square = torch.mean(torch.square(command_yaw_rate - body_yaw_rates), dim=1) ++ ang_vel_error_abs = torch.mean(torch.abs(command_yaw_rate - body_yaw_rates), dim=1) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ + def feet_stumble( + env, sensor_cfg: SceneEntityCfg, tangential_threshold: float = 2.0, normal_threshold: float = 1.0 + ) -> torch.Tensor: +@@ -141,7 +310,7 @@ def feet_stumble( + below ``normal_threshold``. Returns the count of stumbling feet per environment. + """ + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- forces = contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) + tangential = torch.norm(forces[..., :2], dim=-1) > tangential_threshold + small_normal = torch.abs(forces[..., 2]) < normal_threshold + stumble = tangential & small_normal +@@ -165,6 +334,7 @@ def feet_contact( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -194,6 +364,7 @@ def feet_contact_fixed( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -207,6 +378,66 @@ def feet_contact_fixed( + return reward + + ++def biped_contact_mode_reward( ++ env: ManagerBasedRLEnv, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward double support while standing and exactly one supporting foot while moving.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ contact_count = torch.sum(contacts.int(), dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return torch.where(moving, contact_count == 1, contact_count == 2).float() ++ ++ ++def swing_foot_clearance_reward( ++ env: ManagerBasedRLEnv, ++ asset_cfg: SceneEntityCfg, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ target_height: float, ++ std: float, ++ sole_offset: float, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward a target sole clearance only when the other foot provides support.""" ++ if std <= 0.0: ++ raise ValueError("std must be positive.") ++ ++ asset = env.scene[asset_cfg.name] ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ single_stance = torch.sum(contacts.int(), dim=1) == 1 ++ swing_feet = ~contacts ++ ++ terrain_height = env.scene.env_origins[:, 2].unsqueeze(1) ++ sole_height = asset.data.body_pos_w[:, asset_cfg.body_ids, 2] - terrain_height - sole_offset ++ clearance_reward = torch.exp(-torch.square(sole_height - target_height) / (std * std)) ++ clearance_reward = torch.sum(clearance_reward * swing_feet, dim=1) ++ ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return clearance_reward * single_stance * moving ++ ++ ++def feet_slide(env: ManagerBasedRLEnv, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: ++ """Penalize foot sliding while keeping contact tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 ++ asset = env.scene[asset_cfg.name] ++ body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] ++ return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) ++ ++ + + def feet_position(env, + asset_cfg: SceneEntityCfg, +@@ -253,6 +484,43 @@ def feet_position(env, + return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) + + ++def feet_position_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ desired_foot_positions: tuple[tuple[float, float, float], ...], ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ scale: float = 3.0, ++) -> torch.Tensor: ++ """Reward standing foot positions relative to a configured reference body.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_position_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = asset.data.body_pos_w[:, asset_cfg.body_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_pos_w.shape ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat_per_foot = heading_quat.unsqueeze(1).expand(-1, num_feet, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat_per_foot, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, num_feet, 3) ++ ++ desired = torch.tensor(desired_foot_positions, dtype=feet_pos_heading.dtype, device=feet_pos_heading.device) ++ if desired.shape != (num_feet, 3): ++ raise ValueError(f"desired_foot_positions must have shape ({num_feet}, 3), got {tuple(desired.shape)}.") ++ position_error = torch.sum(torch.abs(feet_pos_heading - desired.unsqueeze(0)), dim=(1, 2)) ++ reward_stand = torch.exp(-position_error * scale) ++ return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) ++ ++ + def feet_regulation( + env, + asset_cfg: SceneEntityCfg, +@@ -293,7 +561,7 @@ def feet_landing_velocity( + ) -> torch.Tensor: + """Penalize high downward landing speed at first contact to reduce impact noise.""" + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) + + asset = env.scene[asset_cfg.name] + foot_vel_z = asset.data.body_lin_vel_w[:, sensor_cfg.body_ids, 2] +@@ -350,6 +618,20 @@ def base_height_tracking(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot" + height_error = torch.abs(asset.data.root_pos_w[:, 2] - target_height) + return torch.exp(-height_error * 30.0) + ++ ++def body_height_tracking( ++ env, ++ asset_cfg: SceneEntityCfg, ++ target_height: float, ++ scale: float = 30.0, ++) -> torch.Tensor: ++ """Reward keeping a configured body height near a target height.""" ++ body_id = _single_body_id(asset_cfg, "body_height_tracking") ++ asset = env.scene[asset_cfg.name] ++ height_error = torch.abs(asset.data.body_pos_w[:, body_id, 2] - target_height) ++ return torch.exp(-height_error * scale) ++ ++ + def energy_cost(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Penalize energy consumption approximated by the sum of squared joint torques.""" + asset = env.scene[asset_cfg.name] +@@ -385,6 +667,50 @@ def feet_orientation(env, asset_cfg: SceneEntityCfg, command_name: str, stand_th + return torch.exp(-rew * 2.0) + + ++def feet_orientation_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ foot_frame_offsets_rpy: tuple[tuple[float, float, float], ...] | None = None, ++ scale: float = 2.0, ++) -> torch.Tensor: ++ """Reward physical sole orientation relative to a configured reference body's heading.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_orientation_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ yaw_command = torch.abs(commands[:, 2]) > stand_threshold ++ ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ feet_quat = asset.data.body_quat_w[:, asset_cfg.body_ids, :] ++ reference_quat = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_quat.shape ++ feet_flat = feet_quat.reshape(-1, 4) ++ if foot_frame_offsets_rpy is not None: ++ offsets = torch.tensor(foot_frame_offsets_rpy, dtype=feet_quat.dtype, device=feet_quat.device) ++ if offsets.shape != (num_feet, 3): ++ raise ValueError(f"foot_frame_offsets_rpy must have shape ({num_feet}, 3), got {tuple(offsets.shape)}.") ++ offset_quat = quat_from_euler_xyz(offsets[:, 0], offsets[:, 1], offsets[:, 2]) ++ offset_quat = offset_quat.unsqueeze(0).expand(num_envs, -1, -1).reshape(-1, 4) ++ feet_flat = quat_mul(feet_flat, offset_quat) ++ ++ roll, pitch, yaw = euler_xyz_from_quat(feet_flat) ++ roll = roll.reshape(num_envs, num_feet) ++ pitch = pitch.reshape(num_envs, num_feet) ++ yaw = yaw.reshape(num_envs, num_feet) ++ ++ reference_yaw = _heading_yaw_with_offset(reference_quat, heading_yaw_offset) ++ feet_roll_pitch_error = torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) ++ feet_yaw_error = torch.abs(wrap_to_pi(yaw - reference_yaw.unsqueeze(1))) ++ ++ rew = torch.sum(feet_roll_pitch_error + feet_yaw_error, dim=1) ++ rew[yaw_command] = torch.sum(feet_roll_pitch_error[yaw_command], dim=1) ++ return torch.exp(-rew * scale) ++ ++ + def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Reward keeping the base roll/pitch near zero.""" + asset = env.scene[asset_cfg.name] +@@ -392,6 +718,50 @@ def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) - + base_euler = torch.stack((roll, pitch, yaw), dim=-1) + return torch.exp(-torch.sum(torch.abs(base_euler[:, :2]), dim=-1) * 10.0) + ++ ++def body_orientation(env, asset_cfg: SceneEntityCfg, scale: float = 10.0) -> torch.Tensor: ++ """Reward keeping a configured body's roll/pitch near zero.""" ++ body_id = _single_body_id(asset_cfg, "body_orientation") ++ asset = env.scene[asset_cfg.name] ++ roll, pitch, yaw = euler_xyz_from_quat(asset.data.body_quat_w[:, body_id, :]) ++ return torch.exp(-torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) * scale) ++ ++ ++def body_yaw_alignment( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++ reference_heading_yaw_offset: float = 0.0, ++ scale: float = 4.0, ++) -> torch.Tensor: ++ """Reward keeping one body's heading aligned with another body's heading.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_alignment") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_alignment") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ body_yaw = _heading_yaw_with_offset(asset.data.body_quat_w[:, body_id, :], heading_yaw_offset) ++ reference_yaw = _heading_yaw_with_offset( ++ reference_asset.data.body_quat_w[:, reference_body_id, :], reference_heading_yaw_offset ++ ) ++ return torch.exp(-torch.abs(wrap_to_pi(body_yaw - reference_yaw)) * scale) ++ ++ ++def body_yaw_rate_difference_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++) -> torch.Tensor: ++ """Penalize relative world-frame yaw rate between two configured bodies.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_rate_difference_l2") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_rate_difference_l2") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ yaw_rate = asset.data.body_ang_vel_w[:, body_id, 2] ++ reference_yaw_rate = reference_asset.data.body_ang_vel_w[:, reference_body_id, 2] ++ return torch.square(yaw_rate - reference_yaw_rate) ++ ++ + def reward_waist_pos( + env, + asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), +@@ -412,7 +782,9 @@ def reward_waist_pos( + + def penalize_foot_stumble(env, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- contacts = contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] > 1.0 ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 + asset = env.scene[asset_cfg.name] + body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] + return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) \ No newline at end of file diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/model_1199.pt b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/model_1199.pt new file mode 100644 index 0000000..1be22fb Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/model_1199.pt differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/params/agent.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/params/agent.yaml new file mode 100644 index 0000000..2502eaf --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/params/agent.yaml @@ -0,0 +1,63 @@ +seed: 42 +device: cuda:0 +num_steps_per_env: 24 +max_iterations: 1200 +empirical_normalization: {} +obs_groups: + actor: + - policy + critic: + - policy +clip_actions: null +check_for_nan: true +save_interval: 50 +experiment_name: velocity_flat_terrain_gen2 +run_name: gen2_gait_reward_v2 +logger: tensorboard +neptune_project: isaaclab +wandb_project: isaaclab +resume: false +load_run: .* +load_checkpoint: model_.*.pt +class_name: OnPolicyRunner +actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar +critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null +algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null +policy: {} diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/params/env.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/params/env.yaml new file mode 100644 index 0000000..09da18e --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2/params/env.yaml @@ -0,0 +1,2424 @@ +viewer: + eye: !!python/tuple + - 7.5 + - 7.5 + - 7.5 + lookat: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: !!python/tuple + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null +sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: !!python/tuple + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null +ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow +seed: 42 +decimation: 5 +scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: /World/envs/env_.*/Robot + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 1.282 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + ang_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 4096 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: !!python/tuple + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + obstacle_height_mode: choice + obstacle_width_range: !!python/tuple + - 1.0 + - 2.0 + obstacle_height_range: !!python/tuple + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + noise_range: !!python/tuple + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: !!python/tuple + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: 3.0 + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: !!python/tuple + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: /World/envs/env_.*/Robot/body_link + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: !!python/tuple + - 0.0 + - 0.0 + - 20.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: !!python/tuple + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: !!python/tuple + - 0.0 + - 0.0 + ray_cast_drift_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: /World/envs/env_.*/Robot/.* + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: !!python/tuple + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false +recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false +observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true +actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true +events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: .* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + static_friction_range: !!python/tuple + - 0.3 + - 1.6 + dynamic_friction_range: !!python/tuple + - 0.3 + - 1.2 + restitution_range: !!python/tuple + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + pos_distribution_params: !!python/tuple + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + com_range: + x: !!python/tuple + - -0.03 + - 0.03 + y: !!python/tuple + - -0.06 + - 0.06 + z: !!python/tuple + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: !!python/tuple + - -0.3 + - 0.3 + y: !!python/tuple + - -0.3 + - 0.3 + z: !!python/tuple + - -0.15 + - 0.15 + roll: !!python/tuple + - -0.35 + - 0.35 + pitch: !!python/tuple + - -0.35 + - 0.35 + yaw: !!python/tuple + - -0.52 + - 0.52 + mode: interval + interval_range_s: !!python/tuple + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: !!python/tuple + - -0.5 + - 0.5 + y: !!python/tuple + - -0.5 + - 0.5 + yaw: !!python/tuple + - -3.14 + - 3.14 + velocity_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + roll: !!python/tuple + - 0.0 + - 0.0 + pitch: !!python/tuple + - 0.0 + - 0.0 + yaw: !!python/tuple + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: !!python/tuple + - 0.8 + - 1.2 + velocity_range: !!python/tuple + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 +rerender_on_reset: false +num_rerenders_on_reset: 0 +wait_for_textures: true +xr: null +teleop_devices: + devices: {} +export_io_descriptors: false +log_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-02-12_gen2_gait_reward_v2 +is_finite_horizon: false +episode_length_s: 20.0 +rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - waist_link_2 + - body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: !!python/tuple + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: !!python/tuple + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + target_height: 0.08 + std: 0.03 + sole_offset: 0.065 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.5 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 +terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 1.0 + time_out: false +curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} +commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: !!python/tuple + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: !!python/tuple + - -0.2 + - 0.4 + lin_vel_y: !!python/tuple + - -0.2 + - 0.2 + ang_vel_z: !!python/tuple + - -0.5 + - 0.5 + heading: !!python/tuple + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 0.0 + - 1.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/events.out.tfevents.1783666098.workstation.260064.0 b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/events.out.tfevents.1783666098.workstation.260064.0 new file mode 100644 index 0000000..7895299 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/events.out.tfevents.1783666098.workstation.260064.0 differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/exported/model_1998.onnx b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/exported/model_1998.onnx new file mode 100644 index 0000000..d72cce4 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/exported/model_1998.onnx differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/git/engineai_amp.diff b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/git/engineai_amp.diff new file mode 100644 index 0000000..37a21b4 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/git/engineai_amp.diff @@ -0,0 +1,654 @@ +--- git commit --- +83ba64bbb58a02e14483e52adce5f893f3f31cdf + + +--- git status --- +On branch main +Your branch is up to date with 'origin/main'. + +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: scripts/cli_args.py + modified: scripts/train.py + modified: source/engineai_lab/tasks/velocity/mdp/__init__.py + modified: source/engineai_lab/tasks/velocity/mdp/observations.py + modified: source/engineai_lab/tasks/velocity/mdp/rewards.py + +Untracked files: + (use "git add ..." to include in what will be committed) + IsaacLab/ + scripts/gen2_check_rl_readiness.py + scripts/gen2_generate_simplified_collisions.py + scripts/gen2_visualize_collisions.py + source/engineai_lab/robots/gen2.py + source/engineai_lab/tasks/velocity/config/gen2/ + source/engineai_lab/tasks/velocity/mdp/terminations.py + source/gen2_lab/ + uv.lock + +no changes added to commit (use "git add" and/or "git commit -a") + + +--- git diff --- +diff --git a/scripts/cli_args.py b/scripts/cli_args.py +index 36f91c5..b4a3257 100644 +--- a/scripts/cli_args.py ++++ b/scripts/cli_args.py +@@ -34,6 +34,12 @@ def add_rsl_rl_args(parser: argparse.ArgumentParser): + arg_group.add_argument( + "--wandb_path", type=str, default=None, help="Name of the logging project when using wandb or neptune." + ) ++ arg_group.add_argument( ++ "--rl_device", ++ type=str, ++ default=None, ++ help="Device used by the RSL-RL policy/optimizer, e.g. cpu, cuda, or cuda:0.", ++ ) + + + def parse_rsl_rl_cfg(task_name: str, args_cli: argparse.Namespace) -> RslRlOnPolicyRunnerCfg: +@@ -77,6 +83,8 @@ def update_rsl_rl_cfg(agent_cfg: RslRlOnPolicyRunnerCfg, args_cli: argparse.Name + agent_cfg.run_name = args_cli.run_name + if args_cli.logger is not None: + agent_cfg.logger = args_cli.logger ++ if getattr(args_cli, "rl_device", None) is not None: ++ agent_cfg.device = args_cli.rl_device + # set the project name for wandb and neptune + if agent_cfg.logger in {"wandb", "neptune"} and args_cli.log_project_name: + agent_cfg.wandb_project = args_cli.log_project_name +diff --git a/scripts/train.py b/scripts/train.py +index 01039e3..6f6ffc4 100644 +--- a/scripts/train.py ++++ b/scripts/train.py +@@ -22,6 +22,9 @@ parser.add_argument("--num_envs", type=int, default=None, help="Number of enviro + parser.add_argument("--task", type=str, default=None, help="Name of the task.") + parser.add_argument("--seed", type=int, default=None, help="Seed used for the environment") + parser.add_argument("--max_iterations", type=int, default=None, help="RL Policy training iterations.") ++parser.add_argument( ++ "--distributed", action="store_true", default=False, help="Run training with multiple GPUs or nodes." ++) + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) +@@ -81,6 +84,19 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # note: certain randomizations occur in the environment initialization so we set the seed here + env_cfg.seed = agent_cfg.seed + env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device ++ if args_cli.distributed and args_cli.device is not None and "cpu" in args_cli.device: ++ raise ValueError( ++ "Distributed training is not supported when using CPU device. " ++ "Please use GPU device (e.g. --device cuda) for distributed training." ++ ) ++ ++ if args_cli.distributed: ++ env_cfg.sim.device = f"cuda:{app_launcher.local_rank}" ++ agent_cfg.device = f"cuda:{app_launcher.local_rank}" ++ ++ seed = agent_cfg.seed + app_launcher.local_rank ++ env_cfg.seed = seed ++ agent_cfg.seed = seed + + # specify directory for logging experiments + log_root_path = os.path.join("logs", "rsl_rl", agent_cfg.experiment_name) +diff --git a/source/engineai_lab/tasks/velocity/mdp/__init__.py b/source/engineai_lab/tasks/velocity/mdp/__init__.py +index 6fe10e8..553a153 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/__init__.py ++++ b/source/engineai_lab/tasks/velocity/mdp/__init__.py +@@ -3,3 +3,4 @@ from isaaclab_tasks.manager_based.locomotion.velocity.mdp import * + from .rewards import * # noqa: F401, F403 + from .observations import * # noqa: F401, F403 + from .events import * # noqa: F401, F403 ++from .terminations import * # noqa: F401, F403 +diff --git a/source/engineai_lab/tasks/velocity/mdp/observations.py b/source/engineai_lab/tasks/velocity/mdp/observations.py +index 0881dba..9dc20ff 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/observations.py ++++ b/source/engineai_lab/tasks/velocity/mdp/observations.py +@@ -3,12 +3,30 @@ from __future__ import annotations + import torch + from typing import TYPE_CHECKING + +-from isaaclab.utils.math import quat_apply_inverse ++from isaaclab.managers import SceneEntityCfg ++from isaaclab.utils.math import euler_xyz_from_quat, quat_apply_inverse, quat_from_euler_xyz + + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedEnv + + ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ + def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + """Base linear velocity expressed in the base frame.""" + asset = env.scene["robot"] +@@ -18,3 +36,22 @@ def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + # fallback: rotate world velocity into base frame + return quat_apply_inverse(asset.data.root_quat_w, asset.data.root_lin_vel_w) + ++ ++def body_ang_vel_yaw_frame( ++ env: ManagerBasedEnv, ++ asset_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Body angular velocity expressed in a yaw-aligned frame for that body.""" ++ body_id = _single_body_id(asset_cfg, "body_ang_vel_yaw_frame") ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_ang_vel_w = asset.data.body_ang_vel_w[:, body_id, :] ++ return quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_ang_vel_w) ++ ++ ++def body_projected_gravity(env: ManagerBasedEnv, asset_cfg: SceneEntityCfg) -> torch.Tensor: ++ """Gravity projection in a configured body's local frame.""" ++ body_id = _single_body_id(asset_cfg, "body_projected_gravity") ++ asset = env.scene[asset_cfg.name] ++ return quat_apply_inverse(asset.data.body_quat_w[:, body_id, :], asset.data.GRAVITY_VEC_W) +diff --git a/source/engineai_lab/tasks/velocity/mdp/rewards.py b/source/engineai_lab/tasks/velocity/mdp/rewards.py +index 36c3e1c..cd7cd8f 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/rewards.py ++++ b/source/engineai_lab/tasks/velocity/mdp/rewards.py +@@ -10,6 +10,7 @@ from isaaclab.utils.math import ( + euler_xyz_from_quat, + quat_apply_inverse, + quat_from_euler_xyz, ++ quat_mul, + quat_rotate_inverse, + wrap_to_pi, + yaw_quat, +@@ -18,6 +19,46 @@ from isaaclab.utils.math import ( + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedRLEnv + ++ ++def _to_env_device(env: ManagerBasedRLEnv, tensor: torch.Tensor) -> torch.Tensor: ++ """Move sensor tensors back to the RL environment device when Isaac uses another CUDA device.""" ++ return tensor.to(env.device) ++ ++ ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ ++def _heading_yaw_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ return wrap_to_pi(yaw - heading_yaw_offset) ++ ++ ++def _command_is_moving( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ commands = env.command_manager.get_command(command_name) ++ return (torch.norm(commands[:, :2], dim=1) > linear_threshold) | ( ++ torch.abs(commands[:, 2]) > angular_threshold ++ ) ++ ++ + def action_smoothness(env: ManagerBasedRLEnv) -> torch.Tensor: + """Penalize action second-order differences to encourage smooth control.""" + action_manager = env.action_manager +@@ -90,8 +131,8 @@ def feet_air_time_similarity( + if body_ids is None or len(body_ids) != 2: + raise ValueError("feet_air_time_similarity expects exactly two foot body ids in sensor_cfg.body_ids.") + +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, body_ids] +- last_air_time = contact_sensor.data.last_air_time[:, body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, body_ids]) + + recent_contact = torch.any(first_contact > 0.0, dim=1) + valid = torch.all(last_air_time > min_air_time, dim=1) +@@ -100,6 +141,61 @@ def feet_air_time_similarity( + return reward * (recent_contact & valid) + + ++def feet_air_time( ++ env: ManagerBasedRLEnv, command_name: str, sensor_cfg: SceneEntityCfg, threshold: float ++) -> torch.Tensor: ++ """Reward long steps while keeping contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ reward = torch.sum((last_air_time - threshold) * first_contact, dim=1) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ ++def feet_air_time_positive_on_contact( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ sensor_cfg: SceneEntityCfg, ++ min_air_time: float = 0.05, ++ max_air_time: float = 0.25, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward completed swing times without penalizing short exploratory steps.""" ++ if max_air_time <= min_air_time: ++ raise ValueError("max_air_time must be greater than min_air_time.") ++ ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ completed_swing = torch.clamp(last_air_time - min_air_time, min=0.0, max=max_air_time - min_air_time) ++ reward = torch.sum(completed_swing * first_contact, dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ ++def feet_air_time_positive_biped( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ threshold: float, ++ sensor_cfg: SceneEntityCfg, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Dense biped air-time reward with contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ air_time = _to_env_device(env, contact_sensor.data.current_air_time[:, sensor_cfg.body_ids]) ++ contact_time = _to_env_device(env, contact_sensor.data.current_contact_time[:, sensor_cfg.body_ids]) ++ in_contact = contact_time > 0.0 ++ in_mode_time = torch.where(in_contact, contact_time, air_time) ++ single_stance = torch.sum(in_contact.int(), dim=1) == 1 ++ reward = torch.min(torch.where(single_stance.unsqueeze(-1), in_mode_time, 0.0), dim=1)[0] ++ reward = torch.clamp(reward, max=threshold) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ + def track_lin_vel_xy_yaw_frame_exp( + env, sigma: float, command_name: str, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), stand_threshold: float = 0.06 + ) -> torch.Tensor: +@@ -132,6 +228,79 @@ def track_ang_vel_z_world_exp( + rew_abs = torch.exp(-ang_vel_error_abs * sigma) + return torch.where(stand_command, rew_abs, rew_square) + ++ ++def track_lin_vel_xy_yaw_frame_exp_body( ++ env, ++ sigma: float, ++ command_name: str, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Track planar velocity of a configured body in its yaw-aligned frame.""" ++ body_id = _single_body_id(asset_cfg, "track_lin_vel_xy_yaw_frame_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_lin_vel_w = asset.data.body_lin_vel_w[:, body_id, :] ++ vel_yaw = quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_lin_vel_w) ++ lin_vel_error_square = torch.sum(torch.square(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ lin_vel_error_abs = torch.sum(torch.abs(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ rew_square = torch.exp(-lin_vel_error_square * sigma) ++ rew_abs = torch.exp(-lin_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_body( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track world-frame yaw angular velocity of a configured body.""" ++ body_id = _single_body_id(asset_cfg, "track_ang_vel_z_world_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ ang_vel_error_square = torch.square(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ ang_vel_error_abs = torch.abs(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_bodies( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track yaw rate across all configured bodies so internal waist motion cannot satisfy the command alone.""" ++ body_ids = asset_cfg.body_ids ++ if body_ids is None or isinstance(body_ids, slice): ++ raise ValueError("track_ang_vel_z_world_exp_bodies requires one or more explicitly resolved body ids.") ++ ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_yaw_rates = asset.data.body_ang_vel_w[:, body_ids, 2] ++ command_yaw_rate = commands[:, 2].unsqueeze(1) ++ ang_vel_error_square = torch.mean(torch.square(command_yaw_rate - body_yaw_rates), dim=1) ++ ang_vel_error_abs = torch.mean(torch.abs(command_yaw_rate - body_yaw_rates), dim=1) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ + def feet_stumble( + env, sensor_cfg: SceneEntityCfg, tangential_threshold: float = 2.0, normal_threshold: float = 1.0 + ) -> torch.Tensor: +@@ -141,7 +310,7 @@ def feet_stumble( + below ``normal_threshold``. Returns the count of stumbling feet per environment. + """ + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- forces = contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) + tangential = torch.norm(forces[..., :2], dim=-1) > tangential_threshold + small_normal = torch.abs(forces[..., 2]) < normal_threshold + stumble = tangential & small_normal +@@ -165,6 +334,7 @@ def feet_contact( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -194,6 +364,7 @@ def feet_contact_fixed( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -207,6 +378,68 @@ def feet_contact_fixed( + return reward + + ++def biped_contact_mode_reward( ++ env: ManagerBasedRLEnv, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward double support while standing and exactly one supporting foot while moving.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ contact_count = torch.sum(contacts.int(), dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return torch.where(moving, contact_count == 1, contact_count == 2).float() ++ ++ ++def swing_foot_clearance_reward( ++ env: ManagerBasedRLEnv, ++ asset_cfg: SceneEntityCfg, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ target_height: float, ++ std: float, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward swing-foot height relative to the supporting foot.""" ++ if std <= 0.0: ++ raise ValueError("std must be positive.") ++ ++ asset = env.scene[asset_cfg.name] ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ single_stance = torch.sum(contacts.int(), dim=1) == 1 ++ swing_feet = ~contacts ++ ++ foot_height = asset.data.body_pos_w[:, asset_cfg.body_ids, 2] ++ if foot_height.shape[1] != contacts.shape[1]: ++ raise ValueError("asset_cfg and sensor_cfg must resolve the same number of feet.") ++ stance_height = torch.sum(foot_height * contacts, dim=1, keepdim=True) ++ swing_clearance = foot_height - stance_height ++ clearance_reward = torch.exp(-torch.square(swing_clearance - target_height) / (std * std)) ++ clearance_reward = torch.sum(clearance_reward * swing_feet, dim=1) ++ ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return clearance_reward * single_stance * moving ++ ++ ++def feet_slide(env: ManagerBasedRLEnv, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: ++ """Penalize foot sliding while keeping contact tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 ++ asset = env.scene[asset_cfg.name] ++ body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] ++ return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) ++ ++ + + def feet_position(env, + asset_cfg: SceneEntityCfg, +@@ -253,6 +486,43 @@ def feet_position(env, + return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) + + ++def feet_position_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ desired_foot_positions: tuple[tuple[float, float, float], ...], ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ scale: float = 3.0, ++) -> torch.Tensor: ++ """Reward standing foot positions relative to a configured reference body.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_position_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = asset.data.body_pos_w[:, asset_cfg.body_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_pos_w.shape ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat_per_foot = heading_quat.unsqueeze(1).expand(-1, num_feet, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat_per_foot, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, num_feet, 3) ++ ++ desired = torch.tensor(desired_foot_positions, dtype=feet_pos_heading.dtype, device=feet_pos_heading.device) ++ if desired.shape != (num_feet, 3): ++ raise ValueError(f"desired_foot_positions must have shape ({num_feet}, 3), got {tuple(desired.shape)}.") ++ position_error = torch.sum(torch.abs(feet_pos_heading - desired.unsqueeze(0)), dim=(1, 2)) ++ reward_stand = torch.exp(-position_error * scale) ++ return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) ++ ++ + def feet_regulation( + env, + asset_cfg: SceneEntityCfg, +@@ -293,7 +563,7 @@ def feet_landing_velocity( + ) -> torch.Tensor: + """Penalize high downward landing speed at first contact to reduce impact noise.""" + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) + + asset = env.scene[asset_cfg.name] + foot_vel_z = asset.data.body_lin_vel_w[:, sensor_cfg.body_ids, 2] +@@ -350,6 +620,20 @@ def base_height_tracking(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot" + height_error = torch.abs(asset.data.root_pos_w[:, 2] - target_height) + return torch.exp(-height_error * 30.0) + ++ ++def body_height_tracking( ++ env, ++ asset_cfg: SceneEntityCfg, ++ target_height: float, ++ scale: float = 30.0, ++) -> torch.Tensor: ++ """Reward keeping a configured body height near a target height.""" ++ body_id = _single_body_id(asset_cfg, "body_height_tracking") ++ asset = env.scene[asset_cfg.name] ++ height_error = torch.abs(asset.data.body_pos_w[:, body_id, 2] - target_height) ++ return torch.exp(-height_error * scale) ++ ++ + def energy_cost(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Penalize energy consumption approximated by the sum of squared joint torques.""" + asset = env.scene[asset_cfg.name] +@@ -385,6 +669,50 @@ def feet_orientation(env, asset_cfg: SceneEntityCfg, command_name: str, stand_th + return torch.exp(-rew * 2.0) + + ++def feet_orientation_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ foot_frame_offsets_rpy: tuple[tuple[float, float, float], ...] | None = None, ++ scale: float = 2.0, ++) -> torch.Tensor: ++ """Reward physical sole orientation relative to a configured reference body's heading.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_orientation_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ yaw_command = torch.abs(commands[:, 2]) > stand_threshold ++ ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ feet_quat = asset.data.body_quat_w[:, asset_cfg.body_ids, :] ++ reference_quat = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_quat.shape ++ feet_flat = feet_quat.reshape(-1, 4) ++ if foot_frame_offsets_rpy is not None: ++ offsets = torch.tensor(foot_frame_offsets_rpy, dtype=feet_quat.dtype, device=feet_quat.device) ++ if offsets.shape != (num_feet, 3): ++ raise ValueError(f"foot_frame_offsets_rpy must have shape ({num_feet}, 3), got {tuple(offsets.shape)}.") ++ offset_quat = quat_from_euler_xyz(offsets[:, 0], offsets[:, 1], offsets[:, 2]) ++ offset_quat = offset_quat.unsqueeze(0).expand(num_envs, -1, -1).reshape(-1, 4) ++ feet_flat = quat_mul(feet_flat, offset_quat) ++ ++ roll, pitch, yaw = euler_xyz_from_quat(feet_flat) ++ roll = roll.reshape(num_envs, num_feet) ++ pitch = pitch.reshape(num_envs, num_feet) ++ yaw = yaw.reshape(num_envs, num_feet) ++ ++ reference_yaw = _heading_yaw_with_offset(reference_quat, heading_yaw_offset) ++ feet_roll_pitch_error = torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) ++ feet_yaw_error = torch.abs(wrap_to_pi(yaw - reference_yaw.unsqueeze(1))) ++ ++ rew = torch.sum(feet_roll_pitch_error + feet_yaw_error, dim=1) ++ rew[yaw_command] = torch.sum(feet_roll_pitch_error[yaw_command], dim=1) ++ return torch.exp(-rew * scale) ++ ++ + def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Reward keeping the base roll/pitch near zero.""" + asset = env.scene[asset_cfg.name] +@@ -392,6 +720,50 @@ def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) - + base_euler = torch.stack((roll, pitch, yaw), dim=-1) + return torch.exp(-torch.sum(torch.abs(base_euler[:, :2]), dim=-1) * 10.0) + ++ ++def body_orientation(env, asset_cfg: SceneEntityCfg, scale: float = 10.0) -> torch.Tensor: ++ """Reward keeping a configured body's roll/pitch near zero.""" ++ body_id = _single_body_id(asset_cfg, "body_orientation") ++ asset = env.scene[asset_cfg.name] ++ roll, pitch, yaw = euler_xyz_from_quat(asset.data.body_quat_w[:, body_id, :]) ++ return torch.exp(-torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) * scale) ++ ++ ++def body_yaw_alignment( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++ reference_heading_yaw_offset: float = 0.0, ++ scale: float = 4.0, ++) -> torch.Tensor: ++ """Reward keeping one body's heading aligned with another body's heading.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_alignment") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_alignment") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ body_yaw = _heading_yaw_with_offset(asset.data.body_quat_w[:, body_id, :], heading_yaw_offset) ++ reference_yaw = _heading_yaw_with_offset( ++ reference_asset.data.body_quat_w[:, reference_body_id, :], reference_heading_yaw_offset ++ ) ++ return torch.exp(-torch.abs(wrap_to_pi(body_yaw - reference_yaw)) * scale) ++ ++ ++def body_yaw_rate_difference_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++) -> torch.Tensor: ++ """Penalize relative world-frame yaw rate between two configured bodies.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_rate_difference_l2") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_rate_difference_l2") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ yaw_rate = asset.data.body_ang_vel_w[:, body_id, 2] ++ reference_yaw_rate = reference_asset.data.body_ang_vel_w[:, reference_body_id, 2] ++ return torch.square(yaw_rate - reference_yaw_rate) ++ ++ + def reward_waist_pos( + env, + asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), +@@ -412,7 +784,9 @@ def reward_waist_pos( + + def penalize_foot_stumble(env, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- contacts = contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] > 1.0 ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 + asset = env.scene[asset_cfg.name] + body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] + return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) \ No newline at end of file diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/model_1998.pt b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/model_1998.pt new file mode 100644 index 0000000..b681b5b Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/model_1998.pt differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/params/agent.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/params/agent.yaml new file mode 100644 index 0000000..980eccc --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/params/agent.yaml @@ -0,0 +1,63 @@ +seed: 42 +device: cuda:0 +num_steps_per_env: 24 +max_iterations: 800 +empirical_normalization: {} +obs_groups: + actor: + - policy + critic: + - policy +clip_actions: null +check_for_nan: true +save_interval: 50 +experiment_name: velocity_flat_terrain_gen2 +run_name: gen2_gait_clearance_stage2 +logger: tensorboard +neptune_project: isaaclab +wandb_project: isaaclab +resume: true +load_run: 2026-07-10_14-02-12_gen2_gait_reward_v2 +load_checkpoint: model_1199.pt +class_name: OnPolicyRunner +actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar +critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null +algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null +policy: {} diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/params/env.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/params/env.yaml new file mode 100644 index 0000000..79a6081 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2/params/env.yaml @@ -0,0 +1,2423 @@ +viewer: + eye: !!python/tuple + - 7.5 + - 7.5 + - 7.5 + lookat: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: !!python/tuple + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null +sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: !!python/tuple + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null +ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow +seed: 42 +decimation: 5 +scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: /World/envs/env_.*/Robot + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 1.282 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + ang_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 4096 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: !!python/tuple + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + obstacle_height_mode: choice + obstacle_width_range: !!python/tuple + - 1.0 + - 2.0 + obstacle_height_range: !!python/tuple + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + noise_range: !!python/tuple + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: !!python/tuple + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: 3.0 + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: !!python/tuple + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: /World/envs/env_.*/Robot/body_link + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: !!python/tuple + - 0.0 + - 0.0 + - 20.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: !!python/tuple + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: !!python/tuple + - 0.0 + - 0.0 + ray_cast_drift_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: /World/envs/env_.*/Robot/.* + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: !!python/tuple + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false +recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false +observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true +actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true +events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: .* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + static_friction_range: !!python/tuple + - 0.3 + - 1.6 + dynamic_friction_range: !!python/tuple + - 0.3 + - 1.2 + restitution_range: !!python/tuple + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + pos_distribution_params: !!python/tuple + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + com_range: + x: !!python/tuple + - -0.03 + - 0.03 + y: !!python/tuple + - -0.06 + - 0.06 + z: !!python/tuple + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: !!python/tuple + - -0.3 + - 0.3 + y: !!python/tuple + - -0.3 + - 0.3 + z: !!python/tuple + - -0.15 + - 0.15 + roll: !!python/tuple + - -0.35 + - 0.35 + pitch: !!python/tuple + - -0.35 + - 0.35 + yaw: !!python/tuple + - -0.52 + - 0.52 + mode: interval + interval_range_s: !!python/tuple + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: !!python/tuple + - -0.5 + - 0.5 + y: !!python/tuple + - -0.5 + - 0.5 + yaw: !!python/tuple + - -3.14 + - 3.14 + velocity_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + roll: !!python/tuple + - 0.0 + - 0.0 + pitch: !!python/tuple + - 0.0 + - 0.0 + yaw: !!python/tuple + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: !!python/tuple + - 0.8 + - 1.2 + velocity_range: !!python/tuple + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 +rerender_on_reset: false +num_rerenders_on_reset: 0 +wait_for_textures: true +xr: null +teleop_devices: + devices: {} +export_io_descriptors: false +log_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_14-48-04_gen2_gait_clearance_stage2 +is_finite_horizon: false +episode_length_s: 20.0 +rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - waist_link_2 + - body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: !!python/tuple + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: !!python/tuple + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 +terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 1.0 + time_out: false +curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} +commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: !!python/tuple + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: !!python/tuple + - -0.2 + - 0.4 + lin_vel_y: !!python/tuple + - -0.2 + - 0.2 + ang_vel_z: !!python/tuple + - -0.5 + - 0.5 + heading: !!python/tuple + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 0.0 + - 1.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/events.out.tfevents.1783671881.workstation.322761.0 b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/events.out.tfevents.1783671881.workstation.322761.0 new file mode 100644 index 0000000..fb0e84a Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/events.out.tfevents.1783671881.workstation.322761.0 differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/exported/model_2597.onnx b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/exported/model_2597.onnx new file mode 100644 index 0000000..2589600 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/exported/model_2597.onnx differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/git/engineai_amp.diff b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/git/engineai_amp.diff new file mode 100644 index 0000000..46b4b3f --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/git/engineai_amp.diff @@ -0,0 +1,956 @@ +--- git commit --- +83ba64bbb58a02e14483e52adce5f893f3f31cdf + + +--- git status --- +On branch main +Your branch is up to date with 'origin/main'. + +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: scripts/cli_args.py + modified: scripts/play.py + modified: scripts/train.py + modified: source/engineai_lab/tasks/velocity/mdp/__init__.py + modified: source/engineai_lab/tasks/velocity/mdp/observations.py + modified: source/engineai_lab/tasks/velocity/mdp/rewards.py + +Untracked files: + (use "git add ..." to include in what will be committed) + IsaacLab/ + scripts/gen2_check_rl_readiness.py + scripts/gen2_generate_simplified_collisions.py + scripts/gen2_visualize_collisions.py + source/engineai_lab/robots/gen2.py + source/engineai_lab/tasks/velocity/config/gen2/ + source/engineai_lab/tasks/velocity/mdp/commands.py + source/engineai_lab/tasks/velocity/mdp/terminations.py + source/gen2_lab/ + uv.lock + +no changes added to commit (use "git add" and/or "git commit -a") + + +--- git diff --- +diff --git a/scripts/cli_args.py b/scripts/cli_args.py +index 36f91c5..b4a3257 100644 +--- a/scripts/cli_args.py ++++ b/scripts/cli_args.py +@@ -34,6 +34,12 @@ def add_rsl_rl_args(parser: argparse.ArgumentParser): + arg_group.add_argument( + "--wandb_path", type=str, default=None, help="Name of the logging project when using wandb or neptune." + ) ++ arg_group.add_argument( ++ "--rl_device", ++ type=str, ++ default=None, ++ help="Device used by the RSL-RL policy/optimizer, e.g. cpu, cuda, or cuda:0.", ++ ) + + + def parse_rsl_rl_cfg(task_name: str, args_cli: argparse.Namespace) -> RslRlOnPolicyRunnerCfg: +@@ -77,6 +83,8 @@ def update_rsl_rl_cfg(agent_cfg: RslRlOnPolicyRunnerCfg, args_cli: argparse.Name + agent_cfg.run_name = args_cli.run_name + if args_cli.logger is not None: + agent_cfg.logger = args_cli.logger ++ if getattr(args_cli, "rl_device", None) is not None: ++ agent_cfg.device = args_cli.rl_device + # set the project name for wandb and neptune + if agent_cfg.logger in {"wandb", "neptune"} and args_cli.log_project_name: + agent_cfg.wandb_project = args_cli.log_project_name +diff --git a/scripts/play.py b/scripts/play.py +index f19b9cb..1187ff6 100644 +--- a/scripts/play.py ++++ b/scripts/play.py +@@ -1,4 +1,4 @@ +-"""Script to play a checkpoint if an RL agent from RSL-RL.""" ++"""Script to play a checkpoint from an RSL-RL agent.""" + + """Launch Isaac Sim Simulator first.""" + +@@ -17,18 +17,49 @@ if str(REPO_ROOT) not in sys.path: + sys.path.append(str(REPO_ROOT)) + + # add argparse arguments +-parser = argparse.ArgumentParser(description="Train an RL agent with RSL-RL.") ++parser = argparse.ArgumentParser(description="Play an RSL-RL policy checkpoint.") + parser.add_argument( + "--disable_fabric", action="store_true", default=False, help="Disable fabric and use USD I/O operations." + ) + parser.add_argument("--num_envs", type=int, default=None, help="Number of environments to simulate.") + parser.add_argument("--task", type=str, default=None, help="Name of the task.") ++parser.add_argument("--max_steps", type=int, default=None, help="Stop replay after this many policy steps.") ++ ++command_group = parser.add_argument_group("velocity command", description="Velocity command source during replay.") ++command_group.add_argument( ++ "--command_source", ++ type=str, ++ choices=("random", "fixed", "keyboard"), ++ default="random", ++ help="Use environment-generated, fixed, or keyboard velocity commands.", ++) ++command_group.add_argument("--vx", type=float, default=0.3, help="Fixed forward velocity in m/s.") ++command_group.add_argument("--vy", type=float, default=0.0, help="Fixed lateral velocity in m/s.") ++command_group.add_argument("--wz", type=float, default=0.0, help="Fixed yaw velocity in rad/s.") ++command_group.add_argument( ++ "--command_mode", ++ type=str, ++ choices=("step", "ramp"), ++ default="ramp", ++ help="Apply external commands immediately or through acceleration limits.", ++) ++command_group.add_argument("--linear_accel", type=float, default=0.8, help="Planar acceleration limit in m/s^2.") ++command_group.add_argument("--yaw_accel", type=float, default=1.5, help="Yaw acceleration limit in rad/s^2.") ++command_group.add_argument("--keyboard_vx", type=float, default=0.4, help="Keyboard forward velocity in m/s.") ++command_group.add_argument("--keyboard_vy", type=float, default=0.2, help="Keyboard lateral velocity in m/s.") ++command_group.add_argument("--keyboard_wz", type=float, default=0.5, help="Keyboard yaw velocity in rad/s.") + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) + # append AppLauncher cli args + AppLauncher.add_app_launcher_args(parser) + args_cli, hydra_args = parser.parse_known_args() ++if args_cli.linear_accel <= 0.0: ++ parser.error("--linear_accel must be positive.") ++if args_cli.yaw_accel <= 0.0: ++ parser.error("--yaw_accel must be positive.") ++if args_cli.max_steps is not None and args_cli.max_steps <= 0: ++ parser.error("--max_steps must be positive.") + # always enable cameras to record video + # clear out sys.argv for Hydra + sys.argv = [sys.argv[0]] + hydra_args +@@ -39,9 +70,9 @@ simulation_app = app_launcher.app + + """Rest everything follows.""" + +-import gymnasium as gym + import os +-import pathlib ++ ++import gymnasium as gym + import torch + + from rsl_rl.runners import OnPolicyRunner +@@ -53,7 +84,6 @@ from isaaclab.envs import ( + ManagerBasedRLEnvCfg, + multi_agent_to_single_agent, + ) +-from isaaclab.utils.dict import print_dict + from isaaclab_rl.rsl_rl import RslRlOnPolicyRunnerCfg, RslRlVecEnvWrapper + from isaaclab_tasks.utils import get_checkpoint_path + from isaaclab_tasks.utils.hydra import hydra_task_config +@@ -62,6 +92,67 @@ from isaaclab_tasks.utils.hydra import hydra_task_config + import engineai_lab.tasks # noqa: F401 + + ++class VelocityCommandController: ++ """Apply fixed or keyboard commands directly to a velocity command term.""" ++ ++ def __init__(self, env: RslRlVecEnvWrapper, args: argparse.Namespace): ++ self.env = env ++ self.args = args ++ self.command_term = env.unwrapped.command_manager.get_term("base_velocity") ++ if not hasattr(self.command_term, "vel_command_b"): ++ raise TypeError("The base_velocity command term does not expose a velocity command buffer.") ++ ++ self.current_command = torch.zeros(3, device=env.unwrapped.device) ++ self.fixed_command = torch.tensor([args.vx, args.vy, args.wz], device=env.unwrapped.device) ++ self.keyboard = None ++ ++ if args.command_source == "keyboard": ++ from isaaclab.devices import Se2Keyboard, Se2KeyboardCfg ++ ++ keyboard_cfg = Se2KeyboardCfg( ++ sim_device=str(env.unwrapped.device), ++ v_x_sensitivity=args.keyboard_vx, ++ v_y_sensitivity=args.keyboard_vy, ++ omega_z_sensitivity=args.keyboard_wz, ++ ) ++ self.keyboard = Se2Keyboard(keyboard_cfg) ++ print(self.keyboard) ++ else: ++ print( ++ "[INFO] Fixed velocity command: " ++ f"vx={args.vx:.3f} m/s, vy={args.vy:.3f} m/s, wz={args.wz:.3f} rad/s" ++ ) ++ print(f"[INFO] External command mode: {args.command_mode}") ++ ++ def update(self): ++ target = self.keyboard.advance() if self.keyboard is not None else self.fixed_command ++ if self.args.command_mode == "step": ++ self.current_command.copy_(target) ++ else: ++ self._apply_ramp(target) ++ ++ self.command_term.vel_command_b[:] = self.current_command.unsqueeze(0) ++ self.command_term.time_left.fill_(float("inf")) ++ self.command_term.is_standing_env.fill_(False) ++ if hasattr(self.command_term, "is_heading_env"): ++ self.command_term.is_heading_env.fill_(False) ++ ++ def _apply_ramp(self, target: torch.Tensor): ++ dt = self.env.unwrapped.step_dt ++ linear_delta = target[:2] - self.current_command[:2] ++ linear_delta_norm = torch.linalg.norm(linear_delta) ++ max_linear_delta = self.args.linear_accel * dt ++ linear_scale = torch.clamp(max_linear_delta / torch.clamp(linear_delta_norm, min=1.0e-6), max=1.0) ++ linear_delta = linear_delta * linear_scale ++ self.current_command[:2] += linear_delta ++ ++ yaw_delta = torch.clamp( ++ target[2] - self.current_command[2], ++ min=-self.args.yaw_accel * dt, ++ max=self.args.yaw_accel * dt, ++ ) ++ self.current_command[2] += yaw_delta ++ + + @hydra_task_config(args_cli.task, "rsl_rl_cfg_entry_point") + def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agent_cfg: RslRlOnPolicyRunnerCfg): +@@ -83,7 +174,6 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # create isaac environment + env = gym.make(args_cli.task, cfg=env_cfg, render_mode=None) + +- + # convert to single-agent instance if required by the RL algorithm + if isinstance(env.unwrapped, DirectMARLEnv): + env = multi_agent_to_single_agent(env) +@@ -91,6 +181,10 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # wrap around environment for rsl-rl + env = RslRlVecEnvWrapper(env) + ++ command_controller = None ++ if args_cli.command_source != "random": ++ command_controller = VelocityCommandController(env, args_cli) ++ + # load previously trained model + ppo_runner = OnPolicyRunner(env, agent_cfg.to_dict(), log_dir=None, device=agent_cfg.device) + ppo_runner.load(resume_path) +@@ -103,18 +197,24 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + file_basename = os.path.basename(resume_path).split(".")[0] + ppo_runner.export_policy_to_onnx(path=export_model_dir, filename=file_basename+".onnx") + +- + # reset environment + obs = env.get_observations() +- timestep = 0 ++ step_count = 0 + # simulate environment +- while simulation_app.is_running(): ++ while simulation_app.is_running() and (args_cli.max_steps is None or step_count < args_cli.max_steps): + # run everything in inference mode + with torch.inference_mode(): ++ if command_controller is not None: ++ command_controller.update() ++ obs = env.get_observations() + # agent stepping + actions = policy(obs) + # env stepping + obs, _, _, _ = env.step(actions) ++ step_count += 1 ++ ++ if args_cli.max_steps is not None: ++ print(f"[INFO] Replay completed after {step_count} policy steps.") + + # close the simulator + env.close() +diff --git a/scripts/train.py b/scripts/train.py +index 01039e3..6f6ffc4 100644 +--- a/scripts/train.py ++++ b/scripts/train.py +@@ -22,6 +22,9 @@ parser.add_argument("--num_envs", type=int, default=None, help="Number of enviro + parser.add_argument("--task", type=str, default=None, help="Name of the task.") + parser.add_argument("--seed", type=int, default=None, help="Seed used for the environment") + parser.add_argument("--max_iterations", type=int, default=None, help="RL Policy training iterations.") ++parser.add_argument( ++ "--distributed", action="store_true", default=False, help="Run training with multiple GPUs or nodes." ++) + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) +@@ -81,6 +84,19 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # note: certain randomizations occur in the environment initialization so we set the seed here + env_cfg.seed = agent_cfg.seed + env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device ++ if args_cli.distributed and args_cli.device is not None and "cpu" in args_cli.device: ++ raise ValueError( ++ "Distributed training is not supported when using CPU device. " ++ "Please use GPU device (e.g. --device cuda) for distributed training." ++ ) ++ ++ if args_cli.distributed: ++ env_cfg.sim.device = f"cuda:{app_launcher.local_rank}" ++ agent_cfg.device = f"cuda:{app_launcher.local_rank}" ++ ++ seed = agent_cfg.seed + app_launcher.local_rank ++ env_cfg.seed = seed ++ agent_cfg.seed = seed + + # specify directory for logging experiments + log_root_path = os.path.join("logs", "rsl_rl", agent_cfg.experiment_name) +diff --git a/source/engineai_lab/tasks/velocity/mdp/__init__.py b/source/engineai_lab/tasks/velocity/mdp/__init__.py +index 6fe10e8..c885999 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/__init__.py ++++ b/source/engineai_lab/tasks/velocity/mdp/__init__.py +@@ -1,5 +1,7 @@ + from isaaclab_tasks.manager_based.locomotion.velocity.mdp import * + ++from .commands import * # noqa: F401, F403 + from .rewards import * # noqa: F401, F403 + from .observations import * # noqa: F401, F403 + from .events import * # noqa: F401, F403 ++from .terminations import * # noqa: F401, F403 +diff --git a/source/engineai_lab/tasks/velocity/mdp/observations.py b/source/engineai_lab/tasks/velocity/mdp/observations.py +index 0881dba..9dc20ff 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/observations.py ++++ b/source/engineai_lab/tasks/velocity/mdp/observations.py +@@ -3,12 +3,30 @@ from __future__ import annotations + import torch + from typing import TYPE_CHECKING + +-from isaaclab.utils.math import quat_apply_inverse ++from isaaclab.managers import SceneEntityCfg ++from isaaclab.utils.math import euler_xyz_from_quat, quat_apply_inverse, quat_from_euler_xyz + + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedEnv + + ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ + def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + """Base linear velocity expressed in the base frame.""" + asset = env.scene["robot"] +@@ -18,3 +36,22 @@ def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + # fallback: rotate world velocity into base frame + return quat_apply_inverse(asset.data.root_quat_w, asset.data.root_lin_vel_w) + ++ ++def body_ang_vel_yaw_frame( ++ env: ManagerBasedEnv, ++ asset_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Body angular velocity expressed in a yaw-aligned frame for that body.""" ++ body_id = _single_body_id(asset_cfg, "body_ang_vel_yaw_frame") ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_ang_vel_w = asset.data.body_ang_vel_w[:, body_id, :] ++ return quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_ang_vel_w) ++ ++ ++def body_projected_gravity(env: ManagerBasedEnv, asset_cfg: SceneEntityCfg) -> torch.Tensor: ++ """Gravity projection in a configured body's local frame.""" ++ body_id = _single_body_id(asset_cfg, "body_projected_gravity") ++ asset = env.scene[asset_cfg.name] ++ return quat_apply_inverse(asset.data.body_quat_w[:, body_id, :], asset.data.GRAVITY_VEC_W) +diff --git a/source/engineai_lab/tasks/velocity/mdp/rewards.py b/source/engineai_lab/tasks/velocity/mdp/rewards.py +index 36c3e1c..ec938fe 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/rewards.py ++++ b/source/engineai_lab/tasks/velocity/mdp/rewards.py +@@ -10,6 +10,7 @@ from isaaclab.utils.math import ( + euler_xyz_from_quat, + quat_apply_inverse, + quat_from_euler_xyz, ++ quat_mul, + quat_rotate_inverse, + wrap_to_pi, + yaw_quat, +@@ -18,6 +19,46 @@ from isaaclab.utils.math import ( + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedRLEnv + ++ ++def _to_env_device(env: ManagerBasedRLEnv, tensor: torch.Tensor) -> torch.Tensor: ++ """Move sensor tensors back to the RL environment device when Isaac uses another CUDA device.""" ++ return tensor.to(env.device) ++ ++ ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ ++def _heading_yaw_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ return wrap_to_pi(yaw - heading_yaw_offset) ++ ++ ++def _command_is_moving( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ commands = env.command_manager.get_command(command_name) ++ return (torch.norm(commands[:, :2], dim=1) > linear_threshold) | ( ++ torch.abs(commands[:, 2]) > angular_threshold ++ ) ++ ++ + def action_smoothness(env: ManagerBasedRLEnv) -> torch.Tensor: + """Penalize action second-order differences to encourage smooth control.""" + action_manager = env.action_manager +@@ -90,8 +131,8 @@ def feet_air_time_similarity( + if body_ids is None or len(body_ids) != 2: + raise ValueError("feet_air_time_similarity expects exactly two foot body ids in sensor_cfg.body_ids.") + +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, body_ids] +- last_air_time = contact_sensor.data.last_air_time[:, body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, body_ids]) + + recent_contact = torch.any(first_contact > 0.0, dim=1) + valid = torch.all(last_air_time > min_air_time, dim=1) +@@ -100,6 +141,61 @@ def feet_air_time_similarity( + return reward * (recent_contact & valid) + + ++def feet_air_time( ++ env: ManagerBasedRLEnv, command_name: str, sensor_cfg: SceneEntityCfg, threshold: float ++) -> torch.Tensor: ++ """Reward long steps while keeping contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ reward = torch.sum((last_air_time - threshold) * first_contact, dim=1) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ ++def feet_air_time_positive_on_contact( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ sensor_cfg: SceneEntityCfg, ++ min_air_time: float = 0.05, ++ max_air_time: float = 0.25, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward completed swing times without penalizing short exploratory steps.""" ++ if max_air_time <= min_air_time: ++ raise ValueError("max_air_time must be greater than min_air_time.") ++ ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ completed_swing = torch.clamp(last_air_time - min_air_time, min=0.0, max=max_air_time - min_air_time) ++ reward = torch.sum(completed_swing * first_contact, dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ ++def feet_air_time_positive_biped( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ threshold: float, ++ sensor_cfg: SceneEntityCfg, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Dense biped air-time reward with contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ air_time = _to_env_device(env, contact_sensor.data.current_air_time[:, sensor_cfg.body_ids]) ++ contact_time = _to_env_device(env, contact_sensor.data.current_contact_time[:, sensor_cfg.body_ids]) ++ in_contact = contact_time > 0.0 ++ in_mode_time = torch.where(in_contact, contact_time, air_time) ++ single_stance = torch.sum(in_contact.int(), dim=1) == 1 ++ reward = torch.min(torch.where(single_stance.unsqueeze(-1), in_mode_time, 0.0), dim=1)[0] ++ reward = torch.clamp(reward, max=threshold) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ + def track_lin_vel_xy_yaw_frame_exp( + env, sigma: float, command_name: str, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), stand_threshold: float = 0.06 + ) -> torch.Tensor: +@@ -132,6 +228,79 @@ def track_ang_vel_z_world_exp( + rew_abs = torch.exp(-ang_vel_error_abs * sigma) + return torch.where(stand_command, rew_abs, rew_square) + ++ ++def track_lin_vel_xy_yaw_frame_exp_body( ++ env, ++ sigma: float, ++ command_name: str, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Track planar velocity of a configured body in its yaw-aligned frame.""" ++ body_id = _single_body_id(asset_cfg, "track_lin_vel_xy_yaw_frame_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_lin_vel_w = asset.data.body_lin_vel_w[:, body_id, :] ++ vel_yaw = quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_lin_vel_w) ++ lin_vel_error_square = torch.sum(torch.square(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ lin_vel_error_abs = torch.sum(torch.abs(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ rew_square = torch.exp(-lin_vel_error_square * sigma) ++ rew_abs = torch.exp(-lin_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_body( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track world-frame yaw angular velocity of a configured body.""" ++ body_id = _single_body_id(asset_cfg, "track_ang_vel_z_world_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ ang_vel_error_square = torch.square(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ ang_vel_error_abs = torch.abs(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_bodies( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track yaw rate across all configured bodies so internal waist motion cannot satisfy the command alone.""" ++ body_ids = asset_cfg.body_ids ++ if body_ids is None or isinstance(body_ids, slice): ++ raise ValueError("track_ang_vel_z_world_exp_bodies requires one or more explicitly resolved body ids.") ++ ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_yaw_rates = asset.data.body_ang_vel_w[:, body_ids, 2] ++ command_yaw_rate = commands[:, 2].unsqueeze(1) ++ ang_vel_error_square = torch.mean(torch.square(command_yaw_rate - body_yaw_rates), dim=1) ++ ang_vel_error_abs = torch.mean(torch.abs(command_yaw_rate - body_yaw_rates), dim=1) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ + def feet_stumble( + env, sensor_cfg: SceneEntityCfg, tangential_threshold: float = 2.0, normal_threshold: float = 1.0 + ) -> torch.Tensor: +@@ -141,7 +310,7 @@ def feet_stumble( + below ``normal_threshold``. Returns the count of stumbling feet per environment. + """ + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- forces = contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) + tangential = torch.norm(forces[..., :2], dim=-1) > tangential_threshold + small_normal = torch.abs(forces[..., 2]) < normal_threshold + stumble = tangential & small_normal +@@ -165,6 +334,7 @@ def feet_contact( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -194,6 +364,7 @@ def feet_contact_fixed( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -207,6 +378,68 @@ def feet_contact_fixed( + return reward + + ++def biped_contact_mode_reward( ++ env: ManagerBasedRLEnv, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward double support while standing and exactly one supporting foot while moving.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ contact_count = torch.sum(contacts.int(), dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return torch.where(moving, contact_count == 1, contact_count == 2).float() ++ ++ ++def swing_foot_clearance_reward( ++ env: ManagerBasedRLEnv, ++ asset_cfg: SceneEntityCfg, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ target_height: float, ++ std: float, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward swing-foot height relative to the supporting foot.""" ++ if std <= 0.0: ++ raise ValueError("std must be positive.") ++ ++ asset = env.scene[asset_cfg.name] ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ single_stance = torch.sum(contacts.int(), dim=1) == 1 ++ swing_feet = ~contacts ++ ++ foot_height = asset.data.body_pos_w[:, asset_cfg.body_ids, 2] ++ if foot_height.shape[1] != contacts.shape[1]: ++ raise ValueError("asset_cfg and sensor_cfg must resolve the same number of feet.") ++ stance_height = torch.sum(foot_height * contacts, dim=1, keepdim=True) ++ swing_clearance = foot_height - stance_height ++ clearance_reward = torch.exp(-torch.square(swing_clearance - target_height) / (std * std)) ++ clearance_reward = torch.sum(clearance_reward * swing_feet, dim=1) ++ ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return clearance_reward * single_stance * moving ++ ++ ++def feet_slide(env: ManagerBasedRLEnv, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: ++ """Penalize foot sliding while keeping contact tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 ++ asset = env.scene[asset_cfg.name] ++ body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] ++ return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) ++ ++ + + def feet_position(env, + asset_cfg: SceneEntityCfg, +@@ -253,6 +486,43 @@ def feet_position(env, + return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) + + ++def feet_position_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ desired_foot_positions: tuple[tuple[float, float, float], ...], ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ scale: float = 3.0, ++) -> torch.Tensor: ++ """Reward standing foot positions relative to a configured reference body.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_position_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = asset.data.body_pos_w[:, asset_cfg.body_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_pos_w.shape ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat_per_foot = heading_quat.unsqueeze(1).expand(-1, num_feet, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat_per_foot, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, num_feet, 3) ++ ++ desired = torch.tensor(desired_foot_positions, dtype=feet_pos_heading.dtype, device=feet_pos_heading.device) ++ if desired.shape != (num_feet, 3): ++ raise ValueError(f"desired_foot_positions must have shape ({num_feet}, 3), got {tuple(desired.shape)}.") ++ position_error = torch.sum(torch.abs(feet_pos_heading - desired.unsqueeze(0)), dim=(1, 2)) ++ reward_stand = torch.exp(-position_error * scale) ++ return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) ++ ++ + def feet_regulation( + env, + asset_cfg: SceneEntityCfg, +@@ -293,10 +563,10 @@ def feet_landing_velocity( + ) -> torch.Tensor: + """Penalize high downward landing speed at first contact to reduce impact noise.""" + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) + + asset = env.scene[asset_cfg.name] +- foot_vel_z = asset.data.body_lin_vel_w[:, sensor_cfg.body_ids, 2] ++ foot_vel_z = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, 2] + landing_speed = torch.clamp(-foot_vel_z - velocity_threshold, min=0.0) + penalty = torch.sum(torch.pow(landing_speed, power) * first_contact, dim=1) + return penalty +@@ -350,6 +620,117 @@ def base_height_tracking(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot" + height_error = torch.abs(asset.data.root_pos_w[:, 2] - target_height) + return torch.exp(-height_error * 30.0) + ++ ++def body_height_tracking( ++ env, ++ asset_cfg: SceneEntityCfg, ++ target_height: float, ++ scale: float = 30.0, ++) -> torch.Tensor: ++ """Reward keeping a configured body height near a target height.""" ++ body_id = _single_body_id(asset_cfg, "body_height_tracking") ++ asset = env.scene[asset_cfg.name] ++ height_error = torch.abs(asset.data.body_pos_w[:, body_id, 2] - target_height) ++ return torch.exp(-height_error * scale) ++ ++ ++def body_vertical_velocity_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ deadband: float = 0.0, ++) -> torch.Tensor: ++ """Penalize vertical body velocity outside a small natural-motion deadband.""" ++ body_id = _single_body_id(asset_cfg, "body_vertical_velocity_l2") ++ asset = env.scene[asset_cfg.name] ++ vertical_speed = torch.abs(asset.data.body_lin_vel_w[:, body_id, 2]) ++ return torch.square(torch.clamp(vertical_speed - deadband, min=0.0)) ++ ++ ++def body_roll_pitch_ang_vel_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ deadband: float = 0.0, ++) -> torch.Tensor: ++ """Penalize horizontal angular speed while allowing normal gait oscillation.""" ++ body_id = _single_body_id(asset_cfg, "body_roll_pitch_ang_vel_l2") ++ asset = env.scene[asset_cfg.name] ++ horizontal_ang_speed = torch.linalg.norm(asset.data.body_ang_vel_w[:, body_id, :2], dim=1) ++ return torch.square(torch.clamp(horizontal_ang_speed - deadband, min=0.0)) ++ ++ ++def cross_body_arm_swing_reward( ++ env, ++ arm_asset_cfg: SceneEntityCfg, ++ feet_asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ heading_yaw_offset: float = 0.0, ++ min_forward_speed: float = 0.1, ++ full_swing_speed: float = 0.6, ++ phase_distance: float = 0.25, ++ shoulder_amplitude: float = 0.18, ++ elbow_flexion: float = 0.15, ++ shoulder_phase_signs: tuple[float, float] = (-1.0, -1.0), ++ elbow_flexion_signs: tuple[float, float] = (1.0, -1.0), ++ std: float = 0.2, ++) -> torch.Tensor: ++ """Track speed-scaled shoulder and elbow targets that oppose the leg phase. ++ ++ Arm joints must be ordered as left/right shoulder pitch followed by left/right elbow flexion. ++ Feet must be ordered left then right. ++ """ ++ if full_swing_speed <= min_forward_speed: ++ raise ValueError("full_swing_speed must be greater than min_forward_speed.") ++ if phase_distance <= 0.0 or std <= 0.0: ++ raise ValueError("phase_distance and std must be positive.") ++ ++ joint_ids = arm_asset_cfg.joint_ids ++ foot_ids = feet_asset_cfg.body_ids ++ if joint_ids is None or isinstance(joint_ids, slice) or len(joint_ids) != 4: ++ raise ValueError("cross_body_arm_swing_reward requires four ordered arm joint ids.") ++ if foot_ids is None or isinstance(foot_ids, slice) or len(foot_ids) != 2: ++ raise ValueError("cross_body_arm_swing_reward requires two ordered foot body ids.") ++ ++ reference_body_id = _single_body_id(reference_body_cfg, "cross_body_arm_swing_reward") ++ asset = env.scene[arm_asset_cfg.name] ++ feet_asset = env.scene[feet_asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = feet_asset.data.body_pos_w[:, foot_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ ++ num_envs = feet_pos_w.shape[0] ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat = heading_quat.unsqueeze(1).expand(-1, 2, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, 2, 3) ++ leg_phase = torch.clamp( ++ (feet_pos_heading[:, 0, 0] - feet_pos_heading[:, 1, 0]) / phase_distance, ++ min=-1.0, ++ max=1.0, ++ ) ++ ++ commands = env.command_manager.get_command(command_name) ++ speed_scale = torch.clamp( ++ (torch.abs(commands[:, 0]) - min_forward_speed) / (full_swing_speed - min_forward_speed), ++ min=0.0, ++ max=1.0, ++ ) ++ ++ joint_pos = asset.data.joint_pos[:, joint_ids] ++ target_pos = asset.data.default_joint_pos[:, joint_ids].clone() ++ shoulder_signs = joint_pos.new_tensor(shoulder_phase_signs) ++ elbow_signs = joint_pos.new_tensor(elbow_flexion_signs) ++ target_pos[:, :2] += ( ++ shoulder_amplitude * speed_scale * leg_phase ++ ).unsqueeze(1) * shoulder_signs.unsqueeze(0) ++ target_pos[:, 2:] += (elbow_flexion * speed_scale).unsqueeze(1) * elbow_signs.unsqueeze(0) ++ ++ mean_square_error = torch.mean(torch.square(joint_pos - target_pos), dim=1) ++ return torch.exp(-mean_square_error / (std * std)) ++ ++ + def energy_cost(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Penalize energy consumption approximated by the sum of squared joint torques.""" + asset = env.scene[asset_cfg.name] +@@ -385,6 +766,50 @@ def feet_orientation(env, asset_cfg: SceneEntityCfg, command_name: str, stand_th + return torch.exp(-rew * 2.0) + + ++def feet_orientation_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ foot_frame_offsets_rpy: tuple[tuple[float, float, float], ...] | None = None, ++ scale: float = 2.0, ++) -> torch.Tensor: ++ """Reward physical sole orientation relative to a configured reference body's heading.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_orientation_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ yaw_command = torch.abs(commands[:, 2]) > stand_threshold ++ ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ feet_quat = asset.data.body_quat_w[:, asset_cfg.body_ids, :] ++ reference_quat = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_quat.shape ++ feet_flat = feet_quat.reshape(-1, 4) ++ if foot_frame_offsets_rpy is not None: ++ offsets = torch.tensor(foot_frame_offsets_rpy, dtype=feet_quat.dtype, device=feet_quat.device) ++ if offsets.shape != (num_feet, 3): ++ raise ValueError(f"foot_frame_offsets_rpy must have shape ({num_feet}, 3), got {tuple(offsets.shape)}.") ++ offset_quat = quat_from_euler_xyz(offsets[:, 0], offsets[:, 1], offsets[:, 2]) ++ offset_quat = offset_quat.unsqueeze(0).expand(num_envs, -1, -1).reshape(-1, 4) ++ feet_flat = quat_mul(feet_flat, offset_quat) ++ ++ roll, pitch, yaw = euler_xyz_from_quat(feet_flat) ++ roll = roll.reshape(num_envs, num_feet) ++ pitch = pitch.reshape(num_envs, num_feet) ++ yaw = yaw.reshape(num_envs, num_feet) ++ ++ reference_yaw = _heading_yaw_with_offset(reference_quat, heading_yaw_offset) ++ feet_roll_pitch_error = torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) ++ feet_yaw_error = torch.abs(wrap_to_pi(yaw - reference_yaw.unsqueeze(1))) ++ ++ rew = torch.sum(feet_roll_pitch_error + feet_yaw_error, dim=1) ++ rew[yaw_command] = torch.sum(feet_roll_pitch_error[yaw_command], dim=1) ++ return torch.exp(-rew * scale) ++ ++ + def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Reward keeping the base roll/pitch near zero.""" + asset = env.scene[asset_cfg.name] +@@ -392,6 +817,50 @@ def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) - + base_euler = torch.stack((roll, pitch, yaw), dim=-1) + return torch.exp(-torch.sum(torch.abs(base_euler[:, :2]), dim=-1) * 10.0) + ++ ++def body_orientation(env, asset_cfg: SceneEntityCfg, scale: float = 10.0) -> torch.Tensor: ++ """Reward keeping a configured body's roll/pitch near zero.""" ++ body_id = _single_body_id(asset_cfg, "body_orientation") ++ asset = env.scene[asset_cfg.name] ++ roll, pitch, yaw = euler_xyz_from_quat(asset.data.body_quat_w[:, body_id, :]) ++ return torch.exp(-torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) * scale) ++ ++ ++def body_yaw_alignment( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++ reference_heading_yaw_offset: float = 0.0, ++ scale: float = 4.0, ++) -> torch.Tensor: ++ """Reward keeping one body's heading aligned with another body's heading.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_alignment") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_alignment") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ body_yaw = _heading_yaw_with_offset(asset.data.body_quat_w[:, body_id, :], heading_yaw_offset) ++ reference_yaw = _heading_yaw_with_offset( ++ reference_asset.data.body_quat_w[:, reference_body_id, :], reference_heading_yaw_offset ++ ) ++ return torch.exp(-torch.abs(wrap_to_pi(body_yaw - reference_yaw)) * scale) ++ ++ ++def body_yaw_rate_difference_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++) -> torch.Tensor: ++ """Penalize relative world-frame yaw rate between two configured bodies.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_rate_difference_l2") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_rate_difference_l2") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ yaw_rate = asset.data.body_ang_vel_w[:, body_id, 2] ++ reference_yaw_rate = reference_asset.data.body_ang_vel_w[:, reference_body_id, 2] ++ return torch.square(yaw_rate - reference_yaw_rate) ++ ++ + def reward_waist_pos( + env, + asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), +@@ -412,7 +881,9 @@ def reward_waist_pos( + + def penalize_foot_stumble(env, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- contacts = contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] > 1.0 ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 + asset = env.scene[asset_cfg.name] + body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] + return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) \ No newline at end of file diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/model_2597.pt b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/model_2597.pt new file mode 100644 index 0000000..37b5049 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/model_2597.pt differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/params/agent.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/params/agent.yaml new file mode 100644 index 0000000..040a142 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/params/agent.yaml @@ -0,0 +1,63 @@ +seed: 42 +device: cuda:0 +num_steps_per_env: 24 +max_iterations: 600 +empirical_normalization: {} +obs_groups: + actor: + - policy + critic: + - policy +clip_actions: null +check_for_nan: true +save_interval: 50 +experiment_name: velocity_flat_terrain_gen2 +run_name: gen2_speed_stability_v1 +logger: tensorboard +neptune_project: isaaclab +wandb_project: isaaclab +resume: true +load_run: 2026-07-10_14-48-04_gen2_gait_clearance_stage2 +load_checkpoint: model_1998.pt +class_name: OnPolicyRunner +actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar +critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null +algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null +policy: {} diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/params/env.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/params/env.yaml new file mode 100644 index 0000000..bdf2b0e --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1/params/env.yaml @@ -0,0 +1,2565 @@ +viewer: + eye: !!python/tuple + - 7.5 + - 7.5 + - 7.5 + lookat: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: !!python/tuple + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null +sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: !!python/tuple + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null +ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow +seed: 42 +decimation: 5 +scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: /World/envs/env_.*/Robot + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 1.282 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + ang_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 4096 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: !!python/tuple + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + slope_range: !!python/tuple + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + obstacle_height_mode: choice + obstacle_width_range: !!python/tuple + - 1.0 + - 2.0 + obstacle_height_range: !!python/tuple + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: !!python/tuple + - 8.0 + - 8.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + noise_range: !!python/tuple + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: !!python/tuple + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: 3.0 + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: !!python/tuple + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: /World/envs/env_.*/Robot/body_link + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: !!python/tuple + - 0.0 + - 0.0 + - 20.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: !!python/tuple + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: !!python/tuple + - 0.0 + - 0.0 + ray_cast_drift_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: /World/envs/env_.*/Robot/.* + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: !!python/tuple + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false +recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false +observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true +actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true +events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: .* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + static_friction_range: !!python/tuple + - 0.3 + - 1.6 + dynamic_friction_range: !!python/tuple + - 0.3 + - 1.2 + restitution_range: !!python/tuple + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + pos_distribution_params: !!python/tuple + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + com_range: + x: !!python/tuple + - -0.03 + - 0.03 + y: !!python/tuple + - -0.06 + - 0.06 + z: !!python/tuple + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: !!python/tuple + - -0.3 + - 0.3 + y: !!python/tuple + - -0.3 + - 0.3 + z: !!python/tuple + - -0.15 + - 0.15 + roll: !!python/tuple + - -0.35 + - 0.35 + pitch: !!python/tuple + - -0.35 + - 0.35 + yaw: !!python/tuple + - -0.52 + - 0.52 + mode: interval + interval_range_s: !!python/tuple + - 2.5 + - 5.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: !!python/tuple + - -0.5 + - 0.5 + y: !!python/tuple + - -0.5 + - 0.5 + yaw: !!python/tuple + - -3.14 + - 3.14 + velocity_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + roll: !!python/tuple + - 0.0 + - 0.0 + pitch: !!python/tuple + - 0.0 + - 0.0 + yaw: !!python/tuple + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: !!python/tuple + - 0.8 + - 1.2 + velocity_range: !!python/tuple + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 +rerender_on_reset: false +num_rerenders_on_reset: 0 +wait_for_textures: true +xr: null +teleop_devices: + devices: {} +export_io_descriptors: false +log_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-10_16-24-27_gen2_speed_stability_v1 +is_finite_horizon: false +episode_length_s: 20.0 +rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - waist_link_2 + - body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: !!python/tuple + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: !!python/tuple + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.1 + weight: -0.5 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.15 + weight: -0.08 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.15 + weight: -0.05 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + velocity_threshold: 0.25 + power: 2.0 + weight: -0.2 +terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 1.0 + time_out: false +curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} +commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: !!python/tuple + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: !!python/tuple + - 0.1 + - 0.6 + lin_vel_y: !!python/tuple + - -0.08 + - 0.08 + ang_vel_z: !!python/tuple + - -0.3 + - 0.3 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 0.0 + - 1.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/events.out.tfevents.1783907716.workstation.37179.0 b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/events.out.tfevents.1783907716.workstation.37179.0 new file mode 100644 index 0000000..1bbceeb Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/events.out.tfevents.1783907716.workstation.37179.0 differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/exported/model_2996.onnx b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/exported/model_2996.onnx new file mode 100644 index 0000000..6f60828 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/exported/model_2996.onnx differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/git/engineai_amp.diff b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/git/engineai_amp.diff new file mode 100644 index 0000000..46b4b3f --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/git/engineai_amp.diff @@ -0,0 +1,956 @@ +--- git commit --- +83ba64bbb58a02e14483e52adce5f893f3f31cdf + + +--- git status --- +On branch main +Your branch is up to date with 'origin/main'. + +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: scripts/cli_args.py + modified: scripts/play.py + modified: scripts/train.py + modified: source/engineai_lab/tasks/velocity/mdp/__init__.py + modified: source/engineai_lab/tasks/velocity/mdp/observations.py + modified: source/engineai_lab/tasks/velocity/mdp/rewards.py + +Untracked files: + (use "git add ..." to include in what will be committed) + IsaacLab/ + scripts/gen2_check_rl_readiness.py + scripts/gen2_generate_simplified_collisions.py + scripts/gen2_visualize_collisions.py + source/engineai_lab/robots/gen2.py + source/engineai_lab/tasks/velocity/config/gen2/ + source/engineai_lab/tasks/velocity/mdp/commands.py + source/engineai_lab/tasks/velocity/mdp/terminations.py + source/gen2_lab/ + uv.lock + +no changes added to commit (use "git add" and/or "git commit -a") + + +--- git diff --- +diff --git a/scripts/cli_args.py b/scripts/cli_args.py +index 36f91c5..b4a3257 100644 +--- a/scripts/cli_args.py ++++ b/scripts/cli_args.py +@@ -34,6 +34,12 @@ def add_rsl_rl_args(parser: argparse.ArgumentParser): + arg_group.add_argument( + "--wandb_path", type=str, default=None, help="Name of the logging project when using wandb or neptune." + ) ++ arg_group.add_argument( ++ "--rl_device", ++ type=str, ++ default=None, ++ help="Device used by the RSL-RL policy/optimizer, e.g. cpu, cuda, or cuda:0.", ++ ) + + + def parse_rsl_rl_cfg(task_name: str, args_cli: argparse.Namespace) -> RslRlOnPolicyRunnerCfg: +@@ -77,6 +83,8 @@ def update_rsl_rl_cfg(agent_cfg: RslRlOnPolicyRunnerCfg, args_cli: argparse.Name + agent_cfg.run_name = args_cli.run_name + if args_cli.logger is not None: + agent_cfg.logger = args_cli.logger ++ if getattr(args_cli, "rl_device", None) is not None: ++ agent_cfg.device = args_cli.rl_device + # set the project name for wandb and neptune + if agent_cfg.logger in {"wandb", "neptune"} and args_cli.log_project_name: + agent_cfg.wandb_project = args_cli.log_project_name +diff --git a/scripts/play.py b/scripts/play.py +index f19b9cb..1187ff6 100644 +--- a/scripts/play.py ++++ b/scripts/play.py +@@ -1,4 +1,4 @@ +-"""Script to play a checkpoint if an RL agent from RSL-RL.""" ++"""Script to play a checkpoint from an RSL-RL agent.""" + + """Launch Isaac Sim Simulator first.""" + +@@ -17,18 +17,49 @@ if str(REPO_ROOT) not in sys.path: + sys.path.append(str(REPO_ROOT)) + + # add argparse arguments +-parser = argparse.ArgumentParser(description="Train an RL agent with RSL-RL.") ++parser = argparse.ArgumentParser(description="Play an RSL-RL policy checkpoint.") + parser.add_argument( + "--disable_fabric", action="store_true", default=False, help="Disable fabric and use USD I/O operations." + ) + parser.add_argument("--num_envs", type=int, default=None, help="Number of environments to simulate.") + parser.add_argument("--task", type=str, default=None, help="Name of the task.") ++parser.add_argument("--max_steps", type=int, default=None, help="Stop replay after this many policy steps.") ++ ++command_group = parser.add_argument_group("velocity command", description="Velocity command source during replay.") ++command_group.add_argument( ++ "--command_source", ++ type=str, ++ choices=("random", "fixed", "keyboard"), ++ default="random", ++ help="Use environment-generated, fixed, or keyboard velocity commands.", ++) ++command_group.add_argument("--vx", type=float, default=0.3, help="Fixed forward velocity in m/s.") ++command_group.add_argument("--vy", type=float, default=0.0, help="Fixed lateral velocity in m/s.") ++command_group.add_argument("--wz", type=float, default=0.0, help="Fixed yaw velocity in rad/s.") ++command_group.add_argument( ++ "--command_mode", ++ type=str, ++ choices=("step", "ramp"), ++ default="ramp", ++ help="Apply external commands immediately or through acceleration limits.", ++) ++command_group.add_argument("--linear_accel", type=float, default=0.8, help="Planar acceleration limit in m/s^2.") ++command_group.add_argument("--yaw_accel", type=float, default=1.5, help="Yaw acceleration limit in rad/s^2.") ++command_group.add_argument("--keyboard_vx", type=float, default=0.4, help="Keyboard forward velocity in m/s.") ++command_group.add_argument("--keyboard_vy", type=float, default=0.2, help="Keyboard lateral velocity in m/s.") ++command_group.add_argument("--keyboard_wz", type=float, default=0.5, help="Keyboard yaw velocity in rad/s.") + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) + # append AppLauncher cli args + AppLauncher.add_app_launcher_args(parser) + args_cli, hydra_args = parser.parse_known_args() ++if args_cli.linear_accel <= 0.0: ++ parser.error("--linear_accel must be positive.") ++if args_cli.yaw_accel <= 0.0: ++ parser.error("--yaw_accel must be positive.") ++if args_cli.max_steps is not None and args_cli.max_steps <= 0: ++ parser.error("--max_steps must be positive.") + # always enable cameras to record video + # clear out sys.argv for Hydra + sys.argv = [sys.argv[0]] + hydra_args +@@ -39,9 +70,9 @@ simulation_app = app_launcher.app + + """Rest everything follows.""" + +-import gymnasium as gym + import os +-import pathlib ++ ++import gymnasium as gym + import torch + + from rsl_rl.runners import OnPolicyRunner +@@ -53,7 +84,6 @@ from isaaclab.envs import ( + ManagerBasedRLEnvCfg, + multi_agent_to_single_agent, + ) +-from isaaclab.utils.dict import print_dict + from isaaclab_rl.rsl_rl import RslRlOnPolicyRunnerCfg, RslRlVecEnvWrapper + from isaaclab_tasks.utils import get_checkpoint_path + from isaaclab_tasks.utils.hydra import hydra_task_config +@@ -62,6 +92,67 @@ from isaaclab_tasks.utils.hydra import hydra_task_config + import engineai_lab.tasks # noqa: F401 + + ++class VelocityCommandController: ++ """Apply fixed or keyboard commands directly to a velocity command term.""" ++ ++ def __init__(self, env: RslRlVecEnvWrapper, args: argparse.Namespace): ++ self.env = env ++ self.args = args ++ self.command_term = env.unwrapped.command_manager.get_term("base_velocity") ++ if not hasattr(self.command_term, "vel_command_b"): ++ raise TypeError("The base_velocity command term does not expose a velocity command buffer.") ++ ++ self.current_command = torch.zeros(3, device=env.unwrapped.device) ++ self.fixed_command = torch.tensor([args.vx, args.vy, args.wz], device=env.unwrapped.device) ++ self.keyboard = None ++ ++ if args.command_source == "keyboard": ++ from isaaclab.devices import Se2Keyboard, Se2KeyboardCfg ++ ++ keyboard_cfg = Se2KeyboardCfg( ++ sim_device=str(env.unwrapped.device), ++ v_x_sensitivity=args.keyboard_vx, ++ v_y_sensitivity=args.keyboard_vy, ++ omega_z_sensitivity=args.keyboard_wz, ++ ) ++ self.keyboard = Se2Keyboard(keyboard_cfg) ++ print(self.keyboard) ++ else: ++ print( ++ "[INFO] Fixed velocity command: " ++ f"vx={args.vx:.3f} m/s, vy={args.vy:.3f} m/s, wz={args.wz:.3f} rad/s" ++ ) ++ print(f"[INFO] External command mode: {args.command_mode}") ++ ++ def update(self): ++ target = self.keyboard.advance() if self.keyboard is not None else self.fixed_command ++ if self.args.command_mode == "step": ++ self.current_command.copy_(target) ++ else: ++ self._apply_ramp(target) ++ ++ self.command_term.vel_command_b[:] = self.current_command.unsqueeze(0) ++ self.command_term.time_left.fill_(float("inf")) ++ self.command_term.is_standing_env.fill_(False) ++ if hasattr(self.command_term, "is_heading_env"): ++ self.command_term.is_heading_env.fill_(False) ++ ++ def _apply_ramp(self, target: torch.Tensor): ++ dt = self.env.unwrapped.step_dt ++ linear_delta = target[:2] - self.current_command[:2] ++ linear_delta_norm = torch.linalg.norm(linear_delta) ++ max_linear_delta = self.args.linear_accel * dt ++ linear_scale = torch.clamp(max_linear_delta / torch.clamp(linear_delta_norm, min=1.0e-6), max=1.0) ++ linear_delta = linear_delta * linear_scale ++ self.current_command[:2] += linear_delta ++ ++ yaw_delta = torch.clamp( ++ target[2] - self.current_command[2], ++ min=-self.args.yaw_accel * dt, ++ max=self.args.yaw_accel * dt, ++ ) ++ self.current_command[2] += yaw_delta ++ + + @hydra_task_config(args_cli.task, "rsl_rl_cfg_entry_point") + def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agent_cfg: RslRlOnPolicyRunnerCfg): +@@ -83,7 +174,6 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # create isaac environment + env = gym.make(args_cli.task, cfg=env_cfg, render_mode=None) + +- + # convert to single-agent instance if required by the RL algorithm + if isinstance(env.unwrapped, DirectMARLEnv): + env = multi_agent_to_single_agent(env) +@@ -91,6 +181,10 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # wrap around environment for rsl-rl + env = RslRlVecEnvWrapper(env) + ++ command_controller = None ++ if args_cli.command_source != "random": ++ command_controller = VelocityCommandController(env, args_cli) ++ + # load previously trained model + ppo_runner = OnPolicyRunner(env, agent_cfg.to_dict(), log_dir=None, device=agent_cfg.device) + ppo_runner.load(resume_path) +@@ -103,18 +197,24 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + file_basename = os.path.basename(resume_path).split(".")[0] + ppo_runner.export_policy_to_onnx(path=export_model_dir, filename=file_basename+".onnx") + +- + # reset environment + obs = env.get_observations() +- timestep = 0 ++ step_count = 0 + # simulate environment +- while simulation_app.is_running(): ++ while simulation_app.is_running() and (args_cli.max_steps is None or step_count < args_cli.max_steps): + # run everything in inference mode + with torch.inference_mode(): ++ if command_controller is not None: ++ command_controller.update() ++ obs = env.get_observations() + # agent stepping + actions = policy(obs) + # env stepping + obs, _, _, _ = env.step(actions) ++ step_count += 1 ++ ++ if args_cli.max_steps is not None: ++ print(f"[INFO] Replay completed after {step_count} policy steps.") + + # close the simulator + env.close() +diff --git a/scripts/train.py b/scripts/train.py +index 01039e3..6f6ffc4 100644 +--- a/scripts/train.py ++++ b/scripts/train.py +@@ -22,6 +22,9 @@ parser.add_argument("--num_envs", type=int, default=None, help="Number of enviro + parser.add_argument("--task", type=str, default=None, help="Name of the task.") + parser.add_argument("--seed", type=int, default=None, help="Seed used for the environment") + parser.add_argument("--max_iterations", type=int, default=None, help="RL Policy training iterations.") ++parser.add_argument( ++ "--distributed", action="store_true", default=False, help="Run training with multiple GPUs or nodes." ++) + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) +@@ -81,6 +84,19 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # note: certain randomizations occur in the environment initialization so we set the seed here + env_cfg.seed = agent_cfg.seed + env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device ++ if args_cli.distributed and args_cli.device is not None and "cpu" in args_cli.device: ++ raise ValueError( ++ "Distributed training is not supported when using CPU device. " ++ "Please use GPU device (e.g. --device cuda) for distributed training." ++ ) ++ ++ if args_cli.distributed: ++ env_cfg.sim.device = f"cuda:{app_launcher.local_rank}" ++ agent_cfg.device = f"cuda:{app_launcher.local_rank}" ++ ++ seed = agent_cfg.seed + app_launcher.local_rank ++ env_cfg.seed = seed ++ agent_cfg.seed = seed + + # specify directory for logging experiments + log_root_path = os.path.join("logs", "rsl_rl", agent_cfg.experiment_name) +diff --git a/source/engineai_lab/tasks/velocity/mdp/__init__.py b/source/engineai_lab/tasks/velocity/mdp/__init__.py +index 6fe10e8..c885999 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/__init__.py ++++ b/source/engineai_lab/tasks/velocity/mdp/__init__.py +@@ -1,5 +1,7 @@ + from isaaclab_tasks.manager_based.locomotion.velocity.mdp import * + ++from .commands import * # noqa: F401, F403 + from .rewards import * # noqa: F401, F403 + from .observations import * # noqa: F401, F403 + from .events import * # noqa: F401, F403 ++from .terminations import * # noqa: F401, F403 +diff --git a/source/engineai_lab/tasks/velocity/mdp/observations.py b/source/engineai_lab/tasks/velocity/mdp/observations.py +index 0881dba..9dc20ff 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/observations.py ++++ b/source/engineai_lab/tasks/velocity/mdp/observations.py +@@ -3,12 +3,30 @@ from __future__ import annotations + import torch + from typing import TYPE_CHECKING + +-from isaaclab.utils.math import quat_apply_inverse ++from isaaclab.managers import SceneEntityCfg ++from isaaclab.utils.math import euler_xyz_from_quat, quat_apply_inverse, quat_from_euler_xyz + + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedEnv + + ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ + def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + """Base linear velocity expressed in the base frame.""" + asset = env.scene["robot"] +@@ -18,3 +36,22 @@ def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + # fallback: rotate world velocity into base frame + return quat_apply_inverse(asset.data.root_quat_w, asset.data.root_lin_vel_w) + ++ ++def body_ang_vel_yaw_frame( ++ env: ManagerBasedEnv, ++ asset_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Body angular velocity expressed in a yaw-aligned frame for that body.""" ++ body_id = _single_body_id(asset_cfg, "body_ang_vel_yaw_frame") ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_ang_vel_w = asset.data.body_ang_vel_w[:, body_id, :] ++ return quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_ang_vel_w) ++ ++ ++def body_projected_gravity(env: ManagerBasedEnv, asset_cfg: SceneEntityCfg) -> torch.Tensor: ++ """Gravity projection in a configured body's local frame.""" ++ body_id = _single_body_id(asset_cfg, "body_projected_gravity") ++ asset = env.scene[asset_cfg.name] ++ return quat_apply_inverse(asset.data.body_quat_w[:, body_id, :], asset.data.GRAVITY_VEC_W) +diff --git a/source/engineai_lab/tasks/velocity/mdp/rewards.py b/source/engineai_lab/tasks/velocity/mdp/rewards.py +index 36c3e1c..ec938fe 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/rewards.py ++++ b/source/engineai_lab/tasks/velocity/mdp/rewards.py +@@ -10,6 +10,7 @@ from isaaclab.utils.math import ( + euler_xyz_from_quat, + quat_apply_inverse, + quat_from_euler_xyz, ++ quat_mul, + quat_rotate_inverse, + wrap_to_pi, + yaw_quat, +@@ -18,6 +19,46 @@ from isaaclab.utils.math import ( + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedRLEnv + ++ ++def _to_env_device(env: ManagerBasedRLEnv, tensor: torch.Tensor) -> torch.Tensor: ++ """Move sensor tensors back to the RL environment device when Isaac uses another CUDA device.""" ++ return tensor.to(env.device) ++ ++ ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ ++def _heading_yaw_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ return wrap_to_pi(yaw - heading_yaw_offset) ++ ++ ++def _command_is_moving( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ commands = env.command_manager.get_command(command_name) ++ return (torch.norm(commands[:, :2], dim=1) > linear_threshold) | ( ++ torch.abs(commands[:, 2]) > angular_threshold ++ ) ++ ++ + def action_smoothness(env: ManagerBasedRLEnv) -> torch.Tensor: + """Penalize action second-order differences to encourage smooth control.""" + action_manager = env.action_manager +@@ -90,8 +131,8 @@ def feet_air_time_similarity( + if body_ids is None or len(body_ids) != 2: + raise ValueError("feet_air_time_similarity expects exactly two foot body ids in sensor_cfg.body_ids.") + +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, body_ids] +- last_air_time = contact_sensor.data.last_air_time[:, body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, body_ids]) + + recent_contact = torch.any(first_contact > 0.0, dim=1) + valid = torch.all(last_air_time > min_air_time, dim=1) +@@ -100,6 +141,61 @@ def feet_air_time_similarity( + return reward * (recent_contact & valid) + + ++def feet_air_time( ++ env: ManagerBasedRLEnv, command_name: str, sensor_cfg: SceneEntityCfg, threshold: float ++) -> torch.Tensor: ++ """Reward long steps while keeping contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ reward = torch.sum((last_air_time - threshold) * first_contact, dim=1) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ ++def feet_air_time_positive_on_contact( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ sensor_cfg: SceneEntityCfg, ++ min_air_time: float = 0.05, ++ max_air_time: float = 0.25, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward completed swing times without penalizing short exploratory steps.""" ++ if max_air_time <= min_air_time: ++ raise ValueError("max_air_time must be greater than min_air_time.") ++ ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ completed_swing = torch.clamp(last_air_time - min_air_time, min=0.0, max=max_air_time - min_air_time) ++ reward = torch.sum(completed_swing * first_contact, dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ ++def feet_air_time_positive_biped( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ threshold: float, ++ sensor_cfg: SceneEntityCfg, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Dense biped air-time reward with contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ air_time = _to_env_device(env, contact_sensor.data.current_air_time[:, sensor_cfg.body_ids]) ++ contact_time = _to_env_device(env, contact_sensor.data.current_contact_time[:, sensor_cfg.body_ids]) ++ in_contact = contact_time > 0.0 ++ in_mode_time = torch.where(in_contact, contact_time, air_time) ++ single_stance = torch.sum(in_contact.int(), dim=1) == 1 ++ reward = torch.min(torch.where(single_stance.unsqueeze(-1), in_mode_time, 0.0), dim=1)[0] ++ reward = torch.clamp(reward, max=threshold) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ + def track_lin_vel_xy_yaw_frame_exp( + env, sigma: float, command_name: str, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), stand_threshold: float = 0.06 + ) -> torch.Tensor: +@@ -132,6 +228,79 @@ def track_ang_vel_z_world_exp( + rew_abs = torch.exp(-ang_vel_error_abs * sigma) + return torch.where(stand_command, rew_abs, rew_square) + ++ ++def track_lin_vel_xy_yaw_frame_exp_body( ++ env, ++ sigma: float, ++ command_name: str, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Track planar velocity of a configured body in its yaw-aligned frame.""" ++ body_id = _single_body_id(asset_cfg, "track_lin_vel_xy_yaw_frame_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_lin_vel_w = asset.data.body_lin_vel_w[:, body_id, :] ++ vel_yaw = quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_lin_vel_w) ++ lin_vel_error_square = torch.sum(torch.square(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ lin_vel_error_abs = torch.sum(torch.abs(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ rew_square = torch.exp(-lin_vel_error_square * sigma) ++ rew_abs = torch.exp(-lin_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_body( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track world-frame yaw angular velocity of a configured body.""" ++ body_id = _single_body_id(asset_cfg, "track_ang_vel_z_world_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ ang_vel_error_square = torch.square(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ ang_vel_error_abs = torch.abs(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_bodies( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track yaw rate across all configured bodies so internal waist motion cannot satisfy the command alone.""" ++ body_ids = asset_cfg.body_ids ++ if body_ids is None or isinstance(body_ids, slice): ++ raise ValueError("track_ang_vel_z_world_exp_bodies requires one or more explicitly resolved body ids.") ++ ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_yaw_rates = asset.data.body_ang_vel_w[:, body_ids, 2] ++ command_yaw_rate = commands[:, 2].unsqueeze(1) ++ ang_vel_error_square = torch.mean(torch.square(command_yaw_rate - body_yaw_rates), dim=1) ++ ang_vel_error_abs = torch.mean(torch.abs(command_yaw_rate - body_yaw_rates), dim=1) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ + def feet_stumble( + env, sensor_cfg: SceneEntityCfg, tangential_threshold: float = 2.0, normal_threshold: float = 1.0 + ) -> torch.Tensor: +@@ -141,7 +310,7 @@ def feet_stumble( + below ``normal_threshold``. Returns the count of stumbling feet per environment. + """ + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- forces = contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) + tangential = torch.norm(forces[..., :2], dim=-1) > tangential_threshold + small_normal = torch.abs(forces[..., 2]) < normal_threshold + stumble = tangential & small_normal +@@ -165,6 +334,7 @@ def feet_contact( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -194,6 +364,7 @@ def feet_contact_fixed( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -207,6 +378,68 @@ def feet_contact_fixed( + return reward + + ++def biped_contact_mode_reward( ++ env: ManagerBasedRLEnv, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward double support while standing and exactly one supporting foot while moving.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ contact_count = torch.sum(contacts.int(), dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return torch.where(moving, contact_count == 1, contact_count == 2).float() ++ ++ ++def swing_foot_clearance_reward( ++ env: ManagerBasedRLEnv, ++ asset_cfg: SceneEntityCfg, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ target_height: float, ++ std: float, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward swing-foot height relative to the supporting foot.""" ++ if std <= 0.0: ++ raise ValueError("std must be positive.") ++ ++ asset = env.scene[asset_cfg.name] ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ single_stance = torch.sum(contacts.int(), dim=1) == 1 ++ swing_feet = ~contacts ++ ++ foot_height = asset.data.body_pos_w[:, asset_cfg.body_ids, 2] ++ if foot_height.shape[1] != contacts.shape[1]: ++ raise ValueError("asset_cfg and sensor_cfg must resolve the same number of feet.") ++ stance_height = torch.sum(foot_height * contacts, dim=1, keepdim=True) ++ swing_clearance = foot_height - stance_height ++ clearance_reward = torch.exp(-torch.square(swing_clearance - target_height) / (std * std)) ++ clearance_reward = torch.sum(clearance_reward * swing_feet, dim=1) ++ ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return clearance_reward * single_stance * moving ++ ++ ++def feet_slide(env: ManagerBasedRLEnv, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: ++ """Penalize foot sliding while keeping contact tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 ++ asset = env.scene[asset_cfg.name] ++ body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] ++ return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) ++ ++ + + def feet_position(env, + asset_cfg: SceneEntityCfg, +@@ -253,6 +486,43 @@ def feet_position(env, + return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) + + ++def feet_position_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ desired_foot_positions: tuple[tuple[float, float, float], ...], ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ scale: float = 3.0, ++) -> torch.Tensor: ++ """Reward standing foot positions relative to a configured reference body.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_position_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = asset.data.body_pos_w[:, asset_cfg.body_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_pos_w.shape ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat_per_foot = heading_quat.unsqueeze(1).expand(-1, num_feet, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat_per_foot, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, num_feet, 3) ++ ++ desired = torch.tensor(desired_foot_positions, dtype=feet_pos_heading.dtype, device=feet_pos_heading.device) ++ if desired.shape != (num_feet, 3): ++ raise ValueError(f"desired_foot_positions must have shape ({num_feet}, 3), got {tuple(desired.shape)}.") ++ position_error = torch.sum(torch.abs(feet_pos_heading - desired.unsqueeze(0)), dim=(1, 2)) ++ reward_stand = torch.exp(-position_error * scale) ++ return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) ++ ++ + def feet_regulation( + env, + asset_cfg: SceneEntityCfg, +@@ -293,10 +563,10 @@ def feet_landing_velocity( + ) -> torch.Tensor: + """Penalize high downward landing speed at first contact to reduce impact noise.""" + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) + + asset = env.scene[asset_cfg.name] +- foot_vel_z = asset.data.body_lin_vel_w[:, sensor_cfg.body_ids, 2] ++ foot_vel_z = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, 2] + landing_speed = torch.clamp(-foot_vel_z - velocity_threshold, min=0.0) + penalty = torch.sum(torch.pow(landing_speed, power) * first_contact, dim=1) + return penalty +@@ -350,6 +620,117 @@ def base_height_tracking(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot" + height_error = torch.abs(asset.data.root_pos_w[:, 2] - target_height) + return torch.exp(-height_error * 30.0) + ++ ++def body_height_tracking( ++ env, ++ asset_cfg: SceneEntityCfg, ++ target_height: float, ++ scale: float = 30.0, ++) -> torch.Tensor: ++ """Reward keeping a configured body height near a target height.""" ++ body_id = _single_body_id(asset_cfg, "body_height_tracking") ++ asset = env.scene[asset_cfg.name] ++ height_error = torch.abs(asset.data.body_pos_w[:, body_id, 2] - target_height) ++ return torch.exp(-height_error * scale) ++ ++ ++def body_vertical_velocity_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ deadband: float = 0.0, ++) -> torch.Tensor: ++ """Penalize vertical body velocity outside a small natural-motion deadband.""" ++ body_id = _single_body_id(asset_cfg, "body_vertical_velocity_l2") ++ asset = env.scene[asset_cfg.name] ++ vertical_speed = torch.abs(asset.data.body_lin_vel_w[:, body_id, 2]) ++ return torch.square(torch.clamp(vertical_speed - deadband, min=0.0)) ++ ++ ++def body_roll_pitch_ang_vel_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ deadband: float = 0.0, ++) -> torch.Tensor: ++ """Penalize horizontal angular speed while allowing normal gait oscillation.""" ++ body_id = _single_body_id(asset_cfg, "body_roll_pitch_ang_vel_l2") ++ asset = env.scene[asset_cfg.name] ++ horizontal_ang_speed = torch.linalg.norm(asset.data.body_ang_vel_w[:, body_id, :2], dim=1) ++ return torch.square(torch.clamp(horizontal_ang_speed - deadband, min=0.0)) ++ ++ ++def cross_body_arm_swing_reward( ++ env, ++ arm_asset_cfg: SceneEntityCfg, ++ feet_asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ heading_yaw_offset: float = 0.0, ++ min_forward_speed: float = 0.1, ++ full_swing_speed: float = 0.6, ++ phase_distance: float = 0.25, ++ shoulder_amplitude: float = 0.18, ++ elbow_flexion: float = 0.15, ++ shoulder_phase_signs: tuple[float, float] = (-1.0, -1.0), ++ elbow_flexion_signs: tuple[float, float] = (1.0, -1.0), ++ std: float = 0.2, ++) -> torch.Tensor: ++ """Track speed-scaled shoulder and elbow targets that oppose the leg phase. ++ ++ Arm joints must be ordered as left/right shoulder pitch followed by left/right elbow flexion. ++ Feet must be ordered left then right. ++ """ ++ if full_swing_speed <= min_forward_speed: ++ raise ValueError("full_swing_speed must be greater than min_forward_speed.") ++ if phase_distance <= 0.0 or std <= 0.0: ++ raise ValueError("phase_distance and std must be positive.") ++ ++ joint_ids = arm_asset_cfg.joint_ids ++ foot_ids = feet_asset_cfg.body_ids ++ if joint_ids is None or isinstance(joint_ids, slice) or len(joint_ids) != 4: ++ raise ValueError("cross_body_arm_swing_reward requires four ordered arm joint ids.") ++ if foot_ids is None or isinstance(foot_ids, slice) or len(foot_ids) != 2: ++ raise ValueError("cross_body_arm_swing_reward requires two ordered foot body ids.") ++ ++ reference_body_id = _single_body_id(reference_body_cfg, "cross_body_arm_swing_reward") ++ asset = env.scene[arm_asset_cfg.name] ++ feet_asset = env.scene[feet_asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = feet_asset.data.body_pos_w[:, foot_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ ++ num_envs = feet_pos_w.shape[0] ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat = heading_quat.unsqueeze(1).expand(-1, 2, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, 2, 3) ++ leg_phase = torch.clamp( ++ (feet_pos_heading[:, 0, 0] - feet_pos_heading[:, 1, 0]) / phase_distance, ++ min=-1.0, ++ max=1.0, ++ ) ++ ++ commands = env.command_manager.get_command(command_name) ++ speed_scale = torch.clamp( ++ (torch.abs(commands[:, 0]) - min_forward_speed) / (full_swing_speed - min_forward_speed), ++ min=0.0, ++ max=1.0, ++ ) ++ ++ joint_pos = asset.data.joint_pos[:, joint_ids] ++ target_pos = asset.data.default_joint_pos[:, joint_ids].clone() ++ shoulder_signs = joint_pos.new_tensor(shoulder_phase_signs) ++ elbow_signs = joint_pos.new_tensor(elbow_flexion_signs) ++ target_pos[:, :2] += ( ++ shoulder_amplitude * speed_scale * leg_phase ++ ).unsqueeze(1) * shoulder_signs.unsqueeze(0) ++ target_pos[:, 2:] += (elbow_flexion * speed_scale).unsqueeze(1) * elbow_signs.unsqueeze(0) ++ ++ mean_square_error = torch.mean(torch.square(joint_pos - target_pos), dim=1) ++ return torch.exp(-mean_square_error / (std * std)) ++ ++ + def energy_cost(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Penalize energy consumption approximated by the sum of squared joint torques.""" + asset = env.scene[asset_cfg.name] +@@ -385,6 +766,50 @@ def feet_orientation(env, asset_cfg: SceneEntityCfg, command_name: str, stand_th + return torch.exp(-rew * 2.0) + + ++def feet_orientation_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ foot_frame_offsets_rpy: tuple[tuple[float, float, float], ...] | None = None, ++ scale: float = 2.0, ++) -> torch.Tensor: ++ """Reward physical sole orientation relative to a configured reference body's heading.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_orientation_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ yaw_command = torch.abs(commands[:, 2]) > stand_threshold ++ ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ feet_quat = asset.data.body_quat_w[:, asset_cfg.body_ids, :] ++ reference_quat = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_quat.shape ++ feet_flat = feet_quat.reshape(-1, 4) ++ if foot_frame_offsets_rpy is not None: ++ offsets = torch.tensor(foot_frame_offsets_rpy, dtype=feet_quat.dtype, device=feet_quat.device) ++ if offsets.shape != (num_feet, 3): ++ raise ValueError(f"foot_frame_offsets_rpy must have shape ({num_feet}, 3), got {tuple(offsets.shape)}.") ++ offset_quat = quat_from_euler_xyz(offsets[:, 0], offsets[:, 1], offsets[:, 2]) ++ offset_quat = offset_quat.unsqueeze(0).expand(num_envs, -1, -1).reshape(-1, 4) ++ feet_flat = quat_mul(feet_flat, offset_quat) ++ ++ roll, pitch, yaw = euler_xyz_from_quat(feet_flat) ++ roll = roll.reshape(num_envs, num_feet) ++ pitch = pitch.reshape(num_envs, num_feet) ++ yaw = yaw.reshape(num_envs, num_feet) ++ ++ reference_yaw = _heading_yaw_with_offset(reference_quat, heading_yaw_offset) ++ feet_roll_pitch_error = torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) ++ feet_yaw_error = torch.abs(wrap_to_pi(yaw - reference_yaw.unsqueeze(1))) ++ ++ rew = torch.sum(feet_roll_pitch_error + feet_yaw_error, dim=1) ++ rew[yaw_command] = torch.sum(feet_roll_pitch_error[yaw_command], dim=1) ++ return torch.exp(-rew * scale) ++ ++ + def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Reward keeping the base roll/pitch near zero.""" + asset = env.scene[asset_cfg.name] +@@ -392,6 +817,50 @@ def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) - + base_euler = torch.stack((roll, pitch, yaw), dim=-1) + return torch.exp(-torch.sum(torch.abs(base_euler[:, :2]), dim=-1) * 10.0) + ++ ++def body_orientation(env, asset_cfg: SceneEntityCfg, scale: float = 10.0) -> torch.Tensor: ++ """Reward keeping a configured body's roll/pitch near zero.""" ++ body_id = _single_body_id(asset_cfg, "body_orientation") ++ asset = env.scene[asset_cfg.name] ++ roll, pitch, yaw = euler_xyz_from_quat(asset.data.body_quat_w[:, body_id, :]) ++ return torch.exp(-torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) * scale) ++ ++ ++def body_yaw_alignment( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++ reference_heading_yaw_offset: float = 0.0, ++ scale: float = 4.0, ++) -> torch.Tensor: ++ """Reward keeping one body's heading aligned with another body's heading.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_alignment") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_alignment") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ body_yaw = _heading_yaw_with_offset(asset.data.body_quat_w[:, body_id, :], heading_yaw_offset) ++ reference_yaw = _heading_yaw_with_offset( ++ reference_asset.data.body_quat_w[:, reference_body_id, :], reference_heading_yaw_offset ++ ) ++ return torch.exp(-torch.abs(wrap_to_pi(body_yaw - reference_yaw)) * scale) ++ ++ ++def body_yaw_rate_difference_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++) -> torch.Tensor: ++ """Penalize relative world-frame yaw rate between two configured bodies.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_rate_difference_l2") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_rate_difference_l2") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ yaw_rate = asset.data.body_ang_vel_w[:, body_id, 2] ++ reference_yaw_rate = reference_asset.data.body_ang_vel_w[:, reference_body_id, 2] ++ return torch.square(yaw_rate - reference_yaw_rate) ++ ++ + def reward_waist_pos( + env, + asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), +@@ -412,7 +881,9 @@ def reward_waist_pos( + + def penalize_foot_stumble(env, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- contacts = contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] > 1.0 ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 + asset = env.scene[asset_cfg.name] + body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] + return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) \ No newline at end of file diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/model_2996.pt b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/model_2996.pt new file mode 100644 index 0000000..5df38a8 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/model_2996.pt differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/params/agent.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/params/agent.yaml new file mode 100644 index 0000000..99641f8 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/params/agent.yaml @@ -0,0 +1,63 @@ +seed: 42 +device: cuda:0 +num_steps_per_env: 24 +max_iterations: 400 +empirical_normalization: {} +obs_groups: + actor: + - policy + critic: + - policy +clip_actions: null +check_for_nan: true +save_interval: 50 +experiment_name: velocity_flat_terrain_gen2 +run_name: gen2_speed_flat_consolidation_v2 +logger: tensorboard +neptune_project: isaaclab +wandb_project: isaaclab +resume: true +load_run: 2026-07-10_16-24-27_gen2_speed_stability_v1 +load_checkpoint: model_2597.pt +class_name: OnPolicyRunner +actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar +critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null +algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.004 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null +policy: {} diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/params/env.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/params/env.yaml new file mode 100644 index 0000000..9a1a931 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2/params/env.yaml @@ -0,0 +1,2360 @@ +viewer: + eye: !!python/tuple + - 7.5 + - 7.5 + - 7.5 + lookat: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: !!python/tuple + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null +sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: !!python/tuple + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null +ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow +seed: 42 +decimation: 5 +scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: /World/envs/env_.*/Robot + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 1.282 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + ang_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 4096 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: 3.0 + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: !!python/tuple + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: /World/envs/env_.*/Robot/.* + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: !!python/tuple + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false +recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false +observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true +actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true +events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: .* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + static_friction_range: !!python/tuple + - 0.3 + - 1.6 + dynamic_friction_range: !!python/tuple + - 0.3 + - 1.2 + restitution_range: !!python/tuple + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + pos_distribution_params: !!python/tuple + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + com_range: + x: !!python/tuple + - -0.03 + - 0.03 + y: !!python/tuple + - -0.06 + - 0.06 + z: !!python/tuple + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: !!python/tuple + - -0.5 + - 0.5 + y: !!python/tuple + - -0.5 + - 0.5 + yaw: !!python/tuple + - -3.14 + - 3.14 + velocity_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + roll: !!python/tuple + - 0.0 + - 0.0 + pitch: !!python/tuple + - 0.0 + - 0.0 + yaw: !!python/tuple + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: !!python/tuple + - 0.8 + - 1.2 + velocity_range: !!python/tuple + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 +rerender_on_reset: false +num_rerenders_on_reset: 0 +wait_for_textures: true +xr: null +teleop_devices: + devices: {} +export_io_descriptors: false +log_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2 +is_finite_horizon: false +episode_length_s: 20.0 +rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - waist_link_2 + - body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: !!python/tuple + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: !!python/tuple + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.7 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.05 + weight: -2.0 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.1 + weight: -0.1 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.1 + weight: -0.1 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + velocity_threshold: 0.2 + power: 2.0 + weight: -1.0 +terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 1.0 + time_out: false +curriculum: + terrain_levels: null +commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: !!python/tuple + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: !!python/tuple + - 0.2 + - 0.6 + lin_vel_y: !!python/tuple + - -0.05 + - 0.05 + ang_vel_z: !!python/tuple + - -0.2 + - 0.2 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 0.0 + - 1.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.8 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/events.out.tfevents.1783909931.workstation.57899.0 b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/events.out.tfevents.1783909931.workstation.57899.0 new file mode 100644 index 0000000..5d29699 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/events.out.tfevents.1783909931.workstation.57899.0 differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/exported/model_3295.onnx b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/exported/model_3295.onnx new file mode 100644 index 0000000..a04379e Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/exported/model_3295.onnx differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/git/engineai_amp.diff b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/git/engineai_amp.diff new file mode 100644 index 0000000..80a134b --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/git/engineai_amp.diff @@ -0,0 +1,1059 @@ +--- git commit --- +83ba64bbb58a02e14483e52adce5f893f3f31cdf + + +--- git status --- +On branch main +Your branch is up to date with 'origin/main'. + +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: scripts/cli_args.py + modified: scripts/play.py + modified: scripts/train.py + modified: source/engineai_lab/tasks/velocity/mdp/__init__.py + modified: source/engineai_lab/tasks/velocity/mdp/observations.py + modified: source/engineai_lab/tasks/velocity/mdp/rewards.py + +Untracked files: + (use "git add ..." to include in what will be committed) + IsaacLab/ + scripts/gen2_check_rl_readiness.py + scripts/gen2_generate_simplified_collisions.py + scripts/gen2_visualize_collisions.py + source/engineai_lab/robots/gen2.py + source/engineai_lab/tasks/velocity/config/gen2/ + source/engineai_lab/tasks/velocity/mdp/commands.py + source/engineai_lab/tasks/velocity/mdp/terminations.py + source/gen2_lab/ + uv.lock + +no changes added to commit (use "git add" and/or "git commit -a") + + +--- git diff --- +diff --git a/scripts/cli_args.py b/scripts/cli_args.py +index 36f91c5..b4a3257 100644 +--- a/scripts/cli_args.py ++++ b/scripts/cli_args.py +@@ -34,6 +34,12 @@ def add_rsl_rl_args(parser: argparse.ArgumentParser): + arg_group.add_argument( + "--wandb_path", type=str, default=None, help="Name of the logging project when using wandb or neptune." + ) ++ arg_group.add_argument( ++ "--rl_device", ++ type=str, ++ default=None, ++ help="Device used by the RSL-RL policy/optimizer, e.g. cpu, cuda, or cuda:0.", ++ ) + + + def parse_rsl_rl_cfg(task_name: str, args_cli: argparse.Namespace) -> RslRlOnPolicyRunnerCfg: +@@ -77,6 +83,8 @@ def update_rsl_rl_cfg(agent_cfg: RslRlOnPolicyRunnerCfg, args_cli: argparse.Name + agent_cfg.run_name = args_cli.run_name + if args_cli.logger is not None: + agent_cfg.logger = args_cli.logger ++ if getattr(args_cli, "rl_device", None) is not None: ++ agent_cfg.device = args_cli.rl_device + # set the project name for wandb and neptune + if agent_cfg.logger in {"wandb", "neptune"} and args_cli.log_project_name: + agent_cfg.wandb_project = args_cli.log_project_name +diff --git a/scripts/play.py b/scripts/play.py +index f19b9cb..1187ff6 100644 +--- a/scripts/play.py ++++ b/scripts/play.py +@@ -1,4 +1,4 @@ +-"""Script to play a checkpoint if an RL agent from RSL-RL.""" ++"""Script to play a checkpoint from an RSL-RL agent.""" + + """Launch Isaac Sim Simulator first.""" + +@@ -17,18 +17,49 @@ if str(REPO_ROOT) not in sys.path: + sys.path.append(str(REPO_ROOT)) + + # add argparse arguments +-parser = argparse.ArgumentParser(description="Train an RL agent with RSL-RL.") ++parser = argparse.ArgumentParser(description="Play an RSL-RL policy checkpoint.") + parser.add_argument( + "--disable_fabric", action="store_true", default=False, help="Disable fabric and use USD I/O operations." + ) + parser.add_argument("--num_envs", type=int, default=None, help="Number of environments to simulate.") + parser.add_argument("--task", type=str, default=None, help="Name of the task.") ++parser.add_argument("--max_steps", type=int, default=None, help="Stop replay after this many policy steps.") ++ ++command_group = parser.add_argument_group("velocity command", description="Velocity command source during replay.") ++command_group.add_argument( ++ "--command_source", ++ type=str, ++ choices=("random", "fixed", "keyboard"), ++ default="random", ++ help="Use environment-generated, fixed, or keyboard velocity commands.", ++) ++command_group.add_argument("--vx", type=float, default=0.3, help="Fixed forward velocity in m/s.") ++command_group.add_argument("--vy", type=float, default=0.0, help="Fixed lateral velocity in m/s.") ++command_group.add_argument("--wz", type=float, default=0.0, help="Fixed yaw velocity in rad/s.") ++command_group.add_argument( ++ "--command_mode", ++ type=str, ++ choices=("step", "ramp"), ++ default="ramp", ++ help="Apply external commands immediately or through acceleration limits.", ++) ++command_group.add_argument("--linear_accel", type=float, default=0.8, help="Planar acceleration limit in m/s^2.") ++command_group.add_argument("--yaw_accel", type=float, default=1.5, help="Yaw acceleration limit in rad/s^2.") ++command_group.add_argument("--keyboard_vx", type=float, default=0.4, help="Keyboard forward velocity in m/s.") ++command_group.add_argument("--keyboard_vy", type=float, default=0.2, help="Keyboard lateral velocity in m/s.") ++command_group.add_argument("--keyboard_wz", type=float, default=0.5, help="Keyboard yaw velocity in rad/s.") + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) + # append AppLauncher cli args + AppLauncher.add_app_launcher_args(parser) + args_cli, hydra_args = parser.parse_known_args() ++if args_cli.linear_accel <= 0.0: ++ parser.error("--linear_accel must be positive.") ++if args_cli.yaw_accel <= 0.0: ++ parser.error("--yaw_accel must be positive.") ++if args_cli.max_steps is not None and args_cli.max_steps <= 0: ++ parser.error("--max_steps must be positive.") + # always enable cameras to record video + # clear out sys.argv for Hydra + sys.argv = [sys.argv[0]] + hydra_args +@@ -39,9 +70,9 @@ simulation_app = app_launcher.app + + """Rest everything follows.""" + +-import gymnasium as gym + import os +-import pathlib ++ ++import gymnasium as gym + import torch + + from rsl_rl.runners import OnPolicyRunner +@@ -53,7 +84,6 @@ from isaaclab.envs import ( + ManagerBasedRLEnvCfg, + multi_agent_to_single_agent, + ) +-from isaaclab.utils.dict import print_dict + from isaaclab_rl.rsl_rl import RslRlOnPolicyRunnerCfg, RslRlVecEnvWrapper + from isaaclab_tasks.utils import get_checkpoint_path + from isaaclab_tasks.utils.hydra import hydra_task_config +@@ -62,6 +92,67 @@ from isaaclab_tasks.utils.hydra import hydra_task_config + import engineai_lab.tasks # noqa: F401 + + ++class VelocityCommandController: ++ """Apply fixed or keyboard commands directly to a velocity command term.""" ++ ++ def __init__(self, env: RslRlVecEnvWrapper, args: argparse.Namespace): ++ self.env = env ++ self.args = args ++ self.command_term = env.unwrapped.command_manager.get_term("base_velocity") ++ if not hasattr(self.command_term, "vel_command_b"): ++ raise TypeError("The base_velocity command term does not expose a velocity command buffer.") ++ ++ self.current_command = torch.zeros(3, device=env.unwrapped.device) ++ self.fixed_command = torch.tensor([args.vx, args.vy, args.wz], device=env.unwrapped.device) ++ self.keyboard = None ++ ++ if args.command_source == "keyboard": ++ from isaaclab.devices import Se2Keyboard, Se2KeyboardCfg ++ ++ keyboard_cfg = Se2KeyboardCfg( ++ sim_device=str(env.unwrapped.device), ++ v_x_sensitivity=args.keyboard_vx, ++ v_y_sensitivity=args.keyboard_vy, ++ omega_z_sensitivity=args.keyboard_wz, ++ ) ++ self.keyboard = Se2Keyboard(keyboard_cfg) ++ print(self.keyboard) ++ else: ++ print( ++ "[INFO] Fixed velocity command: " ++ f"vx={args.vx:.3f} m/s, vy={args.vy:.3f} m/s, wz={args.wz:.3f} rad/s" ++ ) ++ print(f"[INFO] External command mode: {args.command_mode}") ++ ++ def update(self): ++ target = self.keyboard.advance() if self.keyboard is not None else self.fixed_command ++ if self.args.command_mode == "step": ++ self.current_command.copy_(target) ++ else: ++ self._apply_ramp(target) ++ ++ self.command_term.vel_command_b[:] = self.current_command.unsqueeze(0) ++ self.command_term.time_left.fill_(float("inf")) ++ self.command_term.is_standing_env.fill_(False) ++ if hasattr(self.command_term, "is_heading_env"): ++ self.command_term.is_heading_env.fill_(False) ++ ++ def _apply_ramp(self, target: torch.Tensor): ++ dt = self.env.unwrapped.step_dt ++ linear_delta = target[:2] - self.current_command[:2] ++ linear_delta_norm = torch.linalg.norm(linear_delta) ++ max_linear_delta = self.args.linear_accel * dt ++ linear_scale = torch.clamp(max_linear_delta / torch.clamp(linear_delta_norm, min=1.0e-6), max=1.0) ++ linear_delta = linear_delta * linear_scale ++ self.current_command[:2] += linear_delta ++ ++ yaw_delta = torch.clamp( ++ target[2] - self.current_command[2], ++ min=-self.args.yaw_accel * dt, ++ max=self.args.yaw_accel * dt, ++ ) ++ self.current_command[2] += yaw_delta ++ + + @hydra_task_config(args_cli.task, "rsl_rl_cfg_entry_point") + def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agent_cfg: RslRlOnPolicyRunnerCfg): +@@ -83,7 +174,6 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # create isaac environment + env = gym.make(args_cli.task, cfg=env_cfg, render_mode=None) + +- + # convert to single-agent instance if required by the RL algorithm + if isinstance(env.unwrapped, DirectMARLEnv): + env = multi_agent_to_single_agent(env) +@@ -91,6 +181,10 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # wrap around environment for rsl-rl + env = RslRlVecEnvWrapper(env) + ++ command_controller = None ++ if args_cli.command_source != "random": ++ command_controller = VelocityCommandController(env, args_cli) ++ + # load previously trained model + ppo_runner = OnPolicyRunner(env, agent_cfg.to_dict(), log_dir=None, device=agent_cfg.device) + ppo_runner.load(resume_path) +@@ -103,18 +197,24 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + file_basename = os.path.basename(resume_path).split(".")[0] + ppo_runner.export_policy_to_onnx(path=export_model_dir, filename=file_basename+".onnx") + +- + # reset environment + obs = env.get_observations() +- timestep = 0 ++ step_count = 0 + # simulate environment +- while simulation_app.is_running(): ++ while simulation_app.is_running() and (args_cli.max_steps is None or step_count < args_cli.max_steps): + # run everything in inference mode + with torch.inference_mode(): ++ if command_controller is not None: ++ command_controller.update() ++ obs = env.get_observations() + # agent stepping + actions = policy(obs) + # env stepping + obs, _, _, _ = env.step(actions) ++ step_count += 1 ++ ++ if args_cli.max_steps is not None: ++ print(f"[INFO] Replay completed after {step_count} policy steps.") + + # close the simulator + env.close() +diff --git a/scripts/train.py b/scripts/train.py +index 01039e3..6f6ffc4 100644 +--- a/scripts/train.py ++++ b/scripts/train.py +@@ -22,6 +22,9 @@ parser.add_argument("--num_envs", type=int, default=None, help="Number of enviro + parser.add_argument("--task", type=str, default=None, help="Name of the task.") + parser.add_argument("--seed", type=int, default=None, help="Seed used for the environment") + parser.add_argument("--max_iterations", type=int, default=None, help="RL Policy training iterations.") ++parser.add_argument( ++ "--distributed", action="store_true", default=False, help="Run training with multiple GPUs or nodes." ++) + + # append RSL-RL cli arguments + cli_args.add_rsl_rl_args(parser) +@@ -81,6 +84,19 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen + # note: certain randomizations occur in the environment initialization so we set the seed here + env_cfg.seed = agent_cfg.seed + env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device ++ if args_cli.distributed and args_cli.device is not None and "cpu" in args_cli.device: ++ raise ValueError( ++ "Distributed training is not supported when using CPU device. " ++ "Please use GPU device (e.g. --device cuda) for distributed training." ++ ) ++ ++ if args_cli.distributed: ++ env_cfg.sim.device = f"cuda:{app_launcher.local_rank}" ++ agent_cfg.device = f"cuda:{app_launcher.local_rank}" ++ ++ seed = agent_cfg.seed + app_launcher.local_rank ++ env_cfg.seed = seed ++ agent_cfg.seed = seed + + # specify directory for logging experiments + log_root_path = os.path.join("logs", "rsl_rl", agent_cfg.experiment_name) +diff --git a/source/engineai_lab/tasks/velocity/mdp/__init__.py b/source/engineai_lab/tasks/velocity/mdp/__init__.py +index 6fe10e8..c885999 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/__init__.py ++++ b/source/engineai_lab/tasks/velocity/mdp/__init__.py +@@ -1,5 +1,7 @@ + from isaaclab_tasks.manager_based.locomotion.velocity.mdp import * + ++from .commands import * # noqa: F401, F403 + from .rewards import * # noqa: F401, F403 + from .observations import * # noqa: F401, F403 + from .events import * # noqa: F401, F403 ++from .terminations import * # noqa: F401, F403 +diff --git a/source/engineai_lab/tasks/velocity/mdp/observations.py b/source/engineai_lab/tasks/velocity/mdp/observations.py +index 0881dba..9dc20ff 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/observations.py ++++ b/source/engineai_lab/tasks/velocity/mdp/observations.py +@@ -3,12 +3,30 @@ from __future__ import annotations + import torch + from typing import TYPE_CHECKING + +-from isaaclab.utils.math import quat_apply_inverse ++from isaaclab.managers import SceneEntityCfg ++from isaaclab.utils.math import euler_xyz_from_quat, quat_apply_inverse, quat_from_euler_xyz + + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedEnv + + ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ + def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + """Base linear velocity expressed in the base frame.""" + asset = env.scene["robot"] +@@ -18,3 +36,22 @@ def robot_base_lin_vel_b(env: ManagerBasedEnv) -> torch.Tensor: + # fallback: rotate world velocity into base frame + return quat_apply_inverse(asset.data.root_quat_w, asset.data.root_lin_vel_w) + ++ ++def body_ang_vel_yaw_frame( ++ env: ManagerBasedEnv, ++ asset_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Body angular velocity expressed in a yaw-aligned frame for that body.""" ++ body_id = _single_body_id(asset_cfg, "body_ang_vel_yaw_frame") ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_ang_vel_w = asset.data.body_ang_vel_w[:, body_id, :] ++ return quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_ang_vel_w) ++ ++ ++def body_projected_gravity(env: ManagerBasedEnv, asset_cfg: SceneEntityCfg) -> torch.Tensor: ++ """Gravity projection in a configured body's local frame.""" ++ body_id = _single_body_id(asset_cfg, "body_projected_gravity") ++ asset = env.scene[asset_cfg.name] ++ return quat_apply_inverse(asset.data.body_quat_w[:, body_id, :], asset.data.GRAVITY_VEC_W) +diff --git a/source/engineai_lab/tasks/velocity/mdp/rewards.py b/source/engineai_lab/tasks/velocity/mdp/rewards.py +index 36c3e1c..23df72b 100644 +--- a/source/engineai_lab/tasks/velocity/mdp/rewards.py ++++ b/source/engineai_lab/tasks/velocity/mdp/rewards.py +@@ -10,6 +10,7 @@ from isaaclab.utils.math import ( + euler_xyz_from_quat, + quat_apply_inverse, + quat_from_euler_xyz, ++ quat_mul, + quat_rotate_inverse, + wrap_to_pi, + yaw_quat, +@@ -18,6 +19,46 @@ from isaaclab.utils.math import ( + if TYPE_CHECKING: + from isaaclab.envs import ManagerBasedRLEnv + ++ ++def _to_env_device(env: ManagerBasedRLEnv, tensor: torch.Tensor) -> torch.Tensor: ++ """Move sensor tensors back to the RL environment device when Isaac uses another CUDA device.""" ++ return tensor.to(env.device) ++ ++ ++def _single_body_id(asset_cfg: SceneEntityCfg, term_name: str) -> int: ++ body_ids = asset_cfg.body_ids ++ if body_ids is None: ++ raise ValueError(f"{term_name} requires asset_cfg with exactly one body name.") ++ if isinstance(body_ids, int): ++ return body_ids ++ if isinstance(body_ids, slice) or len(body_ids) != 1: ++ raise ValueError(f"{term_name} requires exactly one body id, got {body_ids}.") ++ return body_ids[0] ++ ++ ++def _heading_quat_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ zeros = torch.zeros_like(yaw) ++ return quat_from_euler_xyz(zeros, zeros, yaw - heading_yaw_offset) ++ ++ ++def _heading_yaw_with_offset(body_quat_w: torch.Tensor, heading_yaw_offset: float = 0.0) -> torch.Tensor: ++ roll, pitch, yaw = euler_xyz_from_quat(body_quat_w) ++ return wrap_to_pi(yaw - heading_yaw_offset) ++ ++ ++def _command_is_moving( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ commands = env.command_manager.get_command(command_name) ++ return (torch.norm(commands[:, :2], dim=1) > linear_threshold) | ( ++ torch.abs(commands[:, 2]) > angular_threshold ++ ) ++ ++ + def action_smoothness(env: ManagerBasedRLEnv) -> torch.Tensor: + """Penalize action second-order differences to encourage smooth control.""" + action_manager = env.action_manager +@@ -90,8 +131,8 @@ def feet_air_time_similarity( + if body_ids is None or len(body_ids) != 2: + raise ValueError("feet_air_time_similarity expects exactly two foot body ids in sensor_cfg.body_ids.") + +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, body_ids] +- last_air_time = contact_sensor.data.last_air_time[:, body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, body_ids]) + + recent_contact = torch.any(first_contact > 0.0, dim=1) + valid = torch.all(last_air_time > min_air_time, dim=1) +@@ -100,6 +141,61 @@ def feet_air_time_similarity( + return reward * (recent_contact & valid) + + ++def feet_air_time( ++ env: ManagerBasedRLEnv, command_name: str, sensor_cfg: SceneEntityCfg, threshold: float ++) -> torch.Tensor: ++ """Reward long steps while keeping contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ reward = torch.sum((last_air_time - threshold) * first_contact, dim=1) ++ reward *= torch.norm(env.command_manager.get_command(command_name)[:, :2], dim=1) > 0.1 ++ return reward ++ ++ ++def feet_air_time_positive_on_contact( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ sensor_cfg: SceneEntityCfg, ++ min_air_time: float = 0.05, ++ max_air_time: float = 0.25, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward completed swing times without penalizing short exploratory steps.""" ++ if max_air_time <= min_air_time: ++ raise ValueError("max_air_time must be greater than min_air_time.") ++ ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) ++ last_air_time = _to_env_device(env, contact_sensor.data.last_air_time[:, sensor_cfg.body_ids]) ++ completed_swing = torch.clamp(last_air_time - min_air_time, min=0.0, max=max_air_time - min_air_time) ++ reward = torch.sum(completed_swing * first_contact, dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ ++def feet_air_time_positive_biped( ++ env: ManagerBasedRLEnv, ++ command_name: str, ++ threshold: float, ++ sensor_cfg: SceneEntityCfg, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Dense biped air-time reward with contact-sensor tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ air_time = _to_env_device(env, contact_sensor.data.current_air_time[:, sensor_cfg.body_ids]) ++ contact_time = _to_env_device(env, contact_sensor.data.current_contact_time[:, sensor_cfg.body_ids]) ++ in_contact = contact_time > 0.0 ++ in_mode_time = torch.where(in_contact, contact_time, air_time) ++ single_stance = torch.sum(in_contact.int(), dim=1) == 1 ++ reward = torch.min(torch.where(single_stance.unsqueeze(-1), in_mode_time, 0.0), dim=1)[0] ++ reward = torch.clamp(reward, max=threshold) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return reward * moving ++ ++ + def track_lin_vel_xy_yaw_frame_exp( + env, sigma: float, command_name: str, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), stand_threshold: float = 0.06 + ) -> torch.Tensor: +@@ -132,6 +228,79 @@ def track_ang_vel_z_world_exp( + rew_abs = torch.exp(-ang_vel_error_abs * sigma) + return torch.where(stand_command, rew_abs, rew_square) + ++ ++def track_lin_vel_xy_yaw_frame_exp_body( ++ env, ++ sigma: float, ++ command_name: str, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++) -> torch.Tensor: ++ """Track planar velocity of a configured body in its yaw-aligned frame.""" ++ body_id = _single_body_id(asset_cfg, "track_lin_vel_xy_yaw_frame_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_quat_w = asset.data.body_quat_w[:, body_id, :] ++ body_lin_vel_w = asset.data.body_lin_vel_w[:, body_id, :] ++ vel_yaw = quat_apply_inverse(_heading_quat_with_offset(body_quat_w, heading_yaw_offset), body_lin_vel_w) ++ lin_vel_error_square = torch.sum(torch.square(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ lin_vel_error_abs = torch.sum(torch.abs(commands[:, :2] - vel_yaw[:, :2]), dim=1) ++ rew_square = torch.exp(-lin_vel_error_square * sigma) ++ rew_abs = torch.exp(-lin_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_body( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track world-frame yaw angular velocity of a configured body.""" ++ body_id = _single_body_id(asset_cfg, "track_ang_vel_z_world_exp_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ ang_vel_error_square = torch.square(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ ang_vel_error_abs = torch.abs(commands[:, 2] - asset.data.body_ang_vel_w[:, body_id, 2]) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ ++def track_ang_vel_z_world_exp_bodies( ++ env, ++ command_name: str, ++ sigma: float, ++ asset_cfg: SceneEntityCfg, ++ stand_threshold: float = 0.06, ++) -> torch.Tensor: ++ """Track yaw rate across all configured bodies so internal waist motion cannot satisfy the command alone.""" ++ body_ids = asset_cfg.body_ids ++ if body_ids is None or isinstance(body_ids, slice): ++ raise ValueError("track_ang_vel_z_world_exp_bodies requires one or more explicitly resolved body ids.") ++ ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ body_yaw_rates = asset.data.body_ang_vel_w[:, body_ids, 2] ++ command_yaw_rate = commands[:, 2].unsqueeze(1) ++ ang_vel_error_square = torch.mean(torch.square(command_yaw_rate - body_yaw_rates), dim=1) ++ ang_vel_error_abs = torch.mean(torch.abs(command_yaw_rate - body_yaw_rates), dim=1) ++ rew_square = torch.exp(-ang_vel_error_square * sigma) ++ rew_abs = torch.exp(-ang_vel_error_abs * sigma) ++ return torch.where(stand_command, rew_abs, rew_square) ++ ++ + def feet_stumble( + env, sensor_cfg: SceneEntityCfg, tangential_threshold: float = 2.0, normal_threshold: float = 1.0 + ) -> torch.Tensor: +@@ -141,7 +310,7 @@ def feet_stumble( + below ``normal_threshold``. Returns the count of stumbling feet per environment. + """ + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- forces = contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) + tangential = torch.norm(forces[..., :2], dim=-1) > tangential_threshold + small_normal = torch.abs(forces[..., 2]) < normal_threshold + stumble = tangential & small_normal +@@ -165,6 +334,7 @@ def feet_contact( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -194,6 +364,7 @@ def feet_contact_fixed( + contact_history = contact_sensor.data.net_forces_w_history + if contact_history is None: + contact_history = contact_sensor.data.net_forces_w.unsqueeze(1) ++ contact_history = _to_env_device(env, contact_history) + + contacts = contact_history[:, :, sensor_cfg.body_ids, 2] > force_threshold + contact_num_buf = torch.sum(contacts, dim=-1) +@@ -207,6 +378,68 @@ def feet_contact_fixed( + return reward + + ++def biped_contact_mode_reward( ++ env: ManagerBasedRLEnv, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward double support while standing and exactly one supporting foot while moving.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ contact_count = torch.sum(contacts.int(), dim=1) ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return torch.where(moving, contact_count == 1, contact_count == 2).float() ++ ++ ++def swing_foot_clearance_reward( ++ env: ManagerBasedRLEnv, ++ asset_cfg: SceneEntityCfg, ++ sensor_cfg: SceneEntityCfg, ++ command_name: str, ++ target_height: float, ++ std: float, ++ force_threshold: float = 5.0, ++ linear_threshold: float = 0.1, ++ angular_threshold: float = 0.1, ++) -> torch.Tensor: ++ """Reward swing-foot height relative to the supporting foot.""" ++ if std <= 0.0: ++ raise ValueError("std must be positive.") ++ ++ asset = env.scene[asset_cfg.name] ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ forces = _to_env_device(env, contact_sensor.data.net_forces_w[:, sensor_cfg.body_ids, :]) ++ contacts = torch.norm(forces, dim=-1) > force_threshold ++ single_stance = torch.sum(contacts.int(), dim=1) == 1 ++ swing_feet = ~contacts ++ ++ foot_height = asset.data.body_pos_w[:, asset_cfg.body_ids, 2] ++ if foot_height.shape[1] != contacts.shape[1]: ++ raise ValueError("asset_cfg and sensor_cfg must resolve the same number of feet.") ++ stance_height = torch.sum(foot_height * contacts, dim=1, keepdim=True) ++ swing_clearance = foot_height - stance_height ++ clearance_reward = torch.exp(-torch.square(swing_clearance - target_height) / (std * std)) ++ clearance_reward = torch.sum(clearance_reward * swing_feet, dim=1) ++ ++ moving = _command_is_moving(env, command_name, linear_threshold, angular_threshold) ++ return clearance_reward * single_stance * moving ++ ++ ++def feet_slide(env: ManagerBasedRLEnv, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: ++ """Penalize foot sliding while keeping contact tensors on the env device.""" ++ contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 ++ asset = env.scene[asset_cfg.name] ++ body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] ++ return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) ++ ++ + + def feet_position(env, + asset_cfg: SceneEntityCfg, +@@ -253,6 +486,43 @@ def feet_position(env, + return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) + + ++def feet_position_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ desired_foot_positions: tuple[tuple[float, float, float], ...], ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ scale: float = 3.0, ++) -> torch.Tensor: ++ """Reward standing foot positions relative to a configured reference body.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_position_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ stand_command = (torch.norm(commands[:, :2], dim=1) < stand_threshold) & ( ++ torch.abs(commands[:, 2]) < stand_threshold ++ ) ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = asset.data.body_pos_w[:, asset_cfg.body_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_pos_w.shape ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat_per_foot = heading_quat.unsqueeze(1).expand(-1, num_feet, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat_per_foot, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, num_feet, 3) ++ ++ desired = torch.tensor(desired_foot_positions, dtype=feet_pos_heading.dtype, device=feet_pos_heading.device) ++ if desired.shape != (num_feet, 3): ++ raise ValueError(f"desired_foot_positions must have shape ({num_feet}, 3), got {tuple(desired.shape)}.") ++ position_error = torch.sum(torch.abs(feet_pos_heading - desired.unsqueeze(0)), dim=(1, 2)) ++ reward_stand = torch.exp(-position_error * scale) ++ return torch.where(stand_command, reward_stand, torch.ones_like(reward_stand)) ++ ++ + def feet_regulation( + env, + asset_cfg: SceneEntityCfg, +@@ -293,10 +563,10 @@ def feet_landing_velocity( + ) -> torch.Tensor: + """Penalize high downward landing speed at first contact to reduce impact noise.""" + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- first_contact = contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids] ++ first_contact = _to_env_device(env, contact_sensor.compute_first_contact(env.step_dt)[:, sensor_cfg.body_ids]) + + asset = env.scene[asset_cfg.name] +- foot_vel_z = asset.data.body_lin_vel_w[:, sensor_cfg.body_ids, 2] ++ foot_vel_z = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, 2] + landing_speed = torch.clamp(-foot_vel_z - velocity_threshold, min=0.0) + penalty = torch.sum(torch.pow(landing_speed, power) * first_contact, dim=1) + return penalty +@@ -350,6 +620,220 @@ def base_height_tracking(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot" + height_error = torch.abs(asset.data.root_pos_w[:, 2] - target_height) + return torch.exp(-height_error * 30.0) + ++ ++def body_height_tracking( ++ env, ++ asset_cfg: SceneEntityCfg, ++ target_height: float, ++ scale: float = 30.0, ++) -> torch.Tensor: ++ """Reward keeping a configured body height near a target height.""" ++ body_id = _single_body_id(asset_cfg, "body_height_tracking") ++ asset = env.scene[asset_cfg.name] ++ height_error = torch.abs(asset.data.body_pos_w[:, body_id, 2] - target_height) ++ return torch.exp(-height_error * scale) ++ ++ ++def body_vertical_velocity_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ deadband: float = 0.0, ++) -> torch.Tensor: ++ """Penalize vertical body velocity outside a small natural-motion deadband.""" ++ body_id = _single_body_id(asset_cfg, "body_vertical_velocity_l2") ++ asset = env.scene[asset_cfg.name] ++ vertical_speed = torch.abs(asset.data.body_lin_vel_w[:, body_id, 2]) ++ return torch.square(torch.clamp(vertical_speed - deadband, min=0.0)) ++ ++ ++def body_roll_pitch_ang_vel_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ deadband: float = 0.0, ++) -> torch.Tensor: ++ """Penalize horizontal angular speed while allowing normal gait oscillation.""" ++ body_id = _single_body_id(asset_cfg, "body_roll_pitch_ang_vel_l2") ++ asset = env.scene[asset_cfg.name] ++ horizontal_ang_speed = torch.linalg.norm(asset.data.body_ang_vel_w[:, body_id, :2], dim=1) ++ return torch.square(torch.clamp(horizontal_ang_speed - deadband, min=0.0)) ++ ++ ++def joint_deviation_l1_with_deadband( ++ env, ++ asset_cfg: SceneEntityCfg, ++ deadband: float = 0.0, ++) -> torch.Tensor: ++ """Penalize joint deviation from defaults while allowing a small neutral range.""" ++ if deadband < 0.0: ++ raise ValueError("deadband must be non-negative.") ++ asset = env.scene[asset_cfg.name] ++ joint_error = torch.abs( ++ asset.data.joint_pos[:, asset_cfg.joint_ids] - asset.data.default_joint_pos[:, asset_cfg.joint_ids] ++ ) ++ return torch.sum(torch.clamp(joint_error - deadband, min=0.0), dim=1) ++ ++ ++def _forward_swing_speed_scale( ++ commands: torch.Tensor, ++ min_forward_speed: float, ++ full_swing_speed: float, ++ min_swing_scale: float, ++) -> torch.Tensor: ++ """Scale arm swing with commanded forward speed while keeping slow walking visible.""" ++ if full_swing_speed <= min_forward_speed: ++ raise ValueError("full_swing_speed must be greater than min_forward_speed.") ++ if not 0.0 <= min_swing_scale <= 1.0: ++ raise ValueError("min_swing_scale must be in [0, 1].") ++ ++ forward_speed = torch.abs(commands[:, 0]) ++ speed_progress = torch.clamp( ++ (forward_speed - min_forward_speed) / (full_swing_speed - min_forward_speed), ++ min=0.0, ++ max=1.0, ++ ) ++ moving = forward_speed >= min_forward_speed ++ moving_scale = min_swing_scale + (1.0 - min_swing_scale) * speed_progress ++ return torch.where(moving, moving_scale, torch.zeros_like(moving_scale)) ++ ++ ++def cross_body_arm_swing_reward( ++ env, ++ arm_asset_cfg: SceneEntityCfg, ++ feet_asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ heading_yaw_offset: float = 0.0, ++ min_forward_speed: float = 0.1, ++ full_swing_speed: float = 0.6, ++ min_swing_scale: float = 0.0, ++ phase_distance: float = 0.25, ++ shoulder_amplitude: float = 0.18, ++ elbow_flexion: float = 0.15, ++ shoulder_phase_signs: tuple[float, float] = (-1.0, -1.0), ++ elbow_flexion_signs: tuple[float, float] = (1.0, -1.0), ++ std: float = 0.2, ++) -> torch.Tensor: ++ """Track speed-scaled shoulder and elbow targets that oppose the leg phase. ++ ++ Arm joints must be ordered as left/right shoulder pitch followed by left/right elbow flexion. ++ Feet must be ordered left then right. ++ """ ++ if phase_distance <= 0.0 or std <= 0.0: ++ raise ValueError("phase_distance and std must be positive.") ++ ++ joint_ids = arm_asset_cfg.joint_ids ++ foot_ids = feet_asset_cfg.body_ids ++ if joint_ids is None or isinstance(joint_ids, slice) or len(joint_ids) != 4: ++ raise ValueError("cross_body_arm_swing_reward requires four ordered arm joint ids.") ++ if foot_ids is None or isinstance(foot_ids, slice) or len(foot_ids) != 2: ++ raise ValueError("cross_body_arm_swing_reward requires two ordered foot body ids.") ++ ++ reference_body_id = _single_body_id(reference_body_cfg, "cross_body_arm_swing_reward") ++ asset = env.scene[arm_asset_cfg.name] ++ feet_asset = env.scene[feet_asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ feet_pos_w = feet_asset.data.body_pos_w[:, foot_ids, :] ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ feet_pos_rel = feet_pos_w - reference_pos_w.unsqueeze(1) ++ ++ num_envs = feet_pos_w.shape[0] ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ heading_quat = heading_quat.unsqueeze(1).expand(-1, 2, -1).reshape(-1, 4) ++ feet_pos_heading = quat_apply_inverse(heading_quat, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, 2, 3) ++ leg_phase = torch.clamp( ++ (feet_pos_heading[:, 0, 0] - feet_pos_heading[:, 1, 0]) / phase_distance, ++ min=-1.0, ++ max=1.0, ++ ) ++ ++ commands = env.command_manager.get_command(command_name) ++ speed_scale = _forward_swing_speed_scale( ++ commands, ++ min_forward_speed=min_forward_speed, ++ full_swing_speed=full_swing_speed, ++ min_swing_scale=min_swing_scale, ++ ) ++ ++ joint_pos = asset.data.joint_pos[:, joint_ids] ++ target_pos = asset.data.default_joint_pos[:, joint_ids].clone() ++ shoulder_signs = joint_pos.new_tensor(shoulder_phase_signs) ++ elbow_signs = joint_pos.new_tensor(elbow_flexion_signs) ++ target_pos[:, :2] += ( ++ shoulder_amplitude * speed_scale * leg_phase ++ ).unsqueeze(1) * shoulder_signs.unsqueeze(0) ++ target_pos[:, 2:] += (elbow_flexion * speed_scale).unsqueeze(1) * elbow_signs.unsqueeze(0) ++ ++ mean_square_error = torch.mean(torch.square(joint_pos - target_pos), dim=1) ++ return torch.exp(-mean_square_error / (std * std)) ++ ++ ++def contralateral_arm_phase_reward( ++ env, ++ arm_body_cfg: SceneEntityCfg, ++ feet_asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ heading_yaw_offset: float = 0.0, ++ min_forward_speed: float = 0.1, ++ full_swing_speed: float = 0.6, ++ min_swing_scale: float = 0.0, ++ phase_distance: float = 0.25, ++ arm_phase_amplitude: float = 0.1, ++ std: float = 0.05, ++) -> torch.Tensor: ++ """Reward physical left/right arm motion that is opposite to the same-side leg. ++ ++ Arm bodies and feet must both be ordered left then right. When the left foot is ahead, ++ the right arm body is expected to be ahead of the left arm body, and vice versa. ++ Using upper-arm/elbow bodies prevents wrist motion from satisfying the phase target. ++ """ ++ if phase_distance <= 0.0 or arm_phase_amplitude <= 0.0 or std <= 0.0: ++ raise ValueError("phase_distance, arm_phase_amplitude, and std must be positive.") ++ ++ arm_body_ids = arm_body_cfg.body_ids ++ foot_ids = feet_asset_cfg.body_ids ++ if arm_body_ids is None or isinstance(arm_body_ids, slice) or len(arm_body_ids) != 2: ++ raise ValueError("contralateral_arm_phase_reward requires two ordered arm body ids.") ++ if foot_ids is None or isinstance(foot_ids, slice) or len(foot_ids) != 2: ++ raise ValueError("contralateral_arm_phase_reward requires two ordered foot body ids.") ++ ++ reference_body_id = _single_body_id(reference_body_cfg, "contralateral_arm_phase_reward") ++ arm_asset = env.scene[arm_body_cfg.name] ++ feet_asset = env.scene[feet_asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ ++ reference_pos_w = reference_asset.data.body_pos_w[:, reference_body_id, :] ++ reference_quat_w = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ heading_quat = _heading_quat_with_offset(reference_quat_w, heading_yaw_offset) ++ ++ arm_pos_rel = arm_asset.data.body_pos_w[:, arm_body_ids, :] - reference_pos_w.unsqueeze(1) ++ feet_pos_rel = feet_asset.data.body_pos_w[:, foot_ids, :] - reference_pos_w.unsqueeze(1) ++ num_envs = reference_pos_w.shape[0] ++ heading_quat_pairs = heading_quat.unsqueeze(1).expand(-1, 2, -1).reshape(-1, 4) ++ arm_pos_heading = quat_apply_inverse(heading_quat_pairs, arm_pos_rel.reshape(-1, 3)).reshape(num_envs, 2, 3) ++ feet_pos_heading = quat_apply_inverse(heading_quat_pairs, feet_pos_rel.reshape(-1, 3)).reshape(num_envs, 2, 3) ++ ++ leg_phase = torch.clamp( ++ (feet_pos_heading[:, 0, 0] - feet_pos_heading[:, 1, 0]) / phase_distance, ++ min=-1.0, ++ max=1.0, ++ ) ++ commands = env.command_manager.get_command(command_name) ++ speed_scale = _forward_swing_speed_scale( ++ commands, ++ min_forward_speed=min_forward_speed, ++ full_swing_speed=full_swing_speed, ++ min_swing_scale=min_swing_scale, ++ ) ++ ++ physical_arm_phase = arm_pos_heading[:, 1, 0] - arm_pos_heading[:, 0, 0] ++ target_arm_phase = arm_phase_amplitude * speed_scale * leg_phase ++ phase_error = physical_arm_phase - target_arm_phase ++ return torch.exp(-torch.square(phase_error) / (std * std)) ++ ++ + def energy_cost(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Penalize energy consumption approximated by the sum of squared joint torques.""" + asset = env.scene[asset_cfg.name] +@@ -385,6 +869,50 @@ def feet_orientation(env, asset_cfg: SceneEntityCfg, command_name: str, stand_th + return torch.exp(-rew * 2.0) + + ++def feet_orientation_relative_to_body( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ command_name: str, ++ stand_threshold: float = 0.06, ++ heading_yaw_offset: float = 0.0, ++ foot_frame_offsets_rpy: tuple[tuple[float, float, float], ...] | None = None, ++ scale: float = 2.0, ++) -> torch.Tensor: ++ """Reward physical sole orientation relative to a configured reference body's heading.""" ++ reference_body_id = _single_body_id(reference_body_cfg, "feet_orientation_relative_to_body") ++ commands = env.command_manager.get_command(command_name) ++ yaw_command = torch.abs(commands[:, 2]) > stand_threshold ++ ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ feet_quat = asset.data.body_quat_w[:, asset_cfg.body_ids, :] ++ reference_quat = reference_asset.data.body_quat_w[:, reference_body_id, :] ++ ++ num_envs, num_feet, _ = feet_quat.shape ++ feet_flat = feet_quat.reshape(-1, 4) ++ if foot_frame_offsets_rpy is not None: ++ offsets = torch.tensor(foot_frame_offsets_rpy, dtype=feet_quat.dtype, device=feet_quat.device) ++ if offsets.shape != (num_feet, 3): ++ raise ValueError(f"foot_frame_offsets_rpy must have shape ({num_feet}, 3), got {tuple(offsets.shape)}.") ++ offset_quat = quat_from_euler_xyz(offsets[:, 0], offsets[:, 1], offsets[:, 2]) ++ offset_quat = offset_quat.unsqueeze(0).expand(num_envs, -1, -1).reshape(-1, 4) ++ feet_flat = quat_mul(feet_flat, offset_quat) ++ ++ roll, pitch, yaw = euler_xyz_from_quat(feet_flat) ++ roll = roll.reshape(num_envs, num_feet) ++ pitch = pitch.reshape(num_envs, num_feet) ++ yaw = yaw.reshape(num_envs, num_feet) ++ ++ reference_yaw = _heading_yaw_with_offset(reference_quat, heading_yaw_offset) ++ feet_roll_pitch_error = torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) ++ feet_yaw_error = torch.abs(wrap_to_pi(yaw - reference_yaw.unsqueeze(1))) ++ ++ rew = torch.sum(feet_roll_pitch_error + feet_yaw_error, dim=1) ++ rew[yaw_command] = torch.sum(feet_roll_pitch_error[yaw_command], dim=1) ++ return torch.exp(-rew * scale) ++ ++ + def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + """Reward keeping the base roll/pitch near zero.""" + asset = env.scene[asset_cfg.name] +@@ -392,6 +920,50 @@ def base_orientation(env, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) - + base_euler = torch.stack((roll, pitch, yaw), dim=-1) + return torch.exp(-torch.sum(torch.abs(base_euler[:, :2]), dim=-1) * 10.0) + ++ ++def body_orientation(env, asset_cfg: SceneEntityCfg, scale: float = 10.0) -> torch.Tensor: ++ """Reward keeping a configured body's roll/pitch near zero.""" ++ body_id = _single_body_id(asset_cfg, "body_orientation") ++ asset = env.scene[asset_cfg.name] ++ roll, pitch, yaw = euler_xyz_from_quat(asset.data.body_quat_w[:, body_id, :]) ++ return torch.exp(-torch.sum(torch.abs(torch.stack((roll, pitch), dim=-1)), dim=-1) * scale) ++ ++ ++def body_yaw_alignment( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++ heading_yaw_offset: float = 0.0, ++ reference_heading_yaw_offset: float = 0.0, ++ scale: float = 4.0, ++) -> torch.Tensor: ++ """Reward keeping one body's heading aligned with another body's heading.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_alignment") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_alignment") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ body_yaw = _heading_yaw_with_offset(asset.data.body_quat_w[:, body_id, :], heading_yaw_offset) ++ reference_yaw = _heading_yaw_with_offset( ++ reference_asset.data.body_quat_w[:, reference_body_id, :], reference_heading_yaw_offset ++ ) ++ return torch.exp(-torch.abs(wrap_to_pi(body_yaw - reference_yaw)) * scale) ++ ++ ++def body_yaw_rate_difference_l2( ++ env, ++ asset_cfg: SceneEntityCfg, ++ reference_body_cfg: SceneEntityCfg, ++) -> torch.Tensor: ++ """Penalize relative world-frame yaw rate between two configured bodies.""" ++ body_id = _single_body_id(asset_cfg, "body_yaw_rate_difference_l2") ++ reference_body_id = _single_body_id(reference_body_cfg, "body_yaw_rate_difference_l2") ++ asset = env.scene[asset_cfg.name] ++ reference_asset = env.scene[reference_body_cfg.name] ++ yaw_rate = asset.data.body_ang_vel_w[:, body_id, 2] ++ reference_yaw_rate = reference_asset.data.body_ang_vel_w[:, reference_body_id, 2] ++ return torch.square(yaw_rate - reference_yaw_rate) ++ ++ + def reward_waist_pos( + env, + asset_cfg: SceneEntityCfg = SceneEntityCfg("robot"), +@@ -412,7 +984,9 @@ def reward_waist_pos( + + def penalize_foot_stumble(env, sensor_cfg: SceneEntityCfg, asset_cfg: SceneEntityCfg = SceneEntityCfg("robot")) -> torch.Tensor: + contact_sensor: ContactSensor = env.scene.sensors[sensor_cfg.name] +- contacts = contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] > 1.0 ++ contacts = _to_env_device( ++ env, contact_sensor.data.net_forces_w_history[:, :, sensor_cfg.body_ids, :].norm(dim=-1).max(dim=1)[0] ++ ) > 1.0 + asset = env.scene[asset_cfg.name] + body_vel = asset.data.body_lin_vel_w[:, asset_cfg.body_ids, :2] + return torch.sum(body_vel.norm(dim=-1) * contacts, dim=1) \ No newline at end of file diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/model_3295.pt b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/model_3295.pt new file mode 100644 index 0000000..2194c32 Binary files /dev/null and b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/model_3295.pt differ diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/params/agent.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/params/agent.yaml new file mode 100644 index 0000000..2530044 --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/params/agent.yaml @@ -0,0 +1,63 @@ +seed: 42 +device: cuda:0 +num_steps_per_env: 24 +max_iterations: 300 +empirical_normalization: {} +obs_groups: + actor: + - policy + critic: + - policy +clip_actions: null +check_for_nan: true +save_interval: 50 +experiment_name: velocity_flat_terrain_gen2 +run_name: gen2_natural_arm_swing_stage3_v1 +logger: tensorboard +neptune_project: isaaclab +wandb_project: isaaclab +resume: true +load_run: 2026-07-13_09-55-02_gen2_speed_flat_consolidation_v2 +load_checkpoint: model_2996.pt +class_name: OnPolicyRunner +actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar +critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null +algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.005 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null +policy: {} diff --git a/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/params/env.yaml b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/params/env.yaml new file mode 100644 index 0000000..a2ec67e --- /dev/null +++ b/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1/params/env.yaml @@ -0,0 +1,2605 @@ +viewer: + eye: !!python/tuple + - 7.5 + - 7.5 + - 7.5 + lookat: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: !!python/tuple + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null +sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: !!python/tuple + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null +ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow +seed: 42 +decimation: 5 +scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: /World/envs/env_.*/Robot + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 1.282 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + ang_vel: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 4096 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: 3.0 + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: !!python/tuple + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: /World/envs/env_.*/Robot/.* + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: !!python/tuple + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + rot: !!python/tuple + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false +recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false +observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true +actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.06 + .*_arm_J6: 0.06 + .*_arm_J7: 0.06 + offset: 0.0 + preserve_order: true + use_default_offset: true +events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: .* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + static_friction_range: !!python/tuple + - 0.3 + - 1.6 + dynamic_friction_range: !!python/tuple + - 0.3 + - 1.2 + restitution_range: !!python/tuple + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + pos_distribution_params: !!python/tuple + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + com_range: + x: !!python/tuple + - -0.03 + - 0.03 + y: !!python/tuple + - -0.06 + - 0.06 + z: !!python/tuple + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: !!python/tuple + - -0.5 + - 0.5 + y: !!python/tuple + - -0.5 + - 0.5 + yaw: !!python/tuple + - -3.14 + - 3.14 + velocity_range: + x: !!python/tuple + - 0.0 + - 0.0 + y: !!python/tuple + - 0.0 + - 0.0 + z: !!python/tuple + - 0.0 + - 0.0 + roll: !!python/tuple + - 0.0 + - 0.0 + pitch: !!python/tuple + - 0.0 + - 0.0 + yaw: !!python/tuple + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: !!python/tuple + - 0.95 + - 1.05 + velocity_range: !!python/tuple + - -0.2 + - 0.2 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 +rerender_on_reset: false +num_rerenders_on_reset: 0 +wait_for_textures: true +xr: null +teleop_devices: + devices: {} +export_io_descriptors: false +log_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/logs/rsl_rl/velocity_flat_terrain_gen2/2026-07-13_10-31-58_gen2_natural_arm_swing_stage3_v1 +is_finite_horizon: false +episode_length_s: 20.0 +rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - waist_link_2 + - body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: !!python/tuple + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: !!python/tuple + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J2 + - .*_arm_J3 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tolerance: 0.05 + scale: 4.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_l1_with_deadband + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + deadband: 0.03 + weight: -0.25 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -0.7 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.05 + weight: -2.0 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.1 + weight: -0.1 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: body_link + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + deadband: 0.1 + weight: -0.1 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + velocity_threshold: 0.2 + power: 2.0 + weight: -1.0 + cross_body_arm_swing: + func: engineai_lab.tasks.velocity.mdp.rewards:cross_body_arm_swing_reward + params: + arm_asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + shoulder_amplitude: 0.16428571428571428 + elbow_flexion: 0.1232142857142857 + shoulder_phase_signs: !!python/tuple + - -1.0 + - -1.0 + elbow_flexion_signs: !!python/tuple + - 1.0 + - -1.0 + std: 0.12 + weight: 0.8 + contralateral_arm_phase: + func: engineai_lab.tasks.velocity.mdp.rewards:contralateral_arm_phase_reward + params: + arm_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_arm_link_4 + - right_arm_link_4 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: waist_link_2 + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + arm_phase_amplitude: 0.1 + std: 0.045 + weight: 0.5 + arm_swing_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + weight: -0.001 + wrist_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: null + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: true + weight: -0.004 +terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: !!python/object/apply:builtins.slice + - null + - null + - null + fixed_tendon_names: null + fixed_tendon_ids: !!python/object/apply:builtins.slice + - null + - null + - null + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: !!python/object/apply:builtins.slice + - null + - null + - null + object_collection_names: null + object_collection_ids: !!python/object/apply:builtins.slice + - null + - null + - null + preserve_order: false + threshold: 1.0 + time_out: false +curriculum: + terrain_levels: null +commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: !!python/tuple + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: !!python/tuple + - 0.2 + - 0.6 + lin_vel_y: !!python/tuple + - -0.05 + - 0.05 + ang_vel_z: !!python/tuple + - -0.2 + - 0.2 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 1.0 + - 0.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: !!python/tuple + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: !!python/tuple + - 0.0 + - 0.0 + - 1.0 + emissive_color: !!python/tuple + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.8 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 diff --git a/outputs/2026-07-09/10-41-59/.hydra/config.yaml b/outputs/2026-07-09/10-41-59/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/10-41-59/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/10-41-59/.hydra/hydra.yaml b/outputs/2026-07-09/10-41-59/.hydra/hydra.yaml new file mode 100644 index 0000000..3974f74 --- /dev/null +++ b/outputs/2026-07-09/10-41-59/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/10-41-59 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/10-41-59/.hydra/overrides.yaml b/outputs/2026-07-09/10-41-59/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/10-41-59/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/10-41-59/hydra.log b/outputs/2026-07-09/10-41-59/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/11-19-57/.hydra/config.yaml b/outputs/2026-07-09/11-19-57/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/11-19-57/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/11-19-57/.hydra/hydra.yaml b/outputs/2026-07-09/11-19-57/.hydra/hydra.yaml new file mode 100644 index 0000000..09effa3 --- /dev/null +++ b/outputs/2026-07-09/11-19-57/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/11-19-57 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/11-19-57/.hydra/overrides.yaml b/outputs/2026-07-09/11-19-57/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/11-19-57/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/11-19-57/hydra.log b/outputs/2026-07-09/11-19-57/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/11-20-11/.hydra/config.yaml b/outputs/2026-07-09/11-20-11/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/11-20-11/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/11-20-11/.hydra/hydra.yaml b/outputs/2026-07-09/11-20-11/.hydra/hydra.yaml new file mode 100644 index 0000000..f6b6ae9 --- /dev/null +++ b/outputs/2026-07-09/11-20-11/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/11-20-11 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/11-20-11/.hydra/overrides.yaml b/outputs/2026-07-09/11-20-11/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/11-20-11/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/11-20-11/hydra.log b/outputs/2026-07-09/11-20-11/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/11-22-15/.hydra/config.yaml b/outputs/2026-07-09/11-22-15/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/11-22-15/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/11-22-15/.hydra/hydra.yaml b/outputs/2026-07-09/11-22-15/.hydra/hydra.yaml new file mode 100644 index 0000000..c4e82dd --- /dev/null +++ b/outputs/2026-07-09/11-22-15/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/11-22-15 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/11-22-15/.hydra/overrides.yaml b/outputs/2026-07-09/11-22-15/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/11-22-15/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/11-22-15/hydra.log b/outputs/2026-07-09/11-22-15/hydra.log new file mode 100644 index 0000000..94e85a7 --- /dev/null +++ b/outputs/2026-07-09/11-22-15/hydra.log @@ -0,0 +1 @@ +[2026-07-09 11:22:15,376][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-09/11-31-08/.hydra/config.yaml b/outputs/2026-07-09/11-31-08/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/11-31-08/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/11-31-08/.hydra/hydra.yaml b/outputs/2026-07-09/11-31-08/.hydra/hydra.yaml new file mode 100644 index 0000000..d64576c --- /dev/null +++ b/outputs/2026-07-09/11-31-08/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/11-31-08 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/11-31-08/.hydra/overrides.yaml b/outputs/2026-07-09/11-31-08/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/11-31-08/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/11-31-08/hydra.log b/outputs/2026-07-09/11-31-08/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/12-31-13/.hydra/config.yaml b/outputs/2026-07-09/12-31-13/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/12-31-13/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/12-31-13/.hydra/hydra.yaml b/outputs/2026-07-09/12-31-13/.hydra/hydra.yaml new file mode 100644 index 0000000..dfa99b0 --- /dev/null +++ b/outputs/2026-07-09/12-31-13/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/12-31-13 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/12-31-13/.hydra/overrides.yaml b/outputs/2026-07-09/12-31-13/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/12-31-13/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/12-31-13/hydra.log b/outputs/2026-07-09/12-31-13/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/12-32-03/.hydra/config.yaml b/outputs/2026-07-09/12-32-03/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/12-32-03/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/12-32-03/.hydra/hydra.yaml b/outputs/2026-07-09/12-32-03/.hydra/hydra.yaml new file mode 100644 index 0000000..33ace0e --- /dev/null +++ b/outputs/2026-07-09/12-32-03/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/12-32-03 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/12-32-03/.hydra/overrides.yaml b/outputs/2026-07-09/12-32-03/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/12-32-03/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/12-32-03/hydra.log b/outputs/2026-07-09/12-32-03/hydra.log new file mode 100644 index 0000000..80f5fee --- /dev/null +++ b/outputs/2026-07-09/12-32-03/hydra.log @@ -0,0 +1 @@ +[2026-07-09 12:32:03,666][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-09/12-32-50/.hydra/config.yaml b/outputs/2026-07-09/12-32-50/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/12-32-50/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/12-32-50/.hydra/hydra.yaml b/outputs/2026-07-09/12-32-50/.hydra/hydra.yaml new file mode 100644 index 0000000..a22622e --- /dev/null +++ b/outputs/2026-07-09/12-32-50/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/12-32-50 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/12-32-50/.hydra/overrides.yaml b/outputs/2026-07-09/12-32-50/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/12-32-50/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/12-32-50/hydra.log b/outputs/2026-07-09/12-32-50/hydra.log new file mode 100644 index 0000000..3ac4c53 --- /dev/null +++ b/outputs/2026-07-09/12-32-50/hydra.log @@ -0,0 +1 @@ +[2026-07-09 12:32:50,413][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-09/12-36-35/.hydra/config.yaml b/outputs/2026-07-09/12-36-35/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/12-36-35/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/12-36-35/.hydra/hydra.yaml b/outputs/2026-07-09/12-36-35/.hydra/hydra.yaml new file mode 100644 index 0000000..f84a982 --- /dev/null +++ b/outputs/2026-07-09/12-36-35/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/12-36-35 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/12-36-35/.hydra/overrides.yaml b/outputs/2026-07-09/12-36-35/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/12-36-35/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/12-36-35/hydra.log b/outputs/2026-07-09/12-36-35/hydra.log new file mode 100644 index 0000000..8656035 --- /dev/null +++ b/outputs/2026-07-09/12-36-35/hydra.log @@ -0,0 +1 @@ +[2026-07-09 12:36:35,567][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-09/12-38-06/.hydra/config.yaml b/outputs/2026-07-09/12-38-06/.hydra/config.yaml new file mode 100644 index 0000000..5297f13 --- /dev/null +++ b/outputs/2026-07-09/12-38-06/.hydra/config.yaml @@ -0,0 +1,1683 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 128 + - 128 + - 128 + critic_hidden_dims: + - 128 + - 128 + - 128 diff --git a/outputs/2026-07-09/12-38-06/.hydra/hydra.yaml b/outputs/2026-07-09/12-38-06/.hydra/hydra.yaml new file mode 100644 index 0000000..1677203 --- /dev/null +++ b/outputs/2026-07-09/12-38-06/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/12-38-06 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/12-38-06/.hydra/overrides.yaml b/outputs/2026-07-09/12-38-06/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/12-38-06/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/12-38-06/hydra.log b/outputs/2026-07-09/12-38-06/hydra.log new file mode 100644 index 0000000..a39193c --- /dev/null +++ b/outputs/2026-07-09/12-38-06/hydra.log @@ -0,0 +1 @@ +[2026-07-09 12:38:06,814][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-09/12-42-45/.hydra/config.yaml b/outputs/2026-07-09/12-42-45/.hydra/config.yaml new file mode 100644 index 0000000..53aa5c8 --- /dev/null +++ b/outputs/2026-07-09/12-42-45/.hydra/config.yaml @@ -0,0 +1,1699 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + amp: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: 5 + flatten_history_dim: true + history: + func: engineai_lab.tasks.velocity.config.pm01.flat_amp_env_cfg:dummy_history_term + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 80000 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 500 + experiment_name: velocity_flat_terrain_amp + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: engineai_lab.algorithms.amp_ppo:AMPPPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} + style_reward_weight: 2.0 + frame_length: 5 + frame_dim: 26 + frame_normalization: true + discriminator_hidden_dims: + - 512 + - 256 + - 128 + dataset_path: dataset/config/dataset.yaml diff --git a/outputs/2026-07-09/12-42-45/.hydra/hydra.yaml b/outputs/2026-07-09/12-42-45/.hydra/hydra.yaml new file mode 100644 index 0000000..b0075d4 --- /dev/null +++ b/outputs/2026-07-09/12-42-45/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-AMP-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/12-42-45 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/12-42-45/.hydra/overrides.yaml b/outputs/2026-07-09/12-42-45/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/12-42-45/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/12-42-45/hydra.log b/outputs/2026-07-09/12-42-45/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/12-43-22/.hydra/config.yaml b/outputs/2026-07-09/12-43-22/.hydra/config.yaml new file mode 100644 index 0000000..53aa5c8 --- /dev/null +++ b/outputs/2026-07-09/12-43-22/.hydra/config.yaml @@ -0,0 +1,1699 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + amp: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: 5 + flatten_history_dim: true + history: + func: engineai_lab.tasks.velocity.config.pm01.flat_amp_env_cfg:dummy_history_term + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 80000 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 500 + experiment_name: velocity_flat_terrain_amp + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: engineai_lab.algorithms.amp_ppo:AMPPPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} + style_reward_weight: 2.0 + frame_length: 5 + frame_dim: 26 + frame_normalization: true + discriminator_hidden_dims: + - 512 + - 256 + - 128 + dataset_path: dataset/config/dataset.yaml diff --git a/outputs/2026-07-09/12-43-22/.hydra/hydra.yaml b/outputs/2026-07-09/12-43-22/.hydra/hydra.yaml new file mode 100644 index 0000000..0a1e8f0 --- /dev/null +++ b/outputs/2026-07-09/12-43-22/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-AMP-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/12-43-22 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/12-43-22/.hydra/overrides.yaml b/outputs/2026-07-09/12-43-22/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/12-43-22/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/12-43-22/hydra.log b/outputs/2026-07-09/12-43-22/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/15-26-24/.hydra/config.yaml b/outputs/2026-07-09/15-26-24/.hydra/config.yaml new file mode 100644 index 0000000..53aa5c8 --- /dev/null +++ b/outputs/2026-07-09/15-26-24/.hydra/config.yaml @@ -0,0 +1,1699 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + amp: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: 5 + flatten_history_dim: true + history: + func: engineai_lab.tasks.velocity.config.pm01.flat_amp_env_cfg:dummy_history_term + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 80000 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 500 + experiment_name: velocity_flat_terrain_amp + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: engineai_lab.algorithms.amp_ppo:AMPPPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} + style_reward_weight: 2.0 + frame_length: 5 + frame_dim: 26 + frame_normalization: true + discriminator_hidden_dims: + - 512 + - 256 + - 128 + dataset_path: dataset/config/dataset.yaml diff --git a/outputs/2026-07-09/15-26-24/.hydra/hydra.yaml b/outputs/2026-07-09/15-26-24/.hydra/hydra.yaml new file mode 100644 index 0000000..3a3044c --- /dev/null +++ b/outputs/2026-07-09/15-26-24/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-AMP-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/15-26-24 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/15-26-24/.hydra/overrides.yaml b/outputs/2026-07-09/15-26-24/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/15-26-24/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/15-26-24/hydra.log b/outputs/2026-07-09/15-26-24/hydra.log new file mode 100644 index 0000000..b269aa3 --- /dev/null +++ b/outputs/2026-07-09/15-26-24/hydra.log @@ -0,0 +1 @@ +[2026-07-09 15:26:24,542][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-09/15-27-03/.hydra/config.yaml b/outputs/2026-07-09/15-27-03/.hydra/config.yaml new file mode 100644 index 0000000..53aa5c8 --- /dev/null +++ b/outputs/2026-07-09/15-27-03/.hydra/config.yaml @@ -0,0 +1,1699 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + amp: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: 5 + flatten_history_dim: true + history: + func: engineai_lab.tasks.velocity.config.pm01.flat_amp_env_cfg:dummy_history_term + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 80000 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 500 + experiment_name: velocity_flat_terrain_amp + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: engineai_lab.algorithms.amp_ppo:AMPPPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} + style_reward_weight: 2.0 + frame_length: 5 + frame_dim: 26 + frame_normalization: true + discriminator_hidden_dims: + - 512 + - 256 + - 128 + dataset_path: dataset/config/dataset.yaml diff --git a/outputs/2026-07-09/15-27-03/.hydra/hydra.yaml b/outputs/2026-07-09/15-27-03/.hydra/hydra.yaml new file mode 100644 index 0000000..0877f1f --- /dev/null +++ b/outputs/2026-07-09/15-27-03/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-AMP-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/15-27-03 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/15-27-03/.hydra/overrides.yaml b/outputs/2026-07-09/15-27-03/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/15-27-03/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/15-27-03/hydra.log b/outputs/2026-07-09/15-27-03/hydra.log new file mode 100644 index 0000000..bb4d00d --- /dev/null +++ b/outputs/2026-07-09/15-27-03/hydra.log @@ -0,0 +1 @@ +[2026-07-09 15:27:03,614][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-09/15-28-55/.hydra/config.yaml b/outputs/2026-07-09/15-28-55/.hydra/config.yaml new file mode 100644 index 0000000..53aa5c8 --- /dev/null +++ b/outputs/2026-07-09/15-28-55/.hydra/config.yaml @@ -0,0 +1,1699 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/engineai_lab/assets/pm01/urdf/serial_pm01.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 0.9 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + J00_HIP_PITCH_L: -0.06 + J01_HIP_ROLL_L: 0.0 + J02_HIP_YAW_L: 0.0 + J03_KNEE_PITCH_L: 0.12 + J04_ANKLE_PITCH_L: -0.06 + J05_ANKLE_ROLL_L: 0.0 + J06_HIP_PITCH_R: -0.06 + J07_HIP_ROLL_R: 0.0 + J08_HIP_YAW_R: 0.0 + J09_KNEE_PITCH_R: 0.12 + J10_ANKLE_PITCH_R: -0.06 + J11_ANKLE_ROLL_R: 0.0 + J12_WAIST_YAW: 0.0 + J13_SHOULDER_PITCH_L: 0.0 + J14_SHOULDER_ROLL_L: 0.15 + J15_SHOULDER_YAW_L: 0.0 + J16_ELBOW_PITCH_L: -0.25 + J17_ELBOW_YAW_L: 0.0 + J18_SHOULDER_PITCH_R: 0.0 + J19_SHOULDER_ROLL_R: -0.15 + J20_SHOULDER_YAW_R: 0.0 + J21_ELBOW_PITCH_R: -0.25 + J22_ELBOW_YAW_R: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit: + .*HIP_PITCH.*: 26.3 + .*HIP_ROLL.*: 26.3 + .*HIP_YAW.*: 35.2 + .*KNEE_PITCH.*: 26.3 + .*ANKLE_PITCH.*: 35.2 + .*ANKLE_ROLL.*: 35.2 + .*SHOULDER_PITCH.*: 35.2 + .*SHOULDER_ROLL.*: 35.2 + .*SHOULDER_YAW.*: 35.2 + .*ELBOW_PITCH.*: 35.2 + .*ELBOW_YAW.*: 35.2 + .*WAIST_YAW.*: 35.2 + effort_limit_sim: + .*HIP_PITCH.*: 164.0 + .*HIP_ROLL.*: 164.0 + .*HIP_YAW.*: 61.0 + .*KNEE_PITCH.*: 164.0 + .*ANKLE_PITCH.*: 54.9 + .*ANKLE_ROLL.*: 54.9 + .*SHOULDER_PITCH.*: 61.0 + .*SHOULDER_ROLL.*: 61.0 + .*SHOULDER_YAW.*: 61.0 + .*ELBOW_PITCH.*: 61.0 + .*ELBOW_YAW.*: 61.0 + .*WAIST_YAW.*: 61.0 + velocity_limit_sim: null + stiffness: + .*HIP_PITCH.*: 110 + .*HIP_ROLL.*: 70 + .*HIP_YAW.*: 70 + .*KNEE_PITCH.*: 110 + .*ANKLE_PITCH.*: 30 + .*ANKLE_ROLL.*: 30 + .*SHOULDER_PITCH.*: 50 + .*SHOULDER_ROLL.*: 50 + .*SHOULDER_YAW.*: 50 + .*ELBOW_PITCH.*: 50 + .*ELBOW_YAW.*: 50 + .*WAIST_YAW.*: 50 + damping: + .*HIP_PITCH.*: 5.0 + .*HIP_ROLL.*: 3.0 + .*HIP_YAW.*: 3.0 + .*KNEE_PITCH.*: 5.0 + .*ANKLE_PITCH.*: 0.3 + .*ANKLE_ROLL.*: 0.3 + .*SHOULDER_PITCH.*: 0.3 + .*SHOULDER_ROLL.*: 0.3 + .*SHOULDER_YAW.*: 0.3 + .*ELBOW_PITCH.*: 0.3 + .*ELBOW_YAW.*: 0.3 + .*WAIST_YAW.*: 3.0 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/LINK_BASE' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + amp: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: 5 + flatten_history_dim: true + history: + func: engineai_lab.tasks.velocity.config.pm01.flat_amp_env_cfg:dummy_history_term + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + scale: + .*_HIP_PITCH_.*: 0.5 + .*_HIP_ROLL_.*: 0.2 + .*_HIP_YAW_.*: 0.2 + .*_KNEE_PITCH_.*: 0.5 + .*_ANKLE_PITCH_.*: 0.5 + .*_ANKLE_ROLL_.*: 0.2 + .*WAIST_YAW.*: 0.2 + .*_SHOULDER_PITCH_.*: 0.2 + .*_SHOULDER_ROLL_.*: 0.2 + .*_SHOULDER_YAW_.*: 0.2 + .*_ELBOW_PITCH_.*: 0.2 + .*_ELBOW_YAW_.*: 0.2 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - J00_HIP_PITCH_L + - J01_HIP_ROLL_L + - J02_HIP_YAW_L + - J03_KNEE_PITCH_L + - J04_ANKLE_PITCH_L + - J05_ANKLE_ROLL_L + - J06_HIP_PITCH_R + - J07_HIP_ROLL_R + - J08_HIP_YAW_R + - J09_KNEE_PITCH_R + - J10_ANKLE_PITCH_R + - J11_ANKLE_ROLL_R + - J12_WAIST_YAW + - J13_SHOULDER_PITCH_L + - J14_SHOULDER_ROLL_L + - J15_SHOULDER_YAW_L + - J16_ELBOW_PITCH_L + - J17_ELBOW_YAW_L + - J18_SHOULDER_PITCH_R + - J19_SHOULDER_ROLL_R + - J20_SHOULDER_YAW_R + - J21_ELBOW_PITCH_R + - J22_ELBOW_YAW_R + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: LINK_BASE + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.025 + - 0.025 + 'y': + - -0.05 + - 0.05 + z: + - -0.05 + - 0.05 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + z: + - -0.2 + - 0.2 + roll: + - -0.52 + - 0.52 + pitch: + - -0.52 + - 0.52 + yaw: + - -0.78 + - 0.78 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 0.82 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.22 + base_height_target: 0.82 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - J12_WAIST_YAW + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_HIP_ROLL_.* + - .*_HIP_YAW_.* + - .*_ANKLE_ROLL_.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_pitch_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_PITCH.* + - .*ELBOW_PITCH.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_roll_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_ROLL.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_yaw_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*SHOULDER_YAW.* + - .*ELBOW_YAW.* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_ANKLE_ROLL_L + - LINK_ANKLE_ROLL_R + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - LINK_BASE + - LINK_KNEE_PITCH.* + - .*SHOULDER.* + - .*ELBOW.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -1.0 + - 1.5 + lin_vel_y: + - -0.5 + - 0.5 + ang_vel_z: + - -1.0 + - 1.0 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 80000 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 500 + experiment_name: velocity_flat_terrain_amp + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: engineai_lab.algorithms.amp_ppo:AMPPPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} + style_reward_weight: 2.0 + frame_length: 5 + frame_dim: 26 + frame_normalization: true + discriminator_hidden_dims: + - 512 + - 256 + - 128 + dataset_path: dataset/config/dataset.yaml diff --git a/outputs/2026-07-09/15-28-55/.hydra/hydra.yaml b/outputs/2026-07-09/15-28-55/.hydra/hydra.yaml new file mode 100644 index 0000000..8183aeb --- /dev/null +++ b/outputs/2026-07-09/15-28-55/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-AMP-PM01-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/15-28-55 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/15-28-55/.hydra/overrides.yaml b/outputs/2026-07-09/15-28-55/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/15-28-55/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/15-28-55/hydra.log b/outputs/2026-07-09/15-28-55/hydra.log new file mode 100644 index 0000000..77a0d8e --- /dev/null +++ b/outputs/2026-07-09/15-28-55/hydra.log @@ -0,0 +1 @@ +[2026-07-09 15:28:55,218][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-09/18-03-23/.hydra/config.yaml b/outputs/2026-07-09/18-03-23/.hydra/config.yaml new file mode 100644 index 0000000..ac8478d --- /dev/null +++ b/outputs/2026-07-09/18-03-23/.hydra/config.yaml @@ -0,0 +1,1719 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 256 + - 256 + - 128 + critic_hidden_dims: + - 256 + - 256 + - 128 diff --git a/outputs/2026-07-09/18-03-23/.hydra/hydra.yaml b/outputs/2026-07-09/18-03-23/.hydra/hydra.yaml new file mode 100644 index 0000000..a8b118c --- /dev/null +++ b/outputs/2026-07-09/18-03-23/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/18-03-23 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/18-03-23/.hydra/overrides.yaml b/outputs/2026-07-09/18-03-23/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/18-03-23/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/18-03-23/hydra.log b/outputs/2026-07-09/18-03-23/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/18-04-54/.hydra/config.yaml b/outputs/2026-07-09/18-04-54/.hydra/config.yaml new file mode 100644 index 0000000..97377f9 --- /dev/null +++ b/outputs/2026-07-09/18-04-54/.hydra/config.yaml @@ -0,0 +1,1719 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 256 + - 256 + - 128 + critic_hidden_dims: + - 256 + - 256 + - 128 diff --git a/outputs/2026-07-09/18-04-54/.hydra/hydra.yaml b/outputs/2026-07-09/18-04-54/.hydra/hydra.yaml new file mode 100644 index 0000000..70519c8 --- /dev/null +++ b/outputs/2026-07-09/18-04-54/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/18-04-54 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/18-04-54/.hydra/overrides.yaml b/outputs/2026-07-09/18-04-54/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/18-04-54/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/18-04-54/hydra.log b/outputs/2026-07-09/18-04-54/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/18-07-23/.hydra/config.yaml b/outputs/2026-07-09/18-07-23/.hydra/config.yaml new file mode 100644 index 0000000..97377f9 --- /dev/null +++ b/outputs/2026-07-09/18-07-23/.hydra/config.yaml @@ -0,0 +1,1719 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 256 + - 256 + - 128 + critic_hidden_dims: + - 256 + - 256 + - 128 diff --git a/outputs/2026-07-09/18-07-23/.hydra/hydra.yaml b/outputs/2026-07-09/18-07-23/.hydra/hydra.yaml new file mode 100644 index 0000000..4ec05c2 --- /dev/null +++ b/outputs/2026-07-09/18-07-23/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/18-07-23 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/18-07-23/.hydra/overrides.yaml b/outputs/2026-07-09/18-07-23/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/18-07-23/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/18-07-23/hydra.log b/outputs/2026-07-09/18-07-23/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/18-09-00/.hydra/config.yaml b/outputs/2026-07-09/18-09-00/.hydra/config.yaml new file mode 100644 index 0000000..97377f9 --- /dev/null +++ b/outputs/2026-07-09/18-09-00/.hydra/config.yaml @@ -0,0 +1,1719 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: true + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 256 + - 256 + - 128 + critic_hidden_dims: + - 256 + - 256 + - 128 diff --git a/outputs/2026-07-09/18-09-00/.hydra/hydra.yaml b/outputs/2026-07-09/18-09-00/.hydra/hydra.yaml new file mode 100644 index 0000000..67688cf --- /dev/null +++ b/outputs/2026-07-09/18-09-00/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/18-09-00 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/18-09-00/.hydra/overrides.yaml b/outputs/2026-07-09/18-09-00/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/18-09-00/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/18-09-00/hydra.log b/outputs/2026-07-09/18-09-00/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/18-11-23/.hydra/config.yaml b/outputs/2026-07-09/18-11-23/.hydra/config.yaml new file mode 100644 index 0000000..b3f45d6 --- /dev/null +++ b/outputs/2026-07-09/18-11-23/.hydra/config.yaml @@ -0,0 +1,1719 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: + actor_hidden_dims: + - 256 + - 256 + - 128 + critic_hidden_dims: + - 256 + - 256 + - 128 diff --git a/outputs/2026-07-09/18-11-23/.hydra/hydra.yaml b/outputs/2026-07-09/18-11-23/.hydra/hydra.yaml new file mode 100644 index 0000000..a84860f --- /dev/null +++ b/outputs/2026-07-09/18-11-23/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/18-11-23 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/18-11-23/.hydra/overrides.yaml b/outputs/2026-07-09/18-11-23/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/18-11-23/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/18-11-23/hydra.log b/outputs/2026-07-09/18-11-23/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-09/18-12-34/.hydra/config.yaml b/outputs/2026-07-09/18-12-34/.hydra/config.yaml new file mode 100644 index 0000000..bdb086b --- /dev/null +++ b/outputs/2026-07-09/18-12-34/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-09/18-12-34/.hydra/hydra.yaml b/outputs/2026-07-09/18-12-34/.hydra/hydra.yaml new file mode 100644 index 0000000..4885984 --- /dev/null +++ b/outputs/2026-07-09/18-12-34/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-09/18-12-34 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-09/18-12-34/.hydra/overrides.yaml b/outputs/2026-07-09/18-12-34/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-09/18-12-34/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-09/18-12-34/hydra.log b/outputs/2026-07-09/18-12-34/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/08-38-30/.hydra/config.yaml b/outputs/2026-07-10/08-38-30/.hydra/config.yaml new file mode 100644 index 0000000..bdb086b --- /dev/null +++ b/outputs/2026-07-10/08-38-30/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: isaaclab.envs.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/08-38-30/.hydra/hydra.yaml b/outputs/2026-07-10/08-38-30/.hydra/hydra.yaml new file mode 100644 index 0000000..ec70212 --- /dev/null +++ b/outputs/2026-07-10/08-38-30/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/08-38-30 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/08-38-30/.hydra/overrides.yaml b/outputs/2026-07-10/08-38-30/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/08-38-30/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/08-38-30/hydra.log b/outputs/2026-07-10/08-38-30/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/08-41-41/.hydra/config.yaml b/outputs/2026-07-10/08-41-41/.hydra/config.yaml new file mode 100644 index 0000000..34cb851 --- /dev/null +++ b/outputs/2026-07-10/08-41-41/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/08-41-41/.hydra/hydra.yaml b/outputs/2026-07-10/08-41-41/.hydra/hydra.yaml new file mode 100644 index 0000000..d692dc0 --- /dev/null +++ b/outputs/2026-07-10/08-41-41/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/08-41-41 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/08-41-41/.hydra/overrides.yaml b/outputs/2026-07-10/08-41-41/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/08-41-41/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/08-41-41/hydra.log b/outputs/2026-07-10/08-41-41/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/08-43-01/.hydra/config.yaml b/outputs/2026-07-10/08-43-01/.hydra/config.yaml new file mode 100644 index 0000000..34cb851 --- /dev/null +++ b/outputs/2026-07-10/08-43-01/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/08-43-01/.hydra/hydra.yaml b/outputs/2026-07-10/08-43-01/.hydra/hydra.yaml new file mode 100644 index 0000000..568a497 --- /dev/null +++ b/outputs/2026-07-10/08-43-01/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/08-43-01 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/08-43-01/.hydra/overrides.yaml b/outputs/2026-07-10/08-43-01/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/08-43-01/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/08-43-01/hydra.log b/outputs/2026-07-10/08-43-01/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/08-43-24/.hydra/config.yaml b/outputs/2026-07-10/08-43-24/.hydra/config.yaml new file mode 100644 index 0000000..34cb851 --- /dev/null +++ b/outputs/2026-07-10/08-43-24/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/08-43-24/.hydra/hydra.yaml b/outputs/2026-07-10/08-43-24/.hydra/hydra.yaml new file mode 100644 index 0000000..18b3bc6 --- /dev/null +++ b/outputs/2026-07-10/08-43-24/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/08-43-24 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/08-43-24/.hydra/overrides.yaml b/outputs/2026-07-10/08-43-24/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/08-43-24/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/08-43-24/hydra.log b/outputs/2026-07-10/08-43-24/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/08-45-27/.hydra/config.yaml b/outputs/2026-07-10/08-45-27/.hydra/config.yaml new file mode 100644 index 0000000..34cb851 --- /dev/null +++ b/outputs/2026-07-10/08-45-27/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/08-45-27/.hydra/hydra.yaml b/outputs/2026-07-10/08-45-27/.hydra/hydra.yaml new file mode 100644 index 0000000..2e55a20 --- /dev/null +++ b/outputs/2026-07-10/08-45-27/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/08-45-27 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/08-45-27/.hydra/overrides.yaml b/outputs/2026-07-10/08-45-27/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/08-45-27/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/08-45-27/hydra.log b/outputs/2026-07-10/08-45-27/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/08-48-24/.hydra/config.yaml b/outputs/2026-07-10/08-48-24/.hydra/config.yaml new file mode 100644 index 0000000..34cb851 --- /dev/null +++ b/outputs/2026-07-10/08-48-24/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/08-48-24/.hydra/hydra.yaml b/outputs/2026-07-10/08-48-24/.hydra/hydra.yaml new file mode 100644 index 0000000..6bd95de --- /dev/null +++ b/outputs/2026-07-10/08-48-24/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/08-48-24 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/08-48-24/.hydra/overrides.yaml b/outputs/2026-07-10/08-48-24/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/08-48-24/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/08-48-24/hydra.log b/outputs/2026-07-10/08-48-24/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/08-51-41/.hydra/config.yaml b/outputs/2026-07-10/08-51-41/.hydra/config.yaml new file mode 100644 index 0000000..34cb851 --- /dev/null +++ b/outputs/2026-07-10/08-51-41/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/08-51-41/.hydra/hydra.yaml b/outputs/2026-07-10/08-51-41/.hydra/hydra.yaml new file mode 100644 index 0000000..851de1e --- /dev/null +++ b/outputs/2026-07-10/08-51-41/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/08-51-41 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/08-51-41/.hydra/overrides.yaml b/outputs/2026-07-10/08-51-41/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/08-51-41/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/08-51-41/hydra.log b/outputs/2026-07-10/08-51-41/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/09-32-32/.hydra/config.yaml b/outputs/2026-07-10/09-32-32/.hydra/config.yaml new file mode 100644 index 0000000..1dbeb0a --- /dev/null +++ b/outputs/2026-07-10/09-32-32/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/09-32-32/.hydra/hydra.yaml b/outputs/2026-07-10/09-32-32/.hydra/hydra.yaml new file mode 100644 index 0000000..aeec648 --- /dev/null +++ b/outputs/2026-07-10/09-32-32/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/09-32-32 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/09-32-32/.hydra/overrides.yaml b/outputs/2026-07-10/09-32-32/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/09-32-32/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/09-32-32/hydra.log b/outputs/2026-07-10/09-32-32/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/09-34-03/.hydra/config.yaml b/outputs/2026-07-10/09-34-03/.hydra/config.yaml new file mode 100644 index 0000000..1dbeb0a --- /dev/null +++ b/outputs/2026-07-10/09-34-03/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/09-34-03/.hydra/hydra.yaml b/outputs/2026-07-10/09-34-03/.hydra/hydra.yaml new file mode 100644 index 0000000..7593ed5 --- /dev/null +++ b/outputs/2026-07-10/09-34-03/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/09-34-03 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/09-34-03/.hydra/overrides.yaml b/outputs/2026-07-10/09-34-03/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/09-34-03/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/09-34-03/hydra.log b/outputs/2026-07-10/09-34-03/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/09-36-00/.hydra/config.yaml b/outputs/2026-07-10/09-36-00/.hydra/config.yaml new file mode 100644 index 0000000..1dbeb0a --- /dev/null +++ b/outputs/2026-07-10/09-36-00/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.25 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.18 + left_leg_J5: -0.09 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: -0.18 + right_leg_J5: 0.09 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 0.0 + left_arm_J3: 0.0 + left_arm_J4: 0.25 + left_arm_J5: 0.0 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: 0.0 + right_arm_J3: 0.0 + right_arm_J4: -0.25 + right_arm_J5: 0.0 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.25 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.25 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/09-36-00/.hydra/hydra.yaml b/outputs/2026-07-10/09-36-00/.hydra/hydra.yaml new file mode 100644 index 0000000..a87b7ce --- /dev/null +++ b/outputs/2026-07-10/09-36-00/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/09-36-00 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/09-36-00/.hydra/overrides.yaml b/outputs/2026-07-10/09-36-00/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/09-36-00/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/09-36-00/hydra.log b/outputs/2026-07-10/09-36-00/hydra.log new file mode 100644 index 0000000..9deab8c --- /dev/null +++ b/outputs/2026-07-10/09-36-00/hydra.log @@ -0,0 +1 @@ +[2026-07-10 09:36:00,937][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/09-59-15/.hydra/config.yaml b/outputs/2026-07-10/09-59-15/.hydra/config.yaml new file mode 100644 index 0000000..adaa6a2 --- /dev/null +++ b/outputs/2026-07-10/09-59-15/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.5707963267948966 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.282 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.282 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/09-59-15/.hydra/hydra.yaml b/outputs/2026-07-10/09-59-15/.hydra/hydra.yaml new file mode 100644 index 0000000..9edfb2e --- /dev/null +++ b/outputs/2026-07-10/09-59-15/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/09-59-15 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/09-59-15/.hydra/overrides.yaml b/outputs/2026-07-10/09-59-15/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/09-59-15/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/09-59-15/hydra.log b/outputs/2026-07-10/09-59-15/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/10-01-52/.hydra/config.yaml b/outputs/2026-07-10/10-01-52/.hydra/config.yaml new file mode 100644 index 0000000..a79a0b4 --- /dev/null +++ b/outputs/2026-07-10/10-01-52/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.282 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.282 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/10-01-52/.hydra/hydra.yaml b/outputs/2026-07-10/10-01-52/.hydra/hydra.yaml new file mode 100644 index 0000000..7932549 --- /dev/null +++ b/outputs/2026-07-10/10-01-52/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/10-01-52 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/10-01-52/.hydra/overrides.yaml b/outputs/2026-07-10/10-01-52/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/10-01-52/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/10-01-52/hydra.log b/outputs/2026-07-10/10-01-52/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/10-49-22/.hydra/config.yaml b/outputs/2026-07-10/10-49-22/.hydra/config.yaml new file mode 100644 index 0000000..a79a0b4 --- /dev/null +++ b/outputs/2026-07-10/10-49-22/.hydra/config.yaml @@ -0,0 +1,1711 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + base_ang_vel: + func: isaaclab.envs.mdp.observations:base_ang_vel + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + projected_gravity: + func: isaaclab.envs.mdp.observations:projected_gravity + params: {} + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.0 + track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp + params: + command_name: base_velocity + sigma: 5 + weight: 2.5 + base_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:base_orientation + params: {} + weight: 1.0 + base_height: + func: engineai_lab.tasks.velocity.mdp.rewards:base_height_tracking + params: + target_height: 1.282 + weight: 0.4 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + ankle_distance: 0.24 + base_height_target: 1.282 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + weight: 0.25 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.3 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: true + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 1.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/10-49-22/.hydra/hydra.yaml b/outputs/2026-07-10/10-49-22/.hydra/hydra.yaml new file mode 100644 index 0000000..609d6a7 --- /dev/null +++ b/outputs/2026-07-10/10-49-22/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/10-49-22 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/10-49-22/.hydra/overrides.yaml b/outputs/2026-07-10/10-49-22/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/10-49-22/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/10-49-22/hydra.log b/outputs/2026-07-10/10-49-22/hydra.log new file mode 100644 index 0000000..767fb1d --- /dev/null +++ b/outputs/2026-07-10/10-49-22/hydra.log @@ -0,0 +1 @@ +[2026-07-10 10:49:22,549][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/11-27-56/.hydra/config.yaml b/outputs/2026-07-10/11-27-56/.hydra/config.yaml new file mode 100644 index 0000000..026a0d1 --- /dev/null +++ b/outputs/2026-07-10/11-27-56/.hydra/config.yaml @@ -0,0 +1,1893 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + pelvis_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.861 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.282 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/11-27-56/.hydra/hydra.yaml b/outputs/2026-07-10/11-27-56/.hydra/hydra.yaml new file mode 100644 index 0000000..9f45c6d --- /dev/null +++ b/outputs/2026-07-10/11-27-56/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/11-27-56 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/11-27-56/.hydra/overrides.yaml b/outputs/2026-07-10/11-27-56/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/11-27-56/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/11-27-56/hydra.log b/outputs/2026-07-10/11-27-56/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/12-31-17/.hydra/config.yaml b/outputs/2026-07-10/12-31-17/.hydra/config.yaml new file mode 100644 index 0000000..026a0d1 --- /dev/null +++ b/outputs/2026-07-10/12-31-17/.hydra/config.yaml @@ -0,0 +1,1893 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + pelvis_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.861 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.282 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_contact_fixed + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + force_threshold: 5.0 + weight: 0.25 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 10.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.5 + weight: 1.25 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.25 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/12-31-17/.hydra/hydra.yaml b/outputs/2026-07-10/12-31-17/.hydra/hydra.yaml new file mode 100644 index 0000000..9b5d0b2 --- /dev/null +++ b/outputs/2026-07-10/12-31-17/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/12-31-17 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/12-31-17/.hydra/overrides.yaml b/outputs/2026-07-10/12-31-17/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/12-31-17/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/12-31-17/hydra.log b/outputs/2026-07-10/12-31-17/hydra.log new file mode 100644 index 0000000..c5eb5e3 --- /dev/null +++ b/outputs/2026-07-10/12-31-17/hydra.log @@ -0,0 +1 @@ +[2026-07-10 12:31:17,994][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/14-02-12/.hydra/config.yaml b/outputs/2026-07-10/14-02-12/.hydra/config.yaml new file mode 100644 index 0000000..0dc0bb2 --- /dev/null +++ b/outputs/2026-07-10/14-02-12/.hydra/config.yaml @@ -0,0 +1,1973 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.08 + std: 0.03 + sole_offset: 0.065 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.5 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/14-02-12/.hydra/hydra.yaml b/outputs/2026-07-10/14-02-12/.hydra/hydra.yaml new file mode 100644 index 0000000..e461787 --- /dev/null +++ b/outputs/2026-07-10/14-02-12/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/14-02-12 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/14-02-12/.hydra/overrides.yaml b/outputs/2026-07-10/14-02-12/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/14-02-12/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/14-02-12/hydra.log b/outputs/2026-07-10/14-02-12/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/14-34-35/.hydra/config.yaml b/outputs/2026-07-10/14-34-35/.hydra/config.yaml new file mode 100644 index 0000000..0dc0bb2 --- /dev/null +++ b/outputs/2026-07-10/14-34-35/.hydra/config.yaml @@ -0,0 +1,1973 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.08 + std: 0.03 + sole_offset: 0.065 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.5 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/14-34-35/.hydra/hydra.yaml b/outputs/2026-07-10/14-34-35/.hydra/hydra.yaml new file mode 100644 index 0000000..071e612 --- /dev/null +++ b/outputs/2026-07-10/14-34-35/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/14-34-35 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/14-34-35/.hydra/overrides.yaml b/outputs/2026-07-10/14-34-35/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/14-34-35/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/14-34-35/hydra.log b/outputs/2026-07-10/14-34-35/hydra.log new file mode 100644 index 0000000..49d29a5 --- /dev/null +++ b/outputs/2026-07-10/14-34-35/hydra.log @@ -0,0 +1 @@ +[2026-07-10 14:34:35,625][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/14-48-04/.hydra/config.yaml b/outputs/2026-07-10/14-48-04/.hydra/config.yaml new file mode 100644 index 0000000..54a37b8 --- /dev/null +++ b/outputs/2026-07-10/14-48-04/.hydra/config.yaml @@ -0,0 +1,1972 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/14-48-04/.hydra/hydra.yaml b/outputs/2026-07-10/14-48-04/.hydra/hydra.yaml new file mode 100644 index 0000000..fb8d871 --- /dev/null +++ b/outputs/2026-07-10/14-48-04/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/14-48-04 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/14-48-04/.hydra/overrides.yaml b/outputs/2026-07-10/14-48-04/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/14-48-04/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/14-48-04/hydra.log b/outputs/2026-07-10/14-48-04/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/15-08-35/.hydra/config.yaml b/outputs/2026-07-10/15-08-35/.hydra/config.yaml new file mode 100644 index 0000000..54a37b8 --- /dev/null +++ b/outputs/2026-07-10/15-08-35/.hydra/config.yaml @@ -0,0 +1,1972 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-08-35/.hydra/hydra.yaml b/outputs/2026-07-10/15-08-35/.hydra/hydra.yaml new file mode 100644 index 0000000..cec0a15 --- /dev/null +++ b/outputs/2026-07-10/15-08-35/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-08-35 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-08-35/.hydra/overrides.yaml b/outputs/2026-07-10/15-08-35/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-08-35/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-08-35/hydra.log b/outputs/2026-07-10/15-08-35/hydra.log new file mode 100644 index 0000000..c754f37 --- /dev/null +++ b/outputs/2026-07-10/15-08-35/hydra.log @@ -0,0 +1 @@ +[2026-07-10 15:08:35,835][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/15-09-24/.hydra/config.yaml b/outputs/2026-07-10/15-09-24/.hydra/config.yaml new file mode 100644 index 0000000..54a37b8 --- /dev/null +++ b/outputs/2026-07-10/15-09-24/.hydra/config.yaml @@ -0,0 +1,1972 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-09-24/.hydra/hydra.yaml b/outputs/2026-07-10/15-09-24/.hydra/hydra.yaml new file mode 100644 index 0000000..42c66ea --- /dev/null +++ b/outputs/2026-07-10/15-09-24/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-09-24 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-09-24/.hydra/overrides.yaml b/outputs/2026-07-10/15-09-24/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-09-24/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-09-24/hydra.log b/outputs/2026-07-10/15-09-24/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/15-09-51/.hydra/config.yaml b/outputs/2026-07-10/15-09-51/.hydra/config.yaml new file mode 100644 index 0000000..54a37b8 --- /dev/null +++ b/outputs/2026-07-10/15-09-51/.hydra/config.yaml @@ -0,0 +1,1972 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: isaaclab.envs.mdp.commands.velocity_command:UniformVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-09-51/.hydra/hydra.yaml b/outputs/2026-07-10/15-09-51/.hydra/hydra.yaml new file mode 100644 index 0000000..de2b144 --- /dev/null +++ b/outputs/2026-07-10/15-09-51/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-09-51 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-09-51/.hydra/overrides.yaml b/outputs/2026-07-10/15-09-51/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-09-51/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-09-51/hydra.log b/outputs/2026-07-10/15-09-51/hydra.log new file mode 100644 index 0000000..966a2c9 --- /dev/null +++ b/outputs/2026-07-10/15-09-51/hydra.log @@ -0,0 +1 @@ +[2026-07-10 15:09:51,678][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/15-38-02/.hydra/config.yaml b/outputs/2026-07-10/15-38-02/.hydra/config.yaml new file mode 100644 index 0000000..be3cf88 --- /dev/null +++ b/outputs/2026-07-10/15-38-02/.hydra/config.yaml @@ -0,0 +1,1694 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-38-02/.hydra/hydra.yaml b/outputs/2026-07-10/15-38-02/.hydra/hydra.yaml new file mode 100644 index 0000000..2b73482 --- /dev/null +++ b/outputs/2026-07-10/15-38-02/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-38-02 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-38-02/.hydra/overrides.yaml b/outputs/2026-07-10/15-38-02/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-38-02/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-38-02/hydra.log b/outputs/2026-07-10/15-38-02/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/15-43-21/.hydra/config.yaml b/outputs/2026-07-10/15-43-21/.hydra/config.yaml new file mode 100644 index 0000000..be3cf88 --- /dev/null +++ b/outputs/2026-07-10/15-43-21/.hydra/config.yaml @@ -0,0 +1,1694 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: + - -3.14 + - 3.14 + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-43-21/.hydra/hydra.yaml b/outputs/2026-07-10/15-43-21/.hydra/hydra.yaml new file mode 100644 index 0000000..434d5ae --- /dev/null +++ b/outputs/2026-07-10/15-43-21/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-43-21 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-43-21/.hydra/overrides.yaml b/outputs/2026-07-10/15-43-21/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-43-21/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-43-21/hydra.log b/outputs/2026-07-10/15-43-21/hydra.log new file mode 100644 index 0000000..c740494 --- /dev/null +++ b/outputs/2026-07-10/15-43-21/hydra.log @@ -0,0 +1 @@ +[2026-07-10 15:43:21,610][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/15-44-11/.hydra/config.yaml b/outputs/2026-07-10/15-44-11/.hydra/config.yaml new file mode 100644 index 0000000..b601688 --- /dev/null +++ b/outputs/2026-07-10/15-44-11/.hydra/config.yaml @@ -0,0 +1,1692 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-44-11/.hydra/hydra.yaml b/outputs/2026-07-10/15-44-11/.hydra/hydra.yaml new file mode 100644 index 0000000..a9c54b4 --- /dev/null +++ b/outputs/2026-07-10/15-44-11/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-44-11 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-44-11/.hydra/overrides.yaml b/outputs/2026-07-10/15-44-11/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-44-11/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-44-11/hydra.log b/outputs/2026-07-10/15-44-11/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/15-46-10/.hydra/config.yaml b/outputs/2026-07-10/15-46-10/.hydra/config.yaml new file mode 100644 index 0000000..b601688 --- /dev/null +++ b/outputs/2026-07-10/15-46-10/.hydra/config.yaml @@ -0,0 +1,1692 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-46-10/.hydra/hydra.yaml b/outputs/2026-07-10/15-46-10/.hydra/hydra.yaml new file mode 100644 index 0000000..c0323d0 --- /dev/null +++ b/outputs/2026-07-10/15-46-10/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-46-10 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-46-10/.hydra/overrides.yaml b/outputs/2026-07-10/15-46-10/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-46-10/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-46-10/hydra.log b/outputs/2026-07-10/15-46-10/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/15-46-50/.hydra/config.yaml b/outputs/2026-07-10/15-46-50/.hydra/config.yaml new file mode 100644 index 0000000..b601688 --- /dev/null +++ b/outputs/2026-07-10/15-46-50/.hydra/config.yaml @@ -0,0 +1,1692 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-46-50/.hydra/hydra.yaml b/outputs/2026-07-10/15-46-50/.hydra/hydra.yaml new file mode 100644 index 0000000..b0dc77b --- /dev/null +++ b/outputs/2026-07-10/15-46-50/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-46-50 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-46-50/.hydra/overrides.yaml b/outputs/2026-07-10/15-46-50/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-46-50/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-46-50/hydra.log b/outputs/2026-07-10/15-46-50/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/15-57-27/.hydra/config.yaml b/outputs/2026-07-10/15-57-27/.hydra/config.yaml new file mode 100644 index 0000000..b601688 --- /dev/null +++ b/outputs/2026-07-10/15-57-27/.hydra/config.yaml @@ -0,0 +1,1692 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/15-57-27/.hydra/hydra.yaml b/outputs/2026-07-10/15-57-27/.hydra/hydra.yaml new file mode 100644 index 0000000..b25cffa --- /dev/null +++ b/outputs/2026-07-10/15-57-27/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/15-57-27 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/15-57-27/.hydra/overrides.yaml b/outputs/2026-07-10/15-57-27/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/15-57-27/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/15-57-27/hydra.log b/outputs/2026-07-10/15-57-27/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/16-07-08/.hydra/config.yaml b/outputs/2026-07-10/16-07-08/.hydra/config.yaml new file mode 100644 index 0000000..b601688 --- /dev/null +++ b/outputs/2026-07-10/16-07-08/.hydra/config.yaml @@ -0,0 +1,1692 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/16-07-08/.hydra/hydra.yaml b/outputs/2026-07-10/16-07-08/.hydra/hydra.yaml new file mode 100644 index 0000000..e7f12db --- /dev/null +++ b/outputs/2026-07-10/16-07-08/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/16-07-08 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/16-07-08/.hydra/overrides.yaml b/outputs/2026-07-10/16-07-08/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/16-07-08/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/16-07-08/hydra.log b/outputs/2026-07-10/16-07-08/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-10/16-20-24/.hydra/config.yaml b/outputs/2026-07-10/16-20-24/.hydra/config.yaml new file mode 100644 index 0000000..a7e68e4 --- /dev/null +++ b/outputs/2026-07-10/16-20-24/.hydra/config.yaml @@ -0,0 +1,2054 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 2.5 + - 5.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.5 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.15 + weight: -0.08 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.15 + weight: -0.05 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.25 + power: 2.0 + weight: -0.2 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.1 + - 0.6 + lin_vel_y: + - -0.08 + - 0.08 + ang_vel_z: + - -0.3 + - 0.3 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/16-20-24/.hydra/hydra.yaml b/outputs/2026-07-10/16-20-24/.hydra/hydra.yaml new file mode 100644 index 0000000..0370526 --- /dev/null +++ b/outputs/2026-07-10/16-20-24/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Speed-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/16-20-24 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/16-20-24/.hydra/overrides.yaml b/outputs/2026-07-10/16-20-24/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/16-20-24/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/16-20-24/hydra.log b/outputs/2026-07-10/16-20-24/hydra.log new file mode 100644 index 0000000..25822af --- /dev/null +++ b/outputs/2026-07-10/16-20-24/hydra.log @@ -0,0 +1 @@ +[2026-07-10 16:20:24,536][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/16-20-46/.hydra/config.yaml b/outputs/2026-07-10/16-20-46/.hydra/config.yaml new file mode 100644 index 0000000..41e0dec --- /dev/null +++ b/outputs/2026-07-10/16-20-46/.hydra/config.yaml @@ -0,0 +1,2128 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 2.5 + - 5.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J2 + - .*_arm_J3 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.2 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 4.0 + weight: 0.2 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.5 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.15 + weight: -0.08 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.15 + weight: -0.05 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.25 + power: 2.0 + weight: -0.2 + cross_body_arm_swing: + func: engineai_lab.tasks.velocity.mdp.rewards:cross_body_arm_swing_reward + params: + arm_asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + phase_distance: 0.25 + shoulder_amplitude: 0.18 + elbow_flexion: 0.15 + shoulder_phase_signs: + - -1.0 + - -1.0 + elbow_flexion_signs: + - 1.0 + - -1.0 + std: 0.2 + weight: 0.6 + arm_swing_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.002 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.1 + - 0.6 + lin_vel_y: + - -0.08 + - 0.08 + ang_vel_z: + - -0.3 + - 0.3 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/16-20-46/.hydra/hydra.yaml b/outputs/2026-07-10/16-20-46/.hydra/hydra.yaml new file mode 100644 index 0000000..3255fe3 --- /dev/null +++ b/outputs/2026-07-10/16-20-46/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Natural-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/16-20-46 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/16-20-46/.hydra/overrides.yaml b/outputs/2026-07-10/16-20-46/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/16-20-46/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/16-20-46/hydra.log b/outputs/2026-07-10/16-20-46/hydra.log new file mode 100644 index 0000000..0110a11 --- /dev/null +++ b/outputs/2026-07-10/16-20-46/hydra.log @@ -0,0 +1 @@ +[2026-07-10 16:20:46,996][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/16-21-49/.hydra/config.yaml b/outputs/2026-07-10/16-21-49/.hydra/config.yaml new file mode 100644 index 0000000..41e0dec --- /dev/null +++ b/outputs/2026-07-10/16-21-49/.hydra/config.yaml @@ -0,0 +1,2128 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 2.5 + - 5.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J2 + - .*_arm_J3 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.2 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 4.0 + weight: 0.2 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.5 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.15 + weight: -0.08 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.15 + weight: -0.05 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.25 + power: 2.0 + weight: -0.2 + cross_body_arm_swing: + func: engineai_lab.tasks.velocity.mdp.rewards:cross_body_arm_swing_reward + params: + arm_asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + phase_distance: 0.25 + shoulder_amplitude: 0.18 + elbow_flexion: 0.15 + shoulder_phase_signs: + - -1.0 + - -1.0 + elbow_flexion_signs: + - 1.0 + - -1.0 + std: 0.2 + weight: 0.6 + arm_swing_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.002 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.1 + - 0.6 + lin_vel_y: + - -0.08 + - 0.08 + ang_vel_z: + - -0.3 + - 0.3 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/16-21-49/.hydra/hydra.yaml b/outputs/2026-07-10/16-21-49/.hydra/hydra.yaml new file mode 100644 index 0000000..c8bd5de --- /dev/null +++ b/outputs/2026-07-10/16-21-49/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Natural-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/16-21-49 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/16-21-49/.hydra/overrides.yaml b/outputs/2026-07-10/16-21-49/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/16-21-49/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/16-21-49/hydra.log b/outputs/2026-07-10/16-21-49/hydra.log new file mode 100644 index 0000000..7a8b1fa --- /dev/null +++ b/outputs/2026-07-10/16-21-49/hydra.log @@ -0,0 +1 @@ +[2026-07-10 16:21:49,710][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-10/16-24-26/.hydra/config.yaml b/outputs/2026-07-10/16-24-26/.hydra/config.yaml new file mode 100644 index 0000000..a7e68e4 --- /dev/null +++ b/outputs/2026-07-10/16-24-26/.hydra/config.yaml @@ -0,0 +1,2054 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 2.5 + - 5.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.5 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.15 + weight: -0.08 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.15 + weight: -0.05 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.25 + power: 2.0 + weight: -0.2 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.1 + - 0.6 + lin_vel_y: + - -0.08 + - 0.08 + ang_vel_z: + - -0.3 + - 0.3 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-10/16-24-26/.hydra/hydra.yaml b/outputs/2026-07-10/16-24-26/.hydra/hydra.yaml new file mode 100644 index 0000000..8f673e2 --- /dev/null +++ b/outputs/2026-07-10/16-24-26/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Speed-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-10/16-24-26 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-10/16-24-26/.hydra/overrides.yaml b/outputs/2026-07-10/16-24-26/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-10/16-24-26/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-10/16-24-26/hydra.log b/outputs/2026-07-10/16-24-26/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/09-22-24/.hydra/config.yaml b/outputs/2026-07-13/09-22-24/.hydra/config.yaml new file mode 100644 index 0000000..942b2ad --- /dev/null +++ b/outputs/2026-07-13/09-22-24/.hydra/config.yaml @@ -0,0 +1,1974 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: generator + terrain_generator: + class_type: isaaclab.terrains.terrain_generator:TerrainGenerator + seed: null + curriculum: true + size: + - 8.0 + - 8.0 + border_width: 25.0 + border_height: 1.0 + num_rows: 10 + num_cols: 20 + color_scheme: height + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: 0.75 + sub_terrains: + flat: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.4 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.0 + platform_width: 8.0 + inverted: false + slope_up: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: false + slope_down: + function: isaaclab.terrains.height_field.hf_terrains:pyramid_sloped_terrain + proportion: 0.1 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + slope_range: + - 0.0 + - 0.08726646259971647 + platform_width: 2.0 + inverted: true + obstacles: + function: isaaclab.terrains.height_field.hf_terrains:discrete_obstacles_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + obstacle_height_mode: choice + obstacle_width_range: + - 1.0 + - 2.0 + obstacle_height_range: + - 0.01 + - 0.1 + num_obstacles: 15 + platform_width: 3.0 + rough_terrain: + function: isaaclab.terrains.height_field.hf_terrains:random_uniform_terrain + proportion: 0.2 + size: + - 10.0 + - 10.0 + flat_patch_sampling: null + border_width: 0.0 + horizontal_scale: 0.1 + vertical_scale: 0.005 + slope_threshold: null + noise_range: + - -0.015 + - 0.015 + noise_step: 0.005 + downsampled_scale: 0.15 + difficulty_range: + - 0.0 + - 1.0 + use_cache: false + cache_dir: /tmp/isaaclab/terrains + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: 5 + debug_vis: false + height_scanner: + class_type: isaaclab.sensors.ray_caster.ray_caster:RayCaster + prim_path: '{ENV_REGEX_NS}/Robot/body_link' + update_period: 0.01 + history_length: 0 + debug_vis: false + mesh_prim_paths: + - /World/ground + offset: + pos: + - 0.0 + - 0.0 + - 20.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + attach_yaw_only: null + ray_alignment: yaw + pattern_cfg: + func: isaaclab.sensors.ray_caster.patterns.patterns:grid_pattern + resolution: 0.1 + size: + - 1.6 + - 1.0 + direction: + - 0.0 + - 0.0 + - -1.0 + ordering: xy + max_distance: 1000000.0 + drift_range: + - 0.0 + - 0.0 + ray_cast_drift_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + visualizer_cfg: + prim_path: /Visuals/RayCaster + markers: + hit: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: + func: isaaclab.envs.mdp.events:push_by_setting_velocity + params: + velocity_range: + x: + - -0.3 + - 0.3 + 'y': + - -0.3 + - 0.3 + z: + - -0.15 + - 0.15 + roll: + - -0.35 + - 0.35 + pitch: + - -0.35 + - 0.35 + yaw: + - -0.52 + - 0.52 + mode: interval + interval_range_s: + - 1.0 + - 3.0 + is_global_time: false + min_step_count_between_reset: 0 + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: + func: isaaclab_tasks.manager_based.locomotion.velocity.mdp.curriculums:terrain_levels_vel + params: {} + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/09-22-24/.hydra/hydra.yaml b/outputs/2026-07-13/09-22-24/.hydra/hydra.yaml new file mode 100644 index 0000000..9b76410 --- /dev/null +++ b/outputs/2026-07-13/09-22-24/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/09-22-24 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/09-22-24/.hydra/overrides.yaml b/outputs/2026-07-13/09-22-24/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/09-22-24/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/09-22-24/hydra.log b/outputs/2026-07-13/09-22-24/hydra.log new file mode 100644 index 0000000..aa6ffb2 --- /dev/null +++ b/outputs/2026-07-13/09-22-24/hydra.log @@ -0,0 +1 @@ +[2026-07-13 09:22:24,686][isaaclab.envs.manager_based_env][WARNING] - Seed not set for the environment. The environment creation may not be deterministic. diff --git a/outputs/2026-07-13/09-55-02/.hydra/config.yaml b/outputs/2026-07-13/09-55-02/.hydra/config.yaml new file mode 100644 index 0000000..7548dfd --- /dev/null +++ b/outputs/2026-07-13/09-55-02/.hydra/config.yaml @@ -0,0 +1,1849 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.8 + - 1.2 + velocity_range: + - -0.5 + - 0.5 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.7 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.05 + weight: -2.0 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.2 + power: 2.0 + weight: -1.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.2 + - 0.6 + lin_vel_y: + - -0.05 + - 0.05 + ang_vel_z: + - -0.2 + - 0.2 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.8 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 400 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.004 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/09-55-02/.hydra/hydra.yaml b/outputs/2026-07-13/09-55-02/.hydra/hydra.yaml new file mode 100644 index 0000000..c97e842 --- /dev/null +++ b/outputs/2026-07-13/09-55-02/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Speed-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/09-55-02 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/09-55-02/.hydra/overrides.yaml b/outputs/2026-07-13/09-55-02/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/09-55-02/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/09-55-02/hydra.log b/outputs/2026-07-13/09-55-02/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-08-34/.hydra/config.yaml b/outputs/2026-07-13/10-08-34/.hydra/config.yaml new file mode 100644 index 0000000..06a7453 --- /dev/null +++ b/outputs/2026-07-13/10-08-34/.hydra/config.yaml @@ -0,0 +1,1693 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.0 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-08-34/.hydra/hydra.yaml b/outputs/2026-07-13/10-08-34/.hydra/hydra.yaml new file mode 100644 index 0000000..95dc091 --- /dev/null +++ b/outputs/2026-07-13/10-08-34/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-08-34 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-08-34/.hydra/overrides.yaml b/outputs/2026-07-13/10-08-34/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-08-34/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-08-34/hydra.log b/outputs/2026-07-13/10-08-34/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-11-13/.hydra/config.yaml b/outputs/2026-07-13/10-11-13/.hydra/config.yaml new file mode 100644 index 0000000..06a7453 --- /dev/null +++ b/outputs/2026-07-13/10-11-13/.hydra/config.yaml @@ -0,0 +1,1693 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.0 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-11-13/.hydra/hydra.yaml b/outputs/2026-07-13/10-11-13/.hydra/hydra.yaml new file mode 100644 index 0000000..59f8cce --- /dev/null +++ b/outputs/2026-07-13/10-11-13/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-11-13 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-11-13/.hydra/overrides.yaml b/outputs/2026-07-13/10-11-13/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-11-13/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-11-13/hydra.log b/outputs/2026-07-13/10-11-13/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-11-51/.hydra/config.yaml b/outputs/2026-07-13/10-11-51/.hydra/config.yaml new file mode 100644 index 0000000..06a7453 --- /dev/null +++ b/outputs/2026-07-13/10-11-51/.hydra/config.yaml @@ -0,0 +1,1693 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.0 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-11-51/.hydra/hydra.yaml b/outputs/2026-07-13/10-11-51/.hydra/hydra.yaml new file mode 100644 index 0000000..ad3d0aa --- /dev/null +++ b/outputs/2026-07-13/10-11-51/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-11-51 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-11-51/.hydra/overrides.yaml b/outputs/2026-07-13/10-11-51/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-11-51/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-11-51/hydra.log b/outputs/2026-07-13/10-11-51/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-13-44/.hydra/config.yaml b/outputs/2026-07-13/10-13-44/.hydra/config.yaml new file mode 100644 index 0000000..06a7453 --- /dev/null +++ b/outputs/2026-07-13/10-13-44/.hydra/config.yaml @@ -0,0 +1,1693 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.15 + .*_arm_J6: 0.15 + .*_arm_J7: 0.15 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.0 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J1 + - .*_arm_J2 + - .*_arm_J3 + - .*_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J5 + - .*_arm_J6 + - .*_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 8.0 + weight: 0.3 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.4 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 7.5 + - 7.5 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.2 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - -0.2 + - 0.4 + lin_vel_y: + - -0.2 + - 0.2 + ang_vel_z: + - -0.5 + - 0.5 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.0 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 1500 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.008 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-13-44/.hydra/hydra.yaml b/outputs/2026-07-13/10-13-44/.hydra/hydra.yaml new file mode 100644 index 0000000..c63a071 --- /dev/null +++ b/outputs/2026-07-13/10-13-44/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-13-44 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-13-44/.hydra/overrides.yaml b/outputs/2026-07-13/10-13-44/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-13-44/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-13-44/hydra.log b/outputs/2026-07-13/10-13-44/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-30-50/.hydra/config.yaml b/outputs/2026-07-13/10-30-50/.hydra/config.yaml new file mode 100644 index 0000000..b9d5d9c --- /dev/null +++ b/outputs/2026-07-13/10-30-50/.hydra/config.yaml @@ -0,0 +1,1922 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.06 + .*_arm_J6: 0.06 + .*_arm_J7: 0.06 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J2 + - .*_arm_J3 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tolerance: 0.05 + scale: 4.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_l1_with_deadband + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + deadband: 0.03 + weight: -0.25 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.7 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.05 + weight: -2.0 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.2 + power: 2.0 + weight: -1.0 + cross_body_arm_swing: + func: engineai_lab.tasks.velocity.mdp.rewards:cross_body_arm_swing_reward + params: + arm_asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + shoulder_amplitude: 0.16428571428571428 + elbow_flexion: 0.1232142857142857 + shoulder_phase_signs: + - -1.0 + - -1.0 + elbow_flexion_signs: + - 1.0 + - -1.0 + std: 0.12 + weight: 0.8 + contralateral_arm_phase: + func: engineai_lab.tasks.velocity.mdp.rewards:contralateral_arm_phase_reward + params: + arm_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_arm_link_4 + - right_arm_link_4 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + arm_phase_amplitude: 0.1 + std: 0.045 + weight: 0.5 + arm_swing_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.001 + wrist_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.004 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.2 + - 0.6 + lin_vel_y: + - -0.05 + - 0.05 + ang_vel_z: + - -0.2 + - 0.2 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.8 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 300 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.005 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-30-50/.hydra/hydra.yaml b/outputs/2026-07-13/10-30-50/.hydra/hydra.yaml new file mode 100644 index 0000000..0bcbd07 --- /dev/null +++ b/outputs/2026-07-13/10-30-50/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Natural-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-30-50 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-30-50/.hydra/overrides.yaml b/outputs/2026-07-13/10-30-50/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-30-50/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-30-50/hydra.log b/outputs/2026-07-13/10-30-50/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-31-58/.hydra/config.yaml b/outputs/2026-07-13/10-31-58/.hydra/config.yaml new file mode 100644 index 0000000..c804730 --- /dev/null +++ b/outputs/2026-07-13/10-31-58/.hydra/config.yaml @@ -0,0 +1,1998 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: null + decimation: 5 + scene: + num_envs: 4096 + env_spacing: 3.0 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 2 + max_delay: 8 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: true + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.06 + .*_arm_J6: 0.06 + .*_arm_J7: 0.06 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 0.3 + - 1.6 + dynamic_friction_range: + - 0.3 + - 1.2 + restitution_range: + - 0.0 + - 0.5 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: + func: engineai_lab.tasks.velocity.mdp.events:randomize_joint_default_pos + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + pos_distribution_params: + - -0.01 + - 0.01 + operation: add + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + base_com: + func: isaaclab.envs.mdp.events:randomize_rigid_body_com + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + com_range: + x: + - -0.03 + - 0.03 + 'y': + - -0.06 + - 0.06 + z: + - -0.06 + - 0.06 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - -0.5 + - 0.5 + 'y': + - -0.5 + - 0.5 + yaw: + - -3.14 + - 3.14 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 0.95 + - 1.05 + velocity_range: + - -0.2 + - 0.2 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 20.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J2 + - .*_arm_J3 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tolerance: 0.05 + scale: 4.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_l1_with_deadband + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + deadband: 0.03 + weight: -0.25 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.7 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.05 + weight: -2.0 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.2 + power: 2.0 + weight: -1.0 + cross_body_arm_swing: + func: engineai_lab.tasks.velocity.mdp.rewards:cross_body_arm_swing_reward + params: + arm_asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + shoulder_amplitude: 0.16428571428571428 + elbow_flexion: 0.1232142857142857 + shoulder_phase_signs: + - -1.0 + - -1.0 + elbow_flexion_signs: + - 1.0 + - -1.0 + std: 0.12 + weight: 0.8 + contralateral_arm_phase: + func: engineai_lab.tasks.velocity.mdp.rewards:contralateral_arm_phase_reward + params: + arm_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_arm_link_4 + - right_arm_link_4 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + arm_phase_amplitude: 0.1 + std: 0.045 + weight: 0.5 + arm_swing_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.001 + wrist_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.004 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: false + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.2 + - 0.6 + lin_vel_y: + - -0.05 + - 0.05 + ang_vel_z: + - -0.2 + - 0.2 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.8 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 300 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.005 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-31-58/.hydra/hydra.yaml b/outputs/2026-07-13/10-31-58/.hydra/hydra.yaml new file mode 100644 index 0000000..9b478e9 --- /dev/null +++ b/outputs/2026-07-13/10-31-58/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Natural-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-31-58 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-31-58/.hydra/overrides.yaml b/outputs/2026-07-13/10-31-58/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-31-58/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-31-58/hydra.log b/outputs/2026-07-13/10-31-58/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-42-04/.hydra/config.yaml b/outputs/2026-07-13/10-42-04/.hydra/config.yaml new file mode 100644 index 0000000..b9d5d9c --- /dev/null +++ b/outputs/2026-07-13/10-42-04/.hydra/config.yaml @@ -0,0 +1,1922 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.06 + .*_arm_J6: 0.06 + .*_arm_J7: 0.06 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J2 + - .*_arm_J3 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tolerance: 0.05 + scale: 4.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_l1_with_deadband + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + deadband: 0.03 + weight: -0.25 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.7 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.05 + weight: -2.0 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.2 + power: 2.0 + weight: -1.0 + cross_body_arm_swing: + func: engineai_lab.tasks.velocity.mdp.rewards:cross_body_arm_swing_reward + params: + arm_asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + shoulder_amplitude: 0.16428571428571428 + elbow_flexion: 0.1232142857142857 + shoulder_phase_signs: + - -1.0 + - -1.0 + elbow_flexion_signs: + - 1.0 + - -1.0 + std: 0.12 + weight: 0.8 + contralateral_arm_phase: + func: engineai_lab.tasks.velocity.mdp.rewards:contralateral_arm_phase_reward + params: + arm_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_arm_link_4 + - right_arm_link_4 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + arm_phase_amplitude: 0.1 + std: 0.045 + weight: 0.5 + arm_swing_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.001 + wrist_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.004 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.2 + - 0.6 + lin_vel_y: + - -0.05 + - 0.05 + ang_vel_z: + - -0.2 + - 0.2 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.8 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 300 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.005 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-42-04/.hydra/hydra.yaml b/outputs/2026-07-13/10-42-04/.hydra/hydra.yaml new file mode 100644 index 0000000..7eb06e6 --- /dev/null +++ b/outputs/2026-07-13/10-42-04/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Natural-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-42-04 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-42-04/.hydra/overrides.yaml b/outputs/2026-07-13/10-42-04/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-42-04/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-42-04/hydra.log b/outputs/2026-07-13/10-42-04/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-43-14/.hydra/config.yaml b/outputs/2026-07-13/10-43-14/.hydra/config.yaml new file mode 100644 index 0000000..b9d5d9c --- /dev/null +++ b/outputs/2026-07-13/10-43-14/.hydra/config.yaml @@ -0,0 +1,1922 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.06 + .*_arm_J6: 0.06 + .*_arm_J7: 0.06 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J2 + - .*_arm_J3 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tolerance: 0.05 + scale: 4.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_l1_with_deadband + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + deadband: 0.03 + weight: -0.25 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.7 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.05 + weight: -2.0 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.2 + power: 2.0 + weight: -1.0 + cross_body_arm_swing: + func: engineai_lab.tasks.velocity.mdp.rewards:cross_body_arm_swing_reward + params: + arm_asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + shoulder_amplitude: 0.16428571428571428 + elbow_flexion: 0.1232142857142857 + shoulder_phase_signs: + - -1.0 + - -1.0 + elbow_flexion_signs: + - 1.0 + - -1.0 + std: 0.12 + weight: 0.8 + contralateral_arm_phase: + func: engineai_lab.tasks.velocity.mdp.rewards:contralateral_arm_phase_reward + params: + arm_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_arm_link_4 + - right_arm_link_4 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + arm_phase_amplitude: 0.1 + std: 0.045 + weight: 0.5 + arm_swing_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.001 + wrist_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.004 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.2 + - 0.6 + lin_vel_y: + - -0.05 + - 0.05 + ang_vel_z: + - -0.2 + - 0.2 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.8 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 300 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.005 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-43-14/.hydra/hydra.yaml b/outputs/2026-07-13/10-43-14/.hydra/hydra.yaml new file mode 100644 index 0000000..9f6ca3f --- /dev/null +++ b/outputs/2026-07-13/10-43-14/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Natural-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-43-14 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-43-14/.hydra/overrides.yaml b/outputs/2026-07-13/10-43-14/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-43-14/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-43-14/hydra.log b/outputs/2026-07-13/10-43-14/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/2026-07-13/10-45-17/.hydra/config.yaml b/outputs/2026-07-13/10-45-17/.hydra/config.yaml new file mode 100644 index 0000000..b9d5d9c --- /dev/null +++ b/outputs/2026-07-13/10-45-17/.hydra/config.yaml @@ -0,0 +1,1922 @@ +env: + viewer: + eye: + - 7.5 + - 7.5 + - 7.5 + lookat: + - 0.0 + - 0.0 + - 0.0 + cam_prim_path: /OmniverseKit_Persp + resolution: + - 1280 + - 720 + origin_type: world + env_index: 0 + asset_name: null + body_name: null + sim: + physics_prim_path: /physicsScene + device: cuda:0 + dt: 0.002 + render_interval: 5 + gravity: + - 0.0 + - 0.0 + - -9.81 + enable_scene_query_support: false + use_fabric: true + physx: + solver_type: 1 + solve_articulation_contact_last: false + min_position_iteration_count: 1 + max_position_iteration_count: 255 + min_velocity_iteration_count: 0 + max_velocity_iteration_count: 255 + enable_ccd: false + enable_stabilization: false + enable_external_forces_every_iteration: false + enable_enhanced_determinism: false + bounce_threshold_velocity: 0.5 + friction_offset_threshold: 0.04 + friction_correlation_distance: 0.025 + gpu_max_rigid_contact_count: 8388608 + gpu_max_rigid_patch_count: 327680 + gpu_found_lost_pairs_capacity: 2097152 + gpu_found_lost_aggregate_pairs_capacity: 33554432 + gpu_total_aggregate_pairs_capacity: 2097152 + gpu_collision_stack_size: 67108864 + gpu_heap_capacity: 67108864 + gpu_temp_buffer_capacity: 16777216 + gpu_max_num_partitions: 8 + gpu_max_soft_body_contacts: 1048576 + gpu_max_particle_contacts: 1048576 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + render: + enable_translucency: null + enable_reflections: null + enable_global_illumination: null + antialiasing_mode: null + enable_dlssg: null + enable_dl_denoiser: null + dlss_mode: null + enable_direct_lighting: null + samples_per_pixel: null + enable_shadows: null + enable_ambient_occlusion: null + dome_light_upper_lower_strategy: null + carb_settings: null + rendering_mode: null + create_stage_in_memory: false + logging_level: WARNING + save_logs_to_file: true + log_dir: null + ui_window_class_type: isaaclab.envs.ui.manager_based_rl_env_window:ManagerBasedRLEnvWindow + seed: 42 + decimation: 5 + scene: + num_envs: 1 + env_spacing: 2.5 + lazy_sensor_update: true + replicate_physics: true + filter_collisions: true + clone_in_fabric: false + robot: + class_type: isaaclab.assets.articulation.articulation:Articulation + prim_path: '{ENV_REGEX_NS}/Robot' + spawn: + asset_path: /home/xtkuang/Projects/cmvr/RL/engineai_amp/source/gen2_lab/assets/robot_simplified_collision.urdf + usd_dir: null + usd_file_name: null + force_usd_conversion: false + make_instanceable: true + fix_base: false + root_link_name: null + link_density: 0.0 + merge_fixed_joints: true + convert_mimic_joints_to_normal_joints: false + joint_drive: + drive_type: force + target_type: position + gains: + stiffness: 0 + damping: 0 + collider_type: convex_hull + self_collision: false + replace_cylinders_with_capsules: true + collision_from_visuals: false + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_urdf + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: + rigid_body_enabled: null + kinematic_enabled: null + disable_gravity: false + linear_damping: 0.0 + angular_damping: 0.0 + max_linear_velocity: 1000.0 + max_angular_velocity: 1000.0 + max_depenetration_velocity: 1.0 + max_contact_impulse: null + enable_gyroscopic_forces: null + retain_accelerations: false + solver_position_iteration_count: null + solver_velocity_iteration_count: null + sleep_threshold: null + stabilization_threshold: null + collision_props: null + activate_contact_sensors: true + scale: null + articulation_props: + articulation_enabled: null + enabled_self_collisions: false + solver_position_iteration_count: 8 + solver_velocity_iteration_count: 4 + sleep_threshold: null + stabilization_threshold: null + fix_root_link: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: null + init_state: + pos: + - 0.0 + - 0.0 + - 1.282 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + lin_vel: + - 0.0 + - 0.0 + - 0.0 + ang_vel: + - 0.0 + - 0.0 + - 0.0 + joint_pos: + left_leg_J1: 0.0 + left_leg_J2: 0.0 + left_leg_J3: 0.0 + left_leg_J4: 0.0 + left_leg_J5: 0.0 + left_leg_J6: 0.0 + right_leg_J1: 0.0 + right_leg_J2: 0.0 + right_leg_J3: 0.0 + right_leg_J4: 0.0 + right_leg_J5: 0.0 + right_leg_J6: 0.0 + waist_J1: 0.0 + waist_J2: 0.0 + left_arm_J1: 0.0 + left_arm_J2: 1.4835298641951802 + left_arm_J3: 1.5707963267948966 + left_arm_J4: 0.0 + left_arm_J5: 1.5707963267948966 + left_arm_J6: 0.0 + left_arm_J7: 0.0 + right_arm_J1: 0.0 + right_arm_J2: -1.4835298641951802 + right_arm_J3: -1.5707963267948966 + right_arm_J4: 0.0 + right_arm_J5: 1.5707963267948966 + right_arm_J6: 0.0 + right_arm_J7: 0.0 + joint_vel: + .*: 0.0 + collision_group: 0 + debug_vis: false + articulation_root_prim_path: null + soft_joint_pos_limit_factor: 0.9 + actuators: + body: + class_type: engineai_lab.robots.actuator:DelayedImplicitActuator + joint_names_expr: + - .* + effort_limit: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + effort_limit_sim: + .*_leg_J1: 320.0 + .*_leg_J2: 320.0 + .*_leg_J3: 120.0 + .*_leg_J4: 450.0 + .*_leg_J5: 120.0 + .*_leg_J6: 120.0 + waist_J.*: 182.0 + .*_arm_J1: 182.0 + .*_arm_J2: 182.0 + .*_arm_J3: 134.0 + .*_arm_J4: 66.0 + .*_arm_J5: 25.0 + .*_arm_J6: 25.0 + .*_arm_J7: 25.0 + velocity_limit_sim: + .*_leg_J1: 26.3 + .*_leg_J2: 26.3 + .*_leg_J3: 35.2 + .*_leg_J4: 26.3 + .*_leg_J5: 35.2 + .*_leg_J6: 35.2 + waist_J.*: 35.2 + .*_arm_J.*: 35.2 + stiffness: + .*_leg_J1: 180.0 + .*_leg_J2: 160.0 + .*_leg_J3: 90.0 + .*_leg_J4: 220.0 + .*_leg_J5: 55.0 + .*_leg_J6: 55.0 + waist_J.*: 80.0 + .*_arm_J1: 50.0 + .*_arm_J2: 50.0 + .*_arm_J3: 45.0 + .*_arm_J4: 35.0 + .*_arm_J5: 30.0 + .*_arm_J6: 20.0 + .*_arm_J7: 20.0 + damping: + .*_leg_J1: 6.0 + .*_leg_J2: 5.0 + .*_leg_J3: 4.0 + .*_leg_J4: 7.0 + .*_leg_J5: 1.0 + .*_leg_J6: 1.0 + waist_J.*: 4.0 + .*_arm_J1: 0.8 + .*_arm_J2: 0.8 + .*_arm_J3: 0.8 + .*_arm_J4: 0.6 + .*_arm_J5: 0.5 + .*_arm_J6: 0.4 + .*_arm_J7: 0.4 + armature: null + friction: null + dynamic_friction: null + viscous_friction: null + min_delay: 5 + max_delay: 5 + actuator_value_resolution_debug_print: false + terrain: + class_type: isaaclab.terrains.terrain_importer:TerrainImporter + collision_group: -1 + prim_path: /World/ground + num_envs: 1 + terrain_type: plane + terrain_generator: null + usd_path: null + env_spacing: null + use_terrain_origins: true + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_from_mdl_file + mdl_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/IsaacLab/Materials/TilesMarbleSpiderWhiteBrickBondHoned/TilesMarbleSpiderWhiteBrickBondHoned.mdl + project_uvw: true + albedo_brightness: null + texture_scale: + - 0.25 + - 0.25 + physics_material: + func: isaaclab.sim.spawners.materials.physics_materials:spawn_rigid_body_material + static_friction: 1.0 + dynamic_friction: 1.0 + restitution: 0.0 + friction_combine_mode: multiply + restitution_combine_mode: multiply + compliant_contact_stiffness: 0.0 + compliant_contact_damping: 0.0 + max_init_terrain_level: null + debug_vis: false + height_scanner: null + contact_forces: + class_type: isaaclab.sensors.contact_sensor.contact_sensor:ContactSensor + prim_path: '{ENV_REGEX_NS}/Robot/.*' + update_period: 0.005 + history_length: 3 + debug_vis: false + track_pose: false + track_contact_points: false + track_friction_forces: false + max_contact_data_count_per_prim: 4 + track_air_time: true + force_threshold: 1.0 + filter_prim_paths_expr: [] + visualizer_cfg: + prim_path: /Visuals/ContactSensor + markers: + contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 1.0 + - 0.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + no_contact: + func: isaaclab.sim.spawners.shapes.shapes:spawn_sphere + visible: false + semantic_tags: null + copy_from_source: true + mass_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + physics_material_path: material + physics_material: null + radius: 0.02 + sky_light: + class_type: null + prim_path: /World/skyLight + spawn: + func: isaaclab.sim.spawners.lights.lights:spawn_light + visible: true + semantic_tags: null + copy_from_source: true + prim_type: DomeLight + color: + - 1.0 + - 1.0 + - 1.0 + enable_color_temperature: false + color_temperature: 6500.0 + normalize: false + exposure: 0.0 + intensity: 750.0 + texture_file: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Materials/Textures/Skies/PolyHaven/kloofendal_43d_clear_puresky_4k.hdr + texture_format: automatic + visible_in_primary_ray: true + init_state: + pos: + - 0.0 + - 0.0 + - 0.0 + rot: + - 1.0 + - 0.0 + - 0.0 + - 0.0 + collision_group: 0 + debug_vis: false + recorders: + dataset_file_handler_class_type: isaaclab.utils.datasets.hdf5_dataset_file_handler:HDF5DatasetFileHandler + dataset_export_dir_path: /tmp/isaaclab/logs + dataset_filename: dataset + dataset_export_mode: + _value_: 1 + _name_: EXPORT_ALL + _sort_order_: 1 + export_in_record_pre_reset: true + export_in_close: false + observations: + policy: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + critic: + concatenate_terms: true + concatenate_dim: -1 + enable_corruption: false + history_length: null + flatten_history_dim: true + joint_pos: + func: isaaclab.envs.mdp.observations:joint_pos_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.01 + n_max: 0.01 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + joint_vel: + func: isaaclab.envs.mdp.observations:joint_vel_rel + params: + asset_cfg: + name: robot + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -1.5 + n_max: 1.5 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + actions: + func: isaaclab.envs.mdp.observations:last_action + params: {} + modifiers: null + noise: null + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + pelvis_ang_vel: + func: engineai_lab.tasks.velocity.mdp.observations:body_ang_vel_yaw_frame + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + heading_yaw_offset: 1.5708 + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.2 + n_max: 0.2 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + torso_projected_gravity: + func: engineai_lab.tasks.velocity.mdp.observations:body_projected_gravity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + modifiers: null + noise: + func: isaaclab.utils.noise.noise_model:uniform_noise + operation: add + n_min: -0.05 + n_max: 0.05 + clip: null + scale: null + history_length: 15 + flatten_history_dim: true + velocity_commands: + func: isaaclab.envs.mdp.observations:generated_commands + params: + command_name: base_velocity + modifiers: null + noise: null + clip: null + scale: null + history_length: 0 + flatten_history_dim: true + actions: + joint_pos: + class_type: isaaclab.envs.mdp.actions.joint_actions:JointPositionAction + asset_name: robot + debug_vis: false + clip: null + joint_names: + - left_leg_J1 + - left_leg_J2 + - left_leg_J3 + - left_leg_J4 + - left_leg_J5 + - left_leg_J6 + - right_leg_J1 + - right_leg_J2 + - right_leg_J3 + - right_leg_J4 + - right_leg_J5 + - right_leg_J6 + - waist_J1 + - waist_J2 + - left_arm_J1 + - left_arm_J2 + - left_arm_J3 + - left_arm_J4 + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J1 + - right_arm_J2 + - right_arm_J3 + - right_arm_J4 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + scale: + .*_leg_J1: 0.5 + .*_leg_J2: 0.2 + .*_leg_J3: 0.2 + .*_leg_J4: 0.5 + .*_leg_J5: 0.5 + .*_leg_J6: 0.2 + waist_J.*: 0.2 + .*_arm_J1: 0.2 + .*_arm_J2: 0.2 + .*_arm_J3: 0.2 + .*_arm_J4: 0.2 + .*_arm_J5: 0.06 + .*_arm_J6: 0.06 + .*_arm_J7: 0.06 + offset: 0.0 + preserve_order: true + use_default_offset: true + events: + physics_material: + func: isaaclab.envs.mdp.events:randomize_rigid_body_material + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: .* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + static_friction_range: + - 1.0 + - 1.0 + dynamic_friction_range: + - 1.0 + - 1.0 + restitution_range: + - 0.0 + - 0.0 + num_buckets: 64 + mode: startup + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + add_joint_default_pos: null + base_com: null + push_robot: null + reset_base: + func: isaaclab.envs.mdp.events:reset_root_state_uniform + params: + pose_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + velocity_range: + x: + - 0.0 + - 0.0 + 'y': + - 0.0 + - 0.0 + z: + - 0.0 + - 0.0 + roll: + - 0.0 + - 0.0 + pitch: + - 0.0 + - 0.0 + yaw: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + reset_robot_joints: + func: isaaclab.envs.mdp.events:reset_joints_by_scale + params: + position_range: + - 1.0 + - 1.0 + velocity_range: + - 0.0 + - 0.0 + mode: reset + interval_range_s: null + is_global_time: false + min_step_count_between_reset: 0 + rerender_on_reset: false + num_rerenders_on_reset: 0 + wait_for_textures: true + xr: null + teleop_devices: + devices: {} + export_io_descriptors: false + log_dir: null + is_finite_horizon: false + episode_length_s: 40.0 + rewards: + pelvis_track_lin_vel_xy_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_lin_vel_xy_yaw_frame_exp_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + sigma: 5 + heading_yaw_offset: 1.5708 + weight: 2.5 + whole_body_track_ang_vel_z_exp: + func: engineai_lab.tasks.velocity.mdp.rewards:track_ang_vel_z_world_exp_bodies + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - waist_link_2 + - body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + command_name: base_velocity + sigma: 5 + weight: 2.5 + torso_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:body_orientation + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 10.0 + weight: 0.8 + pelvis_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 0.85094 + scale: 15.0 + weight: 0.4 + torso_height: + func: engineai_lab.tasks.velocity.mdp.rewards:body_height_tracking + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + target_height: 1.27194 + scale: 15.0 + weight: 0.1 + foot_position: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_position_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + desired_foot_positions: + - - 0.096993 + - 0.120673 + - -0.785934 + - - 0.093994 + - -0.120677 + - -0.785934 + heading_yaw_offset: 1.5708 + weight: 0.5 + feet_orientation: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_orientation_relative_to_body + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + stand_threshold: 0.1 + heading_yaw_offset: 1.5708 + foot_frame_offsets_rpy: + - - 1.5708 + - 1.5708 + - 0.0 + - - 1.5708 + - 1.5708 + - 0.0 + weight: 0.25 + torso_pelvis_yaw_alignment: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_alignment + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_heading_yaw_offset: 1.5708 + scale: 4.0 + weight: 0.3 + torso_pelvis_yaw_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:body_yaw_rate_difference_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.5 + waist_pos: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + tolerance: 0.0 + weight: 0.45 + waist_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - waist_J1 + - waist_J2 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.02 + leg_joint_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_leg_J2 + - .*_leg_J3 + - .*_leg_J6 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + scale: 3.0 + weight: 0.3 + arm_primary_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_exp + params: + asset_cfg: + name: robot + joint_names: + - .*_arm_J2 + - .*_arm_J3 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tolerance: 0.05 + scale: 4.0 + weight: 0.3 + arm_distal_position: + func: engineai_lab.tasks.velocity.mdp.rewards:joint_deviation_l1_with_deadband + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + deadband: 0.03 + weight: -0.25 + feet_contact: + func: engineai_lab.tasks.velocity.mdp.rewards:biped_contact_mode_reward + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + feet_air_time: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_on_contact + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + min_air_time: 0.05 + max_air_time: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + feet_air_time_dense: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_air_time_positive_biped + params: + command_name: base_velocity + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 0.25 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 2.0 + swing_foot_clearance: + func: engineai_lab.tasks.velocity.mdp.rewards:swing_foot_clearance_reward + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + target_height: 0.04 + std: 0.05 + force_threshold: 5.0 + linear_threshold: 0.1 + angular_threshold: 0.1 + weight: 0.75 + foot_stumble: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_stumble + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + tangential_threshold: 2.0 + normal_threshold: 1.0 + weight: -1.0 + dof_pos_limits: + func: isaaclab.envs.mdp.rewards:joint_pos_limits + params: + asset_cfg: + name: robot + joint_names: .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -10.0 + energy_cost: + func: engineai_lab.tasks.velocity.mdp.rewards:energy_cost_with_curriculum + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.004 + feet_slide: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_slide + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -0.7 + dof_vel: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-05 + dof_acc: + func: isaaclab.envs.mdp.rewards:joint_acc_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.25e-08 + action_rate: + func: engineai_lab.tasks.velocity.mdp.rewards:action_rate_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.06 + action_smoothness: + func: engineai_lab.tasks.velocity.mdp.rewards:action_smoothness_with_curriculum + params: + start_scale: 0.1 + power: 0.8 + interval_epochs: 4800 + weight: -0.04 + dof_torque: + func: isaaclab.envs.mdp.rewards:joint_torques_l2 + params: + asset_cfg: + name: robot + joint_names: + - .* + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + weight: -1.0e-06 + termination_penalty: + func: isaaclab.envs.mdp.rewards:is_terminated + params: {} + weight: -200.0 + pelvis_vertical_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:body_vertical_velocity_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.05 + weight: -2.0 + pelvis_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + torso_roll_pitch_ang_vel: + func: engineai_lab.tasks.velocity.mdp.rewards:body_roll_pitch_ang_vel_l2 + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: body_link + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + deadband: 0.1 + weight: -0.1 + feet_landing_velocity: + func: engineai_lab.tasks.velocity.mdp.rewards:feet_landing_velocity + params: + asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + velocity_threshold: 0.2 + power: 2.0 + weight: -1.0 + cross_body_arm_swing: + func: engineai_lab.tasks.velocity.mdp.rewards:cross_body_arm_swing_reward + params: + arm_asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + shoulder_amplitude: 0.16428571428571428 + elbow_flexion: 0.1232142857142857 + shoulder_phase_signs: + - -1.0 + - -1.0 + elbow_flexion_signs: + - 1.0 + - -1.0 + std: 0.12 + weight: 0.8 + contralateral_arm_phase: + func: engineai_lab.tasks.velocity.mdp.rewards:contralateral_arm_phase_reward + params: + arm_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_arm_link_4 + - right_arm_link_4 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + feet_asset_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - left_leg_link_6 + - right_leg_link_6 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + reference_body_cfg: + name: robot + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: waist_link_2 + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + command_name: base_velocity + heading_yaw_offset: 1.5708 + min_forward_speed: 0.1 + full_swing_speed: 0.6 + min_swing_scale: 0.35 + phase_distance: 0.23961402439024393 + arm_phase_amplitude: 0.1 + std: 0.045 + weight: 0.5 + arm_swing_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J1 + - right_arm_J1 + - left_arm_J4 + - right_arm_J4 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.001 + wrist_velocity: + func: isaaclab.envs.mdp.rewards:joint_vel_l2 + params: + asset_cfg: + name: robot + joint_names: + - left_arm_J5 + - left_arm_J6 + - left_arm_J7 + - right_arm_J5 + - right_arm_J6 + - right_arm_J7 + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: null + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: true + weight: -0.004 + terminations: + time_out: + func: isaaclab.envs.mdp.terminations:time_out + params: {} + time_out: true + base_contact: + func: engineai_lab.tasks.velocity.mdp.terminations:illegal_contact + params: + sensor_cfg: + name: contact_forces + joint_names: null + joint_ids: slice(None,None,None) + fixed_tendon_names: null + fixed_tendon_ids: slice(None,None,None) + body_names: + - body_link + - waist_link_.* + - .*_leg_link_[1-4] + - .*_arm_link_.* + body_ids: slice(None,None,None) + object_collection_names: null + object_collection_ids: slice(None,None,None) + preserve_order: false + threshold: 1.0 + time_out: false + curriculum: + terrain_levels: null + commands: + base_velocity: + class_type: engineai_lab.tasks.velocity.mdp.commands:BodyVelocityCommand + resampling_time_range: + - 3.0 + - 5.0 + debug_vis: true + asset_name: robot + heading_command: false + heading_control_stiffness: 0.5 + rel_standing_envs: 0.1 + rel_heading_envs: 0.0 + ranges: + lin_vel_x: + - 0.2 + - 0.6 + lin_vel_y: + - -0.05 + - 0.05 + ang_vel_z: + - -0.2 + - 0.2 + heading: null + goal_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_goal + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 1.0 + - 0.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + current_vel_visualizer_cfg: + prim_path: /Visuals/Command/velocity_current + markers: + arrow: + func: isaaclab.sim.spawners.from_files.from_files:spawn_from_usd + visible: true + semantic_tags: null + copy_from_source: true + mass_props: null + deformable_props: null + rigid_props: null + collision_props: null + activate_contact_sensors: false + scale: + - 0.5 + - 0.5 + - 0.5 + articulation_props: null + fixed_tendons_props: null + spatial_tendons_props: null + joint_drive_props: null + visual_material_path: material + visual_material: + func: isaaclab.sim.spawners.materials.visual_materials:spawn_preview_surface + diffuse_color: + - 0.0 + - 0.0 + - 1.0 + emissive_color: + - 0.0 + - 0.0 + - 0.0 + roughness: 0.5 + metallic: 0.0 + opacity: 1.0 + usd_path: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1/Isaac/Props/UIElements/arrow_x.usd + variants: null + body_name: waist_link_2 + heading_yaw_offset: 1.5708 + rel_straight_envs: 0.8 + marker_height_offset: 0.35 + marker_vertical_separation: 0.08 +agent: + seed: 42 + device: cuda:0 + num_steps_per_env: 24 + max_iterations: 300 + empirical_normalization: {} + obs_groups: + actor: + - policy + critic: + - policy + clip_actions: null + check_for_nan: true + save_interval: 50 + experiment_name: velocity_flat_terrain_gen2 + run_name: '' + logger: tensorboard + neptune_project: isaaclab + wandb_project: isaaclab + resume: false + load_run: .* + load_checkpoint: model_.*.pt + class_name: OnPolicyRunner + actor: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: + class_name: GaussianDistribution + init_std: 1.0 + std_type: scalar + critic: + class_name: MLPModel + hidden_dims: + - 512 + - 256 + - 128 + activation: elu + obs_normalization: true + distribution_cfg: null + algorithm: + class_name: PPO + num_learning_epochs: 5 + num_mini_batches: 4 + learning_rate: 0.001 + schedule: adaptive + gamma: 0.99 + lam: 0.95 + entropy_coef: 0.005 + desired_kl: 0.01 + max_grad_norm: 1.0 + optimizer: adam + value_loss_coef: 1.0 + use_clipped_value_loss: true + clip_param: 0.2 + normalize_advantage_per_mini_batch: false + share_cnn_encoders: false + rnd_cfg: null + symmetry_cfg: null + policy: {} diff --git a/outputs/2026-07-13/10-45-17/.hydra/hydra.yaml b/outputs/2026-07-13/10-45-17/.hydra/hydra.yaml new file mode 100644 index 0000000..3179681 --- /dev/null +++ b/outputs/2026-07-13/10-45-17/.hydra/hydra.yaml @@ -0,0 +1,154 @@ +hydra: + run: + dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S} + sweep: + dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S} + subdir: ${hydra.job.num} + launcher: + _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher + sweeper: + _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper + max_batch_size: null + params: null + help: + app_name: ${hydra.job.name} + header: '${hydra.help.app_name} is powered by Hydra. + + ' + footer: 'Powered by Hydra (https://hydra.cc) + + Use --hydra-help to view Hydra specific help + + ' + template: '${hydra.help.header} + + == Configuration groups == + + Compose your configuration from those groups (group=option) + + + $APP_CONFIG_GROUPS + + + == Config == + + Override anything in the config (foo.bar=value) + + + $CONFIG + + + ${hydra.help.footer} + + ' + hydra_help: + template: 'Hydra (${hydra.runtime.version}) + + See https://hydra.cc for more info. + + + == Flags == + + $FLAGS_HELP + + + == Configuration groups == + + Compose your configuration from those groups (For example, append hydra/job_logging=disabled + to command line) + + + $HYDRA_CONFIG_GROUPS + + + Use ''--cfg hydra'' to Show the Hydra config. + + ' + hydra_help: ??? + hydra_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][HYDRA] %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + root: + level: INFO + handlers: + - console + loggers: + logging_example: + level: DEBUG + disable_existing_loggers: false + job_logging: + version: 1 + formatters: + simple: + format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + formatter: simple + filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log + root: + level: INFO + handlers: + - console + - file + disable_existing_loggers: false + env: {} + mode: RUN + searchpath: [] + callbacks: {} + output_subdir: .hydra + overrides: + hydra: + - hydra.mode=RUN + task: [] + job: + name: hydra + chdir: null + override_dirname: '' + id: ??? + num: ??? + config_name: Flat-Gen2-Natural-Play-v0 + env_set: {} + env_copy: [] + config: + override_dirname: + kv_sep: '=' + item_sep: ',' + exclude_keys: [] + runtime: + version: 1.3.4 + version_base: '1.3' + cwd: /home/xtkuang/Projects/cmvr/RL/engineai_amp + config_sources: + - path: hydra.conf + schema: pkg + provider: hydra + - path: isaaclab_tasks.utils + schema: pkg + provider: main + - path: '' + schema: structured + provider: schema + output_dir: /home/xtkuang/Projects/cmvr/RL/engineai_amp/outputs/2026-07-13/10-45-17 + choices: + hydra/env: default + hydra/callbacks: null + hydra/job_logging: default + hydra/hydra_logging: default + hydra/hydra_help: default + hydra/help: default + hydra/sweeper: basic + hydra/launcher: basic + hydra/output: default + verbose: false diff --git a/outputs/2026-07-13/10-45-17/.hydra/overrides.yaml b/outputs/2026-07-13/10-45-17/.hydra/overrides.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/outputs/2026-07-13/10-45-17/.hydra/overrides.yaml @@ -0,0 +1 @@ +[] diff --git a/outputs/2026-07-13/10-45-17/hydra.log b/outputs/2026-07-13/10-45-17/hydra.log new file mode 100644 index 0000000..e69de29 diff --git a/outputs/pm01-gen2-link/pm01-gen2命名对照_补全link.pdf b/outputs/pm01-gen2-link/pm01-gen2命名对照_补全link.pdf new file mode 100644 index 0000000..adffe83 Binary files /dev/null and b/outputs/pm01-gen2-link/pm01-gen2命名对照_补全link.pdf differ diff --git a/outputs/pm01-gen2-link/pm01-gen2命名对照_补全link.xlsx b/outputs/pm01-gen2-link/pm01-gen2命名对照_补全link.xlsx new file mode 100644 index 0000000..c183ea5 Binary files /dev/null and b/outputs/pm01-gen2-link/pm01-gen2命名对照_补全link.xlsx differ diff --git a/outputs/pm01-gen2-link/preview-1.png b/outputs/pm01-gen2-link/preview-1.png new file mode 100644 index 0000000..88dc364 Binary files /dev/null and b/outputs/pm01-gen2-link/preview-1.png differ diff --git a/outputs/pm01-gen2-link/preview-2.png b/outputs/pm01-gen2-link/preview-2.png new file mode 100644 index 0000000..7abbe95 Binary files /dev/null and b/outputs/pm01-gen2-link/preview-2.png differ