2

我正在尝试从基于 ros:noetic 容器构建的 Docker 容器中运行turtlebot 3。

在尝试安装turtlebot3 for noetic时克服了几个问题后,我终于可以安装它了。但是,当我运行它时:

#roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch

我收到以下错误:

[gazebo-2] process has died [pid 14517, exit code 255, cmd /opt/ros/noetic/lib/gazebo_ros/gzserver -e ode /root/second_ws/src/turtlebot3_simulations/turtlebot3_gazebo/worlds/empty.world __name:=gazebo __log:=/root/.ros/log/b86e9bd6-26ee-11eb-884e-0242ac110002/gazebo-2.log].
log file: /root/.ros/log/b86e9bd6-26ee-11eb-884e-0242ac110002/gazebo-2*.log

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  44
  Current serial number in output stream:  43

我想寻求一些帮助以了解这里失败的原因。我发现 libGL 有问题。我在某处读到这以某种方式与Nvidia GPU有关?我对从这里做什么感到困惑。

4

1 回答 1

1

当您运行启动文件时,它会告诉 Gazebo 同时运行 gzserver(pyhsics 引擎)和 gzclient(GUI)。

要使用 docker 容器中的 GUI,您需要明确连接到主机 X11 套接字 - 如此处所述https://wiki.ros.org/docker/Tutorials/GUI

Alternativley,如果您不想这样做,您可以修改您的启动文件以使用 gzserver 命令运行,这将在没有 GUI 的情况下运行模拟。

于 2020-11-25T19:55:34.070 回答