Color

日々の備忘録

NVIDIA Isaac SDK デスクトップ環境構築

2019年07月05日 08時53分46秒 | Jetson Nano
◆ubuntu18.04(Intel64CPU)上にNVIDIA Isaac SDK を構築する手順

1.準備
●CPU: Core i7-6700
●RAM: 16GB
●HDD: 500GB
●GPU: NVIDIA GeForce GTX980Ti
●OS: ubuntu 18.04 LTS

2.ubuntuクリーンインストール
参考記事:https://www.ubuntulinux.jp/News/ubuntu1804-ja-remix
記事を参考にubuntu 18.04 LTSをインストールする事
★ ubuntu18.04インストール後トラブル
〇 apt update で snapdの更新で停止
◎対策
~$ sudo fuser -vki /var/lib/dpkg/lock
~$ sudo apt purge snapd
~$ sudo dpkg --configure -a
~$ sudo apt update
~$ sudo apt upgrade 
#最後まで動作しなかった、--fix-missingオプションで再実行
~$ sudo apt upgrade --fix-missing
~$ sudo apt dist-upgrade
~$ sudo apt install snapd
~$ sudo reboot
〇 ubuntu18.04の動作が極端に遅い
◎対策
# grub をエディターで開く
~$ sudo nano /etc/default/grub
# この行を GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"
# ↑ に変更して、上書き保存してエディター終了
# grub のアップデート
~$ sudo update-grub
~$ sudo reboot

3.NVIDIA Driver導入
~$ sudo apt update;sudo apt upgrade
~$ sudo ubuntu-drivers devices

~$ sudo ubuntu-drivers autoinstall
~$ sudo reboot
# 確認
~$ nvidia-smi

4.isaacの導入
参考記事:Isaac SDK
注意:TensorFlowなど、CUDAを使用するモジュールを実行する予定がない限り、CUDAを手動でインストールすることは避ける
# isaac_sdk-2019_1-17919.tar.xzをダウンロード
~$ mkdir isaac
~$ cd isaac
# ここにisaac_sdk-2019_1-17919.tar.xzをコピーして展開
~/isaac$ tar Jxf isaac_sdk-2019_1-17919.tar.xz
~/isaac$ engine/build/scripts/install_dependencies.sh

5.ロボット(jetson nano)への依存関係
# jetson nanoを起動して、同じネットワークに接続
# engine/build/scripts/install_dependencies_jetson.sh -u <jetson_username>-h <jetson_ip>
# <jetson_username>: ai // Jetson nano のユーザー名
# <jetson_ip>: 192.168.0.119 // Jetson nano のIPアドレス
# 上記の設定の場合は
~/isaac$ engine/build/scripts/install_dependencies_jetson.sh -u ai -h 192.168.0.119
# 正常設定後に、jetson nano は自動的にリブートする

6.Bazelの導入
注意:Bazelは、Isaac SDKパッケージにあるファイル.bazelrcを必要とする
# bazelバージョン確認
~/isaac$ bazel version

7.NVIDIA GPUドライバの導入
~/isaac$ sudo add-apt-repository ppa:graphics-drivers/ppa
~/isaac$ sudo apt-get update
~/isaac$ ubuntu-drivers devices
# 430が推奨されたでの、nvidia-driver-430 を選択
~/isaac$ sudo apt-get install nvidia-driver-430
~/isaac$ sudo reboot
~/isaac$ nvidia-smi

8.TensorFlowの導入
Isaac SDKはTensorFlowバージョン1.13.1をサポート
今回は、導入しない。トレーニングするのには必要

9.C++開発環境
# Isaac SDK が正しく導入されたかを確認
~$ cd isaac/pakages/
~/isaac/packages/$ mkdir ping
~/isaac/packages/$ cd ./ping
# エディターで ping.app.jsonファイル を作成
~/.../ping$ nano ping.app.json
# 下記のコードを作成して、エディター終了
{
"name": "ping"
}
# エディターで  BUILDファイルを作成
~/.../ping$ nano BUILD
# 下記のコードを作成して、エディター終了
load("//engine/build:isaac.bzl", "isaac_app", "isaac_cc_module")

isaac_app(
name = "ping"
)
#  コードのビルド
~/.../ping$ bazel build ping
#  コードの実行
~/.../ping$ bazel run ping
# エラーが出現する場合は、Isaac SDK が正しく導入されていない

10.python開発環境
#  コードの実行
~/isaac$ bazel run //apps/tutorials/ping_python
# ./engine/build/deploy.sh -p //apps/tutorials/ping_python:ping_python-pkg -h <<target_ip> -d <device_type>
# <target_ip>: 192.168.0.119 // Jetson nano のIPアドレス
# <device_type>: jetpack42// Jetpackの型
# 上記の設定の場合は
~/isaac$ ./engine/build/deploy.sh -p //apps/tutorials/ping_python:ping_python-pkg -h 192.168.0.119 -d jetpack42
# エラーが出現する場合は、Isaac SDK が正しく導入されていない

11.デプロイ
~$ cd ~/isaac/engine/build
# Jetson nano のユーザー名が ai の場合は
# エディターで deploy.sh の内容変更

# この行 REMOTE_USER=nvidia
REMOTE_USER=ai 
# ↑ に変更して、上書き保存してエディター終了
~$ cd ~/isaac
# Jetson nano のIPアドレスが 192.168.0.119 の場合 
~/isaac$ /engine/build/deploy.sh -d jetpack42 -h 192.168.0.119 -p //apps/tutorials/ping:ping-pkg
# jetson nano へ ssh接続
~/isaac$ ssh ai@192.168.0.119
 # ubuntuデスクトップユーザー名が user の場合
jetson~/$ cd deploy/user/ping-pkg/
jetson~/deploy/user/ping-pkg$ ./apps/tutorials/ping/ping
# エラーが出現する場合は、Isaac SDK が正しく導入されていない

─以上─