Help us understand the problem. What is going on with this article?

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に触れられることを願っています。

iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした