simulo.RoughTerrain
Procedurally generated rough terrain for locomotion training.
This terrain type generates a grid of sub-terrains with various difficulty levels, suitable for curriculum learning in locomotion tasks. Equivalent to IsaacLab’s TerrainImporterCfg with TerrainGeneratorCfg.
Attributes:
num_rows— Number of terrain rows (sub-terrain grid rows)num_cols— Number of terrain columns (sub-terrain grid columns)size— Size of each sub-terrain (width, height) in metersborder_width— Width of flat border around terraincurriculum— If True, progressively spawn robots on harder terrainmax_init_terrain_level— Maximum initial terrain level for curriculum (None = spawn randomly across all levels)sub_terrains— List of sub-terrain configurationscolor_scheme— Color scheme for terrain (“height” or “none”)
Example:
import simulo
# Create rough terrain matching IsaacLab's H1 configurationterrain = simulo.Terrain.rough( name="terrain", num_rows=10, num_cols=20, size=(8.0, 8.0), curriculum=True, sub_terrains=[ simulo.SubTerrainConfig( type="pyramid_stairs", proportion=0.2, params={"step_height_range": (0.05, 0.23), "step_width": 0.3} ), simulo.SubTerrainConfig( type="pyramid_stairs_inv", proportion=0.2, params={"step_height_range": (0.05, 0.23), "step_width": 0.3} ), simulo.SubTerrainConfig( type="random_rough", proportion=0.2, params={"noise_range": (-0.05, 0.05), "noise_step": 0.005} ), ],)scene.add(terrain, at="/World/terrain", per_environment=False)simulo.RoughTerrain( name: str, pose: Pose = Pose.identity(), num_rows: int = 10, num_cols: int = 20, size: Tuple[float, float] = (8.0, 8.0), border_width: float = 20.0, curriculum: bool = True, max_init_terrain_level: Optional[int] = None, sub_terrains: List[SubTerrainConfig] = list(), color_scheme: str = 'height',)