Skip to content

Commit

Permalink
typo fixes and forgotten index change. splitting off code to scripts …
Browse files Browse the repository at this point in the history
…next
  • Loading branch information
mpgussert committed Nov 21, 2024
1 parent a8b26e6 commit c039220
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ Table of Contents

source/features/hydra
source/features/multi_gpu
source/features/tiled_rendering
Tiled Rendering</source/overview/sensors/camera>
source/features/reproducibility
.. source/features/motion_generators

Expand Down
4 changes: 2 additions & 2 deletions docs/source/overview/sensors/contact_sensor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ Contact Sensor
:figwidth: 100%
:alt: A contact sensor with filtering

The contact sensor is designed to return the net contact force acting on a given ridged body. The sensor is written to behave as a physical object, and so the "scope" of the contact sensor is limited to the body (or bodies) that defines it. There are multiple ways to define this scope, depending on your need to filter the forces coming from the contact.
The contact sensor is designed to return the net contact force acting on a given ridgid body. The sensor is written to behave as a physical object, and so the "scope" of the contact sensor is limited to the body (or bodies) that defines it. There are multiple ways to define this scope, depending on your need to filter the forces coming from the contact.

By default, the reported force is the total contact force, but your application may only care about contact forces due to specific objects. Retrieving contact forces from specific objects requires filtering, and this can only been done in a "many-to-one" way. A multi-leged robot that needs filterable contact information for its feet would require one sensor per foot to be defined in the environment, but a robotic hand with contact sensors on the tips of each finger can be defined with a single sensor.
By default, the reported force is the total contact force, but your application may only care about contact forces due to specific objects. Retrieving contact forces from specific objects requires filtering, and this can only be done in a "many-to-one" way. A multi-legged robot that needs filterable contact information for its feet would require one sensor per foot to be defined in the environment, but a robotic hand with contact sensors on the tips of each finger can be defined with a single sensor.

Consider a simple environment with an Anymal Quadruped and a block

Expand Down
2 changes: 1 addition & 1 deletion docs/source/overview/sensors/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ In this section, we will overview the various sensor APIs provided by Isaac Lab.

Every sensor in Isaac Lab inherits from the ``SensorBase`` abstract class that provides the core functionality inherent to all sensors, which is to provide access to "measurements" of the scene. These measurements can take many forms such as ray-casting results, camera rendered images, or even simply ground truth data queried directly from the simulation (such as poses). Whatever the data may be, we can think of the sensor as having a buffer that is periodically updated with measurements by querying the scene. This ``update_period`` is defined in "simulated" seconds, meaning that even if the flow of time in the simulation is dilated relative to the real world, the sensor will update at the appropriate rate. For example, a sensor with an update period of 1.0 second will update its data 10 times a second in a simulation running at a rate of 10 seconds / second. The ``SensorBase`` is also designed with vectorizability in mind, holding the buffers for all copies of the sensor across cloned environments.

Updating the buffers is done by overriding the ``_update_buffers_impl`` abstract method of the ``SensorBase`` class. On every time-step of the simulation, ``dt``, all sensors are queried for an update. During this query, the total time since the last update is incremented by ``d`t`` for every buffer managed by that particular sensor. If the total time is greater than or equal to the ``update_period`` for a buffer, then that buffer is flagged to be updated on the next query.
Updating the buffers is done by overriding the ``_update_buffers_impl`` abstract method of the ``SensorBase`` class. On every time-step of the simulation, ``dt``, all sensors are queried for an update. During this query, the total time since the last update is incremented by ``dt`` for every buffer managed by that particular sensor. If the total time is greater than or equal to the ``update_period`` for a buffer, then that buffer is flagged to be updated on the next query.

.. toctree::
:maxdepth: 1
Expand Down
2 changes: 1 addition & 1 deletion docs/source/overview/sensors/ray_caster.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Using a ray caster sensor requires a **pattern** and a parent xform to be attach
)
Notice that the units on the pattern config is in degrees! Also, we enable visualization here to explicitly show the pattern in the rendering, but this is not required and should be disabled for performance tuning. Querying the sensor for data can be done at simulation run time like any other sensor.
Notice that the units on the pattern config is in degrees! Also, we enable visualization here to explicitly show the pattern in the rendering, but this is not required and should be disabled for performance tuning.

.. figure:: ../../_static/overview/overview_sensors_rc_visualizer.png
:align: center
Expand Down

0 comments on commit c039220

Please sign in to comment.