Skip to content

q_and_a

TANAHASHI, Jiro edited this page Jun 6, 2022 · 25 revisions

Q&A

ビルド&実行

ASSERTION FAILED:../src/device/peripheral/vdev/vdev_udp.c:device_init_vdev_udp:106:err == STD_E_OKというエラーメッセージが出てアプリが起動しません

  • まず、sim stop apps、続いてasp deep stopを実行します。その後にアプリが起動するか試してください。
  • 起動しない場合、または上記コマンドが反応しない場合は、VSCodeを閉じ、Windows PowerShell(またはWindowsターミナル)から wsl --shutdown してからetrobo環境を起動しなおしてください。
  • それでも起動しない場合は、まずmake sampleが動作するか試してみてください。動作しない場合はetrobo環境のインストールに失敗しています。

スタート位置がおかしいです

  • simを単体起動して今年度参加クラスを選択し、TOOL環境からL/Rコース初期位置の右側にある初期設定ボタンを押します
  • スタート位置を微調整する場合は値を変更し、シミュレータを閉じます
  • sim import launchで一度走らせると、設定ファイルを今年度クラスのスタート位置で初期化できます。

単にアプリを実行したいのですが、オートスタートする競技モードで走行してしまいます

  • simでシミュレータを単体起動します
  • 必要に応じて走行体位置を手動で変更します
  • make skiphrp3 app=プロジェクト名 sim startでビルド&実行します
    • 一度プロジェクト名を指定してビルドした後は、次回以降プロジェクト名の指定を省略できます
  • ビルド済みのアプリはaspで実行可能です

etrobo環境のインストール

wsl --install -d Ubuntu-20.04 しようとしても、WSLがインストールされません

  • 「Windows PowerShell (管理者)」または「Windowsターミナル (管理者)」を開く
  • dism /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux
  • Yを押して再起動する
  • 「Windows PowerShell」または「Windowsターミナル」を開く
  • wsl --install -d Ubuntu-20.04
  • Yを押して再起動する

昨年度環境ではここの手順通りWSL1にUbuntuを手動インストールしたのですが、WSL2への切り替え方が判りません

  • 「Windows PowerShell (管理者)」または「Windowsターミナル (管理者)」を開く
  • dism /online /enable-feature /featurename:VirtualMachinePlatform
  • Yを押して再起動する
  • 「Windows PowerShell (管理者)」を開く
  • wsl --list → インストールされているUbuntuの名前を確認(後ろに「(既定)」が付いているもの)
  • wsl --update
  • wsl --shutdown
  • wsl --set-default-version 2
  • wsl --set-version Ubuntu-20.04 2Ubuntu-20.04の部分は上で確認したUbuntuの名前

どうなっていれば正しくインストールされたと確認できますか?

  • VSCodeのターミナルから update を実行します。
  • ターミナルにメッセージが流れ、プロンプトに戻ります。
  • VSCodeのターミナルから make sample と入力します。
  • ターミナルにメッセージが流れます。
  • しばらくするとETロボコンシミュレータが起動します。
  • もうしばらくすると、VSCodeのターミナルで 3...2...1...GO!! とカウントダウンします。
  • ETロボコンシミュレータ上でロボットが走っていれば、正しくインストールされています。

昨年度環境からアップデートしたのですが、動作が微妙におかしいです

昨年度のetrobo環境からアップデートする場合、以下の手順でetrobo環境コア周りのアップデートが必要です:

  • etrobo環境を起動し、updateする。FATAL ERRORが出るはず。
  • etrobo環境を閉じる
  • 「Windows PowerShell」または「Windowsターミナル」から ubuntu (Win)・ターミナル(Mac)・端末(Linux/ChromeOS)を開く
  • Win/Linuxの場合、./startetrobo updateを実行する。Macの場合、./startetrobo_mac.command update BeerHallを実行する
  • ターミナル/端末を閉じ、etrobo環境を起動する
  • updateする
  • etrobo環境を閉じる
  • Linux(Ubuntu)の場合、OSを再起動する

新規インストールしたのですが、sample_c4が動作していないようです。

Tiger Lake(第11世代 Intel Core) プロセッサ、 及びAlder Lake(第12世代 Intel Core)プロセッサを搭載したPCで実行する場合、Ubuntu 20.04以降を使用する必要があります。20.04で動作しない場合、上記手順でetrobo環境コアをアップデートしてください。

上記以外で問題を抱えている方は、下記「WSL2にetrobo環境を構築したのですが、make sampleでもロボットが走りません」もご参照ください。それでも動かない場合はetrobo環境のインストールに失敗していますので、etrobo環境を再インストールしてください。

WSL2にetrobo環境を構築したのですが、make sampleでもロボットが走りません

"WSL1で使用されているブリッジされたネットワークアダプターからの変更で、
 WSL2は、ホストネットワークインターフェイスカード (NIC) にブリッジするのではなく、
 その仮想ネットワークに対してネットワークアドレス変換 (NAT) サービスを使用します。"
とあることからWSL1とWSL2の、ネットワーク通信仕組みの違いによりホストOS上のシミュレータと通信が出来ていないと考えられます。
参考:WSL 1 と WSL 2 の比較

対処方法として
「Windows Defender ファイアウォール」にシミュレータアプリ(etrobosim.exe)のネットワーク通信を許可するように設定します。

~ネットワーク上での通信を許可する 欄の全てを忘れずにチェックしてください。

このチェックを忘れていた場合、[Windows]+[S]キーからファイアウォールとネットワーク保護を開き、そのファイアウォールによるアプリケーションの許可から、「etrobosim.exe」に関する項目の全てにチェックを入れてください。

これでも動作しない場合は、ご使用のセキュリティソフトでもファイアウォールの設定をする必要があります。 追加の許諾が必要なのは以下の3つです。

  • WSL(C:\Windows\System32\svchost.exe)の「SharedAccess」サービス…
    • Inbound(受信・内向き)のTCP/UDP通信を許可
  • ETロボコンシミュレータ(etrobosim.exe)の全サービス…
    • Inbound(受信・内向き)のTCP/UDP通信を許可
  • ETロボコンシミュレータ(etrobosim.exe)の全サービス…
    • Outbound(送信・外向き)のTCP/UDP通信を許可

この際、セキュリティソフトの仕様や設定されているポリシーによっては、WSL(svchost.exe)へ許可設定ができないものや場合があることが判っています。 これにはWindows側でWSL向けのネットワークプロキシを動作させる必要があります。方法が判らない場合は技術委員にお尋ねください。

(2022年5月末現在、ESET社製およびSymantec社製のセキュリティソフトでは上記の設定が必要であるものとこちらでは認識しています)

etrobo環境の利用

参加者向けシミュレータをインストールしたのですが、外部デモ用途に元のサンプルコースのシミュレータを使いたいです

update sim publicで、サイボウズアカウントを空エンター2回でスキップすると公開版シミュレータに変更できます。参加者向けに戻す場合はupdate simしてください。

etrobo環境起動時に、「セッションの内容が ~~ 復元されました。」と出て、アップデートの内容が適用されません

Linux/ChromeOSの場合、アップデート後にVSCodeとターミナルを一度閉じて、新しいターミナルを開いてから ./startetroboする必要があります。

Macの場合、セッションの復元によってzshで起動する場合があり、この場合、2~3度etrobo環境を起動し直すとbash(etrobo環境)で起動するようになります。

その他のOSでも、このVSCodeのセッション復元機能が煩わしい場合は、「管理」の「設定」([Ctrl]+[,])から「設定の検索」欄にenable persistentぐらい入力すると 「ウィンドウの再読み込み時にワークスペースのターミナル セッションを保持します」のチェックを外してください。

Clone this wiki locally