Skip to content

Releases: NVIDIA/IsaacTeleop

Release 1.0.193

21 Apr 05:29
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Hotfix

Fix

  • Packaging: Relaxed requires-python in the isaacteleop Python wheel from ==<build-python>.* to >=3.10 (#405).

Why

Wheels built against different Python minor versions (e.g. 3.10 vs 3.11) were each pinning requires-python to their exact build-time version. This made the wheels non-interchangeable on PyPI/NGC and prevented users on a different Python minor from installing a published wheel that would otherwise work.

Impact

  • pip install isaacteleop now resolves correctly across supported Python 3.10+ interpreters regardless of which interpreter the wheel was built against.
  • No API or runtime behavior changes; packaging metadata only.
  • Single-file change: src/core/python/pyproject.toml.in.

Release 1.0.191

16 Mar 18:18
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Isaac Teleop 1.0.191 Release Notes

Release Date: March 16, 2026

This is a the first GA release that marks the transition from Isaac Teleop 0.3 to 1.0, representing the product's first stable public release. It includes 204 commits spanning 488 changed files with ~42,700 additions and ~13,200 deletions since v0.3.15.


Highlights

  • Rebranded to Isaac Teleop -- the project has been officially renamed to Isaac Teleop.
  • Python wheel-based installation -- Isaac Teleop can now be installed via pip install as a Python wheel, replacing the Docker-first workflow as the default setup.
  • ROS 2 integration -- a full-featured ROS 2 Reference App (RA) with support for ROS Humble and Jazzy, teleop modes, TF tree publishing, and CycloneDDS.
  • Full body tracking -- added PICO XR full body tracker, finger joint retargeting, and full-body mode support across the ROS pipeline.
  • CloudXR 6.1.0 -- upgraded to CloudXR Runtime 6.1.0 and WebXR client 6.1.0.
  • ARM64 support -- builds and CI now support ARM64 architecture for both the core runtime and Docker images.
  • Comprehensive documentation -- new Sphinx-based docs covering quick start, device tracking, teleop sessions, retargeters, build-from-source, and licensing.

New Features

ROS 2 Reference App

  • Added ROS 2 Reference App for teleoperation (teleop_ros2) with support for both Humble and Jazzy distributions.
  • Introduced ROS teleop modes for structured control switching.
  • Added ability to publish left and right wrist transforms to the TF tree.
  • Publish controller data in full_body mode to support seamless mode transitions.
  • Encapsulated publisher logic in a dedicated ROS 2 node.
  • Added optional CycloneDDS dependency for ROS teleop.

Body & Hand Tracking

  • Added PICO XR full body tracker (FullBodyTrackerPico).
  • Added finger joint retargeting.
  • Full body tracking support in the ROS 2 Reference App.
  • Added hand tracking directions and controller aim pose fallback when hand tracking is unavailable.
  • Made head pose optional in the retargeter source.
  • Created tracked types with optional data to handle inactive input sources.

Retargeters

  • Implemented foot pedal retargeter with hot-plug support for Linux joystick API devices.
  • Added tunable parameters to the SE3 retargeter.
  • Added transform utilities, TransformMatrix type, and .transformed() methods.
  • Added optional values to the retargeter system.
  • Added retargeter timing instrumentation.
  • Moved retargeters under src/ for cleaner project structure.

Camera & Streaming

  • New Holoscan-based camera streamer sample application.
  • Added SSH push command for cam_streamer with exposed camera outputs.
  • Camera streamer reconnection fix using re-exec pattern.
  • Multi-stream and sensor check for OAK camera.
  • Camera tracker now supports multiple channels.
  • Added distance threshold for camera plane repositioning.

Recording & Schema

  • Implemented SchemaPusher & Tracker on top of Generic Tensor Device.
  • Added lossless schema recording for tensor devices.
  • Created SchemaRecord wrapper types for all schemas.
  • Multi-channel recording support for hand and controller trackers.
  • Added MCAP support for per-stream metadata.

CloudXR & Runtime

  • Updated to CloudXR Runtime 6.1.0 (via rc1 through rc7 progression).
  • Bundled CloudXR runtime into TeleopCore for simplified deployment.
  • Added CloudXR Runtime SDK and Dockerfile.
  • Added process management for CXR runtime and WSS proxy.
  • Added runtime and WSS proxy script.
  • Proxy shows a friendlier page when the SSL certificate is accepted.
  • Fixed CloudXR runtime crash from OpenSSL symbol conflict.

Installation & Deployment

  • Python wheel is now the default installation method (pip install isaacteleop).
  • Added EULA acceptance via --accept-eula flag.
  • Kitmaker integration for NVIDIA distribution.
  • Added wheel repair step for release builds.

OpenXR

  • Restructured to native_openxr architecture.
  • Added support for passing external OpenXR handles to Teleop Session.
  • Added xdev examples and inline utilities for loading extension functions.
  • Added plugin_args support to plugin_manager.

Teleop Session

  • Enabled external inputs in TeleopSession.
  • Added collection_id parameter to the plugin.
  • Updated timestamp handling with local and device clock.
  • Improved GPU index configurability.

Bug Fixes

  • Fixed quaternion ordering in dex retargeting and general retargeting.
  • Fixed joystick input ordering in controller source.
  • Fixed multiple controller trackers using temporary workaround.
  • Fixed camera streamer reconnection with re-exec.
  • Fixed camera streamer Docker build on ARM64.
  • Fixed CloudXR runtime crash from OpenSSL symbol conflict.
  • Fixed MCAP schema writer for OAK.
  • Fixed package version handling.
  • Fixed stubgen caching.
  • Fixed script that assumed docker compose exists.
  • Handled numpy ABI for both 1.x and 2.x compatibility.
  • Used numpy>=1.22.2 to address CVE-2021-41495.
  • Fixed ROS 2 Teleop Dockerfile nlopt build on ARM64.
  • Relaxed nlopt version constraint for x86.

Platform & Infrastructure

  • Enabled ARM64 builds and CI testing.
  • Added Windows workflow concurrency settings.
  • Upgraded to Ubuntu 22.04 for CI builds.
  • Bumped GitHub Actions (checkout, cache, setup-python, artifact actions) to latest versions.
  • Pinned uv version for reproducible builds.
  • Pre-installed heavy Python dependencies in Docker images to speed up launches.
  • Enabled CodeRabbit automated code review.
  • Set up ruff pre-commit and REUSE-compliant license checking.

Documentation

  • Complete Sphinx-based documentation site with multi-version support.
  • Quick start guide for wheel-based installation.
  • Guides for teleop sessions, device tracking, retargeters, and the device ecosystem.
  • Build-from-source reference (replacing the old BUILD.md).
  • SSL certificate setup visuals.
  • ROS documentation updated to match implementation.
  • Added copy button, dark mode fixes, and improved code block styling.
  • Source code linking to GitHub from docs.

Breaking Changes

  • Renamed from previous project name to Isaac Teleop -- all package references updated.
  • Retargeters moved under src/ -- import paths have changed.
  • Restructured to native_openxr -- OpenXR code reorganized.
  • run_cloudxr.sh now uses the wheel-based flow by default (Docker-based flow available as run_cloudxr_via_docker.sh).
  • IDeviceIOSource refactored -- added poll_tracker() and updated class hierarchy.

Known Dependencies

  • Python 3.x with numpy>=1.22.2
  • CloudXR Runtime SDK 6.1.0
  • ROS 2 Humble or Jazzy (for teleop_ros2)
  • Ubuntu 22.04 & 24.04 (Linux)
  • No Windows support (basic build validation only)

Release 0.3.15

10 Feb 23:34
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Isaac Teleop (TeleopCore) Release Notes

Release 0.3.15 (vs 0.2)

Release branch: release/0.3.x


Highlights

  • Project rename: TeleopCore is now Isaac Teleop — the unified framework for high-fidelity ego-centric and robotics data collection. Documentation and branding have been updated accordingly.
  • Retargeting framework: Port of Isaac Lab retargeters with a type system, source nodes, and examples (gripper, SE3, dex bimanual, G1 tri-hand, locomotion, reordering). Retargeter tuning UI with IMGUI for live tuning.
  • Camera & recording: Generic Camera Device Plugin interface; Oak-D plugin; MCAP recorder integrated into deviceio session; generic per-frame metadata in camera schema.
  • Full body & locomotion: Pico full body tracking schema and testbed; locomotion schema and bindings compatible with Isaac OS Lower Body Controller.
  • CloudXR: Runtime updates to 6.1.0 (pid3/pid4/rc2); tensor extension support; streamlined Docker setup and env handling; Quest3 as default device profile.
  • Python & packaging: Python 3.10, 3.11, and 3.12 support; PEP 440 versioning; multi-version wheel builds in CI; git commit count in versioning.

New Features

  • Retargeting

    • Retargeter type system and interface; port of Isaac Lab retargeters (SE3, gripper, dex, combined).
    • Source nodes and enums for source node identifiers.
    • Examples: controller + SE3, gripper, dex bimanual, G1 tri-hand, locomotion, full bimanual reordering.
    • Retargeter tuning UI (IMGUI) for live tuning.
    • Optional retargeting dependencies in build.
  • Camera & device plugins

    • Generic Camera Device Plugin interface; Oak-D camera plugin (DepthAI) for recording.
    • MCAP recorder integrated into deviceio_session with configurable recording path; Python example for session with MCAP recording.
    • Generic per-frame metadata in camera.fbs (#88).
    • hands.fbs for tracking both hands to align with hand tracker logic.
  • Full body & locomotion

    • Data schema and bindings for Pico full body tracking.
    • Body tracking testbed for Pico WebXR body tracking extension (cxrjs/bodytracking example).
    • Locomotion schema and bindings compatible with Isaac OS Lower Body Controller operator.
  • Session & OpenXR

    • Create OpenXRSessionHandles from Python (#81).
    • Teleop session manager package: helpers, config, and teleop_session_example.
    • Shared core::OpenXRSession reuse across plugins; OpenXR math helpers moved to oxr_utils.
    • CXR tensor extension headers (Generic Tensor Collection / push tensor) for plugins.
  • Device I/O & schemas

    • Device output for Generic3AxisPedalOutput (e.g. Logitech-style pedals).
    • Timestamps on device data; controller tracker uses FlatBuffer schema.
    • Tensor and TensorGroup classes with type validation and tests; tensor types for retargeting engine I/O.
  • Build & developer experience

    • Devcontainer configuration for Isaac Teleop (#66).
    • Teleop utils for building teleop apps.
    • TELEOPCORE_DISABLE_CXR_ENV_CHECKS to disable CloudXR env checks when needed.

Improvements

  • DeviceIO & trackers

    • Tracker creation refactor: initializecreate_tracker; implementations retrieved from session; removed is_initialized() from tracker interfaces (#33, #34).
    • Device plugin reuses controller from deviceio; rate-limited warnings in DeviceIOSession to reduce log spam.
    • deviceio C++ files renamed to snake_case for consistency.
  • CloudXR

    • CloudXR env setup: fail early on missing env; use NV_CXR_RUNTIME_DIR (replacing XDG_RUNTIME_DIR where appropriate); ensure OpenXR env vars (XR_RUNTIME_JSON, etc.) are set in oxr_session.
    • CloudXR Docker: run_cloudxr.sh can download Web SDK from NGC, build containers, and start services; cloudxr_image_ops.sh for flexible image load/save/pull with container_tag.
    • Migrated CloudXR JS SDK download from manual PID to NGC CLI; one-time NGC setup documented.
    • README improvements for CXR Runtime setup; HAProxy Dockerfile tidied (permissions).
  • Build & CI

    • Hunter cache (.hunter) to improve build speed for OAKD dependencies (#85).
    • ccache (Ubuntu) and sccache (Windows) support (#29).
    • CMake cleanup: redundant checks removed, inc aligned with target names, deviceio_py_utils library (#40).
    • DepthAI/CMake: policy version set for compatibility with CMake ≥ 4.0 (#60).
    • Ubuntu CI uses Ubuntu-22.04; GPU runner for GitHub Actions; native tests run in CI.
    • Publish-wheel job for tagged releases (#70); multi-Python wheel builds (#89).
    • Docker-based test fixture for CloudXR tests (local and CI); run_tests_with_cloudxr.sh improvements and documentation.
  • Versioning & deps

    • Single consolidated VERSION file; version includes git commit count (#83); bump to 0.3.x.
    • PEP 440 versioning for alpha, rc, dev, local, and final releases (#87).
    • NumPy 1.22+ (aligned across docs); optional update to 2.4.0 in examples.
    • get_home_dir improved (Windows: USERPROFILE; runtime error instead of /tmp fallback).
  • Security & supply chain

    • npm install runs with --ignore-scripts to reduce supply chain risk (#9da1d58).
    • HAProxy config ownership set to root to address security hotspot.
  • Oak-D / camera

    • Default size switched to match camera resolution to avoid unnecessary scaling and preserve FOV (#74).
  • LeRobot

    • Recorder fixes; dataset written relative to recorder.py location.
  • Misc

    • OpenXR SDK compatibility via sanitizers-cmake (#43).
    • Removed internal references (#72); README and doc cleanups.
    • Issue templates updated; unnecessary README sections removed.
    • UV: specify Python version in Dockerfile.test; remove uv.lock files from repo.

Bug Fixes

  • Use get_required_extensions correctly for OpenXR.
  • Fix typo in load_cloudxr_images.sh.
  • Remove duplicate file and ctor definitions from OpenXRSessionHandles; add default initializers (#67).
  • LeRobot recorder fixes and path handling.

API / Behavior Changes

  • Trackers: initialize() replaced by create_tracker(); is_initialized() removed from tracker interfaces and implementations.
  • Versioning: VERSION file consolidated; format follows PEP 440; git commit count used in version string.
  • CloudXR: Prefer NV_CXR_RUNTIME_DIR; stricter env checks unless disabled via TELEOPCORE_DISABLE_CXR_ENV_CHECKS.
  • Plugin utils: Controllers and session helpers removed from plugin_utils (logic moved/reused in deviceio/plugins where applicable).

Dependencies & Requirements

  • Python: 3.10, 3.11, and 3.12 supported.
  • NumPy: 1.22 or newer (documented; 2.4.0 used in some examples).
  • CloudXR: Runtime 6.1.0 series (pid3, pid4, rc2, or webrtc patch as referenced in commits).
  • Build: Ubuntu 22.04 for build-ubuntu workflow; CMake policy compatibility for DepthAI with CMake ≥ 4.0.

Known Limitations / Notes

  • Oak-D plugin: Windows build skipped in CI due to ffmpeg-related constraints (see #60).
  • CloudXR tests require GPU and optional Docker/CloudXR setup; see run_tests_with_cloudxr.sh and README.

Generated from diff: release/0.2..release/0.3.x (TeleopCore repo).

Release 0.2.0

07 Jan 17:47
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Overview

This release introduces new features including a device plugin system, data schemas
with FlatBuffer serialization, and major improvements to the hand/head tracking systems. The
codebase has been modernized with C++20 support, improved Python packaging, and better code
quality through clang-format enforcement.


🚀 New Features

Plugin Manager System

  • Plugin Manager API - New plugin architecture for discovering and managing external plugin
    binaries with YAML-based metadata configuration
  • Plugin health monitoring - Added check_health API that throws PluginCrashException if
    the plugin process crashes
  • Manus Glove Plugin - Full integration with Manus SDK for glove-based hand tracking with
    controller pose fusion
  • Controller Synthetic Hands Plugin - Generate synthetic hand poses from VR controllers

Schema & Data Serialization

  • FlatBuffer-based schemas for efficient data serialization:
    • pose.fbs - Pose representation with position and quaternion
    • tensor.fbs - Tensor message for multi-dimensional data
    • hand.fbs - Hand pose schema with joint data
    • head.fbs - Head tracking schema
  • Python bindings for all schemas with comprehensive unit tests
  • C++ Object API for working with schema data

Device I/O Module

  • Renamed and reorganized xrio module to deviceio for clarity
  • Controller Tracker - New tracking support for VR controllers
  • Head Tracker - Dedicated head pose tracking component
  • Integrated FlatBuffer schemas for head and hand pose data

Examples & Documentation

  • LeRobot Example - New example for robot learning data recording and visualization
  • Camera Streaming Example - Standalone GStreamer-based camera streaming with OAK-D support
    (host/robot Docker configs)
  • Improved README with better setup and build instructions

🔧 Improvements

Build System & Dependencies

  • Switched from Git submodules to CMake FetchContent for dependency management
  • Upgraded to C++20 to enable designated initializers
  • clang-format enforcement in CI for consistent code style
  • Improved Python packaging:
    • Locked Python version in pyproject.toml
    • Explicit Python version and ABI in wheel filenames
    • Auto-generated .pyi stub files for Python bindings
  • Use mainline yaml-cpp instead of fork

Code Quality

  • RAII improvements - Replaced OpenXRHandle with std::unique_ptr
  • RAII for XR core functions - Better resource management
  • Namespace reorganization - Renamed from oxr to core
  • Extensive refactoring of hand tracker and session APIs

CI/CD

  • Added clang-format checks to Linux builds
  • CI optimizations to avoid exceeding usage limits
  • Fixed Python test paths in Ubuntu build workflow

CloudXR Integration

  • Enabled push device support in CloudXR container
  • Updated web app and WSS proxy Dockerfiles
  • Run nginx with non-root user for security
  • Fixed HAProxy configuration permissions

⚠️ Breaking Changes

  • xrio module renamed to deviceio - update import paths accordingly
  • TeleopSession API replaced with DeviceIOSession
  • Namespace changed from oxr:: to core:: in C++ code

🙏 Contributors

Thanks to all contributors who made this release possible!

Release 0.1.0

17 Nov 19:47
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Initial commit for Isaac Teleop Core 0.1.0