在Google合作实验室上运行Gym-凉亭

时间:2019-02-20 23:05:23

标签: robolectric ros google-colaboratory reinforcement-learning openai-gym

我正在尝试在Google合作实验室上运行Gym-凉亭。
在Colab上运行凉亭服务器(没有gui的凉亭)存在问题。
屏幕上显示警告:Unable to create X window. Rendering will be disabled,但我想我已解决它。
也有关于声卡的警告。不确定是否与Unable to open audio device相关,
还有关于转换Conversion of sensor type[depth] not supported的警告
这是example
你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

为了以无头模式运行凉亭,您需要运行gserver可执行文件,而不是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告诉凉亭使用的X Window客户端使用我们创建的虚拟显示,而不是默认的:0

可以通过以下方式在Galab上完整安装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为头运行​​完整的凉亭,并使用ngrok.io(在此将其作为完全正常工作的笔记本)链接到它。 https://colab.research.google.com/drive/1A-miW8cTRKzs7B0m1m4enfiFySzBhsgN

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

 !./ngrok authtoken <token>