Replaces manual H264/TCP stereo streaming with NVIDIA CloudXR for
higher-quality stereoscopic rendering and lower latency.
Changes:
- teleop_xr_agent.py: add --cloudxr flag (enables Isaac Sim XR mode,
disables manual StreamingManager)
- deps/cloudxr/: NVIDIA CloudXR.js SDK (Early Access) with Isaac Lab
teleop React web client
- deps/cloudxr/Dockerfile.wss.proxy: HAProxy WSS proxy for PICO 4 Ultra
HTTPS mode (routes wss://48322 → ws://49100)
- deps/cloudxr/isaac/webpack.dev.js: disable file watching to avoid
EMFILE errors with large node_modules
- deps/cloudxr/INSTALL.md: full setup guide
Usage:
# Start CloudXR Runtime + Isaac Lab
cd ~/IsaacLab && ./docker/container.py start \
--files docker-compose.cloudxr-runtime.patch.yaml \
--env-file .env.cloudxr-runtime
# Run teleop with CloudXR
~/IsaacLab/isaaclab.sh -p teleop_xr_agent.py \
--task Isaac-MindRobot-2i-DualArm-IK-Abs-v0 --cloudxr
# Serve web client
cd deps/cloudxr/isaac && npm run dev-server:https
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
const { merge } = require('webpack-merge')
|
|
const common = require('./webpack.common.js')
|
|
const path = require('path')
|
|
|
|
// Check if HTTPS mode is enabled via environment variable
|
|
const useHttps = process.env.HTTPS === 'true'
|
|
|
|
module.exports = merge(common, {
|
|
mode: 'development',
|
|
devtool: 'eval-source-map',
|
|
devServer: {
|
|
allowedHosts: 'all',
|
|
hot: true,
|
|
open: false,
|
|
port: 8080,
|
|
// Enable HTTPS with self-signed certificate when HTTPS=true
|
|
...(useHttps && { server: 'https' }),
|
|
static: {
|
|
directory: path.join(__dirname, './build'),
|
|
watch: true,
|
|
},
|
|
watchFiles: {
|
|
paths: ['src/**/*', '../../build/**/*'],
|
|
options: {
|
|
usePolling: false,
|
|
ignored: /node_modules/,
|
|
},
|
|
},
|
|
client: {
|
|
progress: true,
|
|
overlay: {
|
|
errors: true,
|
|
warnings: false,
|
|
},
|
|
},
|
|
devMiddleware: {
|
|
writeToDisk: true,
|
|
},
|
|
},
|
|
})
|
|
|
|
console.log(module.exports); |