< All Topics
Print

NEPI Engine – Customizing the NEPI File System

Introduction

This tutorial will walk you through customization of the NEPI Engine File System that would be useful for NEPI developers.

What you will need:

1) 1x NEPI-enabled device with internet access. This tutorial uses an edge-compute processor box that includes an NVIDIA Jetson Xavier NX embedded GPU with NEPI Engine software installed.

NOTE: See available off-the-shelf NEPI enabled edge-compute options at: https://numurus.com/products-nepi-enabled-hardware/

2) 1x PC with internet access and configured to access the NEPI device’s File System.

NOTE: Instructions for configuration a PC and connecting to a NEPI device’s File System are provided in the NEPI Engine – Getting Started – Accessing the NEPI File System tutorial at: https://nepi.com/nepi-tutorials/

Customizing NEPI System Configuration

While most NEPI Engine settings are configurable through the RUI, API calls, and user c, there are some low-level configuration items like serial number, logos, and SSH keys that require changes at the file system level using SSH access. The following sections assume you have set up and tested your SSH access as described in the “Accessing the NEPI File System” tutorial.

Assuming you have set up an SSH alias as described during the SSH setup process, just open a terminal on your Linux connected PC and type:

sshn

NOTE: Both Linux vi and nano editors are installed in the NEPI file system. While this document uses the vi editor in examples, some might find the nano editor easier to use.

Add Useful Command Line Shortcut Aliases

If you would like to set up useful short cut commands for your NEPI device SSH terminal, do the following from an SSH connected terminal window:

sudo vi ~/.bashrc

Then add any aliases to simplify your work. The following aliases and source commands are pre-installed on most NEPI images:

alias ros="source /opt/nepi/ros/setup.bash"

alias rosstop="sudo systemctl stop roslaunch"

alias rosstart="sudo /opt/nepi/ros/etc/roslaunch.sh"

alias auto="cd /mnt/nepi_storage/automation_scripts/"

alias data="cd /mnt/nepi_storage/data/"

alias ai="cd /mnt/nepi_storage/ai_models/"

alias installs="cd /mnt/nepi_storage/installs/"

alias nuid="cd /opt/nepi/nepi_link/nepi-bot/devinfo/"

alias connect="cd /opt/nepi/nepi_link/nepi-bot/lb/data/"

source /opt/nepi/ros/setup.bash

Change Serial Number

If you would like to give your NEPI device a unique serial number and device name, do the following from an SSH connected terminal window:

vi /opt/nepi/sys_env.bash

Then edit the value next to the “DEVICE_SN=” entry.

Change System Base IP Address

While NEPI Engine allows adding additional IP address aliases that make it easy to integrate a NEPI-enabled device into an existing local area network (LAN), the system’s factory base IP address (192.168.179.103) is only changeable through file system configuration editing. If you plan to connect multiple NEPI-enabled devices to the same LAN, you will need to make sure that they each have a unique Base IP Address. Once changed, you will need to remember this address to access your system, so it is recommended that you:

NOTE: use an IP address close to the original one such as (192.168.179.104) making it easier to remember as well as search for the system in a block of IP addresses if you forget the new value

To change your NEPI system’s base IP address, you will need to do the following from a ssh connected terminal window and edit the “address” value in the file:

vi /etc/network/interfaces.d/nepi_static_ip

Change NEPI CONNECT Configuration

If you plan to use your NEPI-enabled device to upload data and download software to a remote server running Numurus’ NEPI Connect software you may need to modify some of you NEPI device’s NEPI Connect configuration files.

1) Check that your NEPI device has a valid NEPI Connect Unique NEPI ID (NUID) and public SSH key in the “NEPI CONNECT” box on the device’s RUI APPLICATIONS/CONNECT tab as shown below.

A screenshot of a computer Description automatically generated

If your 10 digit NUID is set to “9999999999” and/or the Public SSH Key box is empty, your system has not yet been configured for NEPI Connect communications. If this is the case, use the following instructions to set up the NEPI Connect credentials on your device:

If you need to configure a NEPI NUID and NEPI Connect public SSH key, use the instruction below to create or update them:

a) Run the NEPI Connect identity application

cd /opt/nepi/nepi_link/nepi-bot/devinfo

python3 change_identity.py -n <Your 10 digit NUID>

For security reasons, it is recommended that you use some random number generator to generate a random 10 digit NUID value. For example:

python3 change_identity.py -n 3989789099

b) Press enter twice to skip a passphrase and (optional) press p to display the key in the terminal.

c) After rebooting your NEPI device the new NUID and public SSH key you just created should now be visible in the RUI APPLICATIONS/CONNECT tab.

2) The internet address NEPI devices try to connect to during a NEPI Connect connection process is set in a configuration file on the device’s NEPI file system. The default NEPI Connect server address set on new installation’s is to a Numurus hosted NEPI Connect installation at address nepi.io. If you are connecting to a NEPI Connect installation at another internet location, you will need to use the following instructions to change that location on your device:

a) Open NEPI Engine’s “NEPI bot” config file and edit the NEPI Connect installation location using the following commands:

cd /opt/nepi/nepi_link/nepi-bot/cfg/bot

nano config.json

b) Then edit the “host” address value under the NEPI Link communications type(s) you plan to use.

Example: If you are connecting using an IP communications gateway (Ethernet, WiFi, Cellular…) you would edit the “host” ip location under the “lb_ip” address driver configuration. This could be either an intent domain name like “nepi.io” or a numeric IP address like “44.229.9.192”.

A screen shot of a computer program Description automatically generated

c) After rebooting your NEPI device will use these new NEPI Connect location values.

Customizing and Compiling NEPI File System

Cloning the NEPI file System

For detailed instructions for cloning NEPI Engine GitHub source-code repos, see the NEPI Engine – Software File System manual at:

https://nepi.com/documentation/nepi-engine-nepi-file-system/

Configuring NEPI’s ROS Launch File

During the NEPI Engine boot process, all ROS nodes are started from the “nepi_base.launch” file. You can edit this file by typing:

<Your Git Code Folder>/nepi_base_ws/src/nepi_edge_sdk_base/launch

vi nepi_base.launch

Within the file, you can change which nodes are started or not by modifying the “default=” value in that nodes “arg name” line.

You can also add new nodes to launch. The following is an example of adding a new ZED stereo camera node to the launch file.

1) Add the following argument to the list of arguments near the top of the file using the vi insert mode option by pressing “i” and editing the file:

<arg name="run_zed_wrapper_node" default="true" />

2) While still in insert mode, add the following lines before the last </group> message in the file. Ensure that the indentations match other group indentations.

<group if="$(arg run_zed_wrapper_node)" >

<!-- ROS nodes: Launch Zed Camera -->

<include file="$(find zed_wrapper)/launch/zed2.launch"/>

</group>

A screen shot of a computer code Description automatically generated

3) Press “esc” to exit insert mode, then hit the “Shift-:” to enter command mode and type “wq” then hit enter to save and exit.

Compiling NEPI ROS Changes

For detailed instructions on compiling and deploying any changes to the NEPI file system, see the NEPI Engine – Software File System manual at:

https://nepi.com/documentation/nepi-engine-nepi-file-system/

 

Table of Contents