Jetpack version that will cause least friction with Omniverse Isaac Sim and Isaac SDK

Robotics development pipeline is very complexed. different Jetpack versions install different things and support different versions of Jetson.

for example i have the original Jetson Nano 2gb, 4 Jetson 4gbs, a TX1, Xavier NX and Xavier AGX

i want to work with Nvidia Isaac SDK, ROS and ROS2, Isaac Sim for Omniverse
and i want to be able to build applications that will be deployed to as many of those boards as possible with least headache as possible.

In addition i have the need to work with containerized workflows like those from NVidia docker, Nvidia EGX, Kubernetes and Microsoft Azure IoT Edge

I have a intel i5 and geforce 2070 rtx

Ive been bitten before by the fact that your Isaac SDK only supports working on an older version of jetpack 4.4.1 even though jetpack is at version 4.5.1

but jetpack 4.5.1 has the latest everything including updates to your container strategy.

do you strongly recommend me using jetpack 4.4.1 on my development machine and standardize on that for all of my boards

or is your nvidia Isaac SDK finally ready to play with jetpack 4.5.1

Isaac SDK 2020.2 should work with Jetpack 4.5. You may see a “CheckOperatingSystem codelet” warning which you can ignore or reconfigure the codelet to fix.
Here’s a note from the downloads page:

You may notice errors from “CheckOperatingSystem codelet” as the sample apps are configured by default to check for Jetpack 4.4.1. Please set the config section of the app JSON file to check for Jetpack 4.5 i.e. ( “jetpack_version”: “5.0”).

Lets do this the thorough way.

lets take this line and make it work

meta@wukong:~/org/isaac-sdk-20201201-427971df2/sdk$

./…/engine/engine/build/deploy.sh --remote_user meta -p //apps/kaya:joystick-pkg -d jetpack50 -h 192.168.1.210

if i go into the program referred above “deploy.sh

i see on line 187
bazel build $CACHE_SERVER_ARG --config $DEVICE $PREFIX:$TARGET --strip=always || exit 1

-d jetpack50 becomes the variable $DEVICE in the script
but i dont see a file called jetpack44 or jetpack50 at
isaac-sdk-20201201-427971df2/engine/engine/build/
where the deploy.sh script is at

or from the path where i ran the command from. namely
isaac-sdk-20201201-427971df2/sdk

image

at my application folder ( the joystick app ) i see json files but no reference to a place where i can insert your suggestion of jetpack50

image

isaac-sdk-20201201-427971df2/sdk/apps/kaya/joystick.app.json

theres a bazelrc file at
** isaac-sdk-20201201-427971df2/.bazelrc**

which i will presume toggles a set of variables to be used in the build.

-d jetpack44
becomes
bazel build --config jetpack44
and referred to in
** isaac-sdk-20201201-427971df2/.bazelrc**

build:jetpack44 --cpu=aarch64
build:jetpack44 --define=target_platform=jetpack44
build:jetpack44 --action_env=target_platform=“jetpack44”

also by the way
JetPack is at version 4.5.1
so do you really mean ( “jetpack_version”: “5.1”)
instead of ( “jetpack_version”: “5.0”)
??

are you guys sure this works for jetpack 4.5.1 ???

ERROR: Config value jetpack50 is not defined in any .rc file

so i added to bazelrc the following to fake it.

and the code ends up trying to load up things that dont exist because your SDK code is tightly tied to file system names and bazel switches

i ended up running

./…/engine/engine/build/deploy.sh --remote_user meta -p //apps/kaya:joystick-pkg -d jetpack44 -h 192.168.1.210

so basically just lie and say its going to jetpack44

after it was deployed to the jetson i logged into the jetson nano and ran

pwd
/home/meta/deploy/meta/joystick-pkg

./apps/kaya/joystick

when i run it on the kaya i get
2021-04-28 19:54:02.151 ERROR external/com_nvidia_isaac_engine/engine/alice/components/Codelet.cpp@229: Component ‘_check_operating_system/isaac.alice.CheckOperatingSystem’ of type ‘isaac::alice::CheckOperatingSystem’ reported FAILURE:

**'/etc/nv_tegra_release' does not start with '# R32 (release), REVISION: 4.4'. Please flash L4T using Jetpack 4.4.1.**

2021-04-28 19:54:02.151 ERROR external/com_nvidia_isaac_engine/engine/alice/backend/event_manager.cpp@43: Stopping node ‘_check_operating_system’ because it reached status ‘FAILURE’

and then i get

2021-04-28 19:46:06.178 ERROR packages/dynamixel/gems/dynamixel.cpp@51: Cannot open port /dev/ttyACM0: No such file or directory [errno 2]

which is not a device on my jetson.

so i did a search and replace and replaced all occurrences of ttyACM0 with ttyUSB0

and i was able to control the robot with the keypad in issaac site
which is the website thats spawned to monitor the application
localhost:3000

by the way when i run the jetson utilities on the jetson i get
[ JetPack UNKNOWN ]

meta@littlepb:~/org/jetsonUtilities$ ./jetsonInfo.py

NVIDIA Jetson Nano (Developer Kit Version)
L4T 32.5.1 [ JetPack UNKNOWN ]
Ubuntu 18.04.5 LTS
Kernel Version: 4.9.201-tegra
CUDA 10.2.89
CUDA Architecture: 5.3
OpenCV version: 4.1.1
OpenCV Cuda: NO
CUDNN: 8.0.0.180
TensorRT: 7.1.3.0
Vision Works: 1.6.0.501
VPI: ii libnvvpi1 1.0.15 arm64 NVIDIA Vision Programming Interface library

i got the jetson utilities by running
git clone https://github.com/jetsonhacks/jetsonUtilities

Yes, “-d jetpack44” deploy to jetpack 4.5/4.5.1 (while unsupported) works.

The parameters of the CheckOperatingSystem codelet can be updated in the following way, to prevent it from reporting the failure:
“config”: {
“_check_operating_system”: {
“isaac.alice.CheckOperatingSystem”: {
“jetpack_version”: “4.5.1”,
“jetson_release_version”: “# R32 (release), REVISION: 5.1”
}
}

1 Like