Skip to content

Commit 824e9d9

Browse files
authored
Merge pull request #17 from toppers/adjust_scripts
Adjust scripts for the operation of Docker and refine README
2 parents 0040ef6 + 5e609b7 commit 824e9d9

23 files changed

+186
-184
lines changed

README.md

+71-73
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,27 @@
22

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

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

77

88
## 想定する PC 環境
99

10-
* Windows 環境
11-
* Windows 10/11
12-
* WSL2/WSLg/Ubuntu 20.04 LTS
13-
* Docker Engine
14-
* Linux 環境
15-
* Ubuntu 20.04 LTS
16-
* Docker Engine
17-
* Mac 環境
18-
* MacBook Air
19-
* macOS Catalina ver.10.15.7
20-
* Docker for Mac
10+
* Windows 環境: Windows 10/11
11+
* Ubuntu 20.04 LTS on WSL2/WSLg
12+
* Linux 環境: Ubuntu 20.04 LTS
13+
* Mac 環境: macOS Catalina ver.10.15.7
2114

15+
### Docker 環境
2216

23-
## Unity 環境
17+
本シミュレータは Docker を利用します.
2418

25-
* Unity Hub 3.1.1 以降
26-
* Unity Editor 2021.3.0f1
27-
* Unity Hub の「Installs > Install Editor」画面に本バージョンが表示されない場合は,[Unity Dowonload Archive](https://unity3d.com/get-unity/download/archive) の本バージョンの "Unity Hub" をクリックしてインストールできます.
19+
#### Mac 環境の場合
2820

29-
## PC環境の準備
21+
[Docker Desktop for Mac](https://docs.docker.com/desktop/mac/install/) の利用を推奨します.
3022

31-
### 本リポジトリのclone
23+
#### Windows/WSL2 または Linux 環境の場合
3224

33-
ターミナルで下記を実行して本リポジトリをcloneしてください.
34-
Windows 環境の場合は,WSL 2のファイルシステム配下(`/home/${USER}/` または `\\wsl$`)ではなくWindowsファイルシステム配下(`/mnt/c/` または `C:\`)で実行してください.
35-
36-
```
37-
$ git clone --recursive https://github.com/toppers/hakoniwa-ros2sim.git
38-
```
39-
40-
41-
### Windows 向け Docker Engineのインストール
42-
43-
本シミュレータは,WSL2にDocker Engineがインストールされている必要があります.WSL2のターミナルで下記のコマンドの結果が同じように出力されていれば,すでにインストール済みです.
25+
Docker Engineがインストールされている必要があります.WSL2またはLinuxのターミナルで下記のコマンドの結果が同じように出力されていれば,すでにインストール済みです.
4426

4527
```
4628
$ which docker
@@ -58,70 +40,78 @@ Docker Engineのインストールはやや手数が多いため,本リポジ
5840
$ bash utils/install-docker.bash
5941
```
6042

61-
## シミュレータの導入手順
43+
`$ service docker status` の結果が " * Docker is not running " の場合は,Dockerを起動してください.
6244

63-
### Dockerイメージの展開
45+
```
46+
$ sudo service docker start
47+
* Starting Docker: docker [ OK ]
48+
```
6449

65-
シミュレータの実行環境は,ビルド済みのDocker imageをDocker Hubにて公開しています
50+
また,ユーザが `docker` のグループに所属していることを想定しています.そうでない場合は,次のコマンドを実行してください
6651

67-
https://hub.docker.com/r/toppersjp/hakoniwa-ros2sim
52+
```
53+
$ sudo gpasswd -a $USER docker
54+
$ sudo service docker restart
55+
```
6856

69-
現在の最新版は **v1.0.0** です.
70-
[バージョン情報・更新履歴](/appendix/version.md)」も参照してください(バージョン番号は[Git/GitHubのtag/release](https://github.com/toppers/hakoniwa-ros2sim/releases)および[Docker Hubのtag番号](https://hub.docker.com/r/toppersjp/hakoniwa-ros2sim/tags)に対応しています)
57+
上記のコマンド実行結果は,ターミナルに再ログインしてから有効となります.
7158

72-
次のコマンドを実行してください.Dockerを立ち上げて,imageのpullと展開を行います.
59+
## Unity 環境
7360

74-
```
75-
$ sudo service docker start
76-
$ cd ros2/docker
77-
$ bash pull-image.bash
78-
```
61+
* Unity Hub 3.1.1 以降
62+
* Unity Editor 2021.3.0f1
63+
* Unity Hub の「Installs > Install Editor」画面に本バージョンが表示されない場合は,[Unity Dowonload Archive](https://unity3d.com/get-unity/download/archive) の本バージョンの "Unity Hub" をクリックしてインストールできます.
7964

80-
\[開発者向け情報\] Dockerイメージの作成
65+
## PC環境の準備
8166

82-
#### Windows環境
67+
Windows 環境では,操作は全てWSL2/Linuxのシェル上で行います.WSL2のファイルシステム配下(`/home/${USER}/`以下)ではなくWindowsファイルシステム配下(`/mnt/c/`以下)で実行してください.
68+
69+
### 本リポジトリのclone
70+
71+
ターミナルで下記を実行して本リポジトリをcloneしてください.
8372

8473
```
85-
$ sudo service docker start
86-
$ cd ros2/docker
87-
$ bash create-image.bash
74+
$ git clone --recursive https://github.com/toppers/hakoniwa-ros2sim.git
8875
```
8976

90-
#### Linux環境
77+
## シミュレータの導入手順
78+
79+
### Dockerイメージの展開
80+
81+
シミュレータの実行環境は,ビルド済みのDocker imageをDocker Hubにて公開しています.
82+
83+
https://hub.docker.com/r/toppersjp/hakoniwa-ros2sim
84+
85+
現在の最新版は **v1.0.0** です.
86+
[バージョン情報・更新履歴](/appendix/version.md)」も参照してください(バージョン番号は[Git/GitHubのtag/release](https://github.com/toppers/hakoniwa-ros2sim/releases)および[Docker Hubのtag番号](https://hub.docker.com/r/toppersjp/hakoniwa-ros2sim/tags)に対応しています)
87+
88+
次のコマンドを実行してください.Dockerイメージののpullと展開を行います.
9189

9290
```
93-
$ cd ros2/docker
94-
$ bash create-image-linux.bash
91+
$ bash docker/pull-image.bash
9592
```
9693

97-
#### Mac環境
94+
\[補足:開発者向け情報\] Dockerイメージの作成
9895

9996
```
100-
$ cd ros2/docker
101-
$ bash create-image.bash
97+
$ bash docker/create-image.bash
10298
```
10399

104100
### dockerを起動する
105-
端末を2個(端末A,端末B)起動して,端末Aでdockerコンテナを起動します.
106-
107-
#### Windows環境
108101

109-
```
110-
$ bash run.bash
111-
```
102+
ターミナルを2個起動します(以降の説明では,ターミナルAおよびターミナルBと呼びます).
112103

113-
#### Linux環境
104+
ターミナルAでdockerコンテナを起動します.
114105

115106
```
116-
$ bash run-linux.bash
107+
$ bash docker/run.bash
117108
```
118109

119-
#### Mac環境
120-
Mac環境の場合は,イーサーネット名を引数に指定してください.
121-
イーサーネット名は,ifconfigコマンドで確認できます.
110+
Mac環境の場合は,ネットワークポート名(例:"en0")を引数に指定する必要があります.
111+
ポート名は `ifconfig` コマンド等で確認できます.
122112

123113
```
124-
$ bash run-mac.bash <ether>
114+
$ bash docker/run.bash <port>
125115
```
126116

127117
### 起動した dockerコンテナ上で箱庭のROS環境をインストール
@@ -162,24 +152,32 @@ Unity Hubを起動し,右上の「開く」をクリックして、先ほど
162152

163153

164154
### 準備
165-
端末Aと端末Bでdockerコンテナに入ります.
166-
端末B側は,以下のコマンドで入ります.
155+
156+
ターミナルAとBの両方ででdockerコンテナに入ります.
157+
158+
ターミナルAで Dockerコンテナを終了させていた場合は,改めて起動してください,
159+
160+
```
161+
$ bash docker/run.bash
162+
```
163+
164+
ターミナルB側は,以下のコマンドで入ります.
167165

168166
```
169-
$ bash attach.bash
167+
$ bash docker/attach.bash
170168
```
171169

172-
### 端末A
170+
### ターミナルAでの操作
173171

174-
端末AでROS-TCP-ENDPOINTを起動しましょう.
172+
ターミナルAでROS-TCP-ENDPOINTを起動しましょう.
175173

176174
```
177175
# bash launch.bash
178176
```
179177

180-
### 端末B
178+
### ターミナルBでの操作
181179

182-
端末BでROSプログラムを起動しましょう
180+
ターミナルBでROS2プログラムを起動しましょう
183181

184182
```
185183
# bash run.bash tb3 TB3RoboModel
@@ -199,8 +197,8 @@ Unityのシミュレーション開始ボタンをクリックすると,以下
199197

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

202-
- 右上:端末A
203-
- 右下:端末B
200+
- 右上:ターミナルA
201+
- 右下:ターミナルB
204202
- 左:Unity
205203

206204

appendix/latest_version.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v1.0.0

appendix/version.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## バージョン番号の付与規則
44

5-
`vX.Y.Z` のようにバージョン番号を付与します.この番号は `docker/image_name.txt` でも管理されています.また,[Git/GitHubのtag/release](https://github.com/toppers/hakoniwa-ros2sim/releases)および[Docker Hubのtag番号](https://hub.docker.com/r/toppersjp/hakoniwa-ros2sim/tags)に対応しています.
5+
`vX.Y.Z` のようにバージョン番号を付与します.この番号は `appendix/latest_version.txt` で管理されています.また,[Git/GitHubのtag/release](https://github.com/toppers/hakoniwa-ros2sim/releases)および[Docker Hubのtag番号](https://hub.docker.com/r/toppersjp/hakoniwa-ros2sim/tags)に対応しています.
66

77
各バージョン番号の更新は,次の規則で行います.
88

File renamed without changes.

docker/attach.bash

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
3+
IMAGE_NAME=`cat docker/image_name.txt`
4+
IMAGE_TAG=`cat appendix/latest_version.txt`
5+
DOCKER_IMAGE=${IMAGE_NAME}:${IMAGE_TAG}
6+
7+
DOCKER_ID=`docker ps | grep "${DOCKER_IMAGE}" | awk '{print $1}'`
8+
9+
docker exec -it ${DOCKER_ID} /bin/bash

docker/create-image.bash

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
3+
IMAGE_NAME=`cat docker/image_name.txt`
4+
IMAGE_TAG=`cat appendix/latest_version.txt`
5+
DOCKER_IMAGE=${IMAGE_NAME}:${IMAGE_TAG}
6+
DOCKER_FILE=docker/Dockerfile
7+
docker build -t ${DOCKER_IMAGE} -f ${DOCKER_FILE} .
8+

docker/image_name.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
toppersjp/hakoniwa-ros2sim

docker/pull-image.bash

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
3+
IMAGE_NAME=`cat docker/image_name.txt`
4+
IMAGE_TAG=`cat appendix/latest_version.txt`
5+
DOCKER_IMAGE=${IMAGE_NAME}:${IMAGE_TAG}
6+
7+
docker pull ${DOCKER_IMAGE}

docker/run.bash

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/bin/bash
2+
3+
HAKONIWA_TOP_DIR=`pwd`
4+
IMAGE_NAME=`cat docker/image_name.txt`
5+
IMAGE_TAG=`cat appendix/latest_version.txt`
6+
DOCKER_IMAGE=${IMAGE_NAME}:${IMAGE_TAG}
7+
8+
9+
OS_TYPE=`bash utils/detect_os_type.bash`
10+
11+
if [ ${OS_TYPE} != "Mac" ]
12+
then
13+
docker ps > /dev/null
14+
if [ $? -ne 0 ]
15+
then
16+
sudo service docker start
17+
echo "waiting for docker service activation.. "
18+
sleep 3
19+
fi
20+
fi
21+
22+
if [ ${OS_TYPE} = "wsl2" ]
23+
then
24+
IPADDR=`cat /etc/resolv.conf | grep nameserver | awk '{print $NF}'`
25+
elif [ ${OS_TYPE} = "Mac" ]
26+
then
27+
if [ $# -ne 1 ]
28+
then
29+
echo "Usage: $0 <port>"
30+
exit 1
31+
fi
32+
ETHER=${1}
33+
IPADDR=`ifconfig | grep -A1 ${ETHER} | grep netmask | awk '{print $2}'`
34+
else
35+
IPADDR="127.0.0.1"
36+
fi
37+
38+
if [ ${OS_TYPE} != "Mac" ]
39+
then
40+
docker run -v ${HAKONIWA_TOP_DIR}:/root/workspace/hakoniwa-ros-samples \
41+
-it --rm \
42+
--net host \
43+
-e CORE_IPADDR=${IPADDR} \
44+
-e OS_TYPE=${OS_TYPE} \
45+
--name hakoniwa-ros2sim ${DOCKER_IMAGE}
46+
else
47+
docker run -v ${HAKONIWA_TOP_DIR}:/root/workspace/hakoniwa-ros-samples \
48+
-it --rm \
49+
--ip ${IPADDR} -p 10000:10000 \
50+
-e CORE_IPADDR=${IPADDR} \
51+
-e ROS_UNITY_IPADDR=${IPADDR} \
52+
-e OS_TYPE=${OS_TYPE} \
53+
--name hakoniwa-ros-sim ${DOCKER_IMAGE}
54+
fi

ros2/docker/attach-linux.bash

-6
This file was deleted.

ros2/docker/attach.bash

-6
This file was deleted.

ros2/docker/create-image-linux.bash

-6
This file was deleted.

ros2/docker/create-image.bash

-6
This file was deleted.

ros2/docker/image_name.txt

-1
This file was deleted.

ros2/docker/pull-image.bash

-6
This file was deleted.

ros2/docker/run-linux.bash

-10
This file was deleted.

ros2/docker/run-mac.bash

-26
This file was deleted.

0 commit comments

Comments
 (0)