2024-03-07 17:46:42 +08:00
|
|
|
from go2_gym.envs.base.legged_robot_config import Cfg
|
2024-01-28 17:11:38 +08:00
|
|
|
|
|
|
|
|
|
|
|
def base_set():
|
|
|
|
# set basics
|
|
|
|
Cfg.terrain.teleport_robots = True
|
|
|
|
Cfg.terrain.border_size = 50
|
|
|
|
Cfg.terrain.num_rows = 10
|
|
|
|
Cfg.terrain.num_cols = 10
|
|
|
|
Cfg.commands.resampling_time = 1e9
|
|
|
|
Cfg.env.episode_length_s = 500
|
|
|
|
Cfg.rewards.terminal_body_height = 0.0
|
|
|
|
Cfg.rewards.use_terminal_body_height = True
|
|
|
|
|
|
|
|
|
|
|
|
def rand_regular():
|
|
|
|
Cfg.domain_rand.randomize_friction = True
|
|
|
|
Cfg.domain_rand.friction_range = [0.05, 4.5]
|
|
|
|
Cfg.domain_rand.randomize_restitution = True
|
|
|
|
Cfg.domain_rand.restitution_range = [0, 1.0]
|
|
|
|
Cfg.domain_rand.restitution = 0.5
|
|
|
|
Cfg.domain_rand.randomize_base_mass = True
|
|
|
|
Cfg.domain_rand.added_mass_range = [-1., 3.]
|
|
|
|
Cfg.domain_rand.randomize_com_displacement = True
|
|
|
|
Cfg.domain_rand.com_displacement_range = [-0.1, 0.1]
|
|
|
|
Cfg.domain_rand.randomize_motor_strength = True
|
|
|
|
Cfg.domain_rand.motor_strength_range = [0.9, 1.1]
|
|
|
|
Cfg.domain_rand.randomize_Kp_factor = False
|
|
|
|
Cfg.domain_rand.Kp_factor_range = [0.8, 1.3]
|
|
|
|
Cfg.domain_rand.randomize_Kd_factor = False
|
|
|
|
Cfg.domain_rand.Kd_factor_range = [0.5, 1.5]
|
|
|
|
Cfg.domain_rand.push_robots = False
|
|
|
|
Cfg.domain_rand.push_interval_s = 15
|
|
|
|
Cfg.domain_rand.max_push_vel_xy = 1.
|
|
|
|
|
|
|
|
|
|
|
|
def rand_large():
|
|
|
|
Cfg.domain_rand.randomize_friction = True
|
|
|
|
Cfg.domain_rand.friction_range = [0.04, 6.0]
|
|
|
|
Cfg.domain_rand.randomize_restitution = True
|
|
|
|
Cfg.domain_rand.restitution_range = [0, 1.0]
|
|
|
|
Cfg.domain_rand.restitution = 0.5
|
|
|
|
Cfg.domain_rand.randomize_base_mass = True
|
|
|
|
Cfg.domain_rand.added_mass_range = [-1.5, 4.]
|
|
|
|
Cfg.domain_rand.randomize_com_displacement = True
|
|
|
|
Cfg.domain_rand.com_displacement_range = [-0.13, 0.13]
|
|
|
|
Cfg.domain_rand.randomize_motor_strength = True
|
|
|
|
Cfg.domain_rand.motor_strength_range = [0.88, 1.12] # table 1 in RMA may have a typo
|
|
|
|
Cfg.domain_rand.randomize_Kp_factor = False
|
|
|
|
Cfg.domain_rand.Kp_factor_range = [0.8, 1.3]
|
|
|
|
Cfg.domain_rand.randomize_Kd_factor = False
|
|
|
|
Cfg.domain_rand.Kd_factor_range = [0.5, 1.5]
|
|
|
|
Cfg.domain_rand.push_robots = False
|
|
|
|
Cfg.domain_rand.push_interval_s = 15
|
|
|
|
Cfg.domain_rand.max_push_vel_xy = 1.
|
|
|
|
|
|
|
|
|
|
|
|
def static_low():
|
|
|
|
Cfg.domain_rand.randomize_friction = True
|
|
|
|
Cfg.domain_rand.friction_range = [0.05, 0.06]
|
|
|
|
Cfg.domain_rand.randomize_restitution = True
|
|
|
|
Cfg.domain_rand.restitution_range = [0, 0.01]
|
|
|
|
Cfg.domain_rand.restitution = 0.5
|
|
|
|
Cfg.domain_rand.randomize_base_mass = True
|
|
|
|
Cfg.domain_rand.added_mass_range = [-1., -0.99]
|
|
|
|
Cfg.domain_rand.randomize_com_displacement = True
|
|
|
|
Cfg.domain_rand.com_displacement_range = [-0.1, -0.09]
|
|
|
|
Cfg.domain_rand.randomize_motor_strength = True
|
|
|
|
Cfg.domain_rand.motor_strength_range = [0.9, -0.99]
|
|
|
|
Cfg.domain_rand.randomize_Kp_factor = False
|
|
|
|
Cfg.domain_rand.Kp_factor_range = [0.8, 1.3]
|
|
|
|
Cfg.domain_rand.randomize_Kd_factor = False
|
|
|
|
Cfg.domain_rand.Kd_factor_range = [0.5, 1.5]
|
|
|
|
Cfg.domain_rand.push_robots = False
|
|
|
|
Cfg.domain_rand.push_interval_s = 15
|
|
|
|
Cfg.domain_rand.max_push_vel_xy = 1.
|
|
|
|
|
|
|
|
|
|
|
|
def static_medium():
|
|
|
|
Cfg.domain_rand.randomize_friction = True
|
|
|
|
Cfg.domain_rand.friction_range = [1.0, 1.01]
|
|
|
|
Cfg.domain_rand.randomize_restitution = True
|
|
|
|
Cfg.domain_rand.restitution_range = [0.5, 0.51]
|
|
|
|
Cfg.domain_rand.restitution = 0.5
|
|
|
|
Cfg.domain_rand.randomize_base_mass = True
|
|
|
|
Cfg.domain_rand.added_mass_range = [0.0, 0.01]
|
|
|
|
Cfg.domain_rand.randomize_com_displacement = True
|
|
|
|
Cfg.domain_rand.com_displacement_range = [0.0, 0.01]
|
|
|
|
Cfg.domain_rand.randomize_motor_strength = True
|
|
|
|
Cfg.domain_rand.motor_strength_range = [1.0, 1.01]
|
|
|
|
Cfg.domain_rand.randomize_Kp_factor = False
|
|
|
|
Cfg.domain_rand.Kp_factor_range = [0.8, 1.3]
|
|
|
|
Cfg.domain_rand.randomize_Kd_factor = False
|
|
|
|
Cfg.domain_rand.Kd_factor_range = [0.5, 1.5]
|
|
|
|
Cfg.domain_rand.push_robots = False
|
|
|
|
Cfg.domain_rand.push_interval_s = 15
|
|
|
|
Cfg.domain_rand.max_push_vel_xy = 1.
|
|
|
|
|
|
|
|
|
|
|
|
def static_high():
|
|
|
|
Cfg.domain_rand.randomize_friction = True
|
|
|
|
Cfg.domain_rand.friction_range = [4.49, 4.5]
|
|
|
|
Cfg.domain_rand.randomize_restitution = True
|
|
|
|
Cfg.domain_rand.restitution_range = [0.99, 1.0]
|
|
|
|
Cfg.domain_rand.restitution = 0.5
|
|
|
|
Cfg.domain_rand.randomize_base_mass = True
|
|
|
|
Cfg.domain_rand.added_mass_range = [2.99, 3.]
|
|
|
|
Cfg.domain_rand.randomize_com_displacement = True
|
|
|
|
Cfg.domain_rand.com_displacement_range = [0.09, 0.1]
|
|
|
|
Cfg.domain_rand.randomize_motor_strength = True
|
|
|
|
Cfg.domain_rand.motor_strength_range = [1.09, 1.1]
|
|
|
|
Cfg.domain_rand.randomize_Kp_factor = False
|
|
|
|
Cfg.domain_rand.Kp_factor_range = [0.8, 1.3]
|
|
|
|
Cfg.domain_rand.randomize_Kd_factor = False
|
|
|
|
Cfg.domain_rand.Kd_factor_range = [0.5, 1.5]
|
|
|
|
Cfg.domain_rand.push_robots = False
|
|
|
|
Cfg.domain_rand.push_interval_s = 15
|
|
|
|
Cfg.domain_rand.max_push_vel_xy = 1.
|
|
|
|
|
|
|
|
def only_base_mass():
|
|
|
|
Cfg.domain_rand.randomize_friction = True
|
|
|
|
Cfg.domain_rand.friction_range = [1.0, 1.01]
|
|
|
|
Cfg.domain_rand.randomize_restitution = True
|
|
|
|
Cfg.domain_rand.restitution_range = [0.5, 0.51]
|
|
|
|
Cfg.domain_rand.restitution = 0.5
|
|
|
|
Cfg.domain_rand.randomize_base_mass = True
|
|
|
|
Cfg.domain_rand.added_mass_range = [-1, 3]
|
|
|
|
Cfg.domain_rand.randomize_com_displacement = True
|
|
|
|
Cfg.domain_rand.com_displacement_range = [0.0, 0.01]
|
|
|
|
Cfg.domain_rand.randomize_motor_strength = True
|
|
|
|
Cfg.domain_rand.motor_strength_range = [1.0, 1.01]
|
|
|
|
Cfg.domain_rand.randomize_Kp_factor = False
|
|
|
|
Cfg.domain_rand.Kp_factor_range = [0.8, 1.3]
|
|
|
|
Cfg.domain_rand.randomize_Kd_factor = False
|
|
|
|
Cfg.domain_rand.Kd_factor_range = [0.5, 1.5]
|
|
|
|
Cfg.domain_rand.push_robots = False
|
|
|
|
Cfg.domain_rand.push_interval_s = 15
|
|
|
|
Cfg.domain_rand.max_push_vel_xy = 1.
|
|
|
|
|
|
|
|
|
|
|
|
DR_SETTINGS = dict(
|
|
|
|
rand_regular=rand_regular,
|
|
|
|
rand_large=rand_large,
|
|
|
|
static_low=static_low,
|
|
|
|
static_medium=static_medium,
|
|
|
|
static_high=static_high,
|
|
|
|
only_base_mass=only_base_mass,
|
|
|
|
)
|