Quantcast
Channel: Miho's Memory
Viewing all articles
Browse latest Browse all 29

AI自動運転ちび&でかラジコンカー ~ 訓練からの自動走行編~

$
0
0

AI自動運転ちび&でかラジコンカー ~ 訓練からの自動走行編~

以前 2023/7/15 に 「AI自動運転ちび&でかラジコンカー ~ 訓練環境構築編~」のブログを書きました ^^#

AI自動運転ちび&でかラジコンカー ~ 訓練環境構築編~ - Miho's Memory

今回は その続きで「走行データを訓練させて自動走行」させてみようと思います ^^#

◆ ちび&でかラジコンカーに搭載したハードウェアとコントローラー

・    RaspberryPi4(でかminionに搭載),RaspberryPi3B+(ちびminionに搭載)
・    モータドライバ PCA9685(I2C でサーボとESCの制御信号 PWM を生成する基板)
・    スピードコントローラ(ちびminionに搭載のもの)
GoolRC RC ESC 20A ブラシモーター スピードコントローラー 切り替え可能 ブレーキ付 RC ラジコン カー ボート タンク用
https://www.amazon.co.jp/gp/product/B014RB6WS6/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
・    WiFiルーター WMR-433W2-TB
バッファロー BUFFALO 無線LAN親機 11ac/n/a/g/b 433/150Mbps トラベルルーター
https://www.buffalo.jp/product/detail/wmr-433w2-tb.html
・    コントローラ F710

◆ ちび&でかラジコンカーの全体構成図

  

RaspberryPi4 は FPS 30 で、処理は十分追い付いてた。
RaspberryPi3B+ は FPS 30 では、処理が追い付かず、カメラ画像の遅延が3sほどとひどいw CPUクロック数は半分になっていた! というのも、『モバイルバッテリーで3B+を動かすとLowVoltageになってクロックが半分になる!』というのが原因なのだ。ということで、FPSを 20 に設定。
それで自動運転ができるか心配だったけど、私の操縦テクニックだと十分だったw

◆ RaspberryPiの既存作業フォルダを変更する

以前は、AI_Driverフォルダ を作業フォルダとし、そこに必要なファイルをダウンロードし環境を整え、走行データや、学習済みデータも置かれていた。

以前の設定について書いていた記事 参考:

https://miho-diary.hatenablog.com/entry/2023/10/27/132620

     11. 作業フォルダを作成してファイルをダウンロード
     12. WinSCPを 使って ~/.bashrc の最後に以下3行を追加


このたび、各種パラメータの変更が行いやすく、ファイルが役割ごとに分割され、きれいになった環境が用意されたので ^^
既存作業フォルダ AI_Driverフォルダ から、 新規作業フォルダ AI_Drivr2フォルダに変更し、AI_Driver2フォルダに、必要なファイルをダウンロードして、そこを作業場とする。

手順: RaspberryPi で以下のコマンドを実行

1. AI_Driver2フォルダを作成し、必要なファイルをダウンロードする
    mkdir ~/AI_Driver2
    cd ~/AI_Driver2
    wgethttp://ma2.la.coocan.jp/AI_Driver/roba/download/aidriver.zip
    unzip aidriver.zip

2. AI_Driver2フォルダ をカレントディレクトリにする
    ~/.bashrc に書かれている
    cd ~/AI_Driver を cd ~/AI_Driver2 に修正する

 

** 教師データを作成し、訓練させ自動運転へ **

1. コントローラ F710 の操作を確認する

2. 教師データ作成 つまり コントローラー走行 と 走行の記録

VNC起動する。
VNC環境で RaspberryPi の起動を確認したら、
コンソール画面を立ち上げ、以下コマンドを実行

最初の起動は少々時間がかかるが、
ほどなくして、車内カメラ映像がVNC上に現れる。カメラ映像ウインドウが選択されている状態で、青ボタン ⇒ 緑ボタン ⇒ 赤ボタン を押下。コントローラーで走行開始!データを 10,000個程度 とる。

とり終わったら、カメラ映像選択状態で、赤ボタン ⇒ 緑ボタン を押下。
続けて、キーボード「Qキー」押下。カメラ窓が閉じる。
続けて、キーボード「Ctrl+c」。プロンプトの画面に戻る。

 

3. RaspberryPi上の教師データ(logフォルダのデータ)をパソコンに転送

Ubuntuを起動し、以下のコマンドを実行。
pi@ホスト名(わたしだと pi@raspberrypi)でいいのだが、ホスト名で見つけてこなかった場合は、IPアドレスを指定すれば良い(わたしだと pi@192.168.13.*)。

    途中省略

* もし!こんな ↓ ↓ エラーがでてPCに持ってこれなかったら!!! *

① のディレクトリ内にある hostsファイルを削除しろ!というエラー
① のディレクトリ内をみてみると、確かに hosts の文字があるファイルが2つ。

なので、rmコマンドで削除する

4. 学習させる

Ubuntu画面から、エポック(第2引数に指定)をいくつにするか決めて、以下のコマンドを実行。今回は エポック 40 で実行。

    途中省略

    学習済データが生成されたことを確認

5. パソコンにある学習済みデータをRaspberryPiに転送

Ubuntu画面から、以下のコマンドを実行。

6. 自動走行

VNC RaspberryPi画面から、以下のコマンドを実行。

ほどなくして、車内カメラ映像がVNC上に現れる。カメラ映像ウインドウが選択されている状態で、
黄ボタン押下で、自動運転モードにセット。
赤ボタン押下で、記録をON。
緑ボタン押下で、自動走行開始!

再度、カメラ映像選択状態で、
緑ボタン押下で、車停止。
赤ボタン押下で、記録OFF。
続けて、キーボード「Qキー」押下。カメラ窓が閉じる。
続けて、キーボード「Ctrl+c」。プロンプトの画面に戻る。

自動走行は成功したかな?^^
つぎは、記録してあったデータから、”あなたの操縦テクニック診断/見える化!” してみたり、”車窓からの画像をつなげて動画に!” する方法をお伝えします♪

 


Viewing all articles
Browse latest Browse all 29

Trending Articles