pcl not shown under docker
omerbrandis opened this issue · comments
hello,
I've had to install labelCloud in a docker container.
when I execute it , the window frame/menu/buttons are all shown.
but the actual point cloud is not rendered.
the main part of the window that should display the point cloud ( data from exemplary.ply) is black with white text - looks like part of the terminal.
no error messages are actually written to the terminal.
(regardless ) here's the output that is written :
mypath# python3 labelCloud.py
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Set export strategy to CentroidFormat.
Saving rotations absolutely to positve x-axis in degrees (0..360°).
mypath.../labelCloud
Loading next point cloud...
==================== Loading exemplary.ply ====================
Number of Points: 86357
Point Cloud Center: [ 0.03 -0.37 0.29]
Point Cloud Minimums: [-2.02 -1.42 -0.03]
Point Cloud Maximums: [0.98 0.95 0.94]
Initial Translation: [-0.03 0.37 -4.22]
Successfully loaded point cloud from pointclouds/exemplary.ply!
=================================================================
There is currently no active bounding box to manipulate.
There is currently no active bounding box to manipulate.
Alignmode was changed to False!
Imported 1 labels from labels/exemplary.json.
Loaded 1 bboxes!
There is currently no active bounding box to manipulate.
COMPLETER CLASSNAMES: {'cart', 'box'}
please advise.
Omer
Hi @omerbrandis,
this is indeed very odd behavior. It seems like the software loaded correctly but there is something wrong with OpenGL
or the QOpenGLWidget
in particular. Could you please make sure OpenGL is working correctly in your Docker container (there seem to exist some issues with that in general) and tell me the output of the following commands:
glxinfo | grep "OpenGL version"
python3 -c "import OpenGL; print(OpenGL.__version__)"
hello,
python3 -c "import OpenGL; print(OpenGL.version)" returns 3.1.5
but glxinfo | grep "OpenGL version"
returns:
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 24 (X_GLXCreateNewContext)
Value in failed request: 0x0
Serial number of failed request: 41
Current serial number in output stream: 42
noticed several pages about this, but I allread use all the nvidia-docker switches mentioned in them,
guess my next step is to try a prebuilt nvidia-ubuntu container ... I'll update after i try that.
thanks,
Omer.
got it working with nvidia/opengl:1.2-glvnd-devel-ubuntu18.04
(nvidia-docker run ... -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY --privileged... )
:-)
Omer.