# 开发机器人应用程序

Source: [https://docs.qualcomm.com/doc/80-65220-2Y/topic/develop-your-first-application_6.html](https://docs.qualcomm.com/doc/80-65220-2Y/topic/develop-your-first-application_6.html)

以下示例提供了使用 QIRP SDK 开发 ROS 应用程序的一般过程，并以 GitHub 上的 ROS2 演示程序为示例。

## About this task

**前提条件：**
- **所有情况下都需要**
    在“Permissive”模式下按照 [如何使用 SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254/how_to.html#how-to-ssh-) 中介绍的步骤启用 `SSH`。
- **使用预编译包时需要**
    - 预编译的机器人镜像已刷写，参见 [刷写和安装](https://docs.qualcomm.com/doc/80-65220-2Y/topic/flash-and-install_4_3.html)。
    - 已下载预编译的 QIRP SDK。

**步骤：**

## Procedure

1. 搭建交叉编译环境。
        
cd <qirp_decompressed_workspace>/qirp-sdk
        source setup.sh
        Copy to clipboard
2. 获取项目并编写您自己的代码。
    1. 从 GitHub 获取项目。
            
git clone https://github.com/ros2/demos.git -b humble
            cd demos/demo_nodes_cpp
            vim src/topics/talker.cppCopy to clipboard
    2. 开发用户自己的应用程序。以下为示例。
            
更改 `demo_nodes_cpp/src/topics/talker.cpp` 第 46 行中的消息数据，例如将“Hello world”更改为“get message success”：

            46:msg_->data = "get message success " + std::to_string(count_++);
            Copy to clipboard
3. 编译应用程序。
        
export AMENT_PREFIX_PATH="${OECORE_TARGET_SYSROOT}/usr;${OECORE_NATIVE_SYSROOT}/usr"
        export PYTHONPATH=${PYTHONPATH}:${OECORE_TARGET_SYSROOT}/usr/lib/python3.10/site-packages
        colcon build --merge-install --cmake-args \
        -DPython3_ROOT_DIR=${OECORE_TARGET_SYSROOT}/usr \
        -DPython3_NumPy_INCLUDE_DIR=${OECORE_TARGET_SYSROOT}/usr/lib/python3.10/site-packages/numpy/core/include \
        -DCMAKE_STAGING_PREFIX=$(pwd)/install \
        -DCMAKE_PREFIX_PATH=$(pwd)/install/share \
        -DBUILD_TESTING=OFF \
        --packages-up-to demo_nodes_cpp
        Copy to clipboard
4. 将演示推送到设备。
        
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) tar -zxf /opt/demo_nodes_cpp.tar.gz -C /opt/qcom/qirp-sdk/usr/Copy to clipboard
5. 在设备上运行演示程序。
        
(ssh) export HOME=/opt
        (ssh) source /usr/bin/ros_setup.sh && source /opt/qcom/qirp-sdk/qirp-setup.sh 
        (ssh shell 1) ros2 run demo_nodes_cpp talker
        (ssh shell 2) ros2 run demo_nodes_cpp listenerCopy to clipboard

Last Published: Aug 09, 2024

[Previous Topic
刷写和安装](https://docs.qualcomm.com/bundle/publicresource/80-65220-2Y/topics/flash-and-install_4_3.md) [Next Topic
QIRP SDK 示例程序](https://docs.qualcomm.com/bundle/publicresource/80-65220-2Y/topics/qirp-sdk-sample-applications_5.md)