Raspberrypi3

DonkeyCar セットアップ

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
$ pip install -e donkey[pi]
$ donkey createcar --template manage_車体名(gf-01,tt-02,picar,pimouse,zumo) ~/mycar
~/mycarは任意のフォルダ名
設定ファイルを車体用の物に差し替える
$ cp donkey/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

コントローラに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