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」。プロンプトの画面に戻る。
自動走行は成功したかな?^^
つぎは、記録してあったデータから、”あなたの操縦テクニック診断/見える化!” してみたり、”車窓からの画像をつなげて動画に!” する方法をお伝えします♪