> ## 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 Workflow Overview

End-to-end robotics development on Qualcomm Dragonwing™ SBCs using ROS 2 Jazzy. This section has three tracks — pick the one that fits your goal.

<CardGroup cols={3}>
  <Card title="Foundations" icon="wrench" href="./software-setup">
    One-time ROS 2 Jazzy install on Ubuntu. Start here if this is a fresh SBC.
  </Card>

  <Card title="QRB ROS ecosystem" icon="cubes" href="./qrb-ros-overview">
    Zero-copy transport, NPU inference, reference samples, Gazebo sim, and benchmarking.
  </Card>

  <Card title="TurtleBot3 hands-on" icon="robot" href="./turtlebot3">
    Bring up a TurtleBot3 Burger, map a space with Cartographer, and drive autonomously with Nav2.
  </Card>
</CardGroup>

## Which track should I pick?

* **Just got a new board?** Start with [Software Setup](./software-setup).
* **Evaluating Qualcomm silicon for your robot?** Read [QRB ROS Overview](./qrb-ros-overview) for a tour of the packages — reference samples, zero-copy transport, generic NPU inference, Gazebo sim, benchmarking.
* **Want to learn how NPU inference wires together from scratch?** The [Depth Estimation on the NPU](./npu-workflows) page is the **hand-rolled example** — same result as the packaged [`sample_depth_estimation`](./qrb-ros-samples), but built against the underlying primitives (QNN TFLite delegate + stock ROS 2 + AI Hub model) so you can see every seam.
* **Have a TurtleBot3 and want it driving autonomously?** Follow the hands-on path: [TurtleBot3](./turtlebot3) → [SLAM & Navigation](./slam-navigation).

<Info>
  **Why Qualcomm-specific packages?** Stock community ROS 2 can't reach the Hexagon HTP NPU — access to HTP requires the Qualcomm QNN delegate — and stock `image_transport` always serializes camera frames into a memcpy. [QRB ROS Overview](./qrb-ros-overview) and [`qrb_ros_transport`](./qrb-ros-transport) cover both in depth.
</Info>

## QRB ROS ecosystem

| Page                                                | Purpose                                                                                                  |
| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| [**Ecosystem overview**](./qrb-ros-overview)        | What QRB ROS is, how it differs from stock ROS 2, and how the pieces compose with community packages.    |
| [**Samples**](./qrb-ros-samples)                    | Catalog of AI and robotics reference pipelines — depth, pose, detection, SLAM, Nav2, AprilTag, and more. |
| [**Transport**](./qrb-ros-transport)                | Zero-copy DMA-buf messaging for `Image` and `PointCloud2` via REP 2007 type adaptation.                  |
| [**NN Inference**](./qrb-ros-nn-inference)          | Generic ROS 2 node for loading `.tflite` / `.so` / `.bin` models on the Hexagon HTP NPU via QNN.         |
| [**Simulation**](./qrb-ros-simulation)              | Gazebo-based sim for QRB AMRs and manipulators — evaluate QRB ROS without hardware.                      |
| [**Benchmark**](./qrb-ros-benchmark)                | `ros2_benchmark` extension that measures QRB / dmabuf / standard transport types apples-to-apples.       |
| [**DDS Config Optimizer**](./qrb-ros-dds-optimizer) | LLM-driven FastDDS auto-tuner. SoC-agnostic — works on any Ubuntu + ROS 2 Humble/Jazzy setup.            |

## Hand-rolled example: Depth Estimation on the NPU

A from-scratch counterpart to the packaged [`sample_depth_estimation`](./qrb-ros-samples) pipeline — same result, no QRB wrappers. Useful when you want to see every seam: camera ingest, TFLite preprocessing, the QNN delegate loading onto the HTP NPU, and the ROS 2 node glue. Uses a quantized TFLite model from [Qualcomm AI Hub](https://aihub.qualcomm.com), the Qualcomm QNN TFLite delegate, and a camera publishing `/image_raw`.

| Workflow                                | Model           | Output                                        |
| --------------------------------------- | --------------- | --------------------------------------------- |
| [**Depth Estimation**](./npu-workflows) | MiDaS v2 (INT8) | Colorized depth image + raw inverse-depth map |

## TurtleBot3 hands-on

| Workflow                                   | Purpose                                                                                                                                                               |
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**Software Setup**](./software-setup)     | One-time installation of ROS 2 Jazzy, including environment configuration. Follows the standard ROS 2 Jazzy Ubuntu install.                                           |
| [**TurtleBot3**](./turtlebot3)             | TurtleBot3 Burger-specific setup: workspace installation, environment variables, serial permissions, bringup, and teleop.                                             |
| [**SLAM & Navigation**](./slam-navigation) | Build an occupancy grid map with Cartographer, save it, then run Nav2 for autonomous goal-based navigation. Covers RViz on the local display and on a remote machine. |
| [**Troubleshooting**](./troubleshooting)   | Common issues: serial port permissions, LiDAR not found, `cmd_vel` API changes, and map saver pitfalls.                                                               |
