Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ミニ四駆ベースのDonkeyCar製作とAI駆動カスタマイゼーションの試み

 ミニ四駆ベースのDonkeyCar製作とAI駆動カスタマイゼーションの試み

2024年7月28日 AI RC カー Meetup ライトニングトーク発表資料
https://ai-rc-mft2023.connpass.com/event/325192/

畳一畳で走る!ミニ四駆ベースAIカー TatamiRacer
https://github.com/covao/TatamiRacer

covao / Koichi Kobayashi

July 28, 2024
Tweet

Transcript

  1. TatamiRacer2 TatamiRacer TatamiRacer • ミニ四駆キット(VZシャーシ)を使った超小型AIカー • 畳一畳スペースで走行可能 • 3Dプリンターで造形したパーツを使用 •

    オープンソースで公開(3Dデータ、部品表、ソース コード) だれでも自由に製作可能 https://github.com/covao/TatamiRacer RCカー(1/10)ベース のAIカー ミニ四駆ベースのTatamiRacer 2
  2. TatamiRacer2 TatamiRacer ハードウエア • Raspberry Pi4/5/Zeroに対応 • フロントカメラ • 3Dプリントパーツとマイクロサーボによるステアリング

    • ハードウエアをアップデート中(近日公開予定) • モバイルバッテリー 小型軽量化 103g⇒60g(-42%) • オプションで差動2輪タイプ、2D Lidar モバイルバッテリー 5V/2.1A カメラ モータードライバー 低回転型130 DCモーター マイクロサーボ Raspberry Pi4 Model B 3 差動2輪タイプ (オプション)
  3. TatamiRacer2 TatamiRacer ワークショップ https://dsforum.jp/2022/special/1802/ • Design Solution Forum 2022 特別企画にて、

    TatamiRacer製作体験のワークショップを開催 • DMM,makeプリントサービスを利用して3Dパーツを製造 • スマートフォンを使用 • Real VNCを利用したラズパイのリモートデスクトップ操作 https://qiita.com/usashirou/items/61def36882d1e759d6d8 TatamiRacer360度カメラの映像 4
  4. TatamiRacer2 TatamiRacer DonkeyCar • オープンソースの自動運転AIカー(ホビー向け) • ラジコンカーを改造し、カメラ、コンピュータを載せて自動走行 • ディープラーニングにPythonベースのTensorflowを使用 •

    Pythonクラスのパーツでセンサやアクチュエータを組み合わせ ることで、カスタマイズ可能 5 https://www.donkeycar.com/ https://github.com/autorope/donkeycar/tree/main/donkeycar
  5. TatamiRacer2 TatamiRacer 生成AI(LLM)を使ったカスタマイズ • これまで玄人向けのDonkeyCarのカスタマイズに時間を費やしてきましたが… • 生成AIを使えば、Donkey Car Parts(Python, Javascript)

    のコード生成など、かなり効 率化できそう • ChatGPT-o, Claude 3.5など、これらのコード生成能力に優れる • In-context Learningの活用 Donkey CarのPartsクラスコードをテープレートやサンプ ルとしてプロンプトに与える 9
  6. TatamiRacer2 TatamiRacer 参考 UDP通信のParts作成プロンプト例 テンプレート ## DonkeyCar Python Parts class

    MyParts(): ''' Parts Template Timer example ''' def properties(self): # Write Parameter Variable self.Param_Count = 1 # Example def __init__(self): # Write Initializetion self.counter = 0 # Example self.properties() def run_threaded(self, In_Reset=0): # Write Execution Example self.counter = self.counter + self.Param_Count # Example if In_Reset > 0: # Example self.counter = 0 # Example return self.counter # Example def update(self): pass def shutdown(self): # Write Terminate Code pass 10 UDP送信 # 以下のテンプレートを用いてPythonクラスを作成 - クラス名:UDPSend - 入力 - 送信データ uin8配列 - 出力 - パラメータ - IPアドレス - ポート番号 - 処理 - UDP通信で送信 • DonkeyCar用UDP通信の送受信クラス作成の例 • プロンプトとして、クラス名、入力、出力、処理を自然言語で記述 UDP受信 # 以下のテンプレートを用いてPythonクラスを作成 - クラス名:UdpRecieve - 入力 - 出力 - 受信データ uin8配列 - パラメータ - IPアドレス - ポート番号 - 処理 - UDP通信で受信