Retroalimentación visual activa inmersiva
Xuxin cheng* · jialong li* · shiqi yang
GE Yang · Xiaolong Wang



Este código contiene implementación para el aprendizaje de teleperación e imitación de la televisión abierta.
conda create -n tv python=3.8
conda activate tv
pip install -r requirements.txt
cd act/detr && pip install -e .Instale Zed SDK: https://www.stereolabs.com/developers/release/
Instale la API Zed Python:
cd /usr/local/zed/ && python get_python_api.py
Si desea probar el ejemplo de teleperación en un entorno simulado (Teleop_hand.py):
Instale el gimnasio Isaac: https://developer.nvidia.com/isaac-gym/
Para la transmisión local de Quest , siga este tema.
Apple no permite WebXR en conexiones no HTTPS. Para probar la aplicación localmente, necesitamos crear un certificado autofirmado e instalarlo en el cliente. Necesitas una máquina Ubuntu y un enrutador. Conecte la máquina VisionPro y la Ubuntu al mismo enrutador.
ifconfig | grep inet
Supongamos que la dirección IP local de la máquina Ubuntu es 192.168.8.102 .
mkcert -install && mkcert -cert-file cert.pem -key-file key.pem 192.168.8.102 localhost 127.0.0.1
PD. Coloque los archivos generados cert.pem y key.pem en teleop .
sudo iptables -A INPUT -p tcp --dport 8012 -j ACCEPT
sudo iptables-save
sudo iptables -L
o se puede hacer con ufw :
sudo ufw allow 8012
tv = OpenTeleVision(self.resolution_cropped, shm.name, image_queue, toggle_streaming, ngrok=False)
mkcert -CAROOT
Copie el rootca.pem a través de AirDrop a VisionPro e instálelo.
Configuración> General> Acerca de> Configuración de fideicomiso de certificado. En "Habilitar la confianza completa para los certificados raíz", active la confianza para el certificado.
Configuración> Aplicaciones> Safari> Avanzado> Flaros de funciones> Habilitar características relacionadas con WebXR
Abra el navegador en Safari en VisionPro y vaya a https://192.168.8.102:8012?ws=wss://192.168.8.102:8012
Haga clic Enter VR y Allow iniciar la sesión VR.
Para Meta Quest3, la instalación del certificado no es trivial. Necesitamos usar una solución de transmisión de red. Usamos ngrok para crear un túnel seguro al servidor. Este método funcionará tanto para VisionPro como para Meta Quest3.
ngrok http 8012
PD. Cuando use NGROK para la transmisión de red, recuerde llamar OpenTeleVision con:
self.tv = OpenTeleVision(self.resolution_cropped, self.shm.name, image_queue, toggle_streaming, ngrok=True)
cd teleop && python teleop_hand.py
Vaya a su sitio Vuer en VisionPro, haga clic en Enter VR y Allow ingresar al entorno inmersivo.
¡Mira tus manos en 3D!

Descargue el conjunto de datos de https://drive.google.com/drive/folders/11wo96mumjmxro9hpvm4adz7thuugnemy?usp=sharing.
Coloque el conjunto de datos descargado en data/recordings/ .
Procese el conjunto de datos especificado para capacitar usando scripts/post_process.py .
Puede verificar las secuencias de imagen y acción de un episodio específico en el conjunto de datos utilizando scripts/replay_demo.py .
Para entrenar actúa, corre:
python imitate_episodes.py --policy_class ACT --kl_weight 10 --chunk_size 60 --hidden_dim 512 --batch_size 45 --dim_feedforward 3200 --num_epochs 50000 --lr 5e-5 --seed 0 --taskid 00 --exptid 01-sample-expt
python imitate_episodes.py --policy_class ACT --kl_weight 10 --chunk_size 60 --hidden_dim 512 --batch_size 45 --dim_feedforward 3200 --num_epochs 50000 --lr 5e-5 --seed 0 --taskid 00 --exptid 01-sample-expt
--save_jit --resume_ckpt 25000
scripts/deploy_sim.py , ejemplo de uso: python deploy_sim.py --taskid 00 --exptid 01 --resume_ckpt 25000
@article{cheng2024tv,
title={Open-TeleVision: Teleoperation with Immersive Active Visual Feedback},
author={Cheng, Xuxin and Li, Jialong and Yang, Shiqi and Yang, Ge and Wang, Xiaolong},
journal={arXiv preprint arXiv:2407.01512},
year={2024}
}