Adds the e-con DepthVista Helix iToF camera to Isaac Sim's supported camera and depth sensors, with an optional ROS 2 publisher and a browser depth viewer.
- NVIDIA Isaac Sim ≥ 5.1.0 — refer to the installation guide. Tested on 5.1.0, 6.0.0 and 6.0.1, on both Windows and Linux.
Linux
git clone https://github.com/Thagasheriff64/econ-isaac-sim.git
cd econ-isaac-sim
./build.shWindows
git clone https://github.com/Thagasheriff64/econ-isaac-sim.git
cd econ-isaac-sim
build.bat- Auto-detects Isaac Sim (prompts for the folder if not found).
- Copies the extension and assets into
extsUserinside the Isaac Sim folder — it is self-contained, so the cloned repository can be deleted afterwards — and auto-loads on every launch. - Remove it with the uninstaller, not by deleting files manually.
If you have multiple Isaac Sim versions installed, or already know the path, set ISAACSIM_PATH
to skip auto-detection and target a specific install:
ISAACSIM_PATH=/home/econsy/ROBOTICS/downloads/isaacsim ./build.sh # Linuxset ISAACSIM_PATH=C:\path\to\isaacsim & build.bat :: Windows- Relaunch Isaac Sim if it is already running.
- Open Create → Sensors → Camera and Depth Sensors → e-con.
- Select DepthVista Helix iToF — added under
/World.
| File | Connector |
|---|---|
DEPTHVISTA_HELIX_GMSL.usd |
GMSL |
DEPTHVISTA_HELIX_USB.usd |
USB |
- The menu exposes a single entry — DepthVista Helix iToF (the GMSL variant).
- For the USB variant, reference
DEPTHVISTA_HELIX_USB.usdinto your stage directly.
ros2/isaac_usd_ros_itof.py publishes every DepthVista Helix camera in
the stage.
- Detection — all cameras found automatically; no arguments.
- Naming —
cam;cam0,cam1, … when more than one;_gmsl/_usbsuffix for explicit variants. - Scales — generates the topics and OmniGraph sets for each camera automatically.
Uses the ROS 2 Humble libraries bundled with Isaac Sim (
isaacsim.ros2.bridge) — no system ROS 2 is needed to publish. ROS 2 Humble is required only on the consumer side (RViz,ros2 topic echo).
Namespace <ns> = /tof/cam (a {i} index is added only when more than one camera is present,
plus a _{type} suffix for the GMSL/USB variants):
| Topic | Stream | Resolution | Range |
|---|---|---|---|
<ns>/highres/{depth, camera_info, points} |
High-resolution depth and point cloud | 1280×960 | 0.2–2.0 m |
<ns>/longrange/{depth, camera_info, points} |
Long-range depth and point cloud | 640×480 | 0.5–6.0 m |
<ns>/imu |
6-axis IMU | — | 416 Hz |
/clock, /tf |
Shared clock and transform tree | — | Published once |
highres and longrange are two configurations of the same module, so they share one IMU and one
TF frame per camera (a child of world).
-
Add a camera (see Usage) and press Play.
-
Open Window → Script Editor.
-
Choose File → Open.
-
Select
econ-isaac-sim/ros2/isaac_usd_ros_itof.py. -
Run (or press Ctrl+Enter).
The OmniGraph action graphs are created under a single Graphs scope. With more than one camera,
each camera's graphs are grouped in a /Graphs/<camera> subfolder (e.g. /Graphs/cam0). Below,
<UNIT> is the upper-cased camera name (e.g. CAM, CAM0_GMSL):
-
ROS2SharedGraph— shared/clockand/tf. -
ROS2Camera_<UNIT>_HIGHRES— 1280×960 depth, camera_info, points. -
ROS2Camera_<UNIT>_LONGRANGE— 640×480, same publishers. -
ROS2ImuGraph_<UNIT>— reads and publishes the IMU, with an optional on-screen readout of linear acceleration / angular velocity. Three settings control it:IMU_PRINT_CAMERAS— which cameras show the readout.IMU_LINEAR_TO_SCREEN— overlay linear acceleration.IMU_ANGULAR_TO_SCREEN— overlay angular velocity.- Keep it to a single camera (default:
cam/cam0) — more than one is unreadable on screen.
Set ROS2_DOMAIN_ID (top of the script) to match your shell's ROS_DOMAIN_ID.
- Set the Fixed Frame to
world(all camera frames are children of it). - Rename it via
TF_WORLD_FRAME; parent all frames under a prim viaTF_PARENT_PRIM.
All cameras share the world frame, so their point clouds line up in a single view:
The browser viewer is enabled by default (WEB_VIEWER = True in
ros2/isaac_usd_ros_itof.py) and served at http://localhost:8211/,
alongside ROS 2. Set it to False to disable.
Refer to the script to set the other options as well.
- Depth tiles — live depth, colour-mapped by distance; a probe (cursor → last click → centre) reads the metric distance.
- Point clouds — per-camera checkboxes; interactive 3D (rotate / zoom / pan) with Download .ply.
- Settings —
WEB_VIEWER,WEB_VIEWER_PORT,WEB_VIEWER_HZ, andWEB_VIEWER_MAX_W(None= the camera's full resolution; set e.g.640to cap the preview width).
The 3D view loads three.js from a CDN (needs internet); the 2D tiles work offline.
- Stop —
Ctrl+Alt+R(viewport focused) orteardown(). - Restart — run the file again; graphs, hotkey, and viewer reset automatically.
- UR10 Palletizing — add two DepthVista Helix cameras (wrist and over-pallet) and a camera stand to Isaac Sim's UR10 Palletizing example, then stream to ROS 2 and the browser viewer.
- Nova Carter navigation — mount four
DepthVista Helix cameras (front/back/left/right) on a Nova Carter, stream to ROS 2 under
the robot's TF tree, and navigate two warehouse scenes (compact and full-size) with
the Nav2
carter_navigationpackage.
./uninstall.sh # Linux
uninstall.bat # WindowsRestores the .kit files and removes the extension. To target a specific install (multiple Isaac
Sim versions, or a known path), set ISAACSIM_PATH as with the installer:
ISAACSIM_PATH=/home/econsy/ROBOTICS/downloads/isaacsim ./uninstall.sh # Linuxset ISAACSIM_PATH=C:\path\to\isaacsim & uninstall.bat :: Windows- Re-run the installer after reinstalling or updating Isaac Sim.











