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をインストールするのがおすすめです。
WSLでは、デフォルトでは利用プロセッサ数が少ないので、コマンドプロンプトで以下のコマンドを入力し、
notepad %UserProfile%\.wslconfig
メモ帳が開いたら以下の内容をコピー・アンド・ペーストしてセーブしてください。
[wsl2]
processors=2
swap=0
processorsにはWSLに割り当てたいCPUコア数を指定します。大きめの値を設定するとシミュレーションが早くなります。
開発環境はリモートサーバ上で立ち上げて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
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
https://www.youtube.com/watch?v=5fZmuPxMZz0
devrt/simulator-ariac
産業用ロボットを使ったシミュレーション競技会(ARIAC)のステージです。
ライセンス: Apache 2.0
一次配布元URL: http://gazebosim.org/ariac
https://vimeo.com/224134238
devrt/simulator-vrx
海洋ロボットを使ったシミュレーション競技会(Virtual RobotX)のステージです。
ライセンス: Apache 2.0
一次配布元URL: https://github.com/osrf/vrx
https://www.youtube.com/watch?v=0Q2ehhmSz0Q
devrt/simulator-uuv
無人潜水艇のシミュレータです。
ライセンス: Apache 2.0
一次配布元URL: https://uuvsimulator.github.io/
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
Author And Source
この問題について(docker-compose upで立ち上がるROSのシミュレータと開発環境), 我々は、より多くの情報をここで見つけました https://qiita.com/yosuke@github/items/328dbd778047499828f2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .