Realidad Virtual

Buenas tardes,
Tenemos un UR3e, queremos saber si podemos manejarlo con unas gafas de realidad virtual, tenemos varios modelos entre ellos las oculus quest2 , ¿hay algún script o programa adicional para poder realizar estas funciones?
Un saludo
Javier

Hola Javier, bienvenido a la Comunidad UR

Interesante proyecto que tienes en mente. Te cuento.
Enviando comandos a través de sockets Ethernet puedes acceder a la información del robot y controlarlo remotamente.
Desde el software de las gafas debes crear una conexión socket a la IP del robot y a los puertos que te indico a continuación. Por supuesto, robot y PC deben estar conectados en red.

En este artículo se te explica cómo enviar comandos de alto nivel al puerto 29999 del servidor DASHBOARD (load program, play, pause, stop,…):
https://www.universal-robots.com/articles/ur/dashboard-server-e-series-port-29999/

Paralelamente, si lo que quieres es enviar comandos SCRIPT de movimiento puedes conectarte por socket al servidor del puerto 30002.
El manual de script puedes encontrarlo en la sección de descargas de la web de soporte, Aquí tienes la versión 5.12, la última en esta fecha:
https://www.universal-robots.com/download/manuals-e-series/script/script-manual-e-series-sw-512/
Consulta las funciones:
movej(q, a=1.4, v=1.05, t=0, r =0)
movel(pose, a=1.2, v=0.25, t=0, r=0)
Ten en cuenta las unidades para no generar movimientos demasiado rápidos. El MOVEJ trabaja en radianes y el MOVEL en metros. Si usas el parámetro “t” (tiempo), se ignorarán los parámetros de aceleración y velocidad y el robot decidirá la aceleración y velocidad para llegar al destino en “t” segundos.
Aconsejo practicarlo primero contra el simulador URSim (para evitar sustos) y luego, solo cambiando la IP, podrás enviarlo al robot real.

Adjunto un par de ejemplos en Python3 para enviar comandos DASHBOARD al puerto 29999 y para enviar comandos SCRIPT al puerto 30002. Puedes replicarlo en cualquier lenguaje de programación.

Otra cosa importante a tener en cuenta: debes poner el robot en modo de control REMOTO antes de que se cree la conexión socket. Si no es así, el robot ignorará los comandos que le envíes.
Para poner el robot en modo remoto, primero debes habilitar el icono de modo Local/Remoto en Ajustes/Sistema/Control Remoto

Clickando en ese icono ya podrás pasar el de modo Local a Remoto cada vez que quieras ceder el control al software de las gafas.

image

Suena a una idea muy buena.
Por lo que he visto, la mayoría de desarrolladores en visión por computador usan ROS para proyectos de robótica, usando plugins de ROS tanto en el robot como en la cámara. He encontrado dos proyectos (éste, éste) que usan el simulador de Gazebo con una cámara dentro del entorno de simulación para mostrar el robot. En tu caso, tendía que ser una cámara física y el robot literalmente, pero sería el mismo concepto.

Sobre las gafas, he mirado que en la página de Meta que necesitas credenciales de desarrollador para poner las Oculus Quest 2 en modo desarrollo y poder hacer tu propia conexión a las gafas. Una vez con credenciales, sólo te deja usar Unity para desarrollar apps, que es solamente para videojuegos, entonces creo que esas gafas no serían compatibles con el proyecto.

Busca unas gafas que permitan usar OpenVR, Cardbox en Android, o algún software abierto para poder usarlas en tu proyecto.

Muchas gracias por vuestras respuestas, son muchas ideas que hay que explorar.
“Desde el software de las gafas debes crear una conexión socket a la IP del robot” voy a ver si se puede como desarrollador.
Desde Unity creo que se puede crear un escenario que contenga el cobot.
Me pondré con ello.
Gracias de nuevo

Hello Mr. Javier!
I’m writing in english cuz my Espanõl is very poor, so i think that English will be more effective!

I’m from Brazil and i’m developing the same project that you mentioned here, for my “Final Paper” of Bacharelor in Electrical Engineering (UDESC: Universidade do Estado de Santa Catarina).

However, I’m in the first steps of this project, so if you have some tips, can you please tell me?
Can we trade our emails to talk with each other/share the goods and bads about this developing?

For now my “chosen path” was create a socket connection by IP (TCP-IP) with the robot, cuz i searched a lot about another ways and the most include:
(1) A Intel Camera D435i (cuz this camera has 3D compatibility) Problem: I don’t have funds available for now in my University for this project

(2) using the tools of Extended Robotics (that isn’t free). Problem: My university requires that our internal projects use Open-Source tools.

So the path using TCP-IP was no-money driving and for me is the best way.

Thanks a lot!

Hello, I have not been able to dedicate much time to this project, I cannot help you