FAQ

Frequently asked questions regarding DroneCore autopilot

What is the Linux distribution provided with your board ? Do you use a specific kernel ?

Currently, Jetson Orin NX with DroneCore 2.0 is running modified JP 5.1.2, which is based on Ubuntu 20 and Linux Kernel 5.10. Software-wise our adaptation of JP 5.1.2 does not hinder any features declared by Nvidia, it only optimizes some drivers to be compatible with DroneCore.

As per your request, ROS1 is working without issues, for Ubuntu 20 and arm64 architecture it is available and supported even in binary release.

Adaptation of JetPack 6.2 is on the roadmap (as of Q1 2025). This brings Ubuntu 22, new features from Nvidia, and also binary support for ROS2 for arm64 architecture. With our deployment tools, you can decide, which release of the system is more suitable for you.

What are possible ways to write software for the UAV?

The drone's onboard computer (OBC) contains a Jetson Xavier NXarrow-up-right on DroneCore 1.2arrow-up-right board. It is installed with JetPack SDKarrow-up-right, which is a Nvidia modified version of Ubuntu 18.04. Therefore, the code can be developed directly on the OBC by plugging in a display (micro HDMI) and other peripherals (4x USB 3.0, 1x Gigabit Ethernet port). However, it is advisable to access it using SSH connection (over USB, Ethernet, or WiFi) which allow full access to the operating system.

For example, Microsoft Visual Studio Codearrow-up-right with installed extension Remote-SSHarrow-up-right, allows an easy way of coding on the device from the host PC. To share the internet to the device, we are using the hard method in this guidearrow-up-right.

What is the language of preinstalled software and libraries? Is knowledge of Python and C++ required or useful?

The preinstalled software mostly focuses on, but not limited to, programming languages: Python, C++, and cuda. JetPack SDK comes with multiple libraries for computer vision and machine learning, such as OpenCVarrow-up-right, GStreamerarrow-up-right, VPIarrow-up-right, Multimedia APIarrow-up-right, CUDAarrow-up-right, cuDNNarrow-up-right, TensorRTarrow-up-right. For drone software development, the OBC comes with preinstalled ROS Melodicarrow-up-right and MAVROSarrow-up-right, which support both C++ and Python.

Can I use Pytorch to program the drone?

PyTorch can be installed on a Jetson devicearrow-up-right, it is important to specify the correct version of JetPack (4.6.1) and PyTorch version (1.11.0a0+bfe5ad28) based on the compatibility matrixarrow-up-right, so that it is compatible with the installed machine learning SDKs. However we advise against training more complex DNNs on the device as it can be quite time consuming.

The preferrable approach is to prototype, train and verify the DNN on the host PC, load it to the device, and then build a TensorRT enginearrow-up-right, which will leverage the potential of the Tegra GPUarrow-up-right. It can then be used in multiple ways, for example: torch-tensorrt in pythonarrow-up-right, Nvidia DeepStream SDKarrow-up-right, Triton Inference Serverarrow-up-right, Jetson Inferencearrow-up-right or pure TensorRT solutionarrow-up-right.

What are the options to apply geofencing for the drone to prevent it flying beyond a certain area?

Geo-Fencearrow-up-right is supported by ArduCopter autopilotarrow-up-right, which is running by default on the onboard The Cube Orange+arrow-up-right. It can be set up using a ground station like Mission Plannerarrow-up-right or QGroundControlarrow-up-right, or on-device using MAVROSarrow-up-right.

Is it possible to limit the performance of Orin NX on DroneCore?

Technically, yes.

What is the power consumption of DroneCore 2.0 with maximal and minimal usage of the Jetson?

If Cube Orange+ is installed and Jetson is running just default firmware, total power consumption is ~11W from which the board itself is ~3W, Jetson draws ~7W, and Cube draws ~1W. Maximum power consumption of Jetson Orin NX itself is 25W according to the product sheet.

Last updated