# Qualcomm Robotics RB5 Platform architecture (Linux Ubuntu)
Source: [https://docs.qualcomm.com/doc/80-88500-2/topic/qualcomm_robotics_rb5_platform_architecture.html](https://docs.qualcomm.com/doc/80-88500-2/topic/qualcomm_robotics_rb5_platform_architecture.html)

| Components | Description |
| --- | --- |
| **Ubuntu-specific** | **Ubuntu-specific** |
| apt | Tool to automatically update the Ubuntu machine by acquiring and
installing the Debian packages and programs |
| net-tools | Tools for network, for example, wpa-supplicant |
| Wayland |
- Display server protocol and implementation designed for
Unix-like operating system (OS)
- Part of the OS GUI
|
| V4L2 |
- Second version of the Video4Linux (V4L)
- Video capturing API for Linux
|
| UI | Based on Weston and Wayland |
| Advanced Linux sound architecture (ALSA) | Provides the audio and MIDI functionality to the Linux OS |
| Low-level virtual machine (LLVM) | LLVM is a set of compiler and toolchain technologies that can be used
to develop a frontend for any programming language and a backend for
any instruction set architecture |
| Python | Version 2.7.5 |
| Git | Free and open-source distributed version control system designed to
handle small and large projects with speed and efficiency |
| Perl | Highly capable and feature-rich programming language |
| GCC |
- Packaged by the major and minor version
- Source packages are called gcc-4.8, gcc-4.9, and so on
- Some language front ends are built from a separate source
package to reduce the build and the test times of these packages
(gnat-4.9)
|
| GNU project debugger (GDB) | Displays the execution of another program or the state of a program
when it crashed |
| **Robotics** | **Robotics** |
| Robot operating system (ROS) and ROS2 |
- Provides libraries and tools to help software developers create
robot applications
- Provides hardware abstraction, device drivers, libraries,
visualizers, message-passing, package management, and so on
- Licensed under an open-source BSD license
|
| Visual synchronous localization and mapping (vSLAM) |
- Simultaneous localization (synchronous positioning) and
mapping
- Solves the problem of robot positioning and map construction
when it moves in an unknown environment
|
| **AI** | **AI** |
| TensorFlow Lite |
- Lightweight solution for mobile and embedded devices
- Enables on-device machine learning inference with low latency
and small binary size
|
| Qualcomm Neural Processing SDK | Engineered to help developers save time and effort in optimizing
performance of trained neural networks on devices with Qualcomm®
Mobile Platform |
| Neural networks API (NNAPI) |
- Android-based C language API that runs intense computational
operations related to machine learning on mobile devices
- Higher-level machine for building and training learning
framework of neural network (for example, TensorFlow Lite,
Caffe2) that provides low-level support
|
| **Other tech areas** | **Other tech areas** |
| Audio | Low-power audio subsystem (LPASS) combined with the Qualcomm
Aqsticâ„¢ Audio Technologies WCD9380/WCD9385
audio codec for low-power voice processing and audiophile quality
audio playback |
| Display |
- MIPI-HDMI bridge IC IT9611
- OpenGL ES
|
| WLAN |
- External 802.11ax
- 2 × 2 MIMO
|
| Camera | Main support comes from MIPI Bayer camera which utilizes the ISP
hardware. Qualcomm USB video class (UVC)Â camera is optional. |
| Bluetooth^®^ | Bluetooth 5.1 |
| Modem | Network device that modulates and demodulates the analog carrier
signals (sine waves) for encoding and decoding the digital
information for processing |
| Security | AppArmor |
| GPU | Qualcomm^®^
Adrenoâ„¢ 650 GPU for the highest in graphics
performance and power efficiency |
| VPU | Adreno 665 VPU for high-quality, ultra-HD video encode and decode |
| DSP | Hexagon DSP with quad-HVX processor for vision processing and machine
learning |
## Qualcomm Robotics RB5 build system (Linux
Ubuntu)
Files used to build an image are stored in layers. Layers contain different types of
customizations and come from different sources. Some of the files in a layer are
called recipes.
Yocto Project recipes contain the mechanism to retrieve source code, build, and
package a component.

Table : Ubuntu configuration file components
| Components | Description |
| --- | --- |
| Metadata | Core of the Yocto framework |
Table : Yocto build system components
| Components | Description |
| --- | --- |
| Source fetch |
- Fetches the source code
- Uses the
SRC_URI variable and prefix of the
argument to determine the correct fetcher module
|
| Patch apply |
- Locates the patch files and applies them to the source
code
- After fetching and unpacking the source files, the build
system uses the SRC_URI statements of the
recipe to locate and apply patch files to the source
code
|
| Configuration |
- The
do_configure component failing is
related to incorrect commands
- For example, feeding GCC while
clang is
needed and feeding aarch64 while
armhf is fed
|
| Customized metadata |
- Finds information to create a Yocto custom meta layer needed
to support the custom board
- For example, the ROS2 meta layer is created
|
| Newly added Ubuntu distro |
- To add a new distribution, place a new distro configuration
file in the conf/distro directory in
the meta-qti-bsp layer mentioning details
about the distribution features
- Place the distro configuration file in another layer similar
to Qualcomm Robotics RB5
|
| Newly added recipes for Rootfs and Ubuntu toolchain | |
| Replace Yocto toolchain with Ubuntu toolchain |
- Original Yocto toolchain and Ubuntu toolchain
- Ubuntu toolchain plays the role of multirecipe that means
the default setup of recipes
|
| Debs | Debian package groups for OSS, Ubuntu, and Qualcomm |
| Ubuntu Rootfs | Download the Ubuntu-based Rootfs to make the available Ubuntu
Rootfs |
| Raw/ext4 image | Final system image file (raw for full ext4 image file or ext4 for
sparse image) |
| Do\_Rootfs/make\_ext4 | Native tools like x86 used in the compilation, for example,
makefs\_ext4 |
Note: Qualcomm Linux uses Yocto Project as the build system to build images.
This framework provides key capabilities that enable build configurations for
specific customization needs. The code is organized as meta layers. For more
information about the Yocto framework, see [https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html](https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html).
**Parent Topic:** [Build system](https://docs.qualcomm.com/doc/80-88500-2/topic/4_Qualcomm_Robotics_RB5_build_system.html)
Last Published: Aug 18, 2023
[Previous Topic
Build system](https://docs.qualcomm.com/bundle/publicresource/80-88500-2/topics/4_Qualcomm_Robotics_RB5_build_system.md) [Next Topic
Qualcomm Robotics RB5 Platform architecture (Linux Embedded)](https://docs.qualcomm.com/bundle/publicresource/80-88500-2/topics/qualcomm_robotics_rb5_platform_architecture_linux_enabled.md)