Miho's Memory

組込みとアートとまぜまぜ

AI自動運転ちびラジコンカー ~ 製作~

AI自動運転ちびラジコンカー ~ 製作~

以前 AI自動運転”でかっ!”ラジコンカー をつくりました ^^#

https://miho-diary.hatenablog.com/entry/2019/12/24/023430

今回は 手のひらサイズの AI自動運転ちびラジコンカー を作ろうと思います ^^#

◆ ハードウェア

【車体】
Fabo で数年前に購入済!2台!!

GeckoCar – FaBo Store

Gecko ただいま絶賛アップデート中! 

※ 大きくてもいいからラジコンカーを持っていたら、コントローラーとPCA9685 だけ買えばいいよ!

【Raspberrry Pi】
    車2台分
    ● Raspberry Pi 4 Model B(4GB RAM)
    ● Raspberry Pi 3 Model B v1.2

【無線ゲームコントローラ
    ロジクールF710

【カメラ】
    RaspberryPiカメラV1 広角レンズ

【micro SD】
    32MByte

【モバイルバッテリー】
    Raspberry Pi へ電源供給

【組み立て完成図】

           

   

      

 -----  と、今回は 車の組み立ては終わってる前提で、ここからが本題!  -----

参考にするのは、

CQ出版社 インターフェース 2023年3月号 記事』 

AIがピッタリ…人間の操作よりも安定して好タイム!学習データも作りやすい

自動運転ラジコン・カーの製作

https://interface.cqpub.co.jp/wp-content/uploads/if2303_151.pdf

◆ ソフトウェアのインストール

【事前準備 インストール】
    ● Raspberry Pi Imager:使用したバージョン  1.7.3
    ● RealVNC Viewer
    ● WinSCP
    ● NetworkScanner
    ● TeraTerm

Raspberry Pi OS セットアップ】

http://ma2.la.coocan.jp/AI_Driver/tt02/view.cgi?fname=install.txt&fsize=5

1. Raspberry Pi Imager を起動

2. 「OS を選ぶ」/ Debian Bullseye の Full でも Lite でもないやつ を 選択
   
    Raspberry Pi OS (other) を 選択
   
    Raspberry Pi OS (Legacy, 64-bit)を選択
   
         
3. 「詳細な設定」/ 画面右下の ギヤマーク を選択
   

   

   

   

4. ストレージを選択して書き込み!!

--- 書き込み終了! ---

5. SSH を有効にする
   1) Raspberrry Pi OS を書き込んだ micro SD を もう一度カードリーダーに
   2) 中身無し、拡張子無し、ファイル名 ssh のファイルを作成
   3) Raspberry Pi OSをインストールしたmicro SDカードのbootディレクトリ直下に、2) で作成した空の“ssh”ファイルをドラッグアンドドロップで置く
       というのも、bootディレクトリの下でファイルを作成しようとすると固まったからw
   4) NetworkScanner を起動し、現在のネットワーク環境を見ておく
   5) Raspberrry Pi に micro SD をセット、電源をいれる
   6) 最初は少し時間がかかるが、ある程度したら 再度 NetworkScanner を起動
       増えたものが Raspberrry Pi

6. TeraTerm で raspberrypi.local で接続!できた!

    サイトを見ながら。。。
    http://ma2.la.coocan.jp/AI_Driver/roba/view.cgi?fname=install.txt&fsize=5

7. Raspberrry Pi OS アップデート & アップグレード
    1) sudo apt-get update
    2) sudo apt-get upgrade

8. raspi-config による設定
    1) sudo raspi-config 
    2) 以下の項目を設定
        ・ 2 Display Options
                ⇒ D5 VNC Resolution
                     ⇒ 1024×768
                ⇒ D6 Composite→V2
                     ⇒ Yes
        ・ 3 Interface Options
                ⇒ I1 Legacy Camera
                     ⇒ Yes
                ⇒ I3 VNC
                     ⇒ Yes
        ・ 6 Advanced Options
                ⇒ A1 Expand Filesystem
                     ⇒ OK

9. python の仮想環境を作成
    1) python3 -m venv --system-site-packages ~/venv
    2) source ~/venv/bin/activate

10. ライブラリをインストール
    1) pip install --upgrade pip
    2) pip install tensorflow
    3) pip install tensorflow_io
    4) pip install tflite-runtime
    5) pip install opencv-python

    ※ 長い時があるけど、じっとガマン!

11. 作業フォルダを作成してファイルをダウンロード
    1) mkdir ~/AI_Driver
    2) cd ~/AI_Driver
    3) wget http://ma2.la.coocan.jp/AI_Driver/roba/download/aidriver.py
    4) wget http://ma2.la.coocan.jp/AI_Driver/roba/download/cfg.py
    5) wget http://ma2.la.coocan.jp/AI_Driver/roba/download/movie.py

12. WinSCP を 使って ~/.bashrc の最後に以下3行を追加
      source ~/venv/bin/activate
      cd ~/AI_Driver
      sudo pigpiod
     
      ※ WinSCP の 環境設定を変更:パネル - 隠しファイルを表示する

13. exit して再ログイン
      ※ exit すると、ヒストリ が溜まっていく / bash_history ファイルが更新される

14. 無線ゲームコントローラのドングルを RaspberryPi に挿す

15. RealVNC Viewer を起動し接続:raspberrypi.local または IPアドレス

16. コンソールを起動し、
      1) カメラ認識 の確認
          ls /dev
          video0  があれば OK!
      2) ゲームコントローラ認識 の確認
          ls /dev/input
          js0  があれば joystick OK!
      3) カメラとゲームコントローラの動作確認
          python aidriver.py 
          ※ 時間かかるけどガマン!!
         

 

【ためしてみよう!】

★ コントローラの赤ボタンを押すと画像が保存されるぞ!

     ⇒ 画面に枚数が表示される! 再 赤ボタン で止まる

     ⇒ WinSCP で AI_Drive フォルダを見ると log フォルダがあり .jpg でいっぱい!

★ 「Qキー」でプログラムが停止するぞ!

     ⇒ WinSCP で AI_Drive フォルダを見ると log フォルダがあり .csv あり!

★ 「ctrキー + Cキー」で止める!

⇒ .jgp(写真) と .csv(サーボやESC情報)を  TensorFlow で学習する

 

まだ、サーボはつないでないので、次回は、

● サーボの確認 & 手動走行

● 教示データ作成

● AI の学習/深層学習(google Colaboratory, TensorFlow)

 

そして、以前作ったモノもまた活躍するときがやってきた ^^#

【minion バスに大変身】

   

   

【minion カラーの可愛いト音記号のコース ^^#

   

【車窓から ^^#】

   


最後までお付き合い下さりありがとうございました ^^#