LoginSignup
2
4

More than 3 years have passed since last update.

自律走行型のロボットをNVIDIA JetBot で作ってみる【起動編】

Last updated at Posted at 2019-12-20

SENSYN ROBOTICS(センシンロボティクス) Advent Calendar 2019 の 21日目 担当の @Chitama です。

前回に引き続き、AIコンピューターを乗せた自律走行型のロボットを作ってみます。

自律走行型のロボットを走らせるまで

  1. 必要な部品を揃える
  2. ハードウェアを組み立てる
  3. ソフトウェアのセットアップする ← 今回はココ
  4. 自律走行を試してみる

3. ソフトウェアのセットアップする

今回の流れ。
3-1. JetBotイメージの確認
3-2. 電源の確認、JetBotの起動
3-3. wifiの設定
3-4. Webブラウザでの接続
3-5. 電源モードを調整する
3-6. Jetson 「Jetpack」の確認

出典:
Github Jetbot Software Setup
Sparkfun 5. Software Setup Guide from NVIDIA

セットアップに必要なもの

  • microSDカード 16GB以上 UHS-I対応
  • HDMIまたはDisplayPortに対応したディスプレイ
  • USBキーボード
  • USBマウス
  • 5V-2A USB電源(及びmicroBケーブル)
  • USBワイヤレスWiFiアダプタ

Sparkfun Jetbot Kitに含まれているもの

  • microSDカード 64GB UHS-I対応
  • リチウムイオンバッテリーパック-10Ah(3A / 1A USBポート)
  • Bluetooth USBワイヤレスWiFiアダプタ

3-1. JetBotイメージの確認

Sparkfun Jetbot KitのSDカードは、起動用のイメージがフォーマット済みなので、ここの手順はスキップします。
NVIDIA公式の手順のステップ2から4のみで起動できます。
そのため、SDカードをフォーマットしないように注意してください。

通常、Jetson nano 購入したら、公式サイトからイメージをダウンロードして起動用のmicroSDカードを作成します。
1. JetBotのSDカードイメージ jetbot_image_v0p3p2.zip をダウンロードします
2. Etcherを使用して、ダウンロードしたイメージをSDカードをフォーマットします。
推奨容量は、32GB以上です。何かしらのエラーが発生した場合は、64GBに上げてみてください。
フォーマットが完了したSDカードは、USBコネクタがついてる側の反対側にあるマイクロSDカードスロット にマイクロSDカードを下向きで差し込みます。

3-2. 電源の確認とJetBotの起動

  1. MicroSDカードを挿入
  2. HDMIケーブルを接続
  3. キーボード&マウスを接続
  4. wifiアダプタを接続
  5. 電源を接続

今回は、Kit付属のリチウムイオンバッテリーパックをmicro USB ソケットに接続します。
ソケットの横の緑色のランプが光れば、給電が開始され、Jetson nano が起動します。
起動するとNVIDIAのロゴが表示されます。

3-3. wifiの設定

UbuntuデスクトップGUIで設定を行います。
ユーザーjetbotとパスワードjetbotを使用してログインします。
利用したいWiFiネットワークに接続します。

接続に成功すると、今後Jetson Nanoの起動時にWiFiに自動的に接続され、PiOLEDディスプレイにIPアドレスが表示されるようになります。
また、以降は、Jetson nano にWeb経由で接続できるため、HDMIケーブル、キーボード&マウスは不要になります。

UbuntuのターミナルでIPアドレスを確認しておきます。

3-4. Webブラウザでの接続

確認したIPアドレスでJetson nano に接続してみます。

http://<jetbot_ip_address>:8888

接続に成功すると Jupyter notebookLauncher が表示されます。

3-5. 電源モードやパフォーマンスを調整する

電源

Jetson Nanoにバッテリーパックが供給できる以上の電流が流れないようにしておきます。
そのために、次のコマンドで呼び出して 5Wモードにします。

$ sudo nvpmodel -m 1

現在の状態は次のコマンドで確認できます。

$ sudo nvpmodel -q

-mの後の数字が0の場合、最大(Maxモード)で、1の場合、最小(5Wモード)です。

$ sudo nvpmodel -m 1
$ sudo nvpmodel -q
NVPM WARN: fan mode is not set!
NV Power Mode: 5W
1
$ sudo nvpmodel -m 0
$ sudo nvpmodel -q
NVPM WARN: fan mode is not set!
NV Power Mode: MAXN
0

クロック周波数などのパフォーマンス

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

$ sudo jetson_clocks --show
$ sudo jetson_clocks --show
[sudo] password for jetbot: 
SOC family:tegra210  Machine:NVIDIA Jetson Nano Developer Kit
Online CPUs: 0-1
CPU Cluster Switching: Disabled
cpu0: Online=1 Governor=schedutil MinFreq=102000 MaxFreq=921600 CurrentFreq=921600 IdleStates: WFI=1 c7=1 
cpu1: Online=1 Governor=schedutil MinFreq=102000 MaxFreq=921600 CurrentFreq=921600 IdleStates: WFI=1 c7=1 
cpu2: Online=0 Governor=schedutil MinFreq=102000 MaxFreq=921600 CurrentFreq=921600 IdleStates: WFI=1 c7=1 
cpu3: Online=0 Governor=schedutil MinFreq=102000 MaxFreq=921600 CurrentFreq=921600 IdleStates: WFI=1 c7=1 
GPU MinFreq=76800000 MaxFreq=614400000 CurrentFreq=153600000
EMC MinFreq=204000000 MaxFreq=1600000000 CurrentFreq=1600000000 FreqOverride=0
Fan: speed=0
NV Power Mode: 5W

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

$ sudo jetson_clocks

3-6. Jetson 「Jetpack」の確認

JetPackとは、Jetson向けのカーネルモジュール・CUDAや各種ライブラリ・各種開発ツール・サンプルコードがまとまったものです。
つまり、追加でインストールすることなくいろいろなAIライブラリを試せる環境になっているということです。

CUDA

CUDAのサンプルコードは次のディレクトリににインストールされています。

/usr/local/cuda-10.0/samples/

念のためにフォルダをコピーしてから、サンプルを試してみます。

$ mkdir _dev
$ cp -a /usr/local/cuda-10.0/samples/ ~/_dev

デモ実行の流れは、

1.サンプルファイルがあるフォルダまで移動

$ cd _dev

2.ターミナルでコンパイルを実行

$ sudo make

3.2で生成されたファイルをターミナルで実行

$./ファイル名

次回

自律走行に挑戦です。

参考資料

Getting Started with Jetson Nano (日本語)

2
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4