v0.1.13; add 2.5 rad trunctation; add LevelPipeline binary search maximum terrain levels
This commit is contained in:
@@ -75,13 +75,17 @@ def parse_args():
|
||||
{"name": "--plot-radar", "action": "store_true", "default": False, "help": "Plot radar charts for metrics."},
|
||||
{"name": "--base-mass", "type": float, "default": 0.0, "help": "Set the base mass of the robot."},
|
||||
{"name": "--friction", "type": float, "default": 1.0, "help": "Set the ground friction coefficient."},
|
||||
{"name": "--level", "type": int, "help": "Set the difficulty level of the environment, range 1-10 (flat is 0)."},
|
||||
|
||||
# Multiprocessing parameters, with different seeds
|
||||
{"name": "--multi", "action": "store_true", "default": False, "help": "Enable multiprocessing."},
|
||||
{"name": "--num-processes", "type": int, "default": 2, "help": "Number of parallel processes."},
|
||||
{"name": "--seeds", "type": int, "nargs": "+", "default": [0], "help": "List of random seeds for multiple runs."},
|
||||
{"name": "--base-masses", "type": float, "nargs": "+", "default": [0], "help": "List of base masses for the model."},
|
||||
{"name": "--frictions", "type": float, "nargs": "+", "default": [0.4, 0.7, 1.0, 1.3, 1.6], "help": "List of friction coefficients for the model."}
|
||||
{"name": "--frictions", "type": float, "nargs": "+", "default": [0.4, 0.7, 1.0, 1.3, 1.6], "help": "List of friction coefficients for the model."},
|
||||
|
||||
# Level pipeline parameters
|
||||
{"name": "--search-max-level", "action": "store_true", "default": False, "help": "Use level pipeline to search maximum level."},
|
||||
]
|
||||
for param in parameters:
|
||||
parser.add_argument(param['name'], **{k: v for k, v in param.items() if k != 'name'})
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
from robogauge import ROBOGAUGE_ROOT_DIR
|
||||
from robogauge.utils.logger import logger
|
||||
from robogauge.utils.helpers import parse_args, set_seed
|
||||
from robogauge.tasks.gauge.gauge_configs.terrain_levels_config import TerrainLevelsConfig
|
||||
|
||||
class TaskRegister():
|
||||
def __init__(self):
|
||||
@@ -69,5 +70,15 @@ class TaskRegister():
|
||||
sim_cfg.domain_rand.friction = args.friction
|
||||
if args.base_mass is not None:
|
||||
sim_cfg.domain_rand.base_mass = args.base_mass
|
||||
if args.level is not None:
|
||||
gauger_cfg.assets.terrain_level = args.level
|
||||
levels_cfg = TerrainLevelsConfig()
|
||||
cfg = getattr(levels_cfg, gauger_cfg.assets.terrain_name)
|
||||
assert cfg is not None, f"Level {args.level} configuration not found in TerrainLevelsConfig."
|
||||
assert args.level in cfg.levels, f"Level must be in {cfg.levels}."
|
||||
gauger_cfg.goals.target_pos_velocity.target_pos = cfg.targets[cfg.levels.index(args.level)]
|
||||
xml = gauger_cfg.assets.terrain_xml
|
||||
xml = xml.rsplit('/', 1)[0] + f"/{gauger_cfg.assets.terrain_name}_{args.level}.xml"
|
||||
gauger_cfg.assets.terrain_xml = xml
|
||||
|
||||
task_register = TaskRegister()
|
||||
|
||||
Reference in New Issue
Block a user