ニュース
NVIDIA、250ドルでエッジAI入門を実現するJetBotプロジェクトを
~Jetson Nanoを利用してプログラムを作成し、AI教育用途などにも最適
2019年3月22日 12:13
米NVIDIAは、3月18日~3月21日(現地時間)に米国カリフォルニア州サンノゼ市にあるサンノゼ・マーキュリー・コンベンションセンターにおいてプライベートイベント「GTC」を開催した。
そのGTCの展示会においてNVIDIAは、「JetBot」(ジェットボット)プロジェクトと呼ばれる、ハードウェアのオープンソース的な取り組みを明らかにした。JetBotの仕様はGitHubで公開されており、そこに公開されているドキュメントに従って必要なパーツを購入して組み立てるだけで、簡単にAIを利用したロボットを作り上げることができる。
NVIDIAによれば99ドル(税別)のJetson Nanoと、150ドル以下の市販の各種部品、そしてその購入にかかる送料だけがコストで、総額250ドルで、AI画像認識が可能なロボットが組み立てられることが可能になるという。組み立てた後は、Jetson NanoにOSを組み込み、Jupiter NotebookというWebブラウザベースの開発ツールを利用してAIプログラムを作ることが可能になる。
そうしたエッジAIのプログラムを学ぶ素材として必要になるのは、Webブラウザが動くPC(Windows、macOS、Chrome OSなど)とJetBotだけになるので、これからDLの学習について学んで行きたい学生や初心者のメイカーなどにとっても注目な存在となりそうだ。
Jetson Nanoをベースにしたオープンソースのロボット開発キットとなるJetBot
今回のGTCでは、Jetson Nanoと呼ばれるMaxwell世代のTegra X1を搭載したモジュールが発表された(購入レポート)。Jetson NanoはすでにNVIDIAの代理店などから日本でも予約が開始されており、代理店でも予想より売れているなどの嬉しい悲鳴があがっているようだ。
NVIDIAはGTCでそうしたJetson Nanoの展示も行なっているが、そのなかでもっとも注目を集めていたのが、JetBotプロジェクトだ。
JetBotは、言ってみればハードウェアのオープンソースプロジェクトだ。具体的に言うと、JetBotの作り方は文書としてGitHubにアップロードされている。最初のたたき台の部分を作ったのはNVIDIAのJetsonのチームだが、今後はコミュニティがその設計図やマニュアルなどを改訂していくことになる。こうした取り組みは、Raspberry Piでも行なわれているが、Jetsonファミリでは初の取り組みとなる。
説明員によれば、このGitHubに上がっている文書には、Jetson Nanoを利用してAIにより自動走行を可能にする車両の組み立てマニュアル、部材リスト、筐体を作るための3Dプリンタ用のデータファイルなどが上がっており、それを確認して部材を手に入れ、筐体を3Dプリンタで作って作ると、JetBotを組み立てられるという。
すべてオープンソース扱いなので、たとえばNVIDIAの代理店などがこれらのパーツをキットにして販売するといったことも可能になる。実際、そういうことを検討している代理店もあるそうだ。日本でもJetson Nanoは代理店経由で販売されているので、そういう可能性もないとは言えないだろう。
筐体を3Dプリンタで作成し、Jetson Nano、カメラ、バッテリなどを装着して組み立てる
JetBotの筐体は、3Dプリンタで作られている。データはGitHubにおいて、STLファイルという形式でデータが提供されている。この形式であれば多くの3Dプリンタで読み込んで作成することが可能とのことだ。なお、GitHubには作成できた3Dプリンタの一覧なども公開されているという。わざわざ3Dプリンタを買うのはちょっとという人なら、3Dプリンタの出力を行なってくれる業者に出力だけを委託する方法も考えられる。
JetBotにはMIPI CSIで接続されるカメラを接続することができる。GTCのJetBotのテクニカルセッションで説明を行なったNVIDIA テクニカルプロダクト マーケティングマネージャー 矢戸知得氏によれば「USBのカメラを利用することも可能だが、CPUへ負荷がかかるため、リアルタイム性を重視するならMIPI CSIのカメラがおすすめ」とのことで、「Raspberry Pi Camera Module V2-8 Megapixel (IMX219)」というRaspberry Pi用のカメラなどが利用できるという。
なお、同じようにWi-FiもJetson Nanoの開発ボードに用意されているM.2にWi-Fiモジュールを装着し、アンテナを取り付ける方法とUSBがあるが、日本向けには電波法で認定を受ける必要があるので、USBを使うことが奨励される。
バッテリもユニークで、元々はスマートフォン用として販売されているモバイルバッテリを利用している。矢戸氏によれば「2つの出力があるものを用意して1つはJetson Nanoの電源用に、もう1つがモーターの駆動用に使っている」とのことで、ボード側の動作に影響を与えないように注意して部材が選ばれているという。
なお、詳細はGitHubで公開されているJetBotのWiKiを参照して欲しいが、NVIDIAが稼働を保証するのはあくまでJetson Nanoだけで、それ以外のパーツはもちろんNVIDIAの稼働保証はない。そこはオープンソースのソフトウェアと同じく、自助努力でなんとかできる人向けだと考えた方がいいだろう。
組み立てた後はJupiter Notebookを利用したPython3で開発が可能
組み上がったJetBotはロボットをとして利用することが可能だが、最大の特徴は「Jupiter Notebook」という開発ツールを利用してプログラムを作れることだ。Jupiter NotebookはWebブラウザベースで使える開発ツールで、Python3という言語を利用してビジュアル的にプログラムを組むツール。はじめてプログラムを組むユーザーであっても、ブラウザ上で動画などを利用してプログラムを組める。
JetBotでは、組み立てた後GitHubなどで公開されているOSなどをインストールすると、Jupiter Notebookのサーバーも同時に導入される。IPアドレスは、JetBotに取り付けられた超小型ディスプレイに表示されるので、開発を行なうユーザーはそのIPアドレスを指定してWebブラウザでアクセスするだけだ。
これにより、Windows PCやmacだけでなく、Chromebookのようなブラウザしか使えないような端末からでも利用できるので、学校など端末の仕様に限りがある環境でも利用できる。
その後はJupiter Notebookを利用して深層学習の学習を行なうことができる。といってもデータセットをたくさん用意するというわけではなく、JetBotと接続して、JetBotのカメラを接続して、カメラにこれが映ったら停止するとか、曲がるとかそういう学習データを用意する。
用意したデータは本体で学習させることもできるが、Jetson上でやると膨大な時間がかかるため、GeForce/CUDAが利用可能なデスクトップPCなどでやるのがおすすめとのことだった。学習したデータはJetBotに対してJupiter Notebook経由でアップロードして、JetBotで推論のデータとして活用できる。
Raspberry Piを使ってロボットなどを自作している人は少なくないと思うが、Jetson Nanoの特徴はCUDAが利用できるGPUを内蔵していることで、深層学習の推論がエッジデバイス上で利用できること。これからそういうことを勉強してみたいという学生や、これからメイカーを目指すという人にとって、最初の一歩として250ドルでここまでできれば、入門用のキットとして、大学などでAIのプログラムを教える教材として有望な選択肢になっていくのではないだろうか。