12
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

Organization

GCP+Docker+GPUでrosを動かす (2) ~ VNCで動くDocker+ros環境の作成 ~

以前、GPUを持っていない人が、GPUを用いた強化学習をrosのgazeboでするためにGCPで仮想的にGPU環境を作るという記事を書きました。ここでは試験的にこのサイトを参考にroboschoolを動かすところまでやりました。
本記事ではこの記事で作成した環境があることを前提に話をします。
以下の記事を参照してください。
GCP+Docker+GPUでrosを動かす (1) ~ GCPでGPUとVNCを用いた環境の構築 ~

本記事では以下2つのDocker imageを参考にDocker + ros + gazebo + VNCを実現できるDocker imageを作成しましたので紹介いたします。
dorowu/ubuntu-desktop-lxde-vnc
ct2034/docker-ubuntu-vnc-desktop

作成した環境

  • ubuntu18.04
  • ros melodic
  • gazebo 9.0
  • VNCで動作可能

上記の環境を作成した理由としては、ubuntu16.04、ros kineticの環境はあったがすでにkineticからmelodicに移行している人が大半で、melodicでの環境を構築することに需要を感じたからです。

Docker imageの使い方

以前の記事で作成した環境があれば、VNC Viewer for Google Chromeを用いて、GCPのVMのデスクトップに入ることができると思います。

ここまでできていれば今回のはかなり簡単です!

まずはDocker HubからDocker imageをpullする。

$ sudo docker run -it --rm -p 6080:80 mtakeshi1222/ros_gui

これでコンテナが立ち上がります。

次に、VNC Viewer for Google Chrome上のデスクトップからFirefoxを起動します。
起動したFirefoxでhttp://localhost:6080 に接続します。(前回のroboschoolと同様です)

これでubuntuのデスクトップが表示されます。
あとはデスクトップ上にあるTerminatorを用いてroscoreなりrvizなりgazeboなりで試していただければいいと思います。
参考までにTerminatorはCtrl + Shift + Eでターミナルを縦に二分します。同様にCtrl + Shift + Eで横に二分します。

以下実装例です。
デスクトップが以下のようになっています。
Imgur

Terminatorで以下のコマンドを入力する。このとき別々の端末を使用

$ roscore

別の端末を用意(Terminator上でCtrl + Shift + Eなどする)

$ rviz

Imgur

同様のことをgazeboでもできる。
一度Terminatorを閉じて、再度開く。
Terminatorで以下のコマンドを入力する。このとき別々の端末を使用

$ roscore

別の端末を用意(Terminator上でCtrl + Shift + Eなどする)

$ gazebo

Imgur

端末画面を3つ用意すれば以下のように3つ同時に動かすことも可能

$ roscore

別の端末を用意(Terminator上でCtrl + Shift + Eなどする)

$ rviz

別の端末を用意(Terminator上でCtrl + Shift + Oなどする)

$ gazebo

Imgur

以上でGCPを用いてgazeboを動かすことができた。

まとめ

GCPを用いることで固定資産に限らず様々な環境での実験をすることができることが分かった。次回はこの環境で強化学習を回すことを目指す。
githubやDocker Hubも共有するのでぜひスターお願いします。
また、コメントやプルリクもしていただけるととてもうれしいです。
github : 1222-takeshi/docker-ros-gazebo-vnc
Docker Hub : mtakeshi1222/ros_gui

ひとこと

私の調べではubuntu18.04 + ros melodic + VNCの環境は世界でも初めてだと思う。なので、これを機にWindowsやMacのユーザも気軽にgazeboやrvizに触れられることを願っています。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
12
Help us understand the problem. What are the problem?