シミュレータ (Win10・Win11) 環境でのベースコード習熟 - wataniguchi/EV3RT GitHub Wiki

はじめに

シミュレータ画像

  1. 本手順書は、ETロボコン事務局が提供するEV3/シミュレータ開発環境に含まれるシミュレータ上でベースコードと構造を同じくするサンプルコードを実行するための手順である。
  2. 本手順はWindows PC単体で実行可能である。すなわち、ラズパイや走行体実機を要しない。
  3. 一方で、シミュレータではカメラが使えない、PID等の各種定数が実機とは異なるという制約がある。
  4. このためシミュレータによるサンプルコード実行は、Pythonプログラミング言語および走行体制御プログラムの構造に完熟するための学習用途に留まる。

シミュレータ環境をWindows PC上に準備する

  1. etroboパッケージインストール前の環境準備手順(Windows 10 / Windows11)に従い、WSL(Windows Subsystem for Linux)とUbuntuをインストールする。WSL2が推奨されているが、WSL1でも差し支えない。

  2. 同手順に従い、Visual Studio Codeをインストールする。

  3. etroboパッケージのインストール手順に従い、etroboシミュレータを含む事務局提供の開発環境一式をインストールする。インストール中にcybozuのUserNamePasswordを求められたならば、現時点では空エンターでスキップする。

  4. Start ETrobo.cmdの実行によりVisual Studio Codeが開始されるが、以降の手順には不要なので終了する。

  5. 当チーム固有の準備を行う。

    1. Windowsメニュー等からUbuntuを選択・実行し、シェルによる対話を開始する。

    2. aptパッケージ管理システム用のパッケージを最新化する。

      sudo apt update
      sudo apt upgrade
      
    3. この後インストールするPythonライブラリpydotの依存パッケージであるGraphvizをインストールする。

      sudo apt install -y graphviz
      
    4. Python仮想環境をサポートするためのパッケージであるpython3-envをインストールする。

      sudo apt install -y python3-venv
      
    5. Python仮想環境を作成する。この例ではvpython3という名前の環境を作成し、activateコマンドにより仮想環境に入っている。

      cd ~
      python3 -m venv vpython3
      source vpython3/bin/activate
      
    6. 仮想環境内ではコマンドプロンプトに仮想環境名が付加されることに注意する。

      user@ubuntu:~$ source vpython3/bin/activate(vpython3) user@ubuntu:~$

    7. 当チーム固有のPythonライブラリをインストールする。

      pip install simple_pid
      pip install pydot
      pip install py-trees
      pip install etrobo-python
      
    8. 仮想環境から出る。

      deactivate
      
    9. ホームディレクトリにチームリポジトリを複写する。

      cd ~
      git clone https://github.com/wataniguchi/EV3RT.git
      
    10. 以降の手順にUbuntuの対話シェルは不要なので、終了する。

      exit
      

シミュレータ用のサンプルコードを実行する。

  1. デスクトップ上のショートカットをダブルクリックする等により、Visual Source Codeを開始する。

  2. VSCがWSL: Ubuntuへリモート接続していることを確認する。

  3. VSCのメニューからFileOpen Folderを選択して、ホームディレクトリを開く。

  4. VSCのメニューからTerminalNew Terminalを選択して、リモートターミナルを開始する。

  5. リモートターミナルでPython仮想環境に入る。

    source vpython3/bin/activate
    
  6. 仮想環境内ではコマンドプロンプトに仮想環境名が付加されることに注意する。

    user@ubuntu:~$ source vpython3/bin/activate(vpython3) user@ubuntu:~$

  7. シミュレータを開始する。

    sim
    
  8. サンプルプログラムを実行する。

    python3 EV3RT/test-sim/behaviorTreeSensorPID_sim.py right
    
  9. シミュレータ上でEV3のボタン押下をシミュレートするために、シミュレータ画面右側に拡大表示されているEV3正面ディスプレイ下の右向きのボタン部分をクリックする。

  10. ロボットがラインをトレースし、以下のようなメッセージが表示されれば完了。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

  11. VSCのエクスプローラ上でEV3RTディレクトリ内test-simサブディレクトリのbehaviorTreeSensorPID_sim.pyを編集・再実行して、ロボットの振る舞いの変化を観察する。