DonkeyCar Part2:トレーニングデータの構築、調整、および生成

DonkeyCar(ロバ車) Part2:トレーニングデータの構築、調整、および生成

これは、ロバ車の3部構成シリーズのパート2です。これがパート1パート3です。ではパート1、私は私の新しいドンキーカーが稼働してラズベリーパイに基づいて、カメラの接続作業を持ってしまったかについて話しました。カメラをRPi Cam Web Interfaceでテストし、家の1階を走り回って車の感触と操作方法を確認しました。

このモードでは、PiはWebサーバーの背後にある携帯カメラであり、Webページにビデオ画像を送信していました。RCカーは、同梱されている2.4 Ghzコントローラーによって完全に制御されていました。RPi Cam Web Interfaceソフトウェアを実行するには、Piでターミナルを開き、githubサイトからコードをダウンロードしました。次に、Webサーバーを起動するstartup.shスクリプトを実行しました。

カメラで画像がキャプチャされてから、Webページで目の前に表示されるまでにどのくらいの遅延があるのか​​興味がありました。遅れは無視できたので、ウェブページの画像を見るだけで車を運転できました。これは、カメラとPi間の入出力が高速であり、WiFiチップを介したWebブラウザーへの画像の変換が高速であることを意味しました。基本的に、リアルタイムのリモートビデオドライビングを行うのに十分な馬力がPiにあることが証明されました。

次に、RCカーに付属の2.4GHzレシーバーからコネクターを取り外し、Amazonに注文したサーボコントローラーに接続を移動しました。このサーボコントローラーボードは最大16個のサーボを制御するように設計されていますが、必要なサーボは2つだけです。1回はスピードのため、もう1回は車の回転のためです。また、サーボコントローラーからPi 40ピンGPIOバスに4本のワイヤーを接続する必要がありました。これらの接続の写真は次のとおりです。

次のステップは、ステアリングと加速度計のキャリブレーションです。これを行うには、PiにSSH接続してキャリブレーションを実行する必要がありました。Electronic Speed Controller(ESC)の多くは少し異なるため、このプロセスは少し注意が必要です。こちらのロバカーサイトに文書化されています。私の「STOP」周波数が正しくないため、車を後進させることができないようです。最終的な結果は、スロットルのパラメーターと車のステアリングをエンコードする構成ファイルです。

これが完了したら、テストトラックを回る準備ができました。妻の悔しさの多くに、私は地下の家具を部屋の片側に移動し、地下の床に白い電気テープを置いた。床にクールなエポキシコーティングを施しましたが、白いテープのコントラストは良好でした。

また、床のライトの多くの反射を見ることができます。トレーニングプロセスでは、光の反射を無視し、床の白いテープにのみ「注意」をすることを学ばなければなりません。注意は、ディープラーニングの重要な概念です。

次に、壁のプラグからPiを取り外し、Amazonで購入した新しい6800 mAHパワーパックを使用して電源を入れました。プラットフォームの下にパワーパックを固定するためにテープを使用しました。ESCからのGNDおよびVCCワイヤは、RCカーで使用される2.4GHzレシーバーのデジタル回路に電力を供給することに注意してください。ただし、この電流はPiに電力を供給するのに十分ではありません。テストとして、Piの実行中にUSP電流計を車に接続しました。結果は下の写真にあります:

トレーニングデータの生成

車をすべて組み立てたら、トレーニングデータセットを生成する準備ができています。次に、PiにSSHを実行し、ドライブプログラムを起動しました。

$ python manage.pyドライブ

これは、カメラの内容を表示するWebサーバーを起動するpythonプログラムであり、トレーニングセットをキャプチャするためのコントロールも提供します。ドライブプログラムが実行されたら、任意のWebブラウザーに移動し、ポート8887を使用して車のIPアドレスを入力できます。今度は難しい部分です。トレーニングセットを作成するには、トラックを10回運転しなければなりませんでした!

問題は、キーボードのキーで車を制御することはできましたが、操縦するのが非常に困難だったことです。また、Webインターフェースの「ポインター」を試しましたが、操縦するのも困難でした。最後に、携帯電話を取り出して、電話のブラウザーでドンキーカーのWebページを表示しました。Webブラウザーは、スマートフォンの前方および側方の傾きを検出するのに十分なほどスマートであり、これを速度と回転に変換します。非常に賢い!約1時間の練習で、コースを回ることができました。その後、「記録開始」を押して、約10周後に「記録停止」を押しました。これが完了したら、Donkey CarにSSHで接続し、ディレクトリを「tub」フォルダーに変更しました。そのフォルダーには、約30Kの.jpgおよび.jsonファイルがありました。各JSONファイルには、画像への参照、タイムスタンプ、および浮動小数点数としての加速とステアリングがありました。これはトレーニングデータです。

JSONファイルのサンプルは次のとおりです。

{
「user / angle」:0.18989955357142868、
「user / throttle」:0.7175781250000001、
「user / mode」:「user」、
「cam / image_array」:「1000_cam-image_array_.jpg」、
「timestamp」:「2019–01– 05 17:09:35.184483”
}

そのJSONファイルに対応する画像を次に示します。

その後、トレーニングのためにドンキーカーからラップトップに画像をコピーしました。これについてはパート3で説明します。