DonkeyCar セットアップ（旧バージョン2.5.1）

DonkeyCarプロジェクトのページ
http://www.donkeycar.com/

INSTRUCTIONSのページ
http://docs.donkeycar.com/
の手順に従ってセットアップを行う

#Setup RaspberryPi
DonkeyCarプロジェクトが公開しているSDイメージのzipファイルをダウンロード
ラズパイ2,3は「donkey_2.5.0_pi3.zip」
https://drive.google.com/open?id=1vr4nEXLEh4xByKAXik8KhK3o-XWgo2fQ
ラズパイ1,ゼロは「donkey_2.5.0_pizero.zip」
https://drive.google.com/open?id=1otqNRBs1kqNJYocCp4kbMjcRKWE2zW7A
Etcher 等でSDメモリカードに書き込みを行う

接続したい無線LANアクセスポイントのSSIDとPSKを記述した「wpa_supplicant.conf」をbootパーテーションのルートディレクトリに新規作成

ラズパイにカメラとPWMドライバボードを接続
SDメモリカードをセットして起動
暫く待ってからラズパイ3のIPアドレスを探す
ターミナルからSSH接続
ユーザーネーム「pi」パスワード「raspberry」でログイン
$ sudo raspi-config
7 Advanced Options
A1 Expand Filesystem
＜Ok＞
＜Finish＞
＜Yes＞

再起動
再ログイン

筆者のgithubからファイル一式を入手
$ git clone https://github.com/mituhiromatuura/donkey-2.5.1
$ pip install -e donkey-2.5.1[pi]
$ donkey createcar  --template manage_車体名(gf-01,tt-02,picar,pimouse,zumo) ~/mycar
~/mycarは任意のフォルダ名
設定ファイルを車体用の物に差し替える
$ cp donkey-2.5.1/donkeycar/templates/config_車体名.py ~/mycar/config.py
$ cd ~/mycar
$ python manage.py drive

ターミナル画面に表示された
「You can now go to http://xxx.xxx.xxx.x:8887」
にブラウザから接続
カメラ画像やスライダ等の画面が表示される
Joystickボタンを押すと右側にタッチエリアが表示される
操作で車輪が動く
スマホorタブレットなら操縦も可能
ターミナルからctrl＋Cでプログラムを終了

#Driving with Physical Joystick Controller
LogiCoolゲームコントローラのUSBドングルを接続
$ ls /dev/input
js0 があればOK
$ hexdump /dev/input/js0
ボタン類を操作して16進の数値が表示されればOK
ctrl＋cで終了

LogiCoolコントローラ用に以下のファイルを差し替える
~/donkeycar/donkeycar/parts/controller.py

ゲームコントローラのボタン類の割り当ては以下の通り
![logicool.jpg](https://qiita-image-store.s3.amazonaws.com/0/263672/981d589c-b147-4119-b588-86bcfed771b1.jpeg)

コントローラにJC-U3912TまたはJC-VRP-01を使用する場合はmanage.pyファイル28行目の「controller_logicool」を「controller_elecom_usb」または「controller_elecom_bt」に変更する

#人間の操作でコースを何周か走行し学習データを作成する
$ python manage.py drive --js
最大スロットル値を調整
赤ボタンで走行記録をオン
前進後退のレバーを上げて走行を開始
走行中は学習データを生成する
停止時は学習データを生成しない
ターミナルからctrl＋Cでプログラムを終了

~/mycar/data/tub_＊_y_m_d
のフォルダが作られ中にjpgファイルとjsonファイルが出来ているか確認

#Install donkeycar on Mac
safari で miniconda のページを開く
https://conda.io/miniconda.html
Python3.6 をダウンロード

macのターミナルから
$ cd ~/Downloads
$ bash Miniconda3-latest-MacOSX-x86_64.sh

AppStore から Xcode をインストール
または macのコマンドラインからコマンドラインツールをインストール
$ xcode-select --install
$ exit

再ログインして
$ git clone git://github.com/mituhiromatuura/donkey
$ cd donkey
$ conda env create -f install/envs/mac.yml
$ source activate donkey
（再ログイン時は必ずこのコマンドを実行して仮想環境に入ること）
$ pip install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.5.0-py3-none-any.whl （時期によっては不要かも）
$ pip install -e .
$ cd
$ donkey createcar ~/mycar
$ cd ~/mycar

#Install donkeycar on Linux
ターミナルから
$ sudo apt-get install virtualenv build-essential python3-dev gfortran libhdf5-dev
$ virtualenv env -p python3
$ source env/bin/activate
（再ログイン時は必ずこのコマンドを実行して仮想環境に入ること）
$ pip install tensorflow==1.5.0 （時期によっては1.8.0でいいかも）
$ sudo apt install git
$ git clone https://github.com/mituhiromatuura/donkey
$ cd donkey
$ pip install -e .
$ cd
$ donkey createcar ~/mycar
$ cd ~/mycar

#学習（mac/Linuxのターミナル）
学習データをラズパイ3からMacに転送
$ rsync -r pi@＜your_pi_ip_address＞:~/mycar/data/  ~/mycar/data/
学習の実行
$ time python ~/mycar/manage.py train --tub ＜tub folder names comma separated＞ --model ~/mycar/models/mypilot(任意の出力ファイル名)
学習結果をラズパイ3に転送
$ rsync -r ~/mycar/models/ pi@＜your_ip_address＞:~/mycar/models/

学習データの画像から動画を生成するには
$ donkey makemovie --tub ＜tub folder names comma separated＞ --out ./movie(任意の動画ファイル名).mp4

#走行（ラズパイのターミナル）
$ python ~/mycar/manage.py drive --model ~/mycar/models/mypilot --js
コントローラで方向自動モードを選択
最大スロットル値を低く調整
スロットル固定オンで走り始める
スロットル固定オフで停止

現状では方向とスロットルの両方を自動制御のモードにするとステアリングは動くが車輪は動かない．．．（学習によるスロットル操作は実装されていない）
↓
「DonkeyCar スロットルも学習で制御する」
https://qiita.com/mituhiromatuura/items/2ec923b74127e766e285