Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ani717/headless-jetson-nano-setup

Jetson Nano Setup without Monitor for JetBot Build. JupyterLab, ROS2 Dasing, Torch, Torch2trt, ONNX, ONNXRuntime-GPU and TensorFlow Installation Included. JupyterLab doesn't require Docker Container.
https://github.com/ani717/headless-jetson-nano-setup

aarch64 jetbot jetson-nano jupyterlab onnx onnxruntime onnxruntime-gpu python3 pytorch ros2 ros2-dashing tensorflow2 torch torch2trt torchvision ubuntu

Last synced: 3 days ago
JSON representation

Jetson Nano Setup without Monitor for JetBot Build. JupyterLab, ROS2 Dasing, Torch, Torch2trt, ONNX, ONNXRuntime-GPU and TensorFlow Installation Included. JupyterLab doesn't require Docker Container.

Awesome Lists containing this project

README

        


Headless Jetson Nano Setup for Jetbot Build


Headless Jetson Nano 4GB setup with with Micro-USB cable Without Using Monitor. USB Dongle is required for Wifi Connection. JupyterLab setup included. JupyterLab doesn't need docker. Torch, Torch2trt, ONNX, ONNXRuntime-GPU Torchvision and TensorFlow Installation Included. ROS2 Dasing Installation Included.



## Colaborators
[Animesh Bala Ani](https://www.linkedin.com/in/ani717/)

## Table of Contents
* [Install Jetson Nano Image](#install)

* [Boot Jetson Nano](#boot)

* [Wifi Connection Setup](#wifi)

* [Download This Repository](#repository)

* [One Command Install All](#all)

* [Enable I2C Permissions](#i2c)

* [Install Jupyter Lab](#jupytarlab)

* [Setup Jetbot Stats](#stats)

* [Install ROS2 Dashing](#ros2dashing)

* [Install Torch](#torch)

* [Install Torch2trt and ONNX](#torch2trt)

* [Install TensorFlow](#tf)

* [Issues](#issue)

## Install Jetson Nano Image
Download [balenaEtcher](https://www.balena.io/etcher/) and install it.
Download [Jetson Nano Developer Kit SD Card Image](https://developer.nvidia.com/jetson-nano-sd-card-image-45-0), and write it on a microSD card with **balenaEtcher**.

## Boot Jetson Nano
Insert the microSD card to Jetson Nano.
Connect Jetson Nano with a PC/Laptop using Micro-USB cable.
Power On the Jetson Nano and wait for 1-2 minutes.
Download [PuTTY](https://www.putty.org/).

Open **Putty**, select connection type **serial**.

The serial line value `COM#` can be found from following in Windows OS.
```
Device Manager > Ports (COM&LPT) > USB Serial Device (COM#)
```
Once connected, go through initial setup until Network Configuration.
Select `dummy0: Unknown Interface`
Once it fails to connect, select `Do not configure the network at this time`
Go through the rest of the steps with the default settings.
Once completed, wait couple of minutes and go to next step.

## Wifi Connection Setup
Open Putty and connect using host name `192.168.55.1` or using COM Port

Run following command and reboot Jetson Nano.
```
sudo systemctl restart network-manager.service
```
Log into Jetson Nano and run following command to detect availability of your wifi SSID.
```
nmcli device wifi list
```
Connect to wifi using following command.
```
sudo nmcli device wifi connect password
```
Run following command to get the IP address (2nd one).
```
hostname -I
```
Open Putty and connect using the IP address.

Once login completes, the Micro-USB cable can be disconnected.

## Download Repository
```
git clone https://github.com/ANI717/Headless-Jetson-Nano-Setup
```

## One Command Install All
Installs `Jupyter Lab`, `ROS2 Dashing`, `PyTorch`, `Torchvision`, `Torch2trt`, `ONNX`, `ONNXRuntime-GPU`, `Inputs` and `Adafruit_MotorHat`.

Enables I2C Permissions.

Sets Jetbot Stats.

Takes aroud 20 minutes to 50 minutes.

```
cd ~/Headless-Jetson-Nano-Setup
chmod +x ./*.sh && ./install.sh
```

## Enable I2C Permissions
```
sudo usermod -aG i2c $USER
```

## Install Jupyter Lab
```
cd ~/Headless-Jetson-Nano-Setup
chmod +x ./jupyter.sh && ./jupyter.sh
```
Open Jupytar Lab in a browser with `:8888` link. Default password is `jetbot`.

The interface should look like this (without watermark).

JupytarLab Interface

[Reference](https://github.com/NVIDIA-AI-IOT/jetbot/wiki/Create-SD-Card-Image-From-Scratch)

## Setup Jetbot Stats
Setup Jetbot Stats Service to show Jebot status in OLED display.

```
cd ~/Headless-Jetson-Nano-Setup
chmod +x ./jetbot_stats.sh && ./jetbot_stats.sh
```

## Install ROS2 Dashing
```
cd ~/Headless-Jetson-Nano-Setup
chmod +x ./dashing.sh && ./dashing.sh
```
[Reference](https://docs.ros.org/en/dashing/Installation/Ubuntu-Install-Debians.html)

## Install Torch
Installs `PyTorch` and `TorchVision`.

```
cd ~/Headless-Jetson-Nano-Setup
chmod +x ./pytorch.sh && ./pytorch.sh
```
[PyTorch Wheel](https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-9-0-now-available/72048)

## Install Torch2trt and ONNX
Installs `Torch2trt`, `ONNX` and `ONNXRuntime-GPU`.

```
cd ~/Headless-Jetson-Nano-Setup
chmod +x ./torch2trt_onnx.sh && ./torch2trt_onnx.sh
```

## Install TensorFlow
Installs `TensorFLow`.

```
cd ~/Headless-Jetson-Nano-Setup
chmod +x ./tensorflow.sh && ./tensorflow.sh
```

## Issues
Installing or modifying `OpenCV` will break `Gstreamer Pipeline`.

Therefore `Albumation` package should not be installed for Deep Learning.

Also `Numpy` version `1.19.4` is required to work `Gstreamer Pipeline`.

Updating `Setuptools` will generate deprication error during ROS2 workspace building.