Skip to content

Commit 3782719

Browse files
committed
deploy: 3476fb0
1 parent b31a90d commit 3782719

32 files changed

+4306
-3618
lines changed

main/_modules/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,7 @@ <h1>All modules for which code is available</h1>
669669
<li><a href="isaaclab/sim/utils.html">isaaclab.sim.utils</a></li>
670670
<li><a href="isaaclab/terrains/height_field/hf_terrains.html">isaaclab.terrains.height_field.hf_terrains</a></li>
671671
<li><a href="isaaclab/terrains/height_field/hf_terrains_cfg.html">isaaclab.terrains.height_field.hf_terrains_cfg</a></li>
672+
<li><a href="isaaclab/terrains/sub_terrain_cfg.html">isaaclab.terrains.sub_terrain_cfg</a></li>
672673
<li><a href="isaaclab/terrains/terrain_generator.html">isaaclab.terrains.terrain_generator</a></li>
673674
<li><a href="isaaclab/terrains/terrain_generator_cfg.html">isaaclab.terrains.terrain_generator_cfg</a></li>
674675
<li><a href="isaaclab/terrains/terrain_importer.html">isaaclab.terrains.terrain_importer</a></li>

main/_modules/isaaclab/terrains/height_field/hf_terrains_cfg.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ <h1>Source code for isaaclab.terrains.height_field.hf_terrains_cfg</h1><div clas
561561

562562
<span class="kn">from</span><span class="w"> </span><span class="nn">isaaclab.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">configclass</span>
563563

564-
<span class="kn">from</span><span class="w"> </span><span class="nn">..terrain_generator_cfg</span><span class="w"> </span><span class="kn">import</span> <span class="n">SubTerrainBaseCfg</span>
564+
<span class="kn">from</span><span class="w"> </span><span class="nn">..sub_terrain_cfg</span><span class="w"> </span><span class="kn">import</span> <span class="n">SubTerrainBaseCfg</span>
565565
<span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">hf_terrains</span>
566566

567567

main/_modules/isaaclab/terrains/sub_terrain_cfg.html

Lines changed: 716 additions & 0 deletions
Large diffs are not rendered by default.

main/_modules/isaaclab/terrains/terrain_generator.html

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,10 +557,13 @@ <h1>Source code for isaaclab.terrains.terrain_generator</h1><div class="highligh
557557
<span class="c1">#</span>
558558
<span class="c1"># SPDX-License-Identifier: BSD-3-Clause</span>
559559

560+
<span class="kn">from</span><span class="w"> </span><span class="nn">__future__</span><span class="w"> </span><span class="kn">import</span> <span class="n">annotations</span>
561+
560562
<span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
561563
<span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
562564
<span class="kn">import</span><span class="w"> </span><span class="nn">torch</span>
563565
<span class="kn">import</span><span class="w"> </span><span class="nn">trimesh</span>
566+
<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">TYPE_CHECKING</span>
564567

565568
<span class="kn">import</span><span class="w"> </span><span class="nn">omni.log</span>
566569

@@ -569,11 +572,13 @@ <h1>Source code for isaaclab.terrains.terrain_generator</h1><div class="highligh
569572
<span class="kn">from</span><span class="w"> </span><span class="nn">isaaclab.utils.timer</span><span class="w"> </span><span class="kn">import</span> <span class="n">Timer</span>
570573
<span class="kn">from</span><span class="w"> </span><span class="nn">isaaclab.utils.warp</span><span class="w"> </span><span class="kn">import</span> <span class="n">convert_to_warp_mesh</span>
571574

572-
<span class="kn">from</span><span class="w"> </span><span class="nn">.height_field</span><span class="w"> </span><span class="kn">import</span> <span class="n">HfTerrainBaseCfg</span>
573-
<span class="kn">from</span><span class="w"> </span><span class="nn">.terrain_generator_cfg</span><span class="w"> </span><span class="kn">import</span> <span class="n">FlatPatchSamplingCfg</span><span class="p">,</span> <span class="n">SubTerrainBaseCfg</span><span class="p">,</span> <span class="n">TerrainGeneratorCfg</span>
574575
<span class="kn">from</span><span class="w"> </span><span class="nn">.trimesh.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">make_border</span>
575576
<span class="kn">from</span><span class="w"> </span><span class="nn">.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">color_meshes_by_height</span><span class="p">,</span> <span class="n">find_flat_patches</span>
576577

578+
<span class="k">if</span> <span class="n">TYPE_CHECKING</span><span class="p">:</span>
579+
<span class="kn">from</span><span class="w"> </span><span class="nn">.sub_terrain_cfg</span><span class="w"> </span><span class="kn">import</span> <span class="n">FlatPatchSamplingCfg</span><span class="p">,</span> <span class="n">SubTerrainBaseCfg</span>
580+
<span class="kn">from</span><span class="w"> </span><span class="nn">.terrain_generator_cfg</span><span class="w"> </span><span class="kn">import</span> <span class="n">TerrainGeneratorCfg</span>
581+
577582

578583
<div class="viewcode-block" id="TerrainGenerator"><a class="viewcode-back" href="../../../source/api/lab/isaaclab.terrains.html#isaaclab.terrains.TerrainGenerator">[docs]</a><span class="k">class</span><span class="w"> </span><span class="nc">TerrainGenerator</span><span class="p">:</span>
579584
<span class="w"> </span><span class="sa">r</span><span class="sd">&quot;&quot;&quot;Terrain generator to handle different terrain generation functions.</span>
@@ -662,6 +667,8 @@ <h1>Source code for isaaclab.terrains.terrain_generator</h1><div class="highligh
662667
<span class="bp">self</span><span class="o">.</span><span class="n">device</span> <span class="o">=</span> <span class="n">device</span>
663668

664669
<span class="c1"># set common values to all sub-terrains config</span>
670+
<span class="kn">from</span><span class="w"> </span><span class="nn">.height_field</span><span class="w"> </span><span class="kn">import</span> <span class="n">HfTerrainBaseCfg</span> <span class="c1"># prevent circular import</span>
671+
665672
<span class="k">for</span> <span class="n">sub_cfg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">sub_terrains</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
666673
<span class="c1"># size of all terrains</span>
667674
<span class="n">sub_cfg</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">size</span>

main/_modules/isaaclab/terrains/terrain_generator_cfg.html

Lines changed: 8 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -568,100 +568,25 @@ <h1>Source code for isaaclab.terrains.terrain_generator_cfg</h1><div class="high
568568

569569
<span class="kn">from</span><span class="w"> </span><span class="nn">__future__</span><span class="w"> </span><span class="kn">import</span> <span class="n">annotations</span>
570570

571-
<span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
572-
<span class="kn">import</span><span class="w"> </span><span class="nn">trimesh</span>
573-
<span class="kn">from</span><span class="w"> </span><span class="nn">collections.abc</span><span class="w"> </span><span class="kn">import</span> <span class="n">Callable</span>
574571
<span class="kn">from</span><span class="w"> </span><span class="nn">dataclasses</span><span class="w"> </span><span class="kn">import</span> <span class="n">MISSING</span>
575572
<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Literal</span>
576573

577574
<span class="kn">from</span><span class="w"> </span><span class="nn">isaaclab.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">configclass</span>
578575

579-
580-
<span class="nd">@configclass</span>
581-
<span class="k">class</span><span class="w"> </span><span class="nc">FlatPatchSamplingCfg</span><span class="p">:</span>
582-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Configuration for sampling flat patches on the sub-terrain.</span>
583-
584-
<span class="sd"> For a given sub-terrain, this configuration specifies how to sample flat patches on the terrain.</span>
585-
<span class="sd"> The sampled flat patches can be used for spawning robots, targets, etc.</span>
586-
587-
<span class="sd"> Please check the function :meth:`~isaaclab.terrains.utils.find_flat_patches` for more details.</span>
588-
<span class="sd"> &quot;&quot;&quot;</span>
589-
590-
<span class="n">num_patches</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="n">MISSING</span>
591-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Number of patches to sample.&quot;&quot;&quot;</span>
592-
593-
<span class="n">patch_radius</span><span class="p">:</span> <span class="nb">float</span> <span class="o">|</span> <span class="nb">list</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="n">MISSING</span>
594-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Radius of the patches.</span>
595-
596-
<span class="sd"> A list of radii can be provided to check for patches of different sizes. This is useful to deal with</span>
597-
<span class="sd"> cases where the terrain may have holes or obstacles in some areas.</span>
598-
<span class="sd"> &quot;&quot;&quot;</span>
599-
600-
<span class="n">x_range</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">float</span><span class="p">,</span> <span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="mf">1e6</span><span class="p">,</span> <span class="mf">1e6</span><span class="p">)</span>
601-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The range of x-coordinates to sample from. Defaults to (-1e6, 1e6).</span>
602-
603-
<span class="sd"> This range is internally clamped to the size of the terrain mesh.</span>
604-
<span class="sd"> &quot;&quot;&quot;</span>
605-
606-
<span class="n">y_range</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">float</span><span class="p">,</span> <span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="mf">1e6</span><span class="p">,</span> <span class="mf">1e6</span><span class="p">)</span>
607-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The range of y-coordinates to sample from. Defaults to (-1e6, 1e6).</span>
608-
609-
<span class="sd"> This range is internally clamped to the size of the terrain mesh.</span>
610-
<span class="sd"> &quot;&quot;&quot;</span>
611-
612-
<span class="n">z_range</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">float</span><span class="p">,</span> <span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="mf">1e6</span><span class="p">,</span> <span class="mf">1e6</span><span class="p">)</span>
613-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Allowed range of z-coordinates for the sampled patch. Defaults to (-1e6, 1e6).&quot;&quot;&quot;</span>
614-
615-
<span class="n">max_height_diff</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="n">MISSING</span>
616-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Maximum allowed height difference between the highest and lowest points on the patch.&quot;&quot;&quot;</span>
617-
618-
619-
<div class="viewcode-block" id="SubTerrainBaseCfg"><a class="viewcode-back" href="../../../source/api/lab/isaaclab.terrains.html#isaaclab.terrains.SubTerrainBaseCfg">[docs]</a><span class="nd">@configclass</span>
620-
<span class="k">class</span><span class="w"> </span><span class="nc">SubTerrainBaseCfg</span><span class="p">:</span>
621-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Base class for terrain configurations.</span>
622-
623-
<span class="sd"> All the sub-terrain configurations must inherit from this class.</span>
624-
625-
<span class="sd"> The :attr:`size` attribute is the size of the generated sub-terrain. Based on this, the terrain must</span>
626-
<span class="sd"> extend from :math:`(0, 0)` to :math:`(size[0], size[1])`.</span>
627-
<span class="sd"> &quot;&quot;&quot;</span>
628-
629-
<span class="n">function</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[</span><span class="nb">float</span><span class="p">,</span> <span class="n">SubTerrainBaseCfg</span><span class="p">],</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">list</span><span class="p">[</span><span class="n">trimesh</span><span class="o">.</span><span class="n">Trimesh</span><span class="p">],</span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">]]</span> <span class="o">=</span> <span class="n">MISSING</span>
630-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Function to generate the terrain.</span>
631-
632-
<span class="sd"> This function must take as input the terrain difficulty and the configuration parameters and</span>
633-
<span class="sd"> return a tuple with a list of ``trimesh`` mesh objects and the terrain origin.</span>
634-
<span class="sd"> &quot;&quot;&quot;</span>
635-
636-
<span class="n">proportion</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">1.0</span>
637-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Proportion of the terrain to generate. Defaults to 1.0.</span>
638-
639-
<span class="sd"> This is used to generate a mix of terrains. The proportion corresponds to the probability of sampling</span>
640-
<span class="sd"> the particular terrain. For example, if there are two terrains, A and B, with proportions 0.3 and 0.7,</span>
641-
<span class="sd"> respectively, then the probability of sampling terrain A is 0.3 and the probability of sampling terrain B</span>
642-
<span class="sd"> is 0.7.</span>
643-
<span class="sd"> &quot;&quot;&quot;</span>
644-
645-
<span class="n">size</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">float</span><span class="p">,</span> <span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mf">10.0</span><span class="p">,</span> <span class="mf">10.0</span><span class="p">)</span>
646-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The width (along x) and length (along y) of the terrain (in m). Defaults to (10.0, 10.0).</span>
647-
648-
<span class="sd"> In case the :class:`~isaaclab.terrains.TerrainImporterCfg` is used, this parameter gets overridden by</span>
649-
<span class="sd"> :attr:`isaaclab.scene.TerrainImporterCfg.size` attribute.</span>
650-
<span class="sd"> &quot;&quot;&quot;</span>
651-
652-
<span class="n">flat_patch_sampling</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">FlatPatchSamplingCfg</span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
653-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Dictionary of configurations for sampling flat patches on the sub-terrain. Defaults to None,</span>
654-
<span class="sd"> in which case no flat patch sampling is performed.</span>
655-
656-
<span class="sd"> The keys correspond to the name of the flat patch sampling configuration and the values are the</span>
657-
<span class="sd"> corresponding configurations.</span>
658-
<span class="sd"> &quot;&quot;&quot;</span></div>
576+
<span class="kn">from</span><span class="w"> </span><span class="nn">.sub_terrain_cfg</span><span class="w"> </span><span class="kn">import</span> <span class="n">SubTerrainBaseCfg</span>
577+
<span class="kn">from</span><span class="w"> </span><span class="nn">.terrain_generator</span><span class="w"> </span><span class="kn">import</span> <span class="n">TerrainGenerator</span>
659578

660579

661580
<div class="viewcode-block" id="TerrainGeneratorCfg"><a class="viewcode-back" href="../../../source/api/lab/isaaclab.terrains.html#isaaclab.terrains.TerrainGeneratorCfg">[docs]</a><span class="nd">@configclass</span>
662581
<span class="k">class</span><span class="w"> </span><span class="nc">TerrainGeneratorCfg</span><span class="p">:</span>
663582
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Configuration for the terrain generator.&quot;&quot;&quot;</span>
664583

584+
<span class="n">class_type</span><span class="p">:</span> <span class="nb">type</span> <span class="o">=</span> <span class="n">TerrainGenerator</span>
585+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The class to use for the terrain generator.</span>
586+
587+
<span class="sd"> Defaults to :class:`isaaclab.terrains.terrain_generator.TerrainGenerator`.</span>
588+
<span class="sd"> &quot;&quot;&quot;</span>
589+
665590
<span class="n">seed</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
666591
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The seed for the random number generator. Defaults to None, in which case the seed from the</span>
667592
<span class="sd"> current NumPy&#39;s random state is used.</span>

0 commit comments

Comments
 (0)