Color

日々の備忘録

NVIDIA Jetson nano + Intel Realsense D435i とデスクトップPC

2019年07月08日 20時55分02秒 | Jetson Nano
◆NVIDIA Jetson Nano に Intel Realsense D435i を接続して、Isaac でリモートする手順

1.準備
■■■Remote
●CPU: NVIDIA Jetson Nano開発キット
●SD: SDSQXCY-128G-GN6MA
●AC/DC: LTE36ES-S1-301(DC5V 6.2A)
●FAN: PEAD14028BH(Max:20000rpm)
●WiFi: intel 8265NGW
■■■Depth Camera
●Camera: Intel Realsense D435i
■■■Master PC
●OS: ubuntu 18.04 LTS
●Tool: NVIDIA Isaac SDK

2.デスクトップに Intel Realsense SDK 2.0 導入
参考記事:IntelRealSense/librealsense ※最新の情報を必ず確認する事
# サーバー公開鍵の登録
~$ sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo 
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key
C8B3A55A6F3EFCDE
# リポジトリ登録
~$ sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u
# ライブラリインストール
~$ sudo apt-get install librealsense2-dkms
~$ sudo apt-get install librealsense2-utils
# デバッグパッケージインストール
~$ sudo apt-get install librealsense2-dev
~$ sudo apt-get install librealsense2-dbg
# 確認
~$ realsense-viewer
~$ modinfo uvcvideo | grep "version:"
~$ sudo apt-get update
~$ sudo apt-get upgrade

3.Intel Realsense ファームウェアアップ
参考記事:How to install Firmware DFU on Ubuntu 18.04 · Issue #2884 · IntelRealSense/librealsense
# intel-realsense-dfu ツールインストール
~$ echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main' | sudo tee /etc/apt/sources.list.d/realsense-public.list
~$ sudo apt-key adv--keyserverkeys.gnupg.net --recv-key 6F3EFCDE
~$ sudo apt-get update
~$ sudo apt-get install intel-realsense-dfu*
# ダウンロード インテル® RealSense™センス™D400製品ファミリの最新ファームウェア ここから最新バージョンをダウンロード
# バージョン: 5.11.6.250 (最新)日付: 2019/06/04
# デスクトップの ~/isaac へD400_Series_Production_FW_5_11_6_250.zipをコピーして、Signed_Image_UVC_5_11_6_250.bin を取り出す
# D435iがデスクトップに接続されているポートを確認
~$ lsusb

# Bus 002 Device 004 の場合のファームウェアバージョン確認
~$ intel-realsense-dfu -b 002 -d 004 -p

# ファームウェアバージョンが 5.11.6.250 未満の場合
~$ cd ~/isaac
~/isaac$ intel-realsense-dfu -b 002 -d 004 -f -i ./Signed_Image_UVC_5_11_6_250.bin

# 動作確認
~/isaac$ realsense-viewer

# UDEV rules issue after updating to 2.24 · Issue #4350 · IntelRealSense/librealsense この記事の問題がある
# ビューアーを閉じて、Realsense D435i を Jetson nano へ接続する

4.サンプルrealsense_cameraの実行
# <jetson_nano_ip>: 192.168.0.119
# <jetson_nano_name>: ai の場合
# デスクトップでサンプルビルド
~/isaac$ bazel build //apps/samples/realsense_camera
# Jetson nano と D435i がUSB接続されている事(デスクトップから外して)

# デスクトップとJetson nano がLAN接続している事
~/isaac$ ./engine/build/deploy.sh -d jetpack42 -h 192.168.0.119 -p
//apps/samples/realsense_camera:realsense_camera-pkg
#jetson nanoへssh接続
~/isaac$ ssh ai@192.168.0.119
# Jetson nano を最大パフォーマンス動作
ai@jetson:~$ sudo /usr/bin/jetson_clocks
# デスクトップのユーザー名が userの場合
# realsense_camera を実行
ai@jetson:~$ cd deploy/user/realsense_camera-pkg/
ai@jetson:~/deploy/user/realsense_camera-pkg$ ./apps/samples/realsense_camera/realsense_camera
# デスクトップのブラウザで確認
http://192.168.0.119:3000/

# カメラをチェック
ライブビューが映し出される

━以上━


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 が正しく導入されていない

─以上─