Jetson Nanoを使ってみる(周辺機器、リモートデスクトップ接続)
はじめに
以前Jetson Nanoを手に入れたので、今回はこれからロボットの開発をするための準備です。追加で購入しないといけないものが色々とありました。
CLI(コマンドラインインターフェース)の操作があるのですが、全然慣れないですね。ある程度使い慣れてきたら、どこかにまとめておこうと思います。
▼入手したJetson Nano

▼以前の記事
▼Jetson Nanoのセットアップについて参考になったサイト
はじめてみよう!NVIDIA Jetson nano まずは知識と最初の起動! | FABSHOP.JP -デジタルでものづくり! ファブショップ !
▼公式のGetting Started
Getting Started With Jetson Nano Developer Kit | NVIDIA Developer
▼非常に参考になった書籍の最新版。Raspberry Piもそうなのですが、数年前の書籍であってもOSやライブラリのアップデートに対応できなかったりするので、できるだけ最新の情報を集めることを強く勧めます。

Jetson Nano 超入門 改訂第2版
OSイメージの取得
Jetson NanoはOSをインストールして使う開発ボードです。OSをインストールしたSDカードを差し込んで使います。Raspberry Piの場合も同様で、Raspberry Pi Imagerを使ってOSをインストールします。
私は以前購入した福袋にOSがインストール済みのSDカードが入っていたので、そのまま使っています。
▼JetsonのDownload Centerはこちら
Jetson Download Center | NVIDIA Developer
周辺機器
前回の記事でも紹介しましたが、Jetson Nanoの給電に適合しているのは5V4AのACプラグです。よくある12VのACプラグなどと間違えないように注意してください。見た目がそっくりです。
▼福袋に入っていたACプラグ。右が5V4Aです。

見落としそうなところですが、ACプラグで給電するときはJ48のピンをショートさせる必要があります。ジャンパーピンのような部品が必要です。
▼秋月電子で販売されているジャンパーピン
https://akizukidenshi.com/catalog/g/gP-03687/
▼こんな感じです

起動してからライブラリをインストールしようとしたときに気づいたのですが、Jetson NanoはそのままだとWiFiに接続できません。そもそも接続するための部品が無いです。日常的にWiFiがあることに慣れすぎて、接続できるのはどこか当然のように思い込んでいましたね...
電流消費のことを考えたら、取り外し可能な方が良いのでしょうか。ルーターに有線で接続することもできるので、確かに標準装備である必要はないように思えます。今回はUSBで挿せば使えるものを購入しました。
▼USBで挿して使えるWiFi無線LAN
また、Raspberry Piにはイヤホンジャックがあるのですが、Jetson Nanoにはありません。音声認識をしたくて調べていたのですが、USBマイクを使うのが手っ取り早そうです。こちらも安いものを一旦購入。
▼USBマイク。こちらは差込口の穴が狭くて抜き差ししにくいという印象。
他に、入力用として有線のキーボードとマウスを使っています。Bluetooth接続よりも有線のほうが確実で、電流消費も少ないかなと思っています。
▼私が使っているキーボードは現在取り扱われていないようですが、こちらと同じようなテンキーレスで薄型の、コンパクトなものです。
▼有線マウスはこちら
▼放熱用のファンも購入しました。自動でファンの速度を制御できるみたいです。
▼周辺機器を準備するとこんな感じ。USBハブを使っても接続できました。

▼起動するとこんな感じ

リモートデスクトップ接続をする
Jetson Nanoをロボットに組み込むことを考えると、キーボードやマウスを直接接続せずに遠隔操作できたほうが便利そうなので、リモートデスクトップの設定をしてみました。
今回はWindows 10のパソコンから、Jetson NanoのXfceという軽量のデスクトップ環境に接続しました。
- IPアドレスを調べる
- ip aコマンドで調べることができます。
wlan0の欄がWiFiに関する設定です。
- 必要なパッケージのインストールと設定
- 以下のコマンドをターミナルで入力します。
sudo apt install xrdp
sudo apt install xfce4 xfce4-goodies
echo xfce4-session > ~/.xsession
- Windows 10とリモートデスクトップ接続
- Windowsの検索で、リモートデスクトップ接続があります。
コンピューターの名前を入力する欄に、Jetson NanoのIPアドレスを入力して、接続します。
▼リモートデスクトップ接続の画面。名前を付けて保存しておくと、ファイルを開けばすぐに接続できるようになります。

▼画面の大きさが大きいと、処理がものすごく重かったです。私の場合は800×600ピクセルで快適になりました。

▼リモートデスクトップの画面

ちなみにコマンドのsudoは「管理者権限で実行」という意味です。どうやらsuperuser doの略らしいですね。sudoで実行すると、デフォルトではパスワードの入力が求められると思います。
リモートデスクトップ接続の設定後に、やっぱり戻したいとき
リモートデスクトップ接続をできるようにしたのですが、結局モニターに接続して扱うほうが処理が速いので元に戻すことにしました。処理の重いサンプルを実行しようとしたときにできなかったという理由もあります。
▼起動モードの確認。graphical.targetだとGUIログイン、multi-user.targetだとCLIログインになっています。
systemctl get-default
▼CLIログインでGUIを起動したい場合
systemctl start gdm3
▼デフォルトで元のGUIログインに戻したいとき
sudo systemctl set-default graphical.target
▼デフォルトでCLIログインにしたいとき
sudo systemctl set-default multi-user.target
最後に
基本的な初期設定が終わってから、音声認識や画像認識、深層強化学習等を試しているところですが、エラーが出てかなり足を引っ張られています。ライブラリが無いということが多いですね。CLIに慣れていなくてコマンドが間違っていたりするのですが、調べながらやっていこうと思います。