Help us understand the problem. What is going on with this article?

Jetson Nano関係のTIPSまとめ

jetson_nano.jpg

Jetson Nanoの初期セットアップ方法・必要周辺機器など

 NVIDIAのシングルボードコンピュータJetson Nano買いました。購入方法や、セットアップ方法は、ブログに書いたので以下記事参照下さい。

Jetson Nanoをセットアップしてディープラーニングで画像認識試してみた

 必要な周辺機器などは、以下の記事にまとめていますので参照下さい。

Amazonでまとめて買える!Jetson Nanoのおすすめ周辺機器

 本記事では、Jetson Nanoに関するちょっとしたTIPSや有益な情報などをまとめていきます。随時更新しています。

 追記:JetPack4.4に対応した記事を書きました
Jetson NanoにJetPack 4.4を入れてTensorFlow・物体検出・姿勢推定・ROS2(Realsense)動かしてみた

Jetson Nano TIPS

過去のSDイメージファイル・バージョン確認方法

 SDカードの過去のイメージファイルを使いたい場合は、以下記事参照下さい。

Jetson Nanoで使えるSDカードのイメージファイルまとめとイメージ書き込み方法

 SDカードのバージョンが分からなくなったときは、以下のコマンドで調べられます。

$ cat /etc/nv_tegra_release 

 1行目に表示されるのが、SDカードのバージョン情報です。例えば以下の場合は、 r32.1 となります。最後の日付が、作成された日になるので、どの程度古いイメージかが判断できます。

# R32 (release), REVISION: 1.0, GCID: 14531094, BOARD: t210ref, EABI: aarch64, DATE: Wed Mar 13 07:46:13 UTC 2019

 ただ、実は/etc/nv_tegra_releaseがないバージョンもあります(r32.2.1とか)。その場合は、以下コマンドで確認可能です。

$ dpkg-query --showformat='${Version}' --show nvidia-l4t-core

 以下のように表示されます。

322.1-20190812212815

ディープラーニング関係

 ディープラーニング関係のセットアップ方法や応用例は、以下記事にまとめました。

Jetson Nanoでディープラーニング

GPU負荷のモニタリング方法

tegrastatsを使う方法

 標準でセットアップされているtegrastatsを使うと、簡単にCPU、GPU負荷、メモリ使用量等をCUIで確認できます。以下コマンド実行するだけです。

$ tegrastats

gpuGraphを使う方法

 以下ソフトを使用します。
gpuGraph

 使用方法は以下です。

$ git clone https://github.com/JetsonHacksNano/gpuGraph
$ cd gpuGraph
$ python3 gpuGraph.py

 以下のようなモニターが表示され、GPU消費量を確認できます。
gpu_monitor.jpg

Swapファイルの設定

 installSwapfileというリポジトリのスクリプトファイルを使えば、以下2行実行するだけで6GのSwapファイルが生成されます。

$ git clone https://github.com/JetsonHacksNano/installSwapfile
$ cd installSwapfile
$ ./installSwapfile.sh

 Swapファイルのサイズを変更したい場合は、installSwapFile.shSWAPSIZE=6を好きな数字に変更しましょう(6Gか4Gが推奨とスクリプトファイルには書いてあります)。

 確認は、以下のようにfreeコマンドで行います。

$ free -h

 以下のようにSwsapのtotalサイズが6.0GになっていればOKです。

              total        used        free      shared  buff/cache   available
Mem:           3.9G        864M        2.6G         30M        448M        2.8G
Swap:          6.0G          0B        6.0G

カメラ使用

ラズパイカメラモジュールの動作確認

 Raspberry Pi CameraモジュールV2が使用できます(V1は使用不可のようなので注意して下さい)。

 特別なセットアップは不要です。以下のQiitaの記事が詳しく、私も参考にさせていただきました。

Jetson Nano 開発者キットで Raspberry Pi カメラを使う

 ただ、カメラ表示はGPUを結構消費するらしく、ディープラーニングで画像認識をリアルタイムに行うときは、カメラ表示サイズは小さくした方がよいです。大きくすると、固まってしまいます。具体的には、widthとheightを300以下程度にしておくのが良いです。

 どうも、ディープラーニング等の重い処理とカメラを同時に走らせると、フリーズしてしまうことがあるようです。私の環境では、ディープラーニングの画像認識のときに発生しました。

 事前にカメラをしばらく動作させた方が安定するようです。テストスクリプトを作成しました。以下2行でダウンロードして実行できますので、よろしければ試してみて下さい。。

$ wget https://raw.githubusercontent.com/karaage0703/jetson-nano-tools/master/scripts/raspi_cam_test.py
$ python3 raspi_cam_test.py

追記: JetPack V4.4では、解像度設定 3280 x 2464ではカメラが動かないようです。解像度を 1920 x 1080 に落とすことで解決しました。スクリプトも修正しました。

参考:カメラ画像をJetson nanoで表示させたい

動画の保存方法

 スクリプト作成しました。以下2行で動画を保存できます。実行した場所にoutput.aviという動画ファイルが生成されます。

$ wget https://raw.githubusercontent.com/karaage0703/jetson-nano-tools/master/scripts/raspi_cam_save_video.py
$ python3 raspi_cam_save_video.py

USBカメラの使用方法

 普通のUSBカメラも使えます。Python+Open CVの場合は、カメラを以下のように指定しましょう。0はラズパイカメラに割り当てられているので、1になるようです。

cam = cv2.VideoCapture(1)

FAN制御の方法

 前提として、FANは5Vのものを購入するように気をつけましょう。詳細は以下参照下さい。

Jetson Nanoのファン購入に気をつけろ!

また、ネジの取り付けに関しては以下の記事が詳しいので参考にしてみて下さい。
Jetson Nanoにファン追加

 FANを付けたら、以下コマンドで制御可能です。

FANをON(MAX速度)するときのコマンド:

$ sudo sh -c 'echo 255 > /sys/devices/pwm-fan/target_pwm'

FANをOFFするときのコマンド:

$ sudo sh -c 'echo 0 > /sys/devices/pwm-fan/target_pwm'

 echoの後の数字を変えると、FANの速度を制御できます。大きくするほど速くなり255がMaxです。

 その他、以下コマンドでJetson Nanoのクロック速度を最大化したときもFANは最大速度に自動的に設定されます。

$ sudo jetson_clocks

参考:Jetson Nano Fan

VS Codeエディタでファイル編集

 Jetson NanoにVS Code(Visual Studio Code)エディタをインストールするのは大変なので、リモートの別のPCからssh経由でファイル編集する方法が手軽で良いです。以下はRaspberry Pi上のファイルに対して編集する例ですが、Jetson Nanoに対しても、全く同じことができます。

VS Code(Visual Studio Code)でRaspberry Pi上のファイルをリモートからファイル編集する手軽な方法

 VS CodeエディタをJetson Nanoにインストールしたい場合は、以下の記事が丁寧で参考になりそうです(私自身はまだためせていません)。 ビルドはかなり大変そうですが、興味がある方はどうぞ。

Jetson nanoにVS Codeをコンパイルしてインストールする

ホスト名をhostname.localでJetsonにアクセス

 IPアドレスでアクセスするのが面倒なので、Raspberry Piのように.localでアクセスできるようにします。 以下コマンドでavahi-daemonをインストールするだけです。

$ sudo apt-get install avahi-daemon

 これで、Jetson Nanoのホスト名がjetsonnanoだとすると、Macのターミナルから以下コマンドでsshでアクセスできます。

$ ssh karaage@jetsonnano.local

 Windowsでも同様と思いますが、古いWindowsでアクセスできない場合はiTunesをインストールすると解決するはずです。

パフォーマンスの最大化

 以下コマンドでパフォーマンスモードを変更できます。-mの後の数字が0のときが最大(Maxモード)で1が最小(5Wモード)です。

$ sudo nvpmodel -m 0

 現在のモードを知りたいときは、以下コマンドです。

$ sudo nvpmodel -q

 また、以下コマンドを実行すると、クロック周波数などのパフォーマンスを最大化できます。FANがついていれば、FANも最大速度で動作します。

$ sudo jetson_clocks

 現在の設定は以下コマンドで確認できます。

$ sudo jetson_clocks --show

 jetson_clocksの本体は /usr/bin/jetson_clocks なので、何をしているか知りたい場合は、直接ファイルの中身を確認しましょう($ less /usr/bin/jetson_clocksで確認できます)。

Jetson Nanoにリモートデスクトップ接続

 まだ未実施です。以下が参考になりそうです。

Jetson Nanoにリモートデスクトップ(VNC)環境を用意する

日本語入力

 TwitterのTLに流れていたのでメモ。まだ、自分は日本語入力しようと思ったことありません(笑)

ウィンドウのスクリーンショットの取り方

 Jetson NanoというかUbuntuあるあるですが、Alt + PrintScreenでのスクショが効かないので、以下のコマンド実行した後、スクリーンショットをとりたいウィンドウをアクティブにするとスクリーン画面をキャプチャーできます。

$ gnome-screenshot --window --delay=5

bashrcの設定

 以下くらいを設定しておくと便利です。

便利なbashrc設定のメモ Ubuntu(Raspberry Pi/Jetson Nano)

Jetson NanoにROSをインストールする方法

 以下記事参照下さい。

Jetson NanoにROSをインストールする方法

Jetson NanoでIntel Realsense D435を使う方法

Jetson NanoでIntel Realsense D435を使う方法(ROS対応)

Jetson NanoでRealsenseのPythonラッパーPyRealsenseを使用する方法

Jetson Nanoにpygameをインストールする方法

Jetson Nanoにpygameをインストールする方法(Python2/Python3)

Jetson Nanoでカーネルビルドする方法(MIDIを使う方法)

Jetson NanoでMIDIを使うためにカーネルビルド

Jetson NanoからMIDIでポケット・ミクを制御

Jetson NanoのSDカードを丸ごとハードコピー(イメージ化)する方法

Jetson NanoのSDカードを丸ごとハードコピー(イメージ化)する方法

Jetson Nanoとラズパイを組み合わせて使う方法

ラズパイをJetson Nanoのサブボードとして使う方法(電源供給とシリアル通信)

トラブルシューティング

lockファイル関係のエラー

 apt-getCould not get lock /var/lib/dpkg/lockというエラーがでるときの対応です。

 以下参照
Fix ‘E: Could not get lock /var/lib/dpkg/lock’ Error in Ubuntu [Quick Tip]

 ちなみに、私はlockファイルと間違えて/var/lib/dpkgを丸ごと削除してしまいましたが、以下で復旧できました。

How to recover deleted “dpkg” directory?

 lockファイルのエラーは、自動アップデートを停止すれば解消できるようです。自動アップデートを停止するスクリプトも自作のツール群のリポジトリjetson-nano-toolsに用意しました(このスクリプトはPull Requestいただきました)。

 以下で使用できます。

$ git clone https://github.com/karaage0703/jetson-nano-tools
$ ./jetson-nano-tools/disable-apt-autoupgrade.sh

ログが肥大化して残り容量が枯渇

 /var/log/syslogの容量が肥大化(数GB)して、残り容量が枯渇しました。

 nvargus-daemonError InvalidStateというエラーが書き込まれ続けているようです。ラズパイカメラをOpenCVで表示させたときに発生しています。

 原因と対策はまだ未実施です。

関連するGitHubリポジトリ

NVIDIA公式

jetracer
市販のラジコンを改造して、Jetson Nanoを載せてAI教育用の教材Jetracerとして仕立て上げるプロジェクト

Jetbot
JetbotというNvidia Nanoを使ったロボットのソフトと設計情報です。ロボットということで、カメラやモーターなどを動かすためのノウハウが詰め込まれており色々参考になります。

非公式プロジェクト

jetson-nano-tools
私が作成した、Jetson Nanoを手軽にセットアップするためのスクリプト、便利に使うためのツール群です。

jetson-nano-accessories
Jetson Nanoの色々なマウントやアダプターの3Dデータ(stlファイル)を公開しているGitHubのリポジトリ。データ自体も良さそうだけど、何よりREADMEが見やすくて良いです。かなりプリントしたくなります。

Jetson Nano Baseboard
Jetson Nanoのオープンソースなベースボードの設計情報。自分でベースボード設計するときに参考になりそうです。

参考になるリンク

GW中Jetsonのことばかり語るカレンダー
GW中にJetson Nanoの情報を提供し続ける狂気のカレンダーです(笑) ブログ記事とYouTube動画を毎日アップし続けていてもの凄いコンテンツ量です。必見です!

Jetson Nano を使ってみる!!
Jetson Nano上でDARKNET(YOLO)をインストールしてテストする方法

JetsonHacks
Jetsonに関する多くの情報があります(英語)。もちろんJetson Nano情報も多数です。YouTube動画もたくさんあります。

NVIDIA Tegra Linux Driver Package Development Guide
NVIDIAの開発者向けのガイドです(英語)。Jetson関係の詳細仕様が公開されています。重要な情報がさらりと書いてあったりしますので、開発者は必読です。

Jetson NanoでGPGPU (CUDA) プログラミング ~ライフゲームの開発~
CUDAプログラミングに関する記事。めちゃ有用な予感です。

Jetson NanoでGPUとOpenCVが有効なYoloをビルドするには
Jetson NanoはYoloで物体検出している人が多い印象なので試してみたいです。

Jetson NanoのSPIを有効にする
SPIを使うための設定です。Raspberry Pi MouseにJetson Nanoを載せたりと面白そうなことをしています。

「Jetson Nano」に5GHz WiFi USBアダプタ「GW-450D2」を繋いでみたよ!(検証用まな板のSTLデータ公開有り)
5GHzのWiFi USBアダプタのセットアップ方法と、簡単な台座(まな板)の3Dデータの情報があります。

「Jetson Nano DevKit」のオリジナルケースを作って壁に掛けてみたよ!(STLデータ公開有り)
壁掛けもできるJetson Nano用のケースの3Dデータです。3Dプリンタ持っている人はプリント必至です!

Jetson Nanoインストールメモ
私がやってないことなども書かれているので、このページで不足情報あればこちらも参照してみて下さい。

3DプリンタなしでオリジナルJetbotを作った記録
日本版のJetbotを作っている記事。オリジナルのJetbotの部品は日本では入手しづらいものもおおいので、こういう情報は本当に助かりますね。

OpenCVの画像処理をGPU(CUDA)で高速化する

Jetson NanoでTF-TRTを試す(Image Classification)

Jetson Zoo

【画像・音処理用】Jetson Nanoのセットアップ方法

Jetson‑IOがすごく良かった話とエラー対処方法
Jetson NanoのIO系はまだ全然触ってないのでメモ

Jetson Nanoに関するスライド資料

Getting Started with Jetson Nano
NVIDIAさん公式の資料です。Jetson Nanoを知らない人が概要を理解するのにピッタリです。英語資料です。

Jetson Nano x TensorFlowで始めるモバイルAI画像認識
私が、GoogleでGoogle NVIDIAさんに挟まれてJetson NanoとTensorFlowに関して発表したときの資料です。

Jetson Nanoはじめました
Jetson NanoでROSを使う方法を中心に、色々なTIPSがちりばめられています

Jetson Nanoの初心者向けの本を書きました

 「Jetson Nano超入門」というJetson Nano初心者向けの本を書きました!

 最短でJetson Nanoをある程度使えるようになりたいという人には絶好の本です。よろしければ是非。詳しくは以下リンク等参照下さい。

共著で書いた本「Jetson Nano超入門」が12/21に発売されます

karaage0703
闇のエンジニア/変なデジカメ開発中/ディープラーニング芸人/Raspberry Piとからあげ大好き/はてなブログ書いてます
https://karaage.hatenadiary.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした