在 Google Colaboratory 上运行gym-gazebo

问题描述 投票:0回答:1

我正在尝试在 Google Colaboratory 上运行gym-gazebo。
在Colab上运行gazebo服务器(没有gui的gazebo)有问题。
显示警告:

Unable to create X window. Rendering will be disabled
但我想我修复了它。
还有关于声卡的警告。不确定是否相关
Unable to open audio device

还有关于转换的警告
Conversion of sensor type[depth] not supported

这是一个示例
你能帮忙吗?

robolectric ros google-colaboratory reinforcement-learning openai-gym
1个回答
0
投票

为了在无头模式下运行 Gazebo,您需要运行

gserver
可执行文件,而不是
gazebo
。不确定gym-gazebo 工具包使用哪一个。

为了仍然在 Gazebo 服务器中进行渲染(例如相机视图),您需要使用 Xvfb(X 虚拟帧缓冲区)。它是一个 X 服务器,可以在没有显示硬件和物理输入设备的机器上运行。它使用虚拟内存模拟哑帧缓冲区。

对于您特定的 Colab 笔记本,我通过添加

更改了最后一个单元格
get_ipython().system_raw('Xvfb :1 -screen 0 1600x1200x16  &')

为了创建虚拟显示,并将 DISPLAY=:1.0 添加到最后一行的开头,所以它看起来如下

DISPLAY=:1.0 python gym-gazebo/examples/turtlebot/circuit2c_turtlebot_camera_dqn.py

DISPLAY=:1.0
告诉 Gazebo 使用的 X Window 客户端使用我们创建的虚拟显示器,而不是默认的
:0

在colab上完整安装Gazebo并以具有渲染功能的无头服务器模式运行它可以通过以下方式实现:

!curl -sSL http://get.gazebosim.org | sh # Install gazebo

!apt-get install -y xvfb # Install X Virtual Frame Buffer

get_ipython().system_raw('Xvfb :1 -screen 0 1600x1200x16  &') # create virtual display with size 1600x1200 and 16 bit color. Color can be changed to 24 or 8

!source /usr/share/gazebo-9/setup.sh && DISPLAY=:1.0 gzserver --verbose # Run gazebo and tell X client to use our virtual DISPLAY :1.0

还有一种方法可以在模拟器中以 gzweb 作为头运行完整的 Gazebo,并使用此处解释的 ngrok.io 作为完全工作的笔记本链接到它。 https://colab.research.google.com/drive/1A-miW8cTRKzs7B0m1m4enfiFySzBhsgN

您需要使用可以在 ngrok.com 创建的身份验证令牌对 ngrok 进行身份验证才能进行连接,因为它是午餐作为背景并且不会打印到单元格

 !./ngrok authtoken <token> 
© www.soinside.com 2019 - 2024. All rights reserved.