Slide 1

Slide 1 text

TatamiRacer2 TatamiRacer ミニ四駆ベースのDonkeyCar製作と AI駆動カスタマイゼーションの試み 小林 弘一 Koichi Kobayashi AI RCカー Meetup 2024

Slide 2

Slide 2 text

TatamiRacer2 TatamiRacer TatamiRacer • ミニ四駆キット(VZシャーシ)を使った超小型AIカー • 畳一畳スペースで走行可能 • 3Dプリンターで造形したパーツを使用 • オープンソースで公開(3Dデータ、部品表、ソース コード) だれでも自由に製作可能 https://github.com/covao/TatamiRacer RCカー(1/10)ベース のAIカー ミニ四駆ベースのTatamiRacer 2

Slide 3

Slide 3 text

TatamiRacer2 TatamiRacer ハードウエア • Raspberry Pi4/5/Zeroに対応 • フロントカメラ • 3Dプリントパーツとマイクロサーボによるステアリング • ハードウエアをアップデート中(近日公開予定) • モバイルバッテリー 小型軽量化 103g⇒60g(-42%) • オプションで差動2輪タイプ、2D Lidar モバイルバッテリー 5V/2.1A カメラ モータードライバー 低回転型130 DCモーター マイクロサーボ Raspberry Pi4 Model B 3 差動2輪タイプ (オプション)

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

TatamiRacer2 TatamiRacer DonkeyCar • オープンソースの自動運転AIカー(ホビー向け) • ラジコンカーを改造し、カメラ、コンピュータを載せて自動走行 • ディープラーニングにPythonベースのTensorflowを使用 • Pythonクラスのパーツでセンサやアクチュエータを組み合わせ ることで、カスタマイズ可能 5 https://www.donkeycar.com/ https://github.com/autorope/donkeycar/tree/main/donkeycar

Slide 6

Slide 6 text

TatamiRacer2 TatamiRacer TatamiRacerのコードカスタマイズ • manage.py(コントローラ)とmyconfig.py(パラメータ)をカスタマイズ • ソースコード、セットアップ方法をGitHubに公開 6 myconfig.py https://github.com/covao/TatamiRacer/blob/master/raspi/mycar/myconfig.py manage.py https://github.com/covao/TatamiRacer/blob/master/raspi/mycar/manage.py

Slide 7

Slide 7 text

TatamiRacer2 TatamiRacer Web UIのカスタマイズ • スマホを使ってPCなしでリモート操作 (標準のDonkeyCarでも利用できます) • スマホでTatamiRacerを操作しやすくするためUIを改良 (HTML+JavaScript+p5.js) 7 DonkeyCar標準のWebUI Donkey Copilot https://github.com/covao/DonkeyCopilot

Slide 8

Slide 8 text

TatamiRacer2 TatamiRacer コントローラとキャリブレーション コントローラ ・発進時やコーナーリング時のトルク改善 キャリブレーションツールを自作 Python • GUIで設定可能 • ステアリングのセンターポジションなどを調整 • 設定パラメータをmyconfig.pyに自動保存可能 8

Slide 9

Slide 9 text

TatamiRacer2 TatamiRacer 生成AI(LLM)を使ったカスタマイズ • これまで玄人向けのDonkeyCarのカスタマイズに時間を費やしてきましたが… • 生成AIを使えば、Donkey Car Parts(Python, Javascript) のコード生成など、かなり効 率化できそう • ChatGPT-o, Claude 3.5など、これらのコード生成能力に優れる • In-context Learningの活用 Donkey CarのPartsクラスコードをテープレートやサンプ ルとしてプロンプトに与える 9

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

TatamiRacer2 TatamiRacer https://github.com/covao/TatamiRacer ご清聴ありがとうございました 11