Donkey Simulator
Donkey Carに関心を持たれた方は、Donkey Simulatorを使ってPC上でDonkey Carのテスト走行、教師あり学習、自律走行をシミュレーションで楽しむことができる。
RCカーを購入する前にDonkey Carで必要な作業がどんなものなのか、どういったところが楽しいのかを体感できる。
Donkey Simulatorをインストールする
シミュレーターをインストールします。各プラットフォーム毎に用意されています
https://github.com/tawnkramer/gym-donkeycar/releases
Macの場合、最新版をダウンロードしてzipで展開するとDonkeySimMac
が作成されます。その中にあるdonkey_sim
を/Application
にドラッグ&ドロップします。
DonkeyCarをセットアップする
Install Donkeycar on Macに従ってPCにdonkeycarをセットアップします。Donkey Carは現時点の最新バージョン3.1.0
です。Donkey Carの開発は活発なのでバージョンアップされてセットアップ方法が変更される可能性があります
プロジェクトを作成する
donkey createcar
コマンドでプロジェクトを作成します
donkey createcar --path ./mycar
cd ./mycar
myconfig.py
を編集します。このプロジェクトをDonkey Simulatorに対応させるための設定を行います。200行目あたりの以下の3行のコメントを外し、DONKEY_GYM
をTrue
にDONKEY_SIM_PATH
にDonkey Simulatorのパスを設定します
DONKEY_GYM = True
DONKEY_SIM_PATH = "/Applications/donkey_sim.app/Contents/MacOS/donkey_sim"
DONKEY_GYM_ENV_NAME = "donkey-generated-track-v0"
以上でDonkey Carシミュレーターで遊ぶ準備ができました
シミュレーターを起動してテスト走行する
donkey_sim
を起動します。コンフィギュレーションダイアログが表示されるのでScreen resolution
を800 x 600
、Windowed
にチェックを入れてPlay!
ボタンをクリックします。
教師用データを取得する
Donkey Car実機では教師データを取得するために手動で記録用走行を行います。このとき前方に搭載したカメラで走行中の景色を画像データとして記録し、同時に手動操作されたスロットルやハンドルの操作履歴を記録してそれを教師用データとします。シミュレーターでは記録モードで走行することで実機と同様のデータを取得することができます。
まず、テスト走行のときと同様にdonkey_sim
を起動します。コースを選択する前に画面右下のLog dir
ボタンをクリックします
カーソルキーでDonkey Carを操作してコースを周回します。左下のLog:
の表示で記録されている画像の枚数を確認できます。だいたい5000〜10000くらいを目安にしてください。十分に記録ができたら右上のStop
ボタンでシミュレーターを終了します
学習する
Colabで高速に訓練する
FaBo DonkeyCar Docs Colabでの学習(GPU)でGoogle ColabのGPUを利用できるnotebookが公開されています。このnotebookを使うとGPUを使って高速に訓練することができるので大変便利です。教師用画像データが5000枚程度であればだいたい5分くらいで訓練が完了します。使い方はNotebookに丁寧に記載されているので、記載どおりにすすめていけばよいです
自律走行してみる
以下のコマンドを実行します。--type=categorical
に注意してください。--type
で指定するモデルタイプは上記のpython manage.py train
のときに指定したものと必ず一致させる必要があります
python manage.py drive --type=categorical --model=models/mypilot.h5
上記を実行するとDonkey Simulatorのコンフィギュレーションダイアログが起動するのでテスト走行のときのように設定してPlay!
をクリックします
参考資料
- https://qiita.com/bathtimefish/items/99afeaa406cc60ff2204 – Donkey Carを組み立てる前にシミュレーターで楽しんでみる Donkey Car 3.1.0編