# 开发示例 ROS2 应用程序

这些信息介绍了如何使用 QIR SDK 工具链来编译一个简单的 ROS 2 示例应用程序。Python 和 C++ 开发的演示和代码均可作为示例使用。

## 将预编译的 `QIR SDK` 安装到主机

在主机上，转到 artifact 目录，并使用 `tar` 命令解压 `QIR SDK`：

> 
> 
> cd <decompressed_workspace>/target/qcs6490-rb3gen2-vision-kit/qirpsdk_artifacts/qcs6490-rb3gen2-vision-kit
>     tar -zxvf qirp-sdk_<qirp_version>.tar.gz
>     Copy to clipboard
> 
> 
> 此命令生成 `qirp-sdk` 目录。

Note

- `qirp-sdk_<qirp_version>.tar.gz` 位于 QIR artifact 的部署路径中。`<qirp_version>` 会随着每个版本而变化，例如 2.0.0、2.0.1。例如，完整包的名称可以是 `qirp-sdk_2.4.0.tar.gz`。
- 有关所有已发布版本，请参阅 [Qualcomm® Intelligent Robotics SDK (QIR SDK) 2.0 Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-260)。
- QIR SDK 支持 Qualcomm Linux 的开发套件：

> 
> 
> | 开发套件 | 机器名称 |
>     | --- | --- |
>     | Qualcomm Dragonwing^TM^ RB3 Gen 2 机器视觉套件 | `qcs6490-rb3gen2-vision-kit` |
>     | Qualcomm Dragonwing^TM^ IQ-9075 EVK | `qcs9075-iq-9075-evk` |
>     | Qualcomm Dragonwing^TM^ IQ-8 Beta 评估套件 | `qcs8300-ride-sx` |

## 使用 QIR SDK 开发应用程序

1. 搭建交叉编译环境。

cd <decompressed_workspace>/target/qcs6490-rb3gen2-vision-kit/qirpsdk_artifacts/qcs6490-rb3gen2-vision-kit/qirp-sdk
        source setup.sh
        Copy to clipboard
2. 获取项目作为代码基准。

git clone https://github.com/ros2/demos.git -b jazzy
        Copy to clipboard
3. 使用 C++ 或 Python 开发您自己的应用程序。

Tab 使用 C++ 开发 ROS 应用程序
Tab 使用 Python 开发 ROS 应用程序

1. 开发您自己的 C++ 应用程序。以下是一个示例。

cd demos/demo_nodes_cpp
            vim src/topics/talker.cpp +46
            Copy to clipboard

        更改 `46` 行中的 `demo_nodes_cpp/src/topics/talker.cpp` 消息数据：

msg_->data = "Hello World : Qualcomm : " + std::to_string(count_++);
            Copy to clipboard
    2. 设置必要的环境变量，并使用 colcon 工具编译 ROS2 软件包 demo\_nodes\_cpp 及其依赖项。

colcon build --merge-install --packages-up-to demo_nodes_cpp --cmake-args ${CMAKE_ARGS}
            Copy to clipboard
    3. 将演示推送到设备。

cd demo_nodes_cpp/install
            tar -czvf demo_nodes_cpp.tar.gz lib share
            scp demo_nodes_cpp.tar.gz root@[ip-addr]:/opt/
            ssh root@[ip-addr]
            (ssh) mount -o remount,rw /usr
            (ssh) tar --no-overwrite-dir --no-same-owner -zxf /opt/demo_nodes_cpp.tar.gz -C /usr/
            Copy to clipboard
    4. 在设备上运行演示程序。

(ssh) source /usr/share/qirp-setup.sh
            (ssh) ros2 run demo_nodes_cpp talker
            
            open a new terminal, and run the following commands:
            (ssh) source /usr/share/qirp-setup.sh
            (ssh) ros2 run demo_nodes_cpp listener
            Copy to clipboard
    5. 检查输出。

The terminal 1 output is as follows:
            [INFO] [1739864779.759719598] [talker]: Publishing: 'Hello World : Qualcomm : 1'
            [INFO] [1739864780.759687179] [talker]: Publishing: 'Hello World : Qualcomm : 2'
            [INFO] [1739864781.760812014] [talker]: Publishing: 'Hello World : Qualcomm : 3'
            ...
            
            The terminal 2 output is as follows:
            
            [INFO] [1739864779.760348380] [listener]: I heard: [Hello World : Qualcomm : 1]
            [INFO] [1739864780.760276535] [listener]: I heard: [Hello World : Qualcomm : 2]
            [INFO] [1739864781.762066296] [listener]: I heard: [Hello World : Qualcomm : 3]
            ...
            Copy to clipboard

1. 开发您自己的 Python 应用程序。以下是一个示例。

cd demos/demo_nodes_py
            vim demo_nodes_py/topics/talker.py +33
            Copy to clipboard

        更改 `33` 行中的 `demo_nodes_py/topics/talker.py` 消息数据：

msg.data = 'Hello World : Qualcomm : {0}'.format(self.i)
            Copy to clipboard
    2. 设置必要的环境变量，并使用 colcon 工具编译 ROS 2 软件包 demo\_nodes\_py 及其依赖项。

colcon build --merge-install --packages-up-to demo_nodes_py
            Copy to clipboard
    3. 将演示推送到设备。

cd demo_nodes_py/install
            tar -czvf demo_nodes_py.tar.gz lib share
            scp demo_nodes_py.tar.gz root@[ip-addr]:/opt/
            ssh root@[ip-addr]
            (ssh) mount -o remount,rw /usr
            (ssh) tar --no-overwrite-dir --no-same-owner -zxf /opt/demo_nodes_py.tar.gz -C /usr/
            Copy to clipboard
    4. 在设备上运行演示程序。

(ssh) export HOME=/home
            (ssh) source /usr/bin/ros_setup.sh && source /usr/share/qirp-setup.sh
            (ssh) ros2 run demo_nodes_py talker
            
            open a new terminal, and run the following commands:
            (ssh) export HOME=/home
            (ssh) source /usr/bin/ros_setup.sh && source /usr/share/qirp-setup.sh
            (ssh) ros2 run demo_nodes_py listener
            Copy to clipboard
    5. 检查输出。

The terminal 1 output is as follows:
            [INFO] [1739864779.759719598] [talker]: Publishing: 'Hello World : Qualcomm : 1'
            [INFO] [1739864780.759687179] [talker]: Publishing: 'Hello World : Qualcomm : 2'
            [INFO] [1739864781.760812014] [talker]: Publishing: 'Hello World : Qualcomm : 3'
            ...
            
            The terminal 2 output is as follows:
            
            [INFO] [1739864779.760348380] [listener]: I heard: [Hello World : Qualcomm : 1]
            [INFO] [1739864780.760276535] [listener]: I heard: [Hello World : Qualcomm : 2]
            [INFO] [1739864781.762066296] [listener]: I heard: [Hello World : Qualcomm : 3]
            ...
            Copy to clipboard

Last Published: Nov 11, 2025

[Previous Topic
使用 QIR SDK 开发应用程序](https://docs.qualcomm.com/bundle/publicresource/80-70022-265Y/topics/develop_application_with_qirp_sdk.md) [Next Topic
开发 pipeline 应用程序](https://docs.qualcomm.com/bundle/publicresource/80-70022-265Y/topics/develop_pipeline_application.md)