Jetson nanoを用いた工作 ~購入からセットアップまで~
#stay home #jetson_nano #IoT GWが終盤に差し掛かりましたが、今日はGWに入ってから購入したJetson nanoについて解説します。 以下、購入してからの私のTweetです。 jetson nanoセットアップしていきまーす!リアルタイムで作業をした時のTweet
サクッとセットアップ済ませたい☺️☺️ pic.twitter.com/te99x5YJND
とりあえずサクッとケースに入れてセットアップまでしてみたけど、jetsonではまだubuntu20.04は使えないのかな?
— takeshi miura (@1222_takeshi) 2020年5月4日
特に考えずにjetpack入れちゃったからよくわからんが🤔🤔 pic.twitter.com/8lCI2nxTAp
起動時にCPU負荷結構かかってるけど起動してからはだいぶ安定してるね、安定してないと困るけども🙄 pic.twitter.com/H0amyB3WLS
— takeshi miura (@1222_takeshi) 2020年5月4日
購入リスト
今回は私は以前改造したルンバのメインPCをjetson nanoに換装してDeep Learningをしてみたいなと思い購入に至りました。
一部異なるものもありますが、購入したものは主に以下の通りです。
Jetson nano本体です。旧バージョンであるA02とB01の2種類がありますが大きな違いとしてはカメラを2つ付けられるかどうかというところです。
私のようにロボットに使いたい場合は新しいB01を購入する方がいいかと思います。
raspberryPiで使用できるカメラです。V2からしか使用できないようなので注意が必要ですが、私は以前購入していたものがあったのでこれを用いることにしました。Jetson用のカメラもあるようなのでそちらを購入するのもいいかもしれませんが、性能はたいして差がないように感じたので安いしこれでいいかもしれません。
また、リファレンスはこちらの方が多めかも…
Jetson nano用のケースになります。Jetson nanoを購入するときの注意点としては、raspiとは異なり、電源用のスイッチが必要であるということです。そのため、こちらの商品に搭載されている電源はかなり有用です。また、リセットボタンやwifiアンテナの拡張用ポートなどもいているので使い勝手がいいかと思います。注意点としては、SDカードを取り出すのにいちいちばらす必要があるので、SDカードを頻繁に変える人には向かないかもしれないです。
こちらはファンです。Jetson nanoはraspiと同様にヒートシンクでの排熱しかしないためかなり熱が出ます。特にDeep Learningをする場合は熱でパフォーマンスが落ちるか王政があるので必ずファンをつけることをお勧めします。
こちらの商品はUSB版ですが、以下のようにピンで接続できるものもあるのでUSBポートをあけておきたい人、ほかのUSB機器を用いる可能性のある人はピン版の方がいいかもしれないです。
2ピン版
ANVISION 40 x 40 x 10mm 4010 デュアルボールベアリング DC 12V ブラシレス冷却ファン UL CE YDM4010B12
4ピン版
オウルテック 安心の2年間交換保証 PCケース用山洋電気製静音ファン 4cm 10mm厚 5000rpm SF4-S5
上記の2ピン版と4ピン版の違いはPWMで回転速度を制御できるかどうかというところです。回転数を制御することで消費電力を抑えたり、回転による騒音を削減したりできます。私は2ピン版を購入しているのですが、正直あまりうるさいとは思わないので音に神経質な方でなければ2ピンで問題ないかと思います。
microSDカードです。jetson nanoのOSにjetpackを用いる場合、imgファイルだけで15GB程度あるので最低でも32GBのSDカードは必要です。Deep Learningをする場合は学習データなどかなりの容量が必要となるので私は128GBにしました。(これでも足りない気もしますが…)
電源供給用のACアダプタです。microUSB給電でも動作しますが、最低2Aは用意したほうがいいです。CPUの負荷が多いbuild作業やGPU, メモリの使用量が大きいDeep Learningをする場合は4AのACアダプタを使用することをお勧めします。
Jetson nanoのセットアップ
OSの準備
まずは以下のようにリンクからJetpackをダウンロードします。
https://developer.nvidia.com/embedded/jetpack
容量が大きいのでダウンロードに少し時間がかかります。
次に、SDカードを挿入して、フォーマット、イメージファイルの書き込みをしていきます。
SDカードを挿入したら、新しいもの、古いもの関わらずフォーマットをします。そのため、事前に入っていたデータはすべて消えるので注意してください。
私はフォーマットには以下のソフトウェアを使用しました。
https://www.sdcard.org/jp/downloads/formatter/
次にSDカードにダウンロードしたイメージファイルを書き込みます。
私は、balena Etcherを使用しました。これを使用した理由としては、zipファイルのまま書き込みができるからです。
ここまででSDカードへのイメージの書き込みは終了したのでSDカードを抜いてJetson nano本体に挿入します。
ハードウェアの構築
私の作業環境です。汚いのはご愛嬌ということで…
基本的には取説に書いてあるように配線し、取り付けていきます。
注意点としては、SDカードを入れる場所がわかりにくい+挿入しにくいので先に挿入しておくことをお勧めします。
Jetson nano起動
組み立てが終了すると以下のようになります。
これを起動していきます。
起動し、言語やタイムゾーンなどの設定を完了すると上図のようになります。
ここまでできれば通常のUbuntu18.04として使用できます。
ちなみにUbuntuは現在20.04までバージョンが出ていますが、jetpackでは20.04のサポートは出ていないようです。
システムの詳細は以下のようになってます。
ここでは最初に32GBのSDカードで環境を作っていたのでDisk30.3GBと表示されていますが今は128GBにしてあります。
ここまででセットアップは終了ですが、現在できている部分の一部を公開しますと、Deep Learningを用いて、以下のような推論を実現できています。
椅子やベッドなど少ししか見えてないのに推論できています。
fpsもかなり出ているように感じるのでとても使えるのではないかと思っています。
次回はもう少し実装編を書きたいと思います。
ちなみに参考図書は以下のものです。
karaageさんはブログもかなり高いクオリティでとても参考になります。
ぜひ見てみてください。