Range Based Sensor Simulation [omni.isaac.range_sensor]¶
This extension provides a set simulated range based sensors like lidar, ultrasonic, generic and interfaces to access them in the simulator.
Lidar Sensor¶
This submodule provides an interface to a simulated lidar sensor. A simplified command is provided to create a lidar sensor in the stage:
-
commands.
RangeSensorCreateLidar
(parent=None, min_range: float = 0.4, max_range: float = 100.0, draw_points: bool = False, draw_lines: bool = False, horizontal_fov: float = 360.0, vertical_fov: float = 30.0, horizontal_resolution: float = 0.4, vertical_resolution: float = 4.0, rotation_rate: float = 20.0, high_lod: bool = False, yaw_offset: float = 0.0, enable_semantics: bool = False)¶ Commands class to create a lidar sensor.
Typical usage example:
result, prim = omni.kit.commands.execute( "RangeSensorCreateLidar", path="/Lidar", parent=None, min_range=0.4, max_range=100.0, draw_points=False, draw_lines=False, horizontal_fov=360.0, vertical_fov=30.0, horizontal_resolution=0.4, vertical_resolution=4.0, rotation_rate=20.0, high_lod=False, yaw_offset=0.0, enable_semantics=False, )
Once a lidar sensor is in the stage you can use this interface to interact with the simulated lidar data. You must first call the acquire interface function. It is also recommended to use the is_lidar_sensor function to check if a lidar sensor exists at the given USD path
from omni.isaac.range_sensor._range_sensor import acquire_lidar_sensor_interface
lidar_sensor_interface = acquire_lidar_sensor_interface()
if lidar_sensor_interface.is_lidar_sensor("/World/Lidar"):
print("lidar sensor is valid")
-
_range_sensor.
acquire_lidar_sensor_interface
(plugin_name: str = None, library_path: str = None) → omni::isaac::range_sensor::LidarSensorInterface¶
-
_range_sensor.
release_lidar_sensor_interface
(arg0: omni::isaac::range_sensor::LidarSensorInterface) → None¶
-
class
LidarSensorInterface
¶ -
get_azimuth_data
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The azimuth angle in radians for each column
- Return type
numpy.ndarray
-
get_depth_data
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The distance from the sensor to the hit for each beam in uint16 and scaled by min and max distance
- Return type
numpy.ndarray
-
get_intensity_data
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The observed specular intensity of each beam, 255 if hit, 0 if not
- Return type
numpy.ndarray
-
get_linear_depth_data
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The distance from the sensor to the hit for each beam in meters
- Return type
numpy.ndarray
-
get_num_cols
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → int¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The number of vertical scans of the sensor, 0 if error occurred
- Return type
int
-
get_num_cols_ticked
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → int¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The number of vertical scans the sensor completed in the last simulation step, 0 if error occurred. Generally only useful for lidars with a non-zero rotation speed
- Return type
int
-
get_num_rows
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → int¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The number of horizontal scans of the sensor, 0 if error occurred
- Return type
int
-
get_point_cloud_data
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The hit position in xyz relative to the sensor origin, not accounting for individual ray offsets
- Return type
numpy.ndarray
-
get_semantic_data
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The semantic id of the hit for each beam in uint16
- Return type
numpy.ndarray
-
get_zenith_data
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The zenith angle in radians for each row
- Return type
numpy.ndarray
-
is_lidar_sensor
(self: omni.isaac.range_sensor._range_sensor.LidarSensorInterface, arg0: str) → bool¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
True if a sensor exists at the give path, False otherwise
- Return type
bool
-
Ultrasonic Sensor¶
This submodule provides an interface to a simulated ultrasonic sensor.
-
commands.
RangeSensorCreateUltrasonicArray
(parent=None, min_range: float = 0.4, max_range: float = 100.0, draw_points: bool = False, draw_lines: bool = False, horizontal_fov: float = 360.0, vertical_fov: float = 30.0, rotation_rate: float = 20.0, horizontal_resolution: float = 0.4, vertical_resolution: float = 4.0, num_bins: int = 224, use_brdf: bool = False, use_uss_materials: bool = False, emitter_prims: ] = [], firing_group_prims: ] = [])¶ Commands class to create an ultrasonic array.
Typical usage example:
result, prim = omni.kit.commands.execute( "RangeSensorCreateUltrasonicArray", path="/UltrasonicArray", parent=None, min_range=0.4, max_range=3.0, draw_points=False, draw_lines=False, horizontal_fov=15.0, vertical_fov=10.0, horizontal_resolution=0.5, vertical_resolution=0.5, num_bins=224, use_brdf: bool = False, use_uss_materials: bool = False, emitter_prims=[], firing_group_prims=[], )
-
commands.
RangeSensorCreateUltrasonicEmitter
(parent=None, per_ray_intensity: float = 1.0, yaw_offset: float = 0.0, adjacency_list: ] = [])¶ Commands class to create an ultrasonic emitter.
Typical usage example:
result, prim = omni.kit.commands.execute( "RangeSensorCreateUltrasonicEmitter", path="/UltrasonicEmitter", parent=None, per_ray_intensity=1.0, yaw_offset=0.0, adjacency_list=[], )
-
commands.
RangeSensorCreateUltrasonicFiringGroup
(parent=None, emitter_modes: ] = [], receiver_modes: ] = [])¶ Commands class to create an ultrasonic firing group.
Typical usage example:
result, prim = omni.kit.commands.execute( "RangeSensorCreateUltrasonicFiringGroup", path="/UltrasonicFiringGroup", parent=None, emitter_modes=[], receiver_modes=[], )
Example
To use this interface, you must first call the acquire interface function. It is also recommended to use the is_ultrasonic_sensor function to check if a ultrasonic sensor exists at the given USD path
from omni.isaac.range_sensor._range_sensor import acquire_ultrasonic_sensor_interface
ultrasonic_sensor_interface = acquire_ultrasonic_sensor_interface()
if ultrasonic_sensor_interface.is_ultrasonic_sensor("/World/UltrasonicArray"):
print("ultrasonic sensor is valid")
-
_range_sensor.
acquire_ultrasonic_sensor_interface
(plugin_name: str = None, library_path: str = None) → omni::isaac::range_sensor::UltrasonicSensorInterface¶
-
_range_sensor.
release_ultrasonic_sensor_interface
(arg0: omni::isaac::range_sensor::UltrasonicSensorInterface) → None¶
-
class
UltrasonicSensorInterface
¶ -
get_active_envelope_array
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → List[List[float]]¶
-
get_azimuth_data
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The azimuth angle in radians for each column
- Return type
numpy.ndarray
-
get_depth_data
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str, arg1: int) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The distance from the sensor to the hit for each beam in uint16 and scaled by min and max distance
- Return type
numpy.ndarray
-
get_emitter_firing_info
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → List[carb._carb.Int2]¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
emitter firing info for the current group fired
- Return type
list
-
get_envelope
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str, arg1: int) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a stringarg1 (
int
) – array index of the emitter that we are querying
- Returns
The binned timestamps of returns from sensor emission
- Return type
numpy.ndarray
-
get_envelope_array
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The array of envelopes from the ultrasonic sensor
- Return type
numpy.ndarray
-
get_intensity_data
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str, arg1: int) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The observed specular intensity of each beam, 255 if hit, 0 if not
- Return type
numpy.ndarray
-
get_linear_depth_data
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str, arg1: int) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The distance from the sensor to the hit for each beam in meters
- Return type
numpy.ndarray
-
get_num_cols
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → int¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The number of horizontal scans of the sensor, 0 if error occurred
- Return type
int
-
get_num_emitters
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → int¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The number of emitters on the sensor array, 0 if error occurred
- Return type
int
-
get_num_rows
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → int¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The number of horizontal scans of the sensor, 0 if error occurred
- Return type
int
-
get_receiver_firing_info
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → List[carb._carb.Int2]¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
receiver info for the current group fired
- Return type
list
-
get_zenith_data
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The zenith angle in radians for each row
- Return type
numpy.ndarray
-
is_ultrasonic_sensor
(self: omni.isaac.range_sensor._range_sensor.UltrasonicSensorInterface, arg0: str) → bool¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
True if a sensor exists at the give path, False otherwise
- Return type
bool
-
Generic Sensor¶
This submodule provides an interface to a simulated generic sensor.
-
commands.
RangeSensorCreateGeneric
(parent=None, min_range: float = 0.4, max_range: float = 100.0, draw_points: bool = False, draw_lines: bool = False, sampling_rate: int = 60)¶ Commands class to create a generic range sensor.
Typical usage example:
result, prim = omni.kit.commands.execute( "RangeSensorCreateGeneric", path="/GenericSensor", parent=None, min_range=0.4, max_range=100.0, draw_points=False, draw_lines=False, sampling_rate=60, )
Example
To use this interface, you must first call the acquire interface function. It is also recommended to use the is_generic_sensor function to check if a generic sensor exists at the given USD path
from omni.isaac.range_sensor._range_sensor import acquire_generic_sensor_interface
generic_sensor_interface = acquire_generic_sensor_interface()
if generic_sensor_interface.is_generic_sensor("/World/GenericSensor"):
print("generic sensor is valid")
-
_range_sensor.
acquire_generic_sensor_interface
(plugin_name: str = None, library_path: str = None) → omni::isaac::range_sensor::GenericSensorInterface¶
-
_range_sensor.
release_generic_sensor_interface
(arg0: omni::isaac::range_sensor::GenericSensorInterface) → None¶
-
class
GenericSensorInterface
¶ -
get_azimuth_data
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The azimuth angle in radians for each column
- Return type
numpy.ndarray
-
get_depth_data
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The distance from the sensor to the hit for each beam in uint16 and scaled by min and max distance
- Return type
numpy.ndarray
-
get_hit_pos_data
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The hit position in xyz relative to the sensor origin, not accounting for individual ray offsets
- Return type
numpy.ndarray
-
get_intensity_data
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The observed specular intensity of each beam, 255 if hit, 0 if not
- Return type
numpy.ndarray
-
get_linear_depth_data
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The distance from the sensor to the hit for each beam in meters
- Return type
numpy.ndarray
-
get_num_samples_ticked
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → int¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The number of sample points the sensor completed in the last simulation step, 0 if error occurred.
- Return type
int
-
get_zenith_data
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → object¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
The zenith angle in radians for each row
- Return type
numpy.ndarray
-
is_generic_sensor
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → bool¶ - Parameters
arg0 (
str
) – USD path to sensor as a string- Returns
True if a sensor exists at the give path, False otherwise
- Return type
bool
-
send_next_batch
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str) → bool¶ ready for next batch
-
set_next_batch_offsets
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str, arg1: numpy.ndarray[float32]) → None¶ - Parameters
arg0 (
str
) – USD path to sensor as a stringarg1 (
numpy.ndaray
) – The offset xyz, a 2D array for individual rays, or 1D array for a constant offset
-
set_next_batch_rays
(self: omni.isaac.range_sensor._range_sensor.GenericSensorInterface, arg0: str, arg1: numpy.ndarray[float32]) → None¶ - Parameters
arg0 (
str
) – USD path to sensor as a stringarg1 (
numpy.ndaray
) – The azimuth and zenith angles in radians for each column
-
Generated USD Schema API¶
The following USD Schema API was automatically generated, it is provided here as a reference
-
class
Generic
¶ Bases:
omni.isaac.RangeSensorSchema.RangeSensor
-
CreateSamplingRateAttr
()¶
-
static
Define
()¶
-
static
Get
()¶
-
GetSamplingRateAttr
()¶
-
static
GetSchemaAttributeNames
()¶
-
-
class
Lidar
¶ Bases:
omni.isaac.RangeSensorSchema.RangeSensor
-
CreateEnableSemanticsAttr
()¶
-
CreateHighLodAttr
()¶
-
CreateHorizontalFovAttr
()¶
-
CreateHorizontalResolutionAttr
()¶
-
CreateRotationRateAttr
()¶
-
CreateVerticalFovAttr
()¶
-
CreateVerticalResolutionAttr
()¶
-
CreateYawOffsetAttr
()¶
-
static
Define
()¶
-
static
Get
()¶
-
GetEnableSemanticsAttr
()¶
-
GetHighLodAttr
()¶
-
GetHorizontalFovAttr
()¶
-
GetHorizontalResolutionAttr
()¶
-
GetRotationRateAttr
()¶
-
static
GetSchemaAttributeNames
()¶
-
GetVerticalFovAttr
()¶
-
GetVerticalResolutionAttr
()¶
-
GetYawOffsetAttr
()¶
-
-
class
RangeSensor
¶ Bases:
pxr.UsdGeom.Xformable
-
CreateDrawLinesAttr
()¶
-
CreateDrawPointsAttr
()¶
-
CreateEnabledAttr
()¶
-
CreateMaxRangeAttr
()¶
-
CreateMinRangeAttr
()¶
-
static
Get
()¶
-
GetDrawLinesAttr
()¶
-
GetDrawPointsAttr
()¶
-
GetEnabledAttr
()¶
-
GetMaxRangeAttr
()¶
-
GetMinRangeAttr
()¶
-
static
GetSchemaAttributeNames
()¶
-
-
class
UltrasonicArray
¶ Bases:
omni.isaac.RangeSensorSchema.RangeSensor
-
CreateAttenuationAlphaAttr
()¶
-
CreateEmitterPrimsRel
()¶
-
CreateFiringGroupsRel
()¶
-
CreateHorizontalFovAttr
()¶
-
CreateHorizontalResolutionAttr
()¶
-
CreateNumBinsAttr
()¶
-
CreateUseBRDFAttr
()¶
-
CreateUseDistAttenuationAttr
()¶
-
CreateUseUSSMaterialsForBRDFAttr
()¶
-
CreateVerticalFovAttr
()¶
-
CreateVerticalResolutionAttr
()¶
-
static
Define
()¶
-
static
Get
()¶
-
GetAttenuationAlphaAttr
()¶
-
GetEmitterPrimsRel
()¶
-
GetFiringGroupsRel
()¶
-
GetHorizontalFovAttr
()¶
-
GetHorizontalResolutionAttr
()¶
-
GetNumBinsAttr
()¶
-
static
GetSchemaAttributeNames
()¶
-
GetUseBRDFAttr
()¶
-
GetUseDistAttenuationAttr
()¶
-
GetUseUSSMaterialsForBRDFAttr
()¶
-
GetVerticalFovAttr
()¶
-
GetVerticalResolutionAttr
()¶
-
-
class
UltrasonicEmitter
¶ Bases:
pxr.UsdGeom.Xformable
-
CreateAdjacencyListAttr
()¶
-
CreatePerRayIntensityAttr
()¶
-
CreateYawOffsetAttr
()¶
-
static
Define
()¶
-
static
Get
()¶
-
GetAdjacencyListAttr
()¶
-
GetPerRayIntensityAttr
()¶
-
static
GetSchemaAttributeNames
()¶
-
GetYawOffsetAttr
()¶
-
-
class
UltrasonicFiringGroup
¶ Bases:
pxr.Usd.Typed
-
CreateEmitterModesAttr
()¶
-
CreateReceiverModesAttr
()¶
-
static
Define
()¶
-
static
Get
()¶
-
GetEmitterModesAttr
()¶
-
GetReceiverModesAttr
()¶
-
static
GetSchemaAttributeNames
()¶
-
-
class
UltrasonicMaterialAPI
¶ Bases:
pxr.Usd.APISchemaBase
-
static
Apply
()¶
-
CreateBase_colorAttr
()¶
-
CreateMetallicAttr
()¶
-
CreatePerceptualRoughnessAttr
()¶
-
CreateReflectanceAttr
()¶
-
static
Get
()¶
-
GetBase_colorAttr
()¶
-
GetMetallicAttr
()¶
-
GetPerceptualRoughnessAttr
()¶
-
GetReflectanceAttr
()¶
-
static
GetSchemaAttributeNames
()¶
-
static