Ubuntu 18.04 LTS 環境でdonkey car 環境を１パス動かす

`donkey car`自体について以下を参照、discordのコミュニティもあるようです。
donkey car community
[https://www.donkeycar.com/community.html](https://www.donkeycar.com/community.html)

# 環境構築

```
OS: Ubuntu 18.04 LTS
CPU: core i5
Memory: 8GB
GPU: GeForce RTX 2080
```

以下の２つを順番に実施する
1. [Install Donkeycar on Linux](https://docs.donkeycar.com/guide/host_pc/setup_ubuntu/)
2. [Donkey Simulator](https://docs.donkeycar.com/guide/simulator/)

※手順は2021/5時点のものなので、最新手順は公式URLを参照してください

> 1. [Install Donkeycar on Linux](https://docs.donkeycar.com/guide/host_pc/setup_ubuntu/)


terminai上から`miniconda Python 3.7 64 bit`をインストール

```
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash ./Miniconda3-latest-Linux-x86_64.sh
```

projectsディレクトリを作成

```
mkdir projects
cd projects
```

最新のdonkeycarを取得

```
git clone https://github.com/autorope/donkeycar
cd donkeycar
git checkout master
```

condaをアップデート、古いdonkeyを削除（初回インストールではない場合）

```
conda update -n base -c defaults conda
conda env remove -n donkey
```

adaconda環境を作成

```
conda env create -f install/envs/ubuntu.yml
conda activate donkey
pip install -e .[pc]
```

必要に応じて、`Tensorflow GPU - only for NVidia Graphics cards`をインストール

```
conda install tensorflow-gpu==2.2.0
```

必要に応じて、`PyTorch to use GPU - only for NVidia Graphics cards`のためにCuda SDKをインストール

```
conda install cudatoolkit=<CUDA Version> -c pytorch
```

ワークディレクトリを作成

```
donkey createcar --path ~/mycar
```

> 2. [Donkey Simulator](https://docs.donkeycar.com/guide/simulator/)

DonkeyGymのセットアップ

```
cd ~/projects
git clone https://github.com/tawnkramer/gym-donkeycar
cd gym-donkeycar
conda activate donkey
pip install -e .[gym-donkeycar]
```

初回、もしくは既存の`~/mycar`以下の`donkey application`を利用するための設定

```
donkey createcar --path ~/mysim
cd ~/mysim
```

`donkey gym simulator wrapper`を有効化するためにm、`myconfig.py`を編集する。
シミュレータ自体は[こちら](https://github.com/tawnkramer/gym-donkeycar/releases)からダウンロード、解凍して`projects`以下に配置しておくとよい。`<user-name>`は実際のパス(/home/ubuntuなど)に置きかえる。

```
DONKEY_GYM = True
DONKEY_SIM_PATH = "/home/<user-name>/projects/DonkeySimLinux/donkey_sim.x86_64"
DONKEY_GYM_ENV_NAME = "donkey-generated-track-v0"
```

その後、以下を実行するとシミュレータが起動する

```
python manage.py drive
```

ブラウザ上（[http://localhost:8887/drive](http://localhost:8887/drive)）から手動操作ができればひとまずOK

Train/Test/APIの利用は以下ページの続きを参照
[https://docs.donkeycar.com/guide/simulator/](https://docs.donkeycar.com/guide/simulator/)

virtual_raceについては以下を参照
[https://docs.donkeycar.com/guide/virtual_race_league/](https://docs.donkeycar.com/guide/virtual_race_league/)

# syntax error対策

### `Exception: The path you provided is not an executable.`

```
$ python manage.py driloading config file: /home/ubuntu/mysim/config.py
loading personal config over-rides from myconfig.py
INFO:root:PID: 14041
INFO:root:cfg.CAMERA_TYPE PICAM
cfg.CAMERA_TYPE PICAM
Traceback (most recent call last):
  File "manage.py", line 719, in <module>
    meta=args['--meta'])
  File "manage.py", line 135, in drive
    cam = DonkeyGymEnv(cfg.DONKEY_SIM_PATH, host=cfg.SIM_HOST, env_name=cfg.DONKEY_GYM_ENV_NAME, conf=cfg.GYM_CONF, record_location=cfg.SIM_RECORD_LOCATION, record_gyroaccel=cfg.SIM_RECORD_GYROACCEL, record_velocity=cfg.SIM_RECORD_VELOCITY, delay=cfg.SIM_ARTIFICIAL_LATENCY)
  File "/home/ubuntu/projects/donkeycar/donkeycar/parts/dgym.py", line 19, in __init__
    raise Exception("The path you provided is not an executable.") 
Exception: The path you provided is not an executable.
```

実行権限がついていない。以下の通り実行権限を付与して解決

```
chmod 777 ~/projects/DonkeySimLinux/donkey_sim.x86_64
```

### simulatorが見つからない

以下のからDonkeySimLinuxを取得する。
[https://github.com/tawnkramer/gym-donkeycar/releases](https://github.com/tawnkramer/gym-donkeycar/releases)

```
wget https://github.com/tawnkramer/gym-donkeycar/releases/download/v21.04.15/DonkeySimLinux.zip
```

### docoptがない

```
ModuleNotFoundError: No module named 'docopt'
```

インストールする。もしくは`condo activate donkey`ができてない等の可能性がある。

```
pip install docopt
```

### sampleがどこにあるかわからない

以下にsampleデータが置いてある

[Sample Data Download](https://drive.google.com/file/d/1A5sTSddFsf494UDtnvYQBaEPYX87_LMp/view)

以下の通り解凍する

```
tar xvf sim_data.tar
```

### その他エラー

`conda activate donkey`を忘れがちなので、まずは実行しているか再確認

```
conda activate donkey
```


# 参考
[https://docs.donkeycar.com/guide/host_pc/setup_ubuntu/](https://docs.donkeycar.com/guide/host_pc/setup_ubuntu/)
[https://docs.donkeycar.com/guide/simulator/](https://docs.donkeycar.com/guide/simulator/)
[https://www.donkeycar.com/community.html](https://www.donkeycar.com/community.html)
[Building Custom Self Driving Car with Donkey Car under 10 mints.](https://youtu.be/J6Ll5Obtuxk)

[https://docs.donkeycar.com/guide/virtual_race_league/](https://docs.donkeycar.com/guide/virtual_race_league/)
[https://github.com/autorope/donkeycar/blob/dev/docs/guide/simulator.md](https://github.com/autorope/donkeycar/blob/dev/docs/guide/simulator.md)
[https://docs.donkeycar.com/guide/host_pc/setup_ubuntu/](https://docs.donkeycar.com/guide/host_pc/setup_ubuntu/)