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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Koichi Kobayashi Koichi Kobayashi
July 28, 2024
170

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

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

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

Avatar for Koichi Kobayashi

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通信で受信