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

docker-compose upで立ち上がるROSのシミュレータと開発環境

はじめに

ROSには良くできたシミュレータが多数あるものの、公式パッケージになっておらず自分でコンパイルする必要があったり、apt-get installするだけではすんなりと動かなかったり、、、と、自宅学習や授業・セミナーなどで利用する際に、インストールとセットアップで時間を取られてしまうことが多かったと思います。

そこでdockerさえインストールしてあれば、docker-compose upコマンド一発でシミュレータと開発環境が立ち上がるようにしたのが本プロジェクトです。

以前からVSCodeのdevcontainerの仕組みを使って立ち上がる各種設定済みのROS開発環境を公開していたのですが、各種シミュレータも立ち上げられるようにしました。

レポジトリはこちら:
https://github.com/devrt/ros-devcontainer-vscode

使いかた

dockerのインストール

以下の各方法でdockerをインストールしてください。

Windowsの場合

正式リリースはまだ(もう間もなく)なのですが、WSL2版のDocker for Windowsをインストールするのがおすすめです。
WSL2はCPUやメモリリソースをWindowsとdockerで共有できるので、開発環境が非常に快適に動きます。
https://docs.docker.com/docker-for-windows/wsl-tech-preview/

開発環境はリモートサーバ上で立ち上げてWindowsからアクセスすることもできます(快適に動くのでおすすめです)。
その場合は「Linuxの場合」を参照してください。

Macの場合

以下のURLからDocker DesktopのMac版をダウンロードしてインストールしましょう。
https://hub.docker.com/editions/community/docker-ce-desktop-mac/

Linuxの場合

以下のコマンドでdockerとdocker-composeをインストールしてください。
apt-getでインストールできるdockerとdocker-composeは古いので、必ず以下のコマンドでインストールされる最新版を利用してください(Ubuntu 20.04であればapt-getでインストールされるdockerとdocker-composeでも動くそうです thanks to @uytrewq12345さん)。

$ curl -fsSL https://get.docker.com/ | sh
$ compose_version=$(curl https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
$ sudo curl -L https://github.com/docker/compose/releases/download/$compose_version/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

シミュレータの選択と立ち上げ

まずは、レポジトリをチェックアウトしてください:

$ git clone https://github.com/devrt/ros-devcontainer-vscode.git
$ cd ros-devcontainer-vscode

select-simulator.shスクリプトを起動するとシミュレータの選択画面が表示されます:

$ ./select-simulator.sh

選択が完了したらdocker-compose upで開発環境を立ち上げましょう:

$ docker-compose up

初回起動時はシミュレータと開発環境がダウンロードされるので、起動までにしばらく時間がかかります。
しばらく待って環境が立ち上がったら、以下の各URLを開いてみてください。

シミュレータ画面
http://localhost:3000

Web IDE
http://localhost:3001

Juypter notebook
http://localhost:3002

リモートサーバでdocker-compose upしている場合は、localhostの部分をサーバのIPアドレスで置き換えてください。

収録しているシミュレータ一覧

入門者向け

devrt/simulator-turtlesim

ROS入門者がまずは動かしてみるべきシミュレータです。
/cmd_velトピックにメッセージをpublishするとカメが動きます。TFの仕組みについても学習できます。

ライセンス: BSD
一次配布元URL: http://wiki.ros.org/turtlesim

devrt/simulator-rrbot

URDFファイルの作成や、ros_controllerの学習ができます。
はじめはアームがブラブラしていますが、コントローラを有効にすると、しゃっきり制御がかかります。

ライセンス: BSD
一次配布元URL: http://gazebosim.org/tutorials/?tut=ros_control

中級者向け

devrt/simulator-turtlebot-flatland

box2dを使った軽量な2Dシミュレータです。
ROSのナビゲーションスタック(AMCLとmove_base)の学習ができます。

ライセンス: BSD
一次配布元URL: https://github.com/avidbots/turtlebot_flatland
turtlebot-flatland
https://www.youtube.com/watch?v=X7ENwUDyxfY

devrt/simulator-panda-arm

Franka Emika社のPandaアームのシミュレータです。
Pandaアームは素直な自由度配置とトルク制御可能な関節を持っており、MoveIt!のチュートリアルで良く使われています。

ライセンス: BSD + Apache 2.0
一次配布元URL: http://docs.ros.org/melodic/api/moveit_tutorials/html/index.html

上級者向け

devrt/simulator-turtlebot3

TurtleBot3用のレーシングステージです。

ライセンス: Apache 2.0
一次配布元URL: https://github.com/ROBOTIS-GIT/turtlebot3
turtlebot3-autorace
https://www.youtube.com/watch?v=5fZmuPxMZz0

devrt/simulator-ariac

産業用ロボットを使ったシミュレーション競技会(ARIAC)のステージです。

ライセンス: Apache 2.0
一次配布元URL: http://gazebosim.org/ariac
osrf-ariac
https://vimeo.com/224134238

devrt/simulator-vrx

海洋ロボットを使ったシミュレーション競技会(Virtual RobotX)のステージです。

ライセンス: Apache 2.0
一次配布元URL: https://github.com/osrf/vrx
osrf-vrx
https://www.youtube.com/watch?v=0Q2ehhmSz0Q

devrt/simulator-uuv

無人潜水艇のシミュレータです。

ライセンス: Apache 2.0
一次配布元URL: https://uuvsimulator.github.io/
osrf-vrx
https://www.youtube.com/watch?v=6V_TR9i0k1Q

他のシミュレータを使いたい

以下のURLでパッケージ化のリクエストを受け付けています。
https://github.com/devrt/simulator-index/issues

Dockerfileの書き方がわかる人は、自分でパッケージ化にもチャレンジしてみてください。simulator-indexへのpull requestもお待ちしています。
https://github.com/devrt/simulator-template

うまく動かなかったら

こちらにissueを書いてください。開発者は日本人なので、日本語で大丈夫です。
https://github.com/devrt/ros-devcontainer-vscode/issues

yosuke@github
株式会社MIDアカデミックプロモーションズの技術担当役員です。複雑なことを整理して形にする仕事をしています。
https://tech.mid-japan.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
ユーザーは見つかりませんでした