シミュレータ (Win10・Win11) 環境でのベースコード習熟 - wataniguchi/EV3RT GitHub Wiki
はじめに
- 本手順書は、ETロボコン事務局が提供するEV3/シミュレータ開発環境に含まれるシミュレータ上でベースコードと構造を同じくするサンプルコードを実行するための手順である。
- 本手順はWindows PC単体で実行可能である。すなわち、ラズパイや走行体実機を要しない。
- 一方で、シミュレータではカメラが使えない、PID等の各種定数が実機とは異なるという制約がある。
- このためシミュレータによるサンプルコード実行は、Pythonプログラミング言語および走行体制御プログラムの構造に完熟するための学習用途に留まる。
シミュレータ環境をWindows PC上に準備する
-
etroboパッケージインストール前の環境準備手順(Windows 10 / Windows11)に従い、WSL(Windows Subsystem for Linux)とUbuntuをインストールする。WSL2が推奨されているが、WSL1でも差し支えない。
-
同手順に従い、Visual Studio Codeをインストールする。
-
etroboパッケージのインストール手順に従い、etroboシミュレータを含む事務局提供の開発環境一式をインストールする。インストール中にcybozuの
UserName
とPassword
を求められたならば、現時点では空エンターでスキップする。 -
Start ETrobo.cmd
の実行によりVisual Studio Codeが開始されるが、以降の手順には不要なので終了する。 -
当チーム固有の準備を行う。
-
Windowsメニュー等からUbuntuを選択・実行し、シェルによる対話を開始する。
-
aptパッケージ管理システム用のパッケージを最新化する。
sudo apt update sudo apt upgrade
-
この後インストールするPythonライブラリpydotの依存パッケージであるGraphvizをインストールする。
sudo apt install -y graphviz
-
Python仮想環境をサポートするためのパッケージであるpython3-envをインストールする。
sudo apt install -y python3-venv
-
Python仮想環境を作成する。この例では
vpython3
という名前の環境を作成し、activate
コマンドにより仮想環境に入っている。cd ~ python3 -m venv vpython3 source vpython3/bin/activate
-
仮想環境内ではコマンドプロンプトに仮想環境名が付加されることに注意する。
user@ubuntu:~$ source vpython3/bin/activate
(vpython3) user@ubuntu:~$
-
当チーム固有のPythonライブラリをインストールする。
pip install simple_pid pip install pydot pip install py-trees pip install etrobo-python
-
仮想環境から出る。
deactivate
-
ホームディレクトリにチームリポジトリを複写する。
cd ~ git clone https://github.com/wataniguchi/EV3RT.git
-
以降の手順にUbuntuの対話シェルは不要なので、終了する。
exit
-
シミュレータ用のサンプルコードを実行する。
-
デスクトップ上のショートカットをダブルクリックする等により、Visual Source Codeを開始する。
-
VSCが
WSL: Ubuntu
へリモート接続していることを確認する。 -
VSCのメニューから
File
、Open Folder
を選択して、ホームディレクトリを開く。 -
VSCのメニューから
Terminal
、New Terminal
を選択して、リモートターミナルを開始する。 -
リモートターミナルでPython仮想環境に入る。
source vpython3/bin/activate
-
仮想環境内ではコマンドプロンプトに仮想環境名が付加されることに注意する。
user@ubuntu:~$ source vpython3/bin/activate
(vpython3) user@ubuntu:~$
-
シミュレータを開始する。
sim
-
サンプルプログラムを実行する。
python3 EV3RT/test-sim/behaviorTreeSensorPID_sim.py right
-
シミュレータ上でEV3のボタン押下をシミュレートするために、シミュレータ画面右側に拡大表示されているEV3正面ディスプレイ下の右向きのボタン部分をクリックする。
-
ロボットがラインをトレースし、以下のようなメッセージが表示されれば完了。ctrl+Cで実行を終了する。参考動画
(vpython3) user@ubuntu:~$ python3 EV3RT/test-sim/behaviorTreeSensorPID_sim.py right
Writing /home/wataru/loop_by_color_sensor.dot
Writing /home/wataru/loop_by_color_sensor.png
Writing /home/wataru/loop_by_color_sensor.svg
Connecting to the Unity Simulator ('127.0.0.1', 54001).
Connected to the Unity Simulator.
-- TraverseBehaviorTree initialization complete
[ INFO] device reset : +00000 ResetDevice.resetting...
[ INFO] device reset : +00001 ResetDevice.complete
[ INFO] soner start : +00001 IsSonarOn.detection started for dist=90
[ INFO] touch start : +00001 IsTouchOn.pressed
[ INFO] sensor trace normal edge : +00001 TraceLine.trace started with TS=NORMAL
[ INFO] check distance : +00001 IsDistanceEarned.accumulation started for delta=4000
[ INFO] check distance : +04012 IsDistanceEarned.delta distance earned
[ INFO] stop : +04012 StopNow.motors stopped
[ INFO] end : +04012 TheEnd.behavior tree exhausted. ctrl+C shall terminate the program
-
VSCのエクスプローラ上で
EV3RT
ディレクトリ内test-sim
サブディレクトリのbehaviorTreeSensorPID_sim.py
を編集・再実行して、ロボットの振る舞いの変化を観察する。