Skip to content

Latest commit

 

History

History
executable file
·
230 lines (137 loc) · 10.1 KB

README_jp.md

File metadata and controls

executable file
·
230 lines (137 loc) · 10.1 KB

English | 日本語

箱庭 ROS シミュレータ

TOPPERSプロジェクト箱庭WGでは,IoT/クラウドロボティクス時代の仮想シミュレーション環境である『箱庭』の研究開発を進めています.

本リポジトリでは,箱庭上で ROS 2 プログラムのシミュレーションを簡単にお試しできる環境を公開しています.

想定する PC 環境

  • Windows 環境: Windows 10/11
    • Ubuntu 20.04 LTS on WSL2/WSLg
  • Linux 環境: Ubuntu 20.04 LTS
  • Mac 環境: macOS Catalina ver.10.15.7

Windows 環境では,操作は全てWSL2/Linuxのシェル上で行います.WSL2のファイルシステム配下(/home/${USER}/以下)ではなくWindowsファイルシステム配下(/mnt/c/以下)で実行してください.

PC環境の準備

本リポジトリのclone

現在の最新版は v1.1.4 です. 「バージョン情報・更新履歴」も参照してください(バージョン番号はGit/GitHubのtag/releaseおよびDocker Hubのtag番号に対応しています)

ターミナルで下記を実行して本リポジトリをcloneしてください.

git clone --recursive -b v1.1.4 https://github.com/toppers/hakoniwa-ros2sim.git

Docker 環境

本シミュレータでは Docker を利用します.

実験的にネイティブのLinux環境(WSL2含む)での動作を試行しています.ネイティブ環境での動作手順は appendix/native.md をご参照ください.

Mac 環境の場合

Docker Desktop for Mac の利用を推奨します.

Windows/WSL2 または Linux 環境の場合

Docker Engineがインストールされている必要があります.WSL2またはLinuxのターミナルで下記のコマンドの結果が同じように出力されていれば,すでにインストール済みです($から始まる行は実行するコマンドを示しています).

$ which docker
/usr/bin/docker
$ service --status-all |& grep docker
 [ + ]  docker   # または " [ - ]  docker "
$ service docker status
 * Docker is running   # または " * Docker is not running "

Docker Engineのインストールはやや手数が多いため,下記の公式マニュアルにある実行コマンドを"toppersjp/hakoniwa-single_robot リポジトリの docker/install-docker.bash にまとめています.本スクリプトの実行時に問題がありましたら,公式マニュアルの手順に従ってインストールを進めてください.
Install Docker Engine on Ubuntu | Docker Documentation

スクリプトを用いたDockerのインストールには,下記のように実行してください.

wget https://raw.githubusercontent.com/toppers/hakoniwa-single_robot/main/docker/install-docker.bash
bash install-docker.bash

service docker status の結果が " * Docker is not running " の場合は,Dockerを起動してください.

sudo service docker start

次のように出力されていれば,Dockerが起動しています.

 * Starting Docker: docker                           [ OK ] 

また,ユーザが docker のグループに所属していることを想定しています.そうでない場合は,次のコマンドを実行してください.

sudo gpasswd -a $USER docker
sudo chgrp docker /var/run/docker.sock
sudo service docker restart

上記のコマンド実行結果は,ターミナルに再ログインしてから有効となります.

Unity 環境のインストール

  • Unity Hub 3.1.1 以降
  • Unity Editor 2021.3.0f1
    • Unity Hub の「Installs > Install Editor」画面に本バージョンが表示されない場合は,Unity Dowonload Archive の本バージョンの "Unity Hub" をクリックしてインストールできます.

シミュレータの導入手順

Dockerイメージの展開

シミュレータの実行環境は,ビルド済みのDocker imageをDocker Hubにて公開しています.

https://hub.docker.com/r/toppersjp/hakoniwa-ros2sim

次のコマンドを実行してください.Dockerイメージののpullと展開を行います.

bash docker/pull-image.bash

[補足:開発者向け情報] Dockerイメージの作成用に docker/create-image.bash があります.

dockerを起動する

ターミナルを2個起動します(以降の説明では,ターミナルAおよびターミナルBと呼びます).

ターミナルAでdockerコンテナを起動します.

bash docker/run.bash

Mac環境の場合は,ネットワークポート名(例:"en0")を引数に指定する必要があります. ポート名は ifconfig コマンド等で確認できます.

bash docker/run.bash <port>

起動した dockerコンテナ上で箱庭のROS環境をインストール

bash hako-install.bash opt all

Unity プロジェクトを開く

Unity Hubを起動し,右上の「開く」をクリックして、先ほどクローンしたROS対応版箱庭ソース上の以下のディレクトリを指定します.

場所:ros2/unity/tb3

起動すると,以下の画面が表示されます.

この状態で、画面左下にある「プロジェクトビュー」の「Assets/Scenes」を選択すると、画面下に「Toppers_Course」というシーンがありますので,これをダブルクリックしましょう.

以下のようにコースが表示されます.

シミュレータの実行手順

次の対象を例題として実行手順を説明します.

  • ROS 側の制御プログラム:src/tb3/src/tb3ctrl.cpp
  • Unity側のロボット:TB3RoboModel

準備

ターミナルAとBの両方ででdockerコンテナに入ります.

ターミナルAで Dockerコンテナを終了させていた場合は,改めて起動してください,

bash docker/run.bash

ターミナルB側は,以下のコマンドで入ります.

bash docker/attach.bash

ターミナルAでの操作

ターミナルAでROS-TCP-ENDPOINTを起動しましょう.

# bash launch.bash

ターミナルBでの操作

ターミナルBでROS2プログラムを起動しましょう.

# bash run.bash tb3 TB3RoboModel

Unityのシミュレーション開始する

Unityのシミュレーション開始ボタンをクリックすると,以下の起動画面が出てきます.

この状態で,Unity側の「開始」ボタンをクリックすると箱庭のシミュレーション開始し,TurtleBot3が動き出します.

動作例

動作例

この動画の各ウィンドウは,それぞれ次の通り対応しています.

  • 右上:ターミナルA
  • 右下:ターミナルB
  • 左:Unity

Contributing

本リポジトリで公開している「箱庭 ROS シミュレータ」について,ご意見や改善の提案などをぜひ こちらのGitHub Discussions でお知らせください.改修提案の Pull Requests も歓迎いたします.

TODO

  • SLAMやNav2の動作例を示す (#19)

謝辞

  • TurtleBot3 の Unity パッケージの設計と作成にあたっては,宝塚大学 東京メディア芸術学部 吉岡章夫准教授および学部生の杉崎涼志さん,木村明美さんにご協力いただきました.
  • TurtleBot3 のUnity アセットは,株式会社ロボティズ様より提供いただいたデータを基に作成しています.ご協力いただき深く感謝いたします.

ライセンス

TOPPERSライセンスで公開しています.
著作権者はTOPPERSプロジェクト箱庭ワーキンググループです.詳細はLICENSE.mdをご参照ください.