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

# 设置运行示例应用程序的环境

要成功运行 QIR SDK 提供的示例应用程序，您必须在主机环境和设备上完成以下设置，以确保后续步骤的正常运行。

## 设置设备

通过完成以下配置，使设备准备好运行示例应用程序：

<Tabs>
  <Tab title="IQ-9075 EVK">
    1. 前往 IQ-9075 文档的[设置设备](../../Linux/devices/iq9075-evk/set-up-the-device)。
    2. 完成以下设置：

       a. [设置调试 UART](../../Linux/devices/iq9075-evk/set-up-the-device#set-up-the-debug-uart)。

       b. 按照[连接到设备](../../Linux/devices/iq9075-evk/set-up-the-device#connect-to-the-device)，通过 `Wi-Fi` 或 `Ethernet` 连接设备。
  </Tab>

  <Tab title="IQ-8275 EVK">
    1. 前往 IQ-8275 文档的[设置设备](../../Linux/devices/iq8275-evk/set-up-the-device)。
    2. 完成以下设置：

       a. [设置调试 UART](../../Linux/devices/iq8275-evk/set-up-the-device#set-up-the-debug-uart)。

       b. 按照[连接到设备](../../Linux/devices/iq8275-evk/set-up-the-device#connect-to-the-device)，通过 `Wi-Fi` 或 `Ethernet` 连接设备。
  </Tab>
</Tabs>

## 设置主机

通过在主机和设备上分别运行 `ping <device IP address>`，确保 Ubuntu 主机和设备处于同一网络中。

```bash theme={null}
ping <device/host IP address>
```

## 设置主机 Docker

示例应用程序在主机上使用 ROS 2 Jazzy 进行通信。您可以通过以下任一方式运行示例应用程序：

* **Docker（推荐）**：执行以下步骤配置 Ubuntu 24.04 Docker 环境。这可确保无论您的主机 Ubuntu 版本如何，都能获得一致的 ROS 2 Jazzy 环境。
* **直接在主机上**：在运行 Ubuntu 24.04 的主机上安装 ROS 2 Jazzy，并直接在主机上运行示例应用程序。

<Tabs>
  <Tab title="Docker（推荐）">
    ### 前提条件

    在开始之前，请确保：

    * 主机运行的是 Ubuntu。
    * 已安装 Docker Engine。
    * Docker 服务正在运行。
    * 当前用户属于 `docker` 组。

          <Note>
            **注意**

            如果尚未安装 Docker，请参阅 [Docker](troubleshoot#docker)。
          </Note>

    1. 下载 `qrb_ros_simulation` 仓库和网格（mesh）文件。
       ```powershell theme={null}
       mkdir -p ~/qrb_ros_simulation_ws
       cd ~/qrb_ros_simulation_ws
       git clone https://github.com/qualcomm-qrb-ros/qrb_ros_simulation.git
       cd qrb_ros_simulation
       git checkout -b 96b5ac0a8066453a6b176d1064e4b7c688f95ac1
       ```
    2. 构建本地 Docker 镜像。

       ```bash theme={null}
       chmod +x scripts/docker_build.sh
       bash ./scripts/docker_build.sh
       ```

           <Note>
             **注意**

             如果您在使用 Docker 时遇到问题，请参阅[排查常见问题](./troubleshoot)。
           </Note>
    3. 启动 Docker 容器。

       ```python theme={null}
       chmod +x scripts/docker_run.sh
       bash ./scripts/docker_run.sh
       ```

           <Note>
             **注意**

             容器的远程桌面默认由 VNC 密码 `qrbrossim` 保护。您可以在运行脚本之前通过导出 `VNC_PASSWORD` 来设置自己的密码，例如 `VNC_PASSWORD=<your-password> bash ./scripts/docker_run.sh`。
           </Note>
    4. 确定 Docker 容器和开发套件都能访问到的主机 IP 地址。在主机上，列出接口地址：
       ```bash theme={null}
       ip -4 addr show
       ```
       使用与开发套件位于同一网络中的 IP 地址。您可以在设备上使用以下命令验证该地址：
       ```bash theme={null}
       ping <host-interface-ip-address>
       ```
    5. 在任何能够访问主机的计算机上，打开 Web 浏览器并访问 `http://<host-interface-ip-address>:6080/vnc.html`。选择 **Connect** 并输入 VNC 密码，即可访问容器的远程桌面。
    6. 在远程桌面中，打开终端（例如，右键单击桌面并选择 **Open Terminal Here**），然后配置 ROS 2 环境。
       ```bash theme={null}
       source /opt/ros/jazzy/setup.bash
       export ROS_DOMAIN_ID=123
       rqt
       ```

    至此，您已构建好 ROS 2 Jazzy 的 Docker 环境。如果环境配置正确，`rqt` 窗口将显示在基于浏览器的远程桌面中。

    <Note>
      **注意**

      有关如何使用 `rqt` 查看示例应用程序的运行效果，请参阅各示例应用程序的步骤。
    </Note>
  </Tab>

  <Tab title="直接在主机上">
    ### 前提条件

    在开始之前，请确保：

    * 主机运行的是 Ubuntu。

    1. 按照官方 [ROS 2 Jazzy Debian 软件包安装指南](https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html)安装 ROS 2。

           <Note>
             **注意**

             在"Install ROS 2"步骤中，请安装推荐的桌面版本（Desktop Install）。
           </Note>
    2. 安装带 ROS 的 gazebo 及其他依赖项
       ```bash theme={null}
       sudo apt-get install -y ros-jazzy-ros-gz ros-jazzy-gz-ros2-control ros-jazzy-ros2-controllers
       ```
    3. [下载 qrb\_ros\_simulation 和网格文件](https://github.com/qualcomm-qrb-ros/qrb_ros_simulation#%E2%80%8D-build-from-source)
  </Tab>
</Tabs>

## 后续步骤

* [运行演示应用程序](./run-demo-application)
* [评估更多示例应用程序](./qir-sdk-sample-applications)
* [开发机器人应用程序](./develop-applications-using-the-qir-sdk)
