#はじめに
Aloha
2020年から始まったコロナ禍の中で、旅行に行くこともなく自宅にいる機会が圧倒的に増えたため、自宅でJetson Nanoを買ってTensorFlowとか試していたのですが、自動運転プラットフォーム Donkey Carの存在を知り、作ってみたくなりました。
NVIDIAの公式サイトでは、AIロボットカーのJetbotプロジェクトが公開されていて、キットを販売している企業もあったり、3Dプリンタでシャーシを出力するスキルやコスト負担ができればすぐに作れそうな感じでした。
キットの購入を検討したのですが、海外メーカーのものは、バッテリー周りのPSEマーク(電気用品安全法)問題があったりで個人輸入できませんでした。国内メーカーのものは、素晴らしいものがいくつかあるのですが、ちょっと遊ぶには高価であきらめていました。
2021年に入り、再び情報収集をしていると、シャーシとモーター、車輪がセットになっている部品が販売されていることを知りました。しかも2000円ちょっとで!これを使うと半田付けすることもなく、ドライバーで組み立てるだけでできそうだということがわかってきました。
今回は、組み立てるだけでJetson NanoによるAIロボットカーキット(SparkFun JetBot AI Kit v2.1 Powered by Jetson Nano相当)について、日本国内で入手できる部品リストをお届けします。
SparkFunでは、QwiicシステムというArduino向けの拡張ボードが色々出ていて、数珠繋ぎ(デイジーチェーン)をすれば使えるという手軽さで選択しました。
#部品リスト(2021/3/17現在)
部品名 | 商品名 | 参考URL | 個数 | 備考 |
---|---|---|---|---|
本体 | NVIDIA Jetson Nano B01 | スイッチサイエンス | 1 | |
micro SDカード | Transend TS128GUSD300S-AE | Amazon | 1 | ・128GB |
バッテリー | Anker PowerCore III 10000 Wireless | Amazon | 1 | ・出力:USB Type A(5V/3A) ・Jetson Nanoに接続するmicro USBケーブル必須(10〜20cm程度) |
カメラ | Raspberry Pi カメラモジュール V2 | スイッチサイエンス | 1 | |
シャーシ / モーター / 車輪等 | JetBot Chassis Kit V2 SFE-ROB-17279 | スイッチサイエンス | 1 | ・ベースプレート x 2 ・モーターマウント x 4 ・車輪 x 2 ・モーター x 2 ・カメラマウント(カメラ2台取り付け可) x 1 ・ボールキャスタ x 1 ・ネジ類 |
I2Cバス変換基板 | SparkFun Qwiic pHAT V2.0 for Raspberry Pi SFE-DEV-15945 | スイッチサイエンス | 1 | |
ディスプレイ | Qwiic - 小型OLEDモジュール SFE-LCD-14532 | スイッチサイエンス | 1 | |
モータードライバ | Qwiic - モータードライバモジュール SFE-ROB-15451 | スイッチサイエンス | 1 | |
スタンドオフ | Litorange M2-320PCS-ナイロン | Amazon | 1 | ・M2を使いましたがM3の方が太くて良さそう |
ケーブル | Qwiic - ケーブルキット SFE-KIT-15081 | スイッチサイエンス | 1 | |
ケーブル | ELEGOO JP-EL-CP-004 | Amazon | 1 | ・20cmのオス-オスを1本使用 |
Wi-Fiドングル | 1 | ・UbuntuでWifiにつながるものであればなんでもOK | ||
ゲームパッド | Logicool F710 | Amazon | 1 | ・2.4GHz帯 ・テレポーテーション(遠隔操作)する場合に使用) |
USBキーボード | 1 | ・Ubuntuで使えるものであればなんでもOK ・Wi-Fiの設定時のみ使用します。 |
||
USBマウス | 1 | ・Ubuntuで使えるものであればなんでもOK ・Wi-Fiの設定時のみ使用します。 |
||
HDMIケーブル | 1 | ・一般的なHDMIケーブル ・Wi-Fiの設定時のみ使用します。 |
||
PCディスプレイ | 1 | ・一般的なPCディスプレイ ・HDMI - USB変換器を使えば、MacBookがディスプレイになります。その場合は、USBカメラ入力アプリが必要で、Quick Cameraなどがあります。 ・Wi-Fiの設定時のみ使用します。 |
#ソフトウェアリスト
名称 | URL | 参考 |
---|---|---|
Sparkfun Jetbot Image 1.11 | https://sfecdn.s3.amazonaws.com/jetbot/sparkfun_jetbot_v01-11.zip | ソフトウェアのセットアップについては、以下のページを読んでください。 Assembly Guide for SparkFun JetBot AI Kit V2.0 |
balenaEtcher | https://www.balena.io/etcher/ | Jetbot ImageをSDカードへ簡単に焼くことができます。今回の場合、64GB以上のSDカードが必要です。初期化されるので初期化済みのSDカードを使いましょう。 |
#組み立て例
##1.シャーシへモーターを取付
##2.シャーシへのスタンドオフ(スペーサー)の取付
##3.後輪(球)の取付準備
##4.後輪(球)の取付
##5.前輪とカメラ台の取付
##6.モータードライバとOLED(小型ディスプレイ)の取付
##7.HATの取付
##8.カメラモジュールの取付(完成)
##参考.OLEDの表示(IPアドレスがわかる)
#補足情報
①Jetson Nano本体にキーボード、マウス、Wi-Fiドングル、HDMIケーブル経由でディスプレイに接続し、バッテリーを接続するとJetsonのGUIが表示されます。アカウント名と初期パスワードは、「jetbot」です。
②Wi-FiのSSIDとパスフレーズを入力して、接続を行うと、OLEDにIPアドレスが表示されます。ここまでできれば、
③Jetson Nanoで動いているJetPack(Ubuntu)には、mDNSに対応しているため、IPアドレスがわからなくても同一のネットワークに繋がっている場合は、「jetson.local」というホスト名になっています。
例えば、Macのターミナルで
% ping jetson.local
とするとpingの応答があります。
通常、ホスト名は、DNSサーバーでAレコードを登録しないと名前解決できないわけですが、mDNSに対応しているため、名前解決できるのです。mDNSは、AppleだとBonjour(ボンジュール)と呼ばれていて、IETFでは、Zero Configuration Networkingと呼ばれています。
④Jetbotは、ブラウザ経由でアクセスして、Jupyter Notebookを使います。アクセスするためには、Google Chromeなどのブラウザから次のようにアクセスします。
http://jetson.local:8888/
⑤ゲームパットを使用して、遠隔操作(テレポーテーション)を行う場合は、Jetson Nano本体にゲームパッドを繋ぐのではなく、Jupyter Notebookを開いている外部のPCやMacにゲームパッドを接続します。これは、HTML5のGamepad APIを使用しているからです。ここが地味に躓くポイントかもしれません。
⑥バッテリーの出力が3A以下の製品だと、カメラモジュールを起動して画像認識する際に電力不足で強制終了されるようですので、電流にはご注意ください。
#おわり
思い立ってから半年くらいが過ぎてしまいましたが、簡単にAIロボットカーを組み立てることができました。
ようやく準備が整ったので、ライントレースなどやってみようと思います。
Mahalo