Releases: NVIDIA/IsaacTeleop
Release 1.0.193
Hotfix
Fix
- Packaging: Relaxed
requires-pythonin theisaacteleopPython 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 isaacteleopnow 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
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 installas 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_bodymode 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,
TransformMatrixtype, 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_streamerwith 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&Trackeron top of Generic Tensor Device. - Added lossless schema recording for tensor devices.
- Created
SchemaRecordwrapper 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-eulaflag. - Kitmaker integration for NVIDIA distribution.
- Added wheel repair step for release builds.
OpenXR
- Restructured to
native_openxrarchitecture. - Added support for passing external OpenXR handles to Teleop Session.
- Added
xdevexamples and inline utilities for loading extension functions. - Added
plugin_argssupport toplugin_manager.
Teleop Session
- Enabled external inputs in
TeleopSession. - Added
collection_idparameter 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
stubgencaching. - Fixed script that assumed
docker composeexists. - Handled numpy ABI for both 1.x and 2.x compatibility.
- Used
numpy>=1.22.2to address CVE-2021-41495. - Fixed ROS 2 Teleop Dockerfile
nloptbuild on ARM64. - Relaxed
nloptversion 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
uvversion for reproducible builds. - Pre-installed heavy Python dependencies in Docker images to speed up launches.
- Enabled CodeRabbit automated code review.
- Set up
ruffpre-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.shnow uses the wheel-based flow by default (Docker-based flow available asrun_cloudxr_via_docker.sh).IDeviceIOSourcerefactored -- addedpoll_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
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_sessionwith configurable recording path; Python example for session with MCAP recording. - Generic per-frame metadata in
camera.fbs(#88). hands.fbsfor 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
OpenXRSessionHandlesfrom Python (#81). - Teleop session manager package: helpers, config, and
teleop_session_example. - Shared
core::OpenXRSessionreuse across plugins; OpenXR math helpers moved tooxr_utils. - CXR tensor extension headers (Generic Tensor Collection / push tensor) for plugins.
- Create
-
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.
- Device output for
-
Build & developer experience
- Devcontainer configuration for Isaac Teleop (#66).
- Teleop utils for building teleop apps.
TELEOPCORE_DISABLE_CXR_ENV_CHECKSto disable CloudXR env checks when needed.
Improvements
-
DeviceIO & trackers
- Tracker creation refactor:
initialize→create_tracker; implementations retrieved from session; removedis_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_casefor consistency.
- Tracker creation refactor:
-
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 inoxr_session. - CloudXR Docker:
run_cloudxr.shcan download Web SDK from NGC, build containers, and start services;cloudxr_image_ops.shfor flexible image load/save/pull withcontainer_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).
- CloudXR env setup: fail early on missing env; use
-
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,
incaligned with target names,deviceio_py_utilslibrary (#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.shimprovements and documentation.
- Hunter cache (
-
Versioning & deps
- Single consolidated
VERSIONfile; 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_dirimproved (Windows: USERPROFILE; runtime error instead of/tmpfallback).
- Single consolidated
-
Security & supply chain
npm installruns with--ignore-scriptsto 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.pylocation.
- Recorder fixes; dataset written relative to
-
Misc
Bug Fixes
- Use
get_required_extensionscorrectly 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 bycreate_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 viaTELEOPCORE_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.shand README.
Generated from diff: release/0.2..release/0.3.x (TeleopCore repo).
Release 0.2.0
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_healthAPI that throwsPluginCrashExceptionif
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 quaterniontensor.fbs- Tensor message for multi-dimensional datahand.fbs- Hand pose schema with joint datahead.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
xriomodule todeviceiofor 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
.pyistub files for Python bindings
- Locked Python version in
- Use mainline yaml-cpp instead of fork
Code Quality
- RAII improvements - Replaced
OpenXRHandlewithstd::unique_ptr - RAII for XR core functions - Better resource management
- Namespace reorganization - Renamed from
oxrtocore - 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
xriomodule renamed todeviceio- update import paths accordinglyTeleopSessionAPI replaced withDeviceIOSession- Namespace changed from
oxr::tocore::in C++ code
🙏 Contributors
Thanks to all contributors who made this release possible!
Release 0.1.0
Initial commit for Isaac Teleop Core 0.1.0