JetsonHacks Github Updates – Early January 2020

With the release of JetPack 4.3, L4T 32.3.1 is now available for the NVIDIA Jetson Nano Developer Kit. Several of the JetsonHacks Github JetsonHacksNano Github repositories on the JetsonHacks account have been updated to support this release.

Note that previous releases can be found in the ‘release’ section of each repository when applicable.

buildJetsonTX2Kernel

Build the NVIDIA Jetson TX2 Kernel and Modules on the TX2 device itself.

There have been changes since this repository was originally published a few years ago, namely the Linux kernel is now signed and stored in a disk partition separate from the APP partition. That means that, while compiling the Linux kernel from source on the TX2 is possible, there is now an intermediate step to flash the new kernel to the TX2 via a host system. So, compiling the kernel on the TX2 is not as useful as it used to be.

However, it is still possible to compile modules on board the TX2 and install them. The scripts help quite a bit in this regard.

buildJetsonXavierKernel

Build the NVIDIA Jetson Xavier Kernel and Modules on the Xavier device itself.

There have been changes since this repository was originally published a few years ago, namely the Linux kernel is now signed and stored in a disk partition separate from the APP partition. That means that, while compiling the Linux kernel from source on the Xavier is possible, there is now an intermediate step to flash the new kernel to the Xavier via a host system. So, compiling the kernel on the Xavier is not as useful as it used to be.

However, it is still possible to compile modules on board the Xavier and install them. The scripts help quite a bit in this regard.

jetsonUtilities

Updated to support JetPack 4.3.

installROS

Install Robot Operating System (ROS) Melodic on NVIDIA Jetson Development Kits. ROS Melodic is for Ubuntu 18.04 systems.

Jetson TX2, Jetson AGX Xavier, Jetson TX1, Jetson Nano

The script is based on the Ubuntu ARM install of ROS Melodic: http://wiki.ros.org/melodic/Installation/Ubuntu


installLibRealSenseSDK

Starting with L4T 32.2.1 (JetPack 4.2.2) on the NVIDIA Jetsons and the Intel RealSense SDK version v2.23.0, it is now possible to do a simple install from a RealSense debian repository (i.e. apt-get install). Previous versions of this repository require building librealsense from source, and (possibly) rebuilding the Linux kernel.

The current recommendation from Intel is to use UVC for video input on the Jetson family. The UVC API in librealsense has been rewritten to better support this use case.

Now installs librealsense v2.31.0.

installRealSenseROS

Install the realsense-ros library on NVIDIA Jetson Nano Developer Kit. Installs RealSense ROS Version = 2.2.11, which expects a librealsense v2.31.0 installation.

Note that previous releases can be found in the ‘release’ section of each repository.

Enjoy!

8 Comments

  1. Good job on the updates.

    On a vaguely related note, I have just been informed that VisionWorks for Jetson has been deprecated and VPI is to take over.

    What is your opinion on such frameworks that seek to optimise chains of multiple OpenCV algorithms running sequentially? Are they worth the time and effort to learn or do you think that pretty good speed results are seen using just OpenCV on its own?

    OpenCV is MUCH better supported after all, and it would seem VPI etc just adds an extra layer of learning (and an apparently moving target at that)….

    Cheers.

    • My suggestion is to avoid premature optimization. Implement your own algorithms and then do profiling to figure out where the bottle necks might be. Start with the familiar, build a benchmark if the performance needs improvement, and go from there. If you are familiar with OpenCV or need to rely on a lot of outside reference material, you should use that first. If you don’t get the performance you are looking for, then consider replacing bottlenecks with other libraries.

      Usually what happens is that the newer libraries, while faster, may not have a very large experience base to help with your given problem. The VPI ideas are sound in the sense that by having NVIDIA code directly to the hardware they can bet much better performance. Whether that meets your needs, or is important to you, is a different question. In other words, there is going to be pain in adoption (learning new things, procedures and so on). Make sure the pain is worth the trouble.

      My experience has been that most libraries have teething pains, it’s better to wait a little before jumping on board UNLESS the library does something or simplifies what is lacking from other methods/solutions. For example, TensorFlow was that way in the beginning. There wasn’t much competition, but at the same time the learning curve was quite steep, and the library seemed to change every week. On the other hand, it allowed you to do things that could not be done in any other way at the time. If you wanted to do those things, TensorFlow was a logical choice.

      Thanks for reading!

  2. Hello!
    Thank you for all of your wonderful content.
    I’m currently trying to get Intel RealSense’s ROS occupancy map example working on a Jetson TX2. I’ve been reading through your content but I can’t get my head around versioning issues. What version of Jetpack is the best for this, and in what order should I install each of the necessary software components?
    Thanks a tonne.

  3. Thank you for your swift reply!

    I installed the RealSenseSDK and ROS using your latest github repos.
    Here’s the rub: Intel’s RealSense ROS examples are for ROS kinetic, not melodic.
    I’m getting cmake errors because of the absence of ros-kinetic-cv-bridge, etc. Is there a workaround other than using an older version of Jetpack based off of Ubuntu 16.04?

  4. Hi !
    Do you know if I can use the jetson nano with the grove pwm driver to control a servo motor.

    Thank you in advance for your time.

Leave a Reply

Your email address will not be published.


*