Extend rangefinder sensor to support cameras.
PiperOrigin-RevId: 848255889 Change-Id: I6e1a9ed13d29d2242558625a47e24e47ad6e87db
This commit is contained in:
committed by
Copybara-Service
parent
4a871990e9
commit
9d646e6548
+20
-7
@@ -6373,12 +6373,20 @@ site frame. The output is a 3D vector.
|
||||
:el-prefix:`sensor/` |-| **rangefinder** (*)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This element creates a rangefinder. It measures the distance to the nearest geom surface, along the ray defined by the
|
||||
positive Z-axis of the sensor site. If the ray does not intersect any geom surface, the sensor output is -1. If the
|
||||
origin of the ray is inside a geom, the surface is still sensed (but not the inner volume). Geoms attached to the same
|
||||
body as the sensor site are excluded. Invisible geoms, defined as geoms whose rgba (or whose material rgba) has alpha=0,
|
||||
are also excluded. Note however that geoms made invisible in the visualizer by disabling their geom group are not
|
||||
excluded; this is because sensor calculations are independent of the visualizer.
|
||||
This element creates a rangefinder.
|
||||
|
||||
- If associated with a :ref:`site<sensor-rangefinder-site>`, it measures the distance to the nearest geom surface, along
|
||||
the ray defined by the positive Z-axis of the site.
|
||||
- If associated with a :ref:`camera<sensor-rangefinder-camera>`, it outputs one distance measurement for each pixel in
|
||||
the camera image. Note that cameras face the :ref:`negative Z-axis<body-camera>` of their frame. The number of
|
||||
measurements in this case is equal to product of the camera's width and height
|
||||
:ref:`resolutions<body-camera-resolution>`.
|
||||
|
||||
If a ray does not intersect any geom surface, the sensor output is -1. If the origin of the ray is inside a geom, the
|
||||
surface is still detected. Geoms attached to the same body as the sensor site/camera are excluded. Invisible geoms,
|
||||
defined as geoms whose rgba (or whose material rgba) has alpha=0, are also excluded. Note however that geoms made
|
||||
invisible in the visualizer by disabling their geom group are not excluded; this is because sensor calculations are
|
||||
independent of the visualizer.
|
||||
|
||||
.. _sensor-rangefinder-name:
|
||||
|
||||
@@ -6393,9 +6401,14 @@ excluded; this is because sensor calculations are independent of the visualizer.
|
||||
|
||||
.. _sensor-rangefinder-site:
|
||||
|
||||
:at:`site`: :at-val:`string, required`
|
||||
:at:`site`: :at-val:`string, optional`
|
||||
The site where the sensor is attached.
|
||||
|
||||
.. _sensor-rangefinder-camera:
|
||||
|
||||
:at:`camera`: :at-val:`string, optional`
|
||||
The camera where the sensor is attached.
|
||||
|
||||
.. _sensor-camprojection:
|
||||
|
||||
:el-prefix:`sensor/` |-| **camprojection** (*)
|
||||
|
||||
+2
-2
@@ -940,9 +940,9 @@
|
||||
| :ref:`rangefinder | \* | :class: mjcf-attributes |
|
||||
| <sensor-rangefinder>` | | |
|
||||
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
|
||||
| | | | :ref:`name<sensor-rangefinder-name>` | :ref:`site<sensor-rangefinder-site>` | :ref:`cutoff<sensor-rangefinder-cutoff>` | :ref:`noise<sensor-rangefinder-noise>` | |
|
||||
| | | | :ref:`name<sensor-rangefinder-name>` | :ref:`site<sensor-rangefinder-site>` | :ref:`camera<sensor-rangefinder-camera>` | :ref:`cutoff<sensor-rangefinder-cutoff>` | |
|
||||
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
|
||||
| | | | :ref:`user<sensor-rangefinder-user>` | | | | |
|
||||
| | | | :ref:`noise<sensor-rangefinder-noise>` | :ref:`user<sensor-rangefinder-user>` | | | |
|
||||
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
|
||||
+------------------------------------+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| |_| sensor |br| |_| |L| | | .. table:: |
|
||||
|
||||
@@ -20,6 +20,8 @@ General
|
||||
^^^^^^^
|
||||
- Camera frustum visualization is now triggered by setting :ref:`resolution<body-camera-resolution>` to values larger
|
||||
than 1. Relatedly, frustum visualization also works for :ref:`orthographic<body-camera-projection>` cameras.
|
||||
- Rangefinder sensors can now be attached to a camera using the :ref:`ragefinder/camera<sensor-rangefinder-camera>`
|
||||
attribute. In this case, the sensor will cast multiple ray, one for each camera pixel.
|
||||
- Non-breaking ABI changes:
|
||||
|
||||
- The type of the ``sig`` (signature) argument of :ref:`mj_stateSize` and related functions has been changed from
|
||||
|
||||
@@ -678,7 +678,6 @@ typedef enum mjtObj_ { // type of MujoCo object
|
||||
mjOBJ_FRAME = 100, // frame
|
||||
mjOBJ_DEFAULT, // default
|
||||
mjOBJ_MODEL // entire model
|
||||
|
||||
} mjtObj;
|
||||
typedef enum mjtSensor_ { // type of sensor
|
||||
// common robotic sensors, attached to a site
|
||||
@@ -689,7 +688,7 @@ typedef enum mjtSensor_ { // type of sensor
|
||||
mjSENS_FORCE, // 3D force between site's body and its parent body
|
||||
mjSENS_TORQUE, // 3D torque between site's body and its parent body
|
||||
mjSENS_MAGNETOMETER, // 3D magnetometer
|
||||
mjSENS_RANGEFINDER, // scalar distance to nearest geom or site along z-axis
|
||||
mjSENS_RANGEFINDER, // scalar distance to nearest geom along z-axis
|
||||
mjSENS_CAMPROJECTION, // pixel coordinates of a site in the camera image
|
||||
|
||||
// sensors related to scalar joints, tendons, actuators
|
||||
|
||||
Reference in New Issue
Block a user