Skip to content

Adds RTXLidar #2735

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ Guidelines for modifications:
* Ritvik Singh
* Rosario Scalise
* Ryley McCarroll
* Samir Chowdhury
* Shafeef Omar
* Shundo Kishi
* Stefan Van de Mosselaer
Expand Down
6 changes: 6 additions & 0 deletions apps/isaaclab.python.headless.rendering.kit
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ keywords = ["experience", "app", "isaaclab", "python", "camera", "minimal"]
# Isaac Lab minimal app
"isaaclab.python.headless" = {}
"omni.replicator.core" = {}
"isaacsim.sensors.rtx" = {}

# Rendering
"omni.kit.material.library" = {}
Expand Down Expand Up @@ -86,6 +87,11 @@ app.vulkan = true
# disable replicator orchestrator for better runtime perf
exts."omni.replicator.core".Orchestrator.enabled = false

# move the default lidar config file paths
app.sensors.nv.lidar.profileBaseFolder.'++' = [
"${app}/../source/isaaclab/isaaclab/sensors/rtx_lidar/",
]

[settings.exts."omni.kit.registry.nucleus"]
registries = [
{ name = "kit/default", url = "https://ovextensionsprod.blob.core.windows.net/exts/kit/prod/106/shared" },
Expand Down
6 changes: 6 additions & 0 deletions apps/isaaclab.python.rendering.kit
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ keywords = ["experience", "app", "isaaclab", "python", "camera", "minimal"]
[dependencies]
# Isaac Lab minimal app
"isaaclab.python" = {}
"isaacsim.sensors.rtx" = {}

# PhysX
"omni.kit.property.physx" = {}
Expand Down Expand Up @@ -84,6 +85,11 @@ app.audio.enabled = false
# disable replicator orchestrator for better runtime perf
exts."omni.replicator.core".Orchestrator.enabled = false

# move the default lidar config file paths
app.sensors.nv.lidar.profileBaseFolder.'++' = [
"${app}/../source/isaaclab/isaaclab/sensors/rtx_lidar/",
]

[settings.physics]
updateToUsd = false
updateParticlesToUsd = false
Expand Down
2 changes: 1 addition & 1 deletion source/isaaclab/config/extension.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]

# Note: Semantic Versioning is used: https://semver.org/
version = "0.40.6"
version = "0.40.7"

# Description
title = "Isaac Lab framework for Robot Learning"
Expand Down
9 changes: 9 additions & 0 deletions source/isaaclab/docs/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
Changelog
---------

0.40.7 (2025-06-18)
~~~~~~~~~~~~~~~~~~~

Added
^^^^^

* Added RTX LiDAR :class:`~isaaclab.sensors.rtx_lidar.rtx_lidar` and corresponding observations in :class:`~isaaclab.envs.mdp.observations`


0.40.6 (2025-06-12)
~~~~~~~~~~~~~~~~~~~

Expand Down
20 changes: 19 additions & 1 deletion source/isaaclab/isaaclab/envs/mdp/observations.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from isaaclab.managers import SceneEntityCfg
from isaaclab.managers.manager_base import ManagerTermBase
from isaaclab.managers.manager_term_cfg import ObservationTermCfg
from isaaclab.sensors import Camera, Imu, RayCaster, RayCasterCamera, TiledCamera
from isaaclab.sensors import Camera, Imu, RayCaster, RayCasterCamera, RtxLidar, TiledCamera

if TYPE_CHECKING:
from isaaclab.envs import ManagerBasedEnv, ManagerBasedRLEnv
Expand Down Expand Up @@ -300,6 +300,24 @@ def imu_lin_acc(env: ManagerBasedEnv, asset_cfg: SceneEntityCfg = SceneEntityCfg
return asset.data.lin_acc_b


def point_cloud(
env: ManagerBasedEnv, sensor_cfg: SceneEntityCfg = SceneEntityCfg("lidar"), data_type: str = "data"
) -> torch.Tensor:
"""Lidar point cloud data

Args:
env: The environment.
sensor_cfg: The desired sensor to read from. Defaults to SceneEntityCfg("lidar").
data_type: The data type to pull from the desired lidar. Defaults to "data".

Returns:
The point cloud in the sensor frame. Shape is (num_envs, num_points, 3)
"""

sensor: RtxLidar = env.scene[sensor_cfg.name]
return sensor.data.output[data_type]


def image(
env: ManagerBasedEnv,
sensor_cfg: SceneEntityCfg = SceneEntityCfg("tiled_camera"),
Expand Down
1 change: 1 addition & 0 deletions source/isaaclab/isaaclab/sensors/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,6 @@
from .frame_transformer import * # noqa: F401
from .imu import * # noqa: F401, F403
from .ray_caster import * # noqa: F401, F403
from .rtx_lidar import * # noqa: F401, F403
from .sensor_base import SensorBase # noqa: F401
from .sensor_base_cfg import SensorBaseCfg # noqa: F401
8 changes: 8 additions & 0 deletions source/isaaclab/isaaclab/sensors/rtx_lidar/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause

from .rtx_lidar import RtxLidar
from .rtx_lidar_cfg import RtxLidarCfg
from .rtx_lidar_data import RTX_LIDAR_INFO_FIELDS, RtxLidarData
Loading