hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

Repository Summary

Checkout URI https://github.com/toppers/hakoniwa-ros2sim.git
VCS Type git
VCS Version main
Last Updated 2022-12-10
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

README

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をご参照ください.

CONTRIBUTING

No CONTRIBUTING.md found.

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository

hakoniwa-ros2sim repository