Skip to content

Commit 2d2b21b

Browse files
committed
deploy: 4c686d4
1 parent 1fe58bf commit 2d2b21b

File tree

5 files changed

+120
-4
lines changed

5 files changed

+120
-4
lines changed

main/_modules/isaaclab/sensors/frame_transformer/frame_transformer.html

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ <h1>Source code for isaaclab.sensors.frame_transformer.frame_transformer</h1><di
552552
<span class="kn">from</span><span class="w"> </span><span class="nn">pxr</span><span class="w"> </span><span class="kn">import</span> <span class="n">UsdPhysics</span>
553553

554554
<span class="kn">import</span><span class="w"> </span><span class="nn">isaaclab.sim</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sim_utils</span>
555+
<span class="kn">import</span><span class="w"> </span><span class="nn">isaaclab.utils.string</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">string_utils</span>
555556
<span class="kn">from</span><span class="w"> </span><span class="nn">isaaclab.markers</span><span class="w"> </span><span class="kn">import</span> <span class="n">VisualizationMarkers</span>
556557
<span class="kn">from</span><span class="w"> </span><span class="nn">isaaclab.utils.math</span><span class="w"> </span><span class="kn">import</span> <span class="n">combine_frame_transforms</span><span class="p">,</span> <span class="n">convert_quat</span><span class="p">,</span> <span class="n">is_identity_pose</span><span class="p">,</span> <span class="n">subtract_frame_transforms</span>
557558

@@ -620,6 +621,26 @@ <h1>Source code for isaaclab.sensors.frame_transformer.frame_transformer</h1><di
620621
<span class="c1"># return the data</span>
621622
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span>
622623

624+
<span class="nd">@property</span>
625+
<span class="k">def</span><span class="w"> </span><span class="nf">num_bodies</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
626+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the number of target bodies being tracked.</span>
627+
628+
<span class="sd"> Note:</span>
629+
<span class="sd"> This is an alias used for consistency with other sensors. Otherwise, we recommend using</span>
630+
<span class="sd"> :attr:`len(data.target_frame_names)` to access the number of target frames.</span>
631+
<span class="sd"> &quot;&quot;&quot;</span>
632+
<span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_target_frame_body_names</span><span class="p">)</span>
633+
634+
<span class="nd">@property</span>
635+
<span class="k">def</span><span class="w"> </span><span class="nf">body_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
636+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns the names of the target bodies being tracked.</span>
637+
638+
<span class="sd"> Note:</span>
639+
<span class="sd"> This is an alias used for consistency with other sensors. Otherwise, we recommend using</span>
640+
<span class="sd"> :attr:`data.target_frame_names` to access the target frame names.</span>
641+
<span class="sd"> &quot;&quot;&quot;</span>
642+
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_target_frame_body_names</span>
643+
623644
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
624645
<span class="sd"> Operations</span>
625646
<span class="sd"> &quot;&quot;&quot;</span>
@@ -631,6 +652,18 @@ <h1>Source code for isaaclab.sensors.frame_transformer.frame_transformer</h1><di
631652
<span class="k">if</span> <span class="n">env_ids</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
632653
<span class="n">env_ids</span> <span class="o">=</span> <span class="o">...</span></div>
633654

655+
<div class="viewcode-block" id="FrameTransformer.find_bodies"><a class="viewcode-back" href="../../../../source/api/lab/isaaclab.sensors.html#isaaclab.sensors.FrameTransformer.find_bodies">[docs]</a> <span class="k">def</span><span class="w"> </span><span class="nf">find_bodies</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name_keys</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">preserve_order</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">],</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]]:</span>
656+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Find bodies in the articulation based on the name keys.</span>
657+
658+
<span class="sd"> Args:</span>
659+
<span class="sd"> name_keys: A regular expression or a list of regular expressions to match the body names.</span>
660+
<span class="sd"> preserve_order: Whether to preserve the order of the name keys in the output. Defaults to False.</span>
661+
662+
<span class="sd"> Returns:</span>
663+
<span class="sd"> A tuple of lists containing the body indices and names.</span>
664+
<span class="sd"> &quot;&quot;&quot;</span>
665+
<span class="k">return</span> <span class="n">string_utils</span><span class="o">.</span><span class="n">resolve_matching_names</span><span class="p">(</span><span class="n">name_keys</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_target_frame_names</span><span class="p">,</span> <span class="n">preserve_order</span><span class="p">)</span></div>
666+
634667
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
635668
<span class="sd"> Implementation.</span>
636669
<span class="sd"> &quot;&quot;&quot;</span>
@@ -926,16 +959,39 @@ <h1>Source code for isaaclab.sensors.frame_transformer.frame_transformer</h1><di
926959
<span class="k">if</span> <span class="n">debug_vis</span><span class="p">:</span>
927960
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">&quot;frame_visualizer&quot;</span><span class="p">):</span>
928961
<span class="bp">self</span><span class="o">.</span><span class="n">frame_visualizer</span> <span class="o">=</span> <span class="n">VisualizationMarkers</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">visualizer_cfg</span><span class="p">)</span>
962+
963+
<span class="k">try</span><span class="p">:</span>
964+
<span class="c1"># isaacsim.util is not available in headless mode</span>
965+
<span class="kn">import</span><span class="w"> </span><span class="nn">isaacsim.util.debug_draw._debug_draw</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">isaac_debug_draw</span>
966+
967+
<span class="bp">self</span><span class="o">.</span><span class="n">debug_draw</span> <span class="o">=</span> <span class="n">isaac_debug_draw</span><span class="o">.</span><span class="n">acquire_debug_draw_interface</span><span class="p">()</span>
968+
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
969+
<span class="n">omni</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;isaacsim.util.debug_draw module not found. Debug visualization will be limited.&quot;</span><span class="p">)</span>
970+
929971
<span class="c1"># set their visibility to true</span>
930972
<span class="bp">self</span><span class="o">.</span><span class="n">frame_visualizer</span><span class="o">.</span><span class="n">set_visibility</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
931973
<span class="k">else</span><span class="p">:</span>
932974
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">&quot;frame_visualizer&quot;</span><span class="p">):</span>
933975
<span class="bp">self</span><span class="o">.</span><span class="n">frame_visualizer</span><span class="o">.</span><span class="n">set_visibility</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
976+
<span class="c1"># clear the lines</span>
977+
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">&quot;debug_draw&quot;</span><span class="p">):</span>
978+
<span class="bp">self</span><span class="o">.</span><span class="n">debug_draw</span><span class="o">.</span><span class="n">clear_lines</span><span class="p">()</span>
934979

935980
<span class="k">def</span><span class="w"> </span><span class="nf">_debug_vis_callback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
936981
<span class="c1"># Update the visualized markers</span>
937-
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">frame_visualizer</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
938-
<span class="bp">self</span><span class="o">.</span><span class="n">frame_visualizer</span><span class="o">.</span><span class="n">visualize</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">target_pos_w</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">target_quat_w</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
982+
<span class="n">all_pos</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">cat</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">source_pos_w</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">target_pos_w</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">)],</span> <span class="n">dim</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
983+
<span class="n">all_quat</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">cat</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">source_quat_w</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">target_quat_w</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">)],</span> <span class="n">dim</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
984+
<span class="bp">self</span><span class="o">.</span><span class="n">frame_visualizer</span><span class="o">.</span><span class="n">visualize</span><span class="p">(</span><span class="n">all_pos</span><span class="p">,</span> <span class="n">all_quat</span><span class="p">)</span>
985+
986+
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">&quot;debug_draw&quot;</span><span class="p">):</span>
987+
<span class="c1"># Draw lines connecting the source frame to the target frames</span>
988+
<span class="bp">self</span><span class="o">.</span><span class="n">debug_draw</span><span class="o">.</span><span class="n">clear_lines</span><span class="p">()</span>
989+
<span class="c1"># make the lines color yellow</span>
990+
<span class="n">source_pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">source_pos_w</span><span class="o">.</span><span class="n">cpu</span><span class="p">()</span><span class="o">.</span><span class="n">tolist</span><span class="p">()</span>
991+
<span class="n">colors</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">]]</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">_num_envs</span>
992+
<span class="k">for</span> <span class="n">frame_index</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_target_frame_names</span><span class="p">)):</span>
993+
<span class="n">target_pos</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_data</span><span class="o">.</span><span class="n">target_pos_w</span><span class="p">[:,</span> <span class="n">frame_index</span><span class="p">]</span><span class="o">.</span><span class="n">cpu</span><span class="p">()</span><span class="o">.</span><span class="n">tolist</span><span class="p">()</span>
994+
<span class="bp">self</span><span class="o">.</span><span class="n">debug_draw</span><span class="o">.</span><span class="n">draw_lines</span><span class="p">(</span><span class="n">source_pos</span><span class="p">,</span> <span class="n">target_pos</span><span class="p">,</span> <span class="n">colors</span><span class="p">,</span> <span class="p">[</span><span class="mf">1.5</span><span class="p">]</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">_num_envs</span><span class="p">)</span>
939995

940996
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
941997
<span class="sd"> Internal simulation callbacks.</span>

main/genindex.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,6 +1364,8 @@ <h2 id="B">B</h2>
13641364
<li><a href="source/api/lab/isaaclab.managers.html#isaaclab.managers.SceneEntityCfg.body_names">(isaaclab.managers.SceneEntityCfg attribute)</a>
13651365
</li>
13661366
<li><a href="source/api/lab/isaaclab.sensors.html#isaaclab.sensors.ContactSensor.body_names">(isaaclab.sensors.ContactSensor property)</a>
1367+
</li>
1368+
<li><a href="source/api/lab/isaaclab.sensors.html#isaaclab.sensors.FrameTransformer.body_names">(isaaclab.sensors.FrameTransformer property)</a>
13671369
</li>
13681370
</ul></li>
13691371
<li><a href="source/api/lab/isaaclab.envs.mdp.html#isaaclab.envs.mdp.actions.actions_cfg.DifferentialInverseKinematicsActionCfg.body_offset">body_offset (isaaclab.envs.mdp.actions.actions_cfg.DifferentialInverseKinematicsActionCfg attribute)</a>
@@ -2760,6 +2762,8 @@ <h2 id="F">F</h2>
27602762
<li><a href="source/api/lab/isaaclab.assets.html#isaaclab.assets.RigidObject.find_bodies">(isaaclab.assets.RigidObject method)</a>
27612763
</li>
27622764
<li><a href="source/api/lab/isaaclab.sensors.html#isaaclab.sensors.ContactSensor.find_bodies">(isaaclab.sensors.ContactSensor method)</a>
2765+
</li>
2766+
<li><a href="source/api/lab/isaaclab.sensors.html#isaaclab.sensors.FrameTransformer.find_bodies">(isaaclab.sensors.FrameTransformer method)</a>
27632767
</li>
27642768
</ul></li>
27652769
<li><a href="source/api/lab/isaaclab.sim.html#isaaclab.sim.utils.find_first_matching_prim">find_first_matching_prim() (in module isaaclab.sim.utils)</a>
@@ -5016,6 +5020,8 @@ <h2 id="N">N</h2>
50165020
<li><a href="source/api/lab/isaaclab.assets.html#isaaclab.assets.RigidObject.num_bodies">(isaaclab.assets.RigidObject property)</a>
50175021
</li>
50185022
<li><a href="source/api/lab/isaaclab.sensors.html#isaaclab.sensors.ContactSensor.num_bodies">(isaaclab.sensors.ContactSensor property)</a>
5023+
</li>
5024+
<li><a href="source/api/lab/isaaclab.sensors.html#isaaclab.sensors.FrameTransformer.num_bodies">(isaaclab.sensors.FrameTransformer property)</a>
50195025
</li>
50205026
</ul></li>
50215027
</ul></td>

main/objects.inv

13 Bytes
Binary file not shown.

main/searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)