Kaggle のコンペで使われているGoogle Research Football Environment(GRF) をシングルボードコンピュータにセットアップしてみます。
前回の(1) と (2) はx86_64 ( amd64) アーキテクチャーのプラットフォーム(Windows)にセットアップしていましたが、今回はarm64 アーキテクチャーです。
ターゲットプラットフォームはラズパイ(Raspberry Pi)4B 4GB と Jetson Nano 、どちらも OS は Ubuntu 18.04 です。
WindowsでSSH接続し、GUIは X Server を使います。
目次
Jetson Nano – 1 (Jetcard) pending…
ラズパイ4B 4GB
OS(Ubuntu 18.04.5)のセットアップはこのページを参照
GRFのセットアップについては、Google Research Football Environment(GRF)を参照
On your computer でやってみます。
オリジナルのままではインストールできなかったので、いくつかモジュールを(不具合が出る都度、泥縄式に)追加しています。
1. Install required packages
sudo apt install git cmake build-essential libgl1-mesa-dev libsdl2-dev \libsdl2-image-dev libsdl2-ttf-dev libsdl2-gfx-dev libboost-all-dev \libdirectfb-dev libst-dev mesa-utils xvfb x11vnc libsdl-sge-dev python3-pip -y
2b. Installing from sources using GitHub repository
1 2 |
git clone https://github.com/google-research/football.git cd football |
//追加
1 |
sudo apt install python3-venv -y |
//仮想環境設定
1 2 |
python3 -m venv football-env source football-env/bin/activate |
//Pygameをインストールしておきます
1 2 3 4 |
sudo apt install build-essential libssl-dev libffi-dev python3-dev -y sudo apt-get install libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev -y sudo apt-get install libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev -y python3 -m pip install pygame==1.9.6 |
//追加
1 2 3 4 5 |
pip3 install scikit-build pip3 install cython sudo apt install liblapack-dev -y sudo apt install gfortran -y |
1 |
pip3 install . |
//追加
1 |
pip3 install absl-py |
インストール完了(赤字でwarningっぽいのが出てますが問題なしです)
仮想環境で実行するので、再起動した場合は以下の手順で仮想環境に入ってください。
cd football
python3 -m venv football-env
source football-env/bin/activate
GUIが必要になるのでWindowsでSSH接続している場合は、X Window Server (例えばVcXsrv) を起動しておきます。
VcXsrv起動時にオプションで「-nowgl」を追加する必要があります。
手順は以下のようにします。
ここで「-nowgl」オプションを追加します。
3. Time to play!
gfootball起動
PCのIPアドレスが例えば192.168.0.23だとしてDISPLAYの環境変数を設定して起動します。
1 2 |
export DISPLAY=192.168.0.23:0.0 python3 -m gfootball.play_game --action_set=full |
gameスタート
初期画面(しばらくはこんな感じ)
Gameが開始されます
Ctrl + C で終了
Jetson Nano – 1 ( pending….. )
OSはJetcard (Ubuntu 18.04)を使ってみます。
Google Research Football Environment(GRF)のセットアップの手順はラズパイと同じです。
1. Install required packages
sudo apt install git cmake build-essential libgl1-mesa-dev libsdl2-dev \libsdl2-image-dev libsdl2-ttf-dev libsdl2-gfx-dev libboost-all-dev \libdirectfb-dev libst-dev mesa-utils xvfb x11vnc libsdl-sge-dev python3-pip -y
2b. Installing from sources using GitHub repository
1 2 |
git clone https://github.com/google-research/football.git cd football |
//追加
1 |
sudo apt install python3-venv -y |
//仮想環境設定
1 2 |
python3 -m venv football-env source football-env/bin/activate |
//Pygameをインストールしておきます
1 2 3 4 |
sudo apt install build-essential libssl-dev libffi-dev python3-dev -y sudo apt-get install libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev -y sudo apt-get install libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev -y python3 -m pip install pygame==1.9.6 |
//追加
1 2 3 4 5 |
pip3 install scikit-build pip3 install cython sudo apt install liblapack-dev -y sudo apt install gfortran -y |
1 |
pip3 install . |
//追加
1 |
pip3 install absl-py |
セットアップ完了(ラズパイのようなwarningっぽいものは出ませんでした)
Jetsonの場合、外部X Server に接続できませんでした。
原因調査中
libGL error: MESA-LOADER: failed to open swrast (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri)
libGL error: failed to load driver: swrast
shader compilation error (media/shaders/simple.vert)
Mon Nov 16 23:13:03 2020 [Warning] in [::LoadGLShader]: shader compilation error (media/shaders/simple.vert)
Jetson Nano – 2
どうもJetcardで提供されているUbuntu 18.04 だと問題が出てしまうので、方針変更。
Jetpack (ver 4.4) でプレセットされているNVIDIA Docker を使います。
Jetpack のセットアップはこのページをご参照ください。4.2.1でやってますが手順は同じです。
Docker Hub からお借りする ubuntu:18.04 イメージ で新規にDocker Containerを作成して、そこにセットアップすれば動きました。
ざっとした手順は以下の通り。
1 2 3 |
//初期状態では何もないのを確認 sudo docker images sudo docker container ps -a |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//イメージ取得 sudo docker pull ubuntu:18.04 //コンテナ作成 sudo docker run -d -it --name=grf-ubuntu ubuntu:18.04 //コンテナー起動 sudo docker start -i grf-ubuntu //コンテナーをアップデート&アップグレード apt update apt upgrade -y |
1. Install required packages
apt install git cmake build-essential libgl1-mesa-dev libsdl2-dev \libsdl2-image-dev libsdl2-ttf-dev libsdl2-gfx-dev libboost-all-dev \libdirectfb-dev libst-dev mesa-utils xvfb x11vnc libsdl-sge-dev python3-pip -y
2b. Installing from sources using GitHub repository
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
git clone https://github.com/google-research/football.git cd football apt install python3-venv -y python3 -m venv football-env source football-env/bin/activate apt install build-essential libssl-dev libffi-dev python3-dev -y apt-get install libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev -y apt-get install libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev -y python3 -m pip install pygame==1.9.6 pip3 install scikit-build pip3 install cython apt install liblapack-dev -y apt install gfortran -y pip3 install . pip3 install absl-py //一旦終了 deactivate exit |
GUIが必要になるのでWindowsでSSH接続している場合は、X Window Server (例えばVcXsrv) を起動しておきます。
VcXsrv起動時にオプションで「-nowgl」を追加する必要があります。
手順は以下のようにします。
ここで「-nowgl」オプションを追加します。
3. Time to play!
下記、192.168.0.23はPCのIPアドレスです、ご自分ので書き換えてください。
1 2 3 4 5 6 7 8 9 10 |
//gfootball再起動 sudo docker start -i grf-ubuntu cd football python3 -m venv football-env source football-env/bin/activate export DISPLAY=192.168.0.23:0.0 python3 -m gfootball.play_game --action_set=full |
Gama開始
既定のステップ数(前・後半でそれぞれ3000Steps)に到達すると結果がdumpファイルで保存されます。
(前・後半で、それぞれ 0-1、0-2でリアルベイジアンが勝ってる?)
ALSA関連でエラーが出てますが、サウンド系がうまく動作していないからで、問題ないです。
Dockerfile
3~5行のTimezone設定で環境変数を使っているのはUbuntu 18.04固有のものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
FROM ubuntu:18.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y tzdata ENV TZ=Asia/Tokyo RUN apt-get update && apt-get upgrade -y && apt-get install -y git RUN apt-get install cmake build-essential libgl1-mesa-dev libsdl2-dev -y RUN apt-get install libsdl2-image-dev libsdl2-ttf-dev libsdl2-gfx-dev libboost-all-dev -y RUN apt-get install libdirectfb-dev libst-dev mesa-utils xvfb x11vnc libsdl-sge-dev python3-pip -y RUN git clone https://github.com/google-research/football.git WORKDIR /football RUN apt-get install python3-venv -y RUN python3 -m venv football-env RUN . football-env/bin/activate RUN apt install build-essential libssl-dev libffi-dev python3-dev -y RUN apt-get install libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev -y RUN apt-get install libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev -y RUN python3 -m pip install pygame==1.9.6 RUN pip3 install scikit-build RUN pip3 install cython RUN apt install liblapack-dev -y RUN apt install gfortran -y RUN pip3 install . RUN pip3 install absl-py |
Leave a Reply