Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GZ Harmonic: Client get empty window when connects to remote server #2698

Open
5 of 19 tasks
rom341 opened this issue Dec 12, 2024 · 5 comments
Open
5 of 19 tasks

GZ Harmonic: Client get empty window when connects to remote server #2698

rom341 opened this issue Dec 12, 2024 · 5 comments
Labels
bug Something isn't working

Comments

@rom341
Copy link

rom341 commented Dec 12, 2024

Environment

  • OS Version: Ubuntu 24.04
  • Binary build: Harmonic 8.7.0
  • If this is a GUI or sensor rendering bug, describe your GPU and rendering system. Otherwise delete this section.
    • Rendering plugin: ogre2

      • Sensor rendering error.
      • GUI rendering error.
    • EGL headless mode:

      • Running in EGL headless mode
    • Generally, mention all circumstances that might affect rendering capabilities:

      • running on a dual GPU machine (integrated GPU + discrete GPU)
      • running on a multi-GPU machine (it has multiple discrete GPUs)
      • running on real hardware
      • running in virtual machine
      • running in Docker/Singularity
      • running remotely (e.g. via SSH)
      • running in a cloud
      • using VirtualGL, XVFB, Xdummy, XVNC or other indirect rendering utilities
      • GPU is concurrently used for other tasks
        • desktop acceleration
        • video decoding (i.e. a playing Youtube video)
        • video encoding
        • CUDA/ROCm computations (Tensorflow, Torch, Caffe running)
        • multiple simulators running at the same time
      • other...
    • Rendering system info:

      • On Linux, provide the outputs of the following commands:
        LANG=C lspci -nn | grep VGA  # might require installing pciutils
        echo "$DISPLAY"
        LANG=C glxinfo -B | grep -i '\(direct rendering\|opengl\|profile\)'  # might require installing mesa-utils package
        ps aux | grep Xorg
        sudo env LANG=C X -version  # if you don't have root access, try to tell the version of Xorg e.g. via package manager
        roman@roman:~$ LANG=C lspci -nn | grep VGA
        00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02)
        
        roman@roman:~$ echo "$DISPLAY"
        :1
        
        roman@roman:~$ LANG=C glxinfo -B | grep -i '\(direct rendering\|opengl\|profile\)'  
        direct rendering: Yes
          Preferred profile: core (0x1)
          Max core profile version: 4.6
          Max compat profile version: 4.6
          Max GLES1 profile version: 1.1
          Max GLES[23] profile version: 3.2
        OpenGL vendor string: Intel
        OpenGL renderer string: Mesa Intel(R) HD Graphics 620 (KBL GT2)
        OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.0.9-0ubuntu0.2
        OpenGL core profile shading language version string: 4.60
        OpenGL core profile context flags: (none)
        OpenGL core profile profile mask: core profile
        OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.2
        OpenGL shading language version string: 4.60
        OpenGL context flags: (none)
        OpenGL profile mask: compatibility profile
        OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.0.9-0ubuntu0.2
        OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
        
        roman@roman:~$ ps aux | grep Xorg
        roman       2826  7.4  1.5 7403828 188816 tty2   Sl+  12:41   2:44 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -novtswitch -verbose 3
        roman      10417  0.0  0.0  18136  2176 pts/4    S+   13:17   0:00 grep --color=auto Xorg
        
        roman@roman:~$ sudo env LANG=C X -version 
        
        X.Org X Server 1.21.1.11
        X Protocol Version 11, Revision 0
        Current Operating System: Linux roman 6.8.0-50-generic #51-Ubuntu SMP PREEMPT_DYNAMIC Sat Nov  9 17:58:29 UTC 2024 x86_64
        Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.8.0-50-generic root=UUID=d34a680e-7c4c-49f1-bf4b-528073bb9073 ro quiet splash vt.handoff=7
        xorg-server 2:21.1.12-1ubuntu1.1 (For technical support please see http://www.ubuntu.com/support) 
        Current version of pixman: 0.42.2
            Before reporting problems, check http://wiki.x.org
            to make sure that you have the latest version.
        
    • Please, attach the ogre.log or ogre2.log file from ~/.gz/rendering

client_ogre2.log

Description

I need to run 'gz -s' on aws or computer in the other network, connect to it with OpenVPN in tap mode (udp multicast can pass through) and operate simulation by running 'gz sim -g' from my computer.

  • Expected behavior:
    When running 'gz -g' it connects to server, and shows world and entities

  • Actual behavior:
    When running 'gz -g' it connects to server, but shows empty window (no scene, no entity tree, etc)
    image

But, if world contains camera, i can use this camera to see the world
image

Steps to reproduce

  1. On server (AWS EC2 Ubuntu 24.04 ip = 10.8.0.1):
    GZ_IP=10.8.0.1 GZ_PARTITION=1 GZ_VERBOSE=1 GZ_TRANSPORT_RCVHWM=100000 GZ_TRANSPORT_SNDHWM=100000 GZ_TRANSPORT_TOPIC_STATISTICS=0 gz sim -s -v4

  2. On client (Real PC Ubuntu 24.04 ip =10.8.0.2)
    GZ_IP=10.8.0.2 GZ_PARTITION=1 GZ_VERBOSE=1 GZ_TRANSPORT_RCVHWM=100000 GZ_TRANSPORT_SNDHWM=100000 GZ_TRANSPORT_TOPIC_STATISTICS=0 gz sim -g -v4

##Extra

  1. Ping between server and client +- 150ms
  2. GZ_RELAY - have no effect
  3. If these steps are repeated when the server and client are on the same Wi-Fi network, everything works correctly; the client can see and interact with the world.
  4. if use comand
    '''
    sudo tc qdisc add dev lo root netem delay 17ms
    '''
    it will create 34ms ping on localhost and gz client will see gray windoa as at the first screenshot, but if change this ping to 16ms or lower, all work correctly

Output

gz_client_console.txt

gz_server_console.txt

@rom341 rom341 added the bug Something isn't working label Dec 12, 2024
@iche033
Copy link
Contributor

iche033 commented Dec 13, 2024

looks like a gui issue since that the camera sensor topic worked. The initial async request to get the world state failed. First the gui requests for state, and the server received the request and populated the state msg as indicated by this debug output:

[1;36m[Dbg] [EntityComponentManager.cc:1656] �[0m�[1;36mUpdated state thread iterators: �[0m�[1;36m1�[0m�[1;36m threads processing around �[0m�[1;36m3�[0m�[1;36m entities each.�[0m�[1;36m�[0m

However, when the server responds back (with a request) to gui with the state msg, the gui did not seem to receive that service call.

@rom341
Copy link
Author

rom341 commented Dec 13, 2024

but why gui does not receive that service call, if ping is more than 17ms?
all work well, if use wifi newtwork, or with docker or VM, where ping is minimal, but if i use command
sudo tc qdisc add dev <network interface> root netem delay 17ms
gui breaks even with wifi or docker.
if use vpn, all break to.
It is possible that ping is the source of problems?

@iche033
Copy link
Contributor

iche033 commented Dec 13, 2024

but why gui does not receive that service call, if ping is more than 17ms?

that I'm not sure. Maybe @caguero has some ideas about the impact of latency on gz-transport service requests?

@rom341
Copy link
Author

rom341 commented Dec 16, 2024 via email

@rom341
Copy link
Author

rom341 commented Dec 17, 2024

Is it even possible to run Gazebo Harmonic or other version (except classic) on different computers and connect them via the internet (vpn tunnel for example)?

I have successfully launched gazebo classic through a vpn tunnel, but cant do it with new versions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Inbox
Development

No branches or pull requests

2 participants