我已经设置了一组ros节点,每个节点运行在一个码头容器中,并通过docker -组合启动。在我的笔记本电脑上运行它是没有问题的,除了rviz速度慢,因为它只在cpu上运行。现在,我将项目移动到一台在ubuntu18.04LTS上具有nVidia RTX2080的机器上,相同的设置会产生这些错误。我已经安装了nvidia-docker2 2,daemon.json
正在将默认运行时设置为nvidia。我真不知道从哪里开始看错误。我发现的帖子被关闭了,没有解决我的问题。
如何使rViz在2中运行?
rviz_1 | libGL error: No matching fbConfigs or visuals found
rviz_1 | libGL error: failed to load driver: swrast
rviz_1 | libGL error: No matching fbConfigs or visuals found
rviz_1 | libGL error: failed to load driver: swrast
rviz_1 | libGL error: No matching fbConfigs or visuals found
rviz_1 | libGL error: failed to load driver: swrast
rviz_1 | [ INFO] [1576658065.533954900]: rviz version 1.13.6
rviz_1 | [ INFO] [1576658065.534009692]: compiled against Qt version 5.9.5
rviz_1 | [ INFO] [1576658065.534021481]: compiled against OGRE version 1.9.0 (Ghadamon)
rviz_1 | [ INFO] [1576658065.548489531]: Forcing OpenGl version 0.
rviz_1 | [ WARN] [1576658065.859692866]: OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext in GLXContext::GLXContext at /build/ogre-1.9-B6QkmW/ogre-1.9-1.9.0+dfsg1/RenderSystems/GL/src/GLX/OgreGLXContext.cpp (line 61)
rviz_1 | rviz::RenderSystem: error creating render window: OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext in GLXContext::GLXContext at /build/ogre-1.9-B6QkmW/ogre-1.9-1.9.0+dfsg1/RenderSystems/GL/src/GLX/OgreGLXContext.cpp (line 61)
rviz_1 | rviz::RenderSystem: error creating render window: OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext in GLXContext::GLXContext at /build/ogre-1.9-B6QkmW/ogre-1.9-1.9.0+dfsg1/RenderSystems/GL/src/GLX/OgreGLXContext.cpp (line 61)
发布于 2020-06-12 17:28:26
见http://wiki.ros.org/docker/Tutorials/Hardware%20Acceleration。
Nvidia码头图像需要建立自己的。
$ cd path/to/dir
$ cat Dockerfile
FROM your-repo/your-image:your-tag
# nvidia-container-runtime
ENV NVIDIA_VISIBLE_DEVICES \
${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES \
${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics
$ docker build -t your-nvidia-image .
$ xhost +local:
$ docker run --gpus all -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY your-nvidia-image /bin/bash
发布于 2022-02-21 04:40:20
和我最近解决的“码头工”中同样的问题。将以下内容添加到我的dockerfile中并重新构建:
ENV NVIDIA_VISIBLE_DEVICES \
${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES \
${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics
还请确保在compose.yaml中设置了以下内容:
卷:
-"/tmp/.X11-unix:/tmp/.X11-unix:rw"
-"/var/run/dbus:/var/run/dbus"
环境:
-"/usr/local/nvidia/bin:${PATH}"
-"NVIDIA_VISIBLE_DEVICES: all"
-"NVIDIA_DRIVER_CAPABILITIES:compute,compat32,utility,graphics,video,display"
- "DISPLAY=unix$DISPLAY"
- "QT_X11_NO_MITSHM=1"
- "XDG_RUNTIME_DIR= /run/user/1000"
发布于 2019-12-19 04:41:37
我今天真的遇到了同样的问题。我在我的CPU笔记本电脑上对rviz进行了测试,在GPU加速硬件上测试设置之前,一切都很好。我已经能够通过使用http://wiki.ros.org/docker/Tutorials/Hardware%20Acceleration中在“nvidia-docker2 2”下提出的解决方案来解决这个问题。
显然,您需要使用环境变量"NVIDIA_VISIBLE_DEVICES“和"NVIDIA_DRIVER_CAPABILITIES”构建映像,并使用runtime=nvidia运行容器。希望这能有所帮助。
https://stackoverflow.com/questions/59388345
复制