aadhithya14 / Open-Teach

A Versatile Teleoperation framework for Robotic Manipulation using Meta Quest3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Issues during reappearance

JaceZhang1020 opened this issue · comments

Dear aadhithya14,

Greetings!

I am a user from China who is currently attempting to replicate the Simulation content outlined in the "Robot Controller Installation Specific Information" from your project. I am using a Quest 3 device with an Ubuntu 20.04 server system.

During my attempt to run the command python3 teleop.py robot=libero_sim sim_env=True, I encountered several issues. The specific error messages are as follows:

(openteach) ➜  Open-Teach git:(main) ✗ python3 teleop.py robot=libero_sim sim_env=True
***************************************************************
     Starting keypoint position transform component
***************************************************************
***************************************************************
     Starting vr detector component
***************************************************************
Process Process-2:
Process Process-3:
Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 92, in _call_target
    return _target_(*args, **kwargs)
  File "/home/ghost/workbench/Open-Teach/openteach/components/detector/oculusbimanual.py", line 18, in __init__
    self.raw_keypoint_right_socket = create_pull_socket(host, oculus_right_port)
  File "/home/ghost/workbench/Open-Teach/openteach/utils/network.py", line 20, in create_pull_socket
    socket.bind('tcp://{}:{}'.format(host, port))
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/zmq/sugar/socket.py", line 302, in bind
    super().bind(addr)
  File "zmq/backend/cython/socket.pyx", line 564, in zmq.backend.cython.socket.Socket.bind
  File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Cannot assign requested address (addr='tcp://172.24.71.206:8087')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ghost/workbench/Open-Teach/openteach/components/initializers.py", line 112, in _start_component
    component = hydra.utils.instantiate(configs)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 222, in instantiate
    return instantiate_node(
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 339, in instantiate_node
    return _call_target(_target_, partial, args, kwargs, full_key)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 97, in _call_target
    raise InstantiationException(msg) from e
hydra.errors.InstantiationException: Error in call to target 'openteach.components.detector.oculusbimanual.OculusVRTwoHandDetector':
ZMQError('Cannot assign requested address (addr='tcp://172.24.71.206:8087')')
full_key: robot.detector
Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 92, in _call_target
    return _target_(*args, **kwargs)
  File "/home/ghost/workbench/Open-Teach/openteach/components/detector/keypoint_transform.py", line 16, in __init__
    self.transformed_keypoint_publisher = ZMQKeypointPublisher(host, transformation_port)
  File "/home/ghost/workbench/Open-Teach/openteach/utils/network.py", line 39, in __init__
    self._init_publisher()
  File "/home/ghost/workbench/Open-Teach/openteach/utils/network.py", line 44, in _init_publisher
    self.socket.bind('tcp://{}:{}'.format(self._host, self._port))
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/zmq/sugar/socket.py", line 302, in bind
    super().bind(addr)
  File "zmq/backend/cython/socket.pyx", line 564, in zmq.backend.cython.socket.Socket.bind
  File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Cannot assign requested address (addr='tcp://172.24.71.206:8089')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ghost/workbench/Open-Teach/openteach/components/initializers.py", line 112, in _start_component
    component = hydra.utils.instantiate(configs)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 222, in instantiate
    return instantiate_node(
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 339, in instantiate_node
    return _call_target(_target_, partial, args, kwargs, full_key)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 97, in _call_target
    raise InstantiationException(msg) from e
hydra.errors.InstantiationException: Error in call to target 'openteach.components.detector.keypoint_transform.TransformHandPositionCoords':
ZMQError('Cannot assign requested address (addr='tcp://172.24.71.206:8089')')
full_key: robot.transforms0
Process Process-1:
Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/utils.py", line 639, in _locate
    obj = getattr(obj, part)
AttributeError: module 'openteach.components.environment' has no attribute 'libero_env'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/utils.py", line 645, in _locate
    obj = import_module(mod)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/ghost/workbench/Open-Teach/openteach/components/environment/libero_env.py", line 10, in <module>
    import robosuite.utils.transform_utils as T
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/__init__.py", line 1, in <module>
    from robosuite.environments.base import make
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/environments/__init__.py", line 1, in <module>
    from .base import REGISTERED_ENVS, MujocoEnv
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/environments/base.py", line 12, in <module>
    from robosuite.utils.binding_utils import MjRenderContextOffscreen, MjSim
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/utils/binding_utils.py", line 58, in <module>
    from robosuite.renderers.context.egl_context import EGLGLContext as GLContext
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/renderers/context/egl_context.py", line 32, in <module>
    from mujoco.egl import egl_ext as EGL
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/mujoco/egl/__init__.py", line 67, in <module>
    raise ImportError(
ImportError: Cannot initialize a EGL device display. This likely means that your EGL driver does not support the PLATFORM_DEVICE extension, which is required for creating a headless rendering context.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 134, in _resolve_target
    target = _locate(target)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/utils.py", line 653, in _locate
    raise ImportError(
ImportError: Error loading 'openteach.components.environment.libero_env.LiberoEnv':
ImportError('Cannot initialize a EGL device display. This likely means that your EGL driver does not support the PLATFORM_DEVICE extension, which is required for creating a headless rendering context.')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ghost/workbench/Open-Teach/openteach/components/initializers.py", line 112, in _start_component
    component = hydra.utils.instantiate(configs)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 222, in instantiate
    return instantiate_node(
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 325, in instantiate_node
    _target_ = _resolve_target(node.get(_Keys.TARGET), full_key)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 139, in _resolve_target
    raise InstantiationException(msg) from e
hydra.errors.InstantiationException: Error locating target 'openteach.components.environment.libero_env.LiberoEnv', see chained exception above.
full_key: robot.environment0
***************************************************************
     Starting hand 2D plotter component
***************************************************************
Process Process-4:
Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 92, in _call_target
    return _target_(*args, **kwargs)
  File "/home/ghost/workbench/Open-Teach/openteach/components/visualizers/visualizer_2d.py", line 16, in __init__
    self.plotter2D = PlotHand2D(host, oculus_feedback_port, display_plot)
  File "/home/ghost/workbench/Open-Teach/openteach/components/visualizers/plotters/plotter_2d.py", line 33, in __init__
    self.socket = ZMQCompressedImageTransmitter(host = host, port = port)
  File "/home/ghost/workbench/Open-Teach/openteach/utils/network.py", line 176, in __init__
    self._init_publisher()
  File "/home/ghost/workbench/Open-Teach/openteach/utils/network.py", line 181, in _init_publisher
    self.socket.bind('tcp://{}:{}'.format(self._host, self._port))
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/zmq/sugar/socket.py", line 302, in bind
    super().bind(addr)
  File "zmq/backend/cython/socket.pyx", line 564, in zmq.backend.cython.socket.Socket.bind
  File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Cannot assign requested address (addr='tcp://172.24.71.206:15001')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ghost/workbench/Open-Teach/openteach/components/initializers.py", line 112, in _start_component
    component = hydra.utils.instantiate(configs)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 222, in instantiate
    return instantiate_node(
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 339, in instantiate_node
    return _call_target(_target_, partial, args, kwargs, full_key)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 97, in _call_target
    raise InstantiationException(msg) from e
hydra.errors.InstantiationException: Error in call to target 'openteach.components.visualizers.visualizer_2d.Hand2DVisualizer':
ZMQError('Cannot assign requested address (addr='tcp://172.24.71.206:15001')')
full_key: robot.visualizers0
Process Process-5:
Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/utils.py", line 639, in _locate
    obj = getattr(obj, part)
AttributeError: module 'openteach.components.operators' has no attribute 'libero_sim'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/utils.py", line 645, in _locate
    obj = import_module(mod)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/ghost/workbench/Open-Teach/openteach/components/operators/libero_sim.py", line 17, in <module>
    import robosuite.utils.transform_utils as T
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/__init__.py", line 1, in <module>
    from robosuite.environments.base import make
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/environments/__init__.py", line 1, in <module>
    from .base import REGISTERED_ENVS, MujocoEnv
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/environments/base.py", line 12, in <module>
    from robosuite.utils.binding_utils import MjRenderContextOffscreen, MjSim
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/utils/binding_utils.py", line 58, in <module>
    from robosuite.renderers.context.egl_context import EGLGLContext as GLContext
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/robosuite/renderers/context/egl_context.py", line 32, in <module>
    from mujoco.egl import egl_ext as EGL
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/mujoco/egl/__init__.py", line 67, in <module>
    raise ImportError(
ImportError: Cannot initialize a EGL device display. This likely means that your EGL driver does not support the PLATFORM_DEVICE extension, which is required for creating a headless rendering context.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 134, in _resolve_target
    target = _locate(target)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/utils.py", line 653, in _locate
    raise ImportError(
ImportError: Error loading 'openteach.components.operators.libero_sim.LiberoSimOperator':
ImportError('Cannot initialize a EGL device display. This likely means that your EGL driver does not support the PLATFORM_DEVICE extension, which is required for creating a headless rendering context.')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ghost/workbench/Open-Teach/openteach/components/initializers.py", line 112, in _start_component
    component = hydra.utils.instantiate(configs)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 222, in instantiate
    return instantiate_node(
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 325, in instantiate_node
    _target_ = _resolve_target(node.get(_Keys.TARGET), full_key)
  File "/home/ghost/miniconda3/envs/openteach/lib/python3.10/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 139, in _resolve_target
    raise InstantiationException(msg) from e
hydra.errors.InstantiationException: Error locating target 'openteach.components.operators.libero_sim.LiberoSimOperator', see chained exception above.
full_key: robot.operators0
(openteach) ➜  Open-Teach git:(main) ✗ 

Based on my understanding, these issues may be related to ZMQ address binding and EGL device display initialization. I have tried the suggestions from ChatGPT, but I have not been able to resolve the issues.

For the ZMQ address binding error, I would like to know how to correctly obtain the port numbers for the headset and the two controllers. Are there any specific tools or commands that can assist me in diagnosing and resolving this issue?

Regarding the EGL device display initialization error, I understand that it may be due to the absence of an EGL driver that supports the PLATFORM_DEVICE extension. Could you please advise me on how to install or update this driver so that I can successfully initialize the EGL device display?

I am eagerly awaiting your response and suggestions and hope to resolve these issues as soon as possible to continue with my project research.

Thank you very much for your time and assistance!

Best regards,
JaceZhang1020

Hi ,
Thanks for raising this issue. As mentioned in the docs , you have to enter your IP of the network. Right now the IP is set at 172.24.71.206. Change this to your machine IP. That should solve the problem of ports. For the problem of EGL drivers, try running the teleoperation using MUJOCO_GL=egl python teleop.py sim_env=True.

Hi,
Thank you for your reply.I wonder if I need to change the IP address of hand controllers as well please,since I also saw them in network.yaml.Meanwhile,I wanna make sure if you mean that I should use command-line parameter MUJOCO_GL=egl sim_env=True while running python teleop.py?

Hi,
You don't need to change anything except the IP of the network if you are just running the simulation. And to answer the other question yes, try MUJOCO_GL=egl python teleop.py sim_env=True.

Best,
Aadhithya Iyer

Understood.I will try it,thank you again~

Hi ,
I wanted to check if you were able to get things running on Libero environment. Looking forward to hearing from you.

Best,
Aadhithya Iyer