> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Robotics image and overlays

> The robotics image is a distinct Qualcomm Linux product built with its own distro, meta layer, kernel changes, and image recipes. You cannot add the robotics overlays to a stock QLI 2.0 image.

The **robotics image** is the operating system deliverable of the QIR SDK. It is a distinct Qualcomm Linux product: it is built with its own Yocto distribution, its own meta layer, its own kernel configuration and device-tree patches, and its own image recipes. It is **not** the stock Qualcomm Linux (QLI) 2.0 image with a few ROS packages added.

<Warning>
  You cannot take a stock QLI 2.0 image and "just add the robotics overlays" to it. The robotics image is a different distribution, kernel, device tree, overlay configuration, and meta layer. The build-time changes required to reproduce it are listed in [Why you cannot just add the robotics overlays](#why-you-cannot-just-add-the-robotics-overlays) below.
</Warning>

## How the robotics image differs from a stock QLI 2.0 image

The differences are structural, not additive:

| Aspect                | Stock QLI 2.0 image                                           | Robotics image                                                                                                                                                                        |
| --------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Distribution (DISTRO) | `qcom-distro`                                                 | `qcom-robotics-distro` / `qcom-robotics-ros2-jazzy`, which requires `qcom-distro.conf` and appends `ros2-jazzy` to `DISTRO_FEATURES`                                                  |
| Meta layer            | `meta-qcom` BSP layers                                        | adds `meta-qcom-robotics-sdk` (tag `qli-2.0`), which consolidates the three Qualcomm Linux 1.0 robotics layers into one                                                               |
| Kernel                | Qualcomm Linux kernel                                         | the same base plus the robotics layer's kernel config fragments and device-tree (DTS) patches; you select a kernel provider (`linux-qcom-6.18` or the real-time `linux-qcom-rt-6.18`) |
| Image recipe          | `qcom-multimedia-image` / `qcom-multimedia-proprietary-image` | `qcom-robotics-image` / `qcom-robotics-proprietary-image`                                                                                                                             |
| ROS 2                 | not included                                                  | ROS 2 Jazzy plus the `qrb-ros` packages, Navigation2, MoveIt, and Cartographer recipe adaptations                                                                                     |

You can confirm the running distribution on a flashed device:

```bash theme={null}
cat /etc/os-release
# ID=qcom-robotics-ros2-jazzy
# NAME="Qualcomm Linux Robotics Reference Distro with ROS"
```

## Two robotics image recipes

The QIR SDK provides two image recipes, each built with a different Qualcomm Linux **overlay configuration**. Overlays are the modular, value-added Qualcomm technology stacks (camera, video, audio, graphics, sensors, vision) that integrate with the upstream components, letting you choose between the upstream and the Qualcomm technology stacks. For the overlay mechanism itself, see [Use overlay configurations to derive image recipes](/Key-Documents/Migration-Guide/use-overlay-configurations-to-derive-image-recipes).

| Image recipe                      | Overlay config         | Contents                                                                                                                                                                                                                                    |
| --------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `qcom-robotics-image`             | Config 1 (upstream)    | Open-source image: ROS 2 Jazzy, open-source `qrb-ros` packages, simulation samples, third-party drivers, and the QIR SDK artifacts. No proprietary dependencies.                                                                            |
| `qcom-robotics-proprietary-image` | Config 2 (proprietary) | Everything in `qcom-robotics-image`, plus the `qrb-ros` packages that depend on Qualcomm proprietary libraries (camera, video, audio, and colorspace conversion) and all AI sample applications. This is the image Qualcomm ships prebuilt. |

## Why you cannot just add the robotics overlays

A robotics overlay is not a drop-in package set you install onto a finished root filesystem. Reproducing the robotics image requires all of the following at build time:

1. **Add the `meta-qcom-robotics-sdk` layer** (clone tag `qli-2.0`) and drive the build with KAS. The stock multimedia KAS fragments do not include it.
2. **Switch the distribution** to `qcom-robotics-distro` / `qcom-robotics-ros2-jazzy`, which pulls the `ros2-jazzy` feature into `DISTRO_FEATURES`. A stock `qcom-distro` build has no ROS distribution feature.
3. **Select a kernel provider and accept the robotics kernel changes.** The layer's `recipe-kernel` bbappends add kernel config fragments and device-tree (DTS) patches, and you choose `linux-qcom-6.18` or the real-time `linux-qcom-rt-6.18`. This re-patches the kernel and device tree, which cannot be achieved by installing packages onto a prebuilt rootfs.
4. **Build the correct image recipe with the matching overlay config**, then enable the overlays on the device. Device-side enablement includes driver-module blacklisting and, for the camera, setting the `VendorDtbOverlays` EFI variable to `camx`. See [Overlay functionality and driver module blacklisting](/Key-Documents/Migration-Guide/overlay-functionality-and-driver-module-blacklisting-overview).
5. **Pull in the ROS 2 stack and its adaptations:** ROS 2 Jazzy plus the `qrb-ros`, Navigation2, MoveIt, and Cartographer recipes and `.bbappend` adaptations that a stock image neither declares nor builds.

For the underlying platform, kernel, and device-tree changes in Qualcomm Linux 2.0, see [Changes in the Qualcomm Linux kernel](/Key-Documents/Migration-Guide/changes-in-the-qualcomm-linux-kernel).

## How to get the robotics image

### Use the prebuilt image (recommended)

Flashing the prebuilt robotics image is the fastest and recommended path.

| Step                           | Page                                                                                                  |
| ------------------------------ | ----------------------------------------------------------------------------------------------------- |
| Download the prebuilt packages | [Download the prebuilt packages](/SDKs/QIR-SDK-2.0/download-the-prebuilt-packages)                    |
| Flash with Qualcomm Launcher   | [Flash with Qualcomm Launcher](/SDKs/QIR-SDK-2.0/flash-with-qualcomm-launcher)                        |
| Flash over QDL                 | [Flash the robotics image](/SDKs/QIR-SDK-2.0/flash-the-robotics-image)                                |
| Set up the environment         | [Set up the environment for running sample applications](/SDKs/QIR-SDK-2.0/set-up-env-for-sample-app) |

### Build it yourself (optional)

<Note>
  Rebuilding the QIR SDK is complex and is not required for most developers. Prefer the prebuilt image or the prebuilt eSDK unless you need to customize the image.
</Note>

| Path                                  | Page                                                                                                                                   |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Build with the GitHub (KAS) workflow  | [Build with GitHub workflow](/SDKs/QIR-SDK-2.0/build-with-git-hub-workflow)                                                            |
| Build with QSC-CLI                    | [Build with QSC-CLI](/SDKs/QIR-SDK-2.0/build-with-qsc-cli)                                                                             |
| Build with the prebuilt robotics eSDK | [Build the robotics image with the prebuilt robotics eSDK](/SDKs/QIR-SDK-2.0/build-the-robotics-image-with-the-prebuilt-robotics-esdk) |

### Migrating from Qualcomm Linux 1.0

If you are moving from a Qualcomm Linux 1.0 robotics build, the distribution, layers, and image-composition model all changed.

| Topic                               | Page                                                                                         |
| ----------------------------------- | -------------------------------------------------------------------------------------------- |
| Migration overview                  | [Migration overview](/SDKs/QIR-SDK-2.0/migration-overview)                                   |
| Robotics OpenEmbedded layer changes | [Robotics OpenEmbedded layer changes](/SDKs/QIR-SDK-2.0/migration-robotics-oe-layer-changes) |
| Robotics image composition changes  | [Robotics image composition changes](/SDKs/QIR-SDK-2.0/migration-image-composition)          |
| Robotics layer specifications       | [Robotics layers specifications](/SDKs/QIR-SDK-2.0/robotics-layers-specifications)           |
