编译安装并刷写高通智能机器人SDK

news2024/11/26 10:24:37

The Qualcomm Intelligent Robotics Product SDK (QIRP SDK) 高通智能机器SDK基于ROS2进行开发,此SDK适用于高通linux发行版本,QIRPSDK中提供以下内容:

ROS 包中用于支持机器人应用程序开发的参考代码

  • 用于评估机器人平台的端到端场景示例
  • 集成交叉编译工具链,包括常见的编译工具,例如 aarch64-oe-linux-gcc、make、cmake 和 ROS 核心
  • 集成开发的工具和脚本

QIRP SDK整体架构如下图所示:

Qualcomm® Intelligent Multimedia SDK (IM SDK) :提供用于优化应用开发的 Qualcomm 硬件加速插件。

Qualcomm® Intelligent Robotics Function SDK: 为 Qualcomm 机器人平台提供机器人功能 ROS 节点。该 SDK 基于 ROS2,这是一个开源的操作系统。

Qualcomm® AI Engine Direct SDK: 为 Qualcomm 芯片组和 AI 加速核心上的 AI/ML 用例提供软件架构。它提供了一个统一的 API,具有模块化和可扩展的单独加速器库,形成了全栈 AI 解决方案的可重用基础。它支持 runtime,如 Qualcomm Neural Processing SDK 和 TensorFlow Lite AI Engine Direct Delegate。

编译和安装QIRPSDK

前提条件:需要Ubunt22.04的主机和至少50GB的磁盘空间

Ubuntu 主机需要进行一些配置操作,确保所需的软件工具已安装和配置,可以使用。

1.安装以下软件包,准备好运行 Yocto 版本所需的主机环境

sudo apt update

sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential \

    chrpath socat cpio python3 python3-pip python3-pexpect xz-utils \

    debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa \

    libsdl1.2-dev pylint xterm python3-subunit mesa-common-dev zstd \

    liblz4-tool locales tar python-is-python3 file libxml-opml-simplegen-perl \

    vim whiptail

2.设置语言环境:

sudo locale-gen en_US.UTF-8

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

export LC_ALL=en_US.UTF-8

export LANG=en_US.UTF-8

3更新 git 配置:

# Check if your identity is configured in. gitconfig

git config --get user.email

git config --get user.name

# Run the following commands if you do not have your account identity set in .gitconfig

git config --global user.email <Your email ID>

git config --global user.name <"Your Name">

# Add the following UI color option for output of console (optional)

git config --global color.ui auto

# Add the following git configurations to fetch large size repositories and to avoid unreliable connections

git config --global http.postBuffer 1048576000

git config --global http.maxRequestBuffer 1048576000

git config --global http.lowSpeedLimit 0

git config --global http.lowSpeedTime 999999

编译基础镜像

1.设置repo

mkdir -p ~/bin

cd ~/bin

#Note if you already have a previous directory of repo_tool, you can delete it

rm -rf ~/bin/repo_tool

git clone https://android.googlesource.com/tools/repo.git -b v2.41 repo_tool

cd repo_tool

git checkout -b v2.41

export PATH=~/bin/repo_tool:$PATH

如果您所在的区域阻止了对 android.googlesource 的访问,请尝试以下配置以从 Codelinaro 镜像获取存储库

git config --global url.https://git.codelinaro.org/clo/la/tools/repo.insteadOf https://android.googlesource.com/tools/repo

如果上述方法不起作用,也可以尝试用命令行安装repo

sudo apt install curl

mkdir -p ~/bin

curl https://raw.githubusercontent.com/GerritCodeReview/git-repo/v2.41/repo -o ~/bin/repo && chmod +x ~/bin/repo

export PATH=~/bin:$PATH

注意:最新的repo只支持python3

2.下载 Qualcomm Yocto 和支持层:

 mkdir <workspace>

 cd <workspace>

repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m <robotics-release-manifest>

repo sync -c -j8

有关最新版的<robotics-release-manifest>请参考Qualcomm Documentation

举例:

这里采用‘qcom-6.6.28-QLI.1.1-Ver.1.1_robotics-product-sdk-1.1’版本

repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m qcom-6.6.28-QLI.1.1-Ver.1.1_robotics-product-sdk-1.1.xml

repo sync -c -j8

下载完后检查layer文件夹下这些层是否存在

meta-qcom

meta-qcom-hwe

meta-qcom-distro

meta-ros

meta-qcom-robotics

meta-qcom-robotics-distro

meta-qcom-robotics-sdk

meta-qcom-qim-product-sdk

meta-qcom-qim-product-sdk

3.设置编译环境:

cd <workspace>

MACHINE=qcm6490 DISTRO=qcom-robotics-ros2-humble source setup-robotics-environment

4编译机器人镜像和 QIRP SDK 组件

../qirp-build qcom-robotics-full-image

编译过程中可能会出现网络错误导致fetch error,多尝试几次即可。

编译完成后可查看以下文件是否存在

QIRP SDK artifacts: <workspace>/build-qcom-robotics-ros2-humble/tmpglibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gz

Robotics image:<workspace>/build-qcom-robotics-ros2-humble/tmpglibc/deploy/images/qcm6490/qcom-robotics-full-image

刷写镜像(需要RB3Gen2设备

确保在 Linux 主机上配置了 Qualcomm 制造供应商 ID 05c6 的 udev USB 规则

1.导航到 udev USB 规则目录

cd /etc/udev/rules.d

ls

如果 51-qcom-usb.rules 文件不存在,使用 sudo vi 51-qcom-usb.rules 创建该文件并将以下内容添加到文件中:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0666", GROUP="plugdev"

重新启动udev

sudo systemctl restart udev

2.将设备进入EDL模式

adb shell reboot edl

3.验证设备是否已进入 QDL 模式

lsusb

输出以下内容表示成功进入QDL

Bus 002 Device 014: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)

4.确保ModemManager 未在运行

有些 Linux 发行版本随附 ModemManager,即一款用于配置移动宽带的工具。当设备以 USB 模式连接时,它会被识别为 Qualcomm Modem,ModemManager 会尝试配置该设备。由于这会干扰 QDL 刷写,因此您必须在连接设备之前禁用 ModemManager。如果使用的 Linux 发行版本带有 systemd,则可使用以下命令停止 ModemManager:

sudo systemctl stop ModemManager

如果您需要 ModemManager,则可在刷写完成后再次启动它。

5. 导航到工作区中的以下位置可找到 QDL 工具并刷写镜像

# cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/<MACHINE>/<IMAGE>

# build_path: For DISTRO=qcom-wayland, it is build-qcom-wayland.

#             For DISTRO=qcom-robotics-ros2-humble, it is build-qcom-robotics-ros2-humble

# qdl <prog.mbn> [<program> <patch> ...]

# Example: build_path is build-qcom-wayland

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-multimedia-image

./qdl prog_firehose_ddr.elf rawprogram*.xml patch*.xml

如果您在终端窗口上看到 partition 1 is now bootable(如以下消息所示),则表示刷写成功

LOG: INFO: Calling handler for setbootablestoragedrive

LOG: INFO: Using scheme of value = 1

partition 1 is now bootable

LOG: INFO: Calling handler for power

LOG: INFO: Will issue reset/power off 100 useconds, if this hangs check if watchdog is enabled

LOG: INFO: bsp_target_reset() 1

刷写操作成功后,运行 lsusb 命令以在终端窗口上查看设备信息:

Bus 002 Device 006: ID 05c6:901d Qualcomm, Inc. QCM6490_fd2913cf

作者:王纪尧 高通工程师

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2233979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网页版五子棋—— WebSocket 协议

目录 前言 一、背景介绍 二、原理解析 1.连接过程&#xff08;握手&#xff09; 2.报文格式 三、代码示例 1.服务端代码 &#xff08;1&#xff09;TestAPI 类 &#xff08;2&#xff09;WebSocketConfig 类 2.客户端代码 3.代码演示 结尾 前言 从本篇文章开始&am…

鸿蒙应用开发:下载功能

鸿蒙系统不断发展&#xff0c;有与安卓、iOS 形成三足鼎立之势&#xff0c;且其在智能手机、智能穿戴、车载、家居等行业领域的应用越来越广泛。作为开发者&#xff0c;如何抓住鸿蒙生态崛起的机遇&#xff0c;解决开发挑战&#xff0c;创造更好的应用体验&#xff1f;欢迎您和…

小白直接冲!BiTCN-BiLSTM-Attention双向时间卷积双向长短期记忆神经网络融合注意力机制多变量回归预测

小白直接冲&#xff01;BiTCN-BiLSTM-Attention双向时间卷积双向长短期记忆神经网络融合注意力机制多变量回归预测 目录 小白直接冲&#xff01;BiTCN-BiLSTM-Attention双向时间卷积双向长短期记忆神经网络融合注意力机制多变量回归预测效果一览基本介绍程序设计参考资料 效果一…

如何绘制产业链图谱?

绘制产业链图谱是一个系统性的工作&#xff0c;涉及到对产业的深入理解和分析。对于一般产业绘制产业图谱的步骤&#xff0c;我们可以参照以下流程&#xff1a; 1.明确目标产业链&#xff1a;确定要分析的产业链&#xff0c;比如新材料、新能源、智能制造等&#xff0c;这通常…

Pycharm,2024最新专业版下载安装配置详细教程!

先来一段官方介绍&#xff0c;PyCharm是一种PythonIDE&#xff0c;带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#xff0c;比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外&#xff0c;该IDE提供了一些高级功能…

鸿蒙开发——进程模型与进程通信

1、进程模型 ❓ 什么是进程&#xff1f; 进程是一个正在执行的程序的实例。当我们启动一个程序时&#xff0c;操作系统会创建一个进程&#xff0c;分配给它所需的资源&#xff0c;如内存和CPU时间。每个进程至少有一个线程&#xff0c;即执行线程&#xff0c;负责执行程序的指…

SQL server 中 CROSS APPLY的使用

CROSS APPLY 是 SQL Server 中的一个操作符&#xff0c;用于将一个表表达式&#xff08;如子查询、函数等&#xff09;与外部表进行连接。CROSS APPLY 类似于 INNER JOIN&#xff0c;但它允许你在一个查询中多次引用外部表的行&#xff0c;并且可以动态地生成结果集。 基本语法…

xlwings,让excel飞起来!

excel已经成为必不可少的数据处理软件&#xff0c;几乎天天在用。python有很多支持操作excel的第三方库&#xff0c;xlwings是其中一个。 关于xlwings xlwings开源免费&#xff0c;能够非常方便的读写Excel文件中的数据&#xff0c;并且能够进行单元格格式的修改。 xlwings还…

[大模型]Diffusion扩散式生成模型

一、概述 扩散式生成模型相较于GAN网络的对抗式生成模型&#xff0c;有更高的精度&#xff0c;也更符合人类的视觉和审美罗技&#xff0c;且风格化能力更强。现行的所有Diffusion模型都是基于2020年的论文DDPM来实现的。 GAN网络通过使生成器(Generator)生成的模型尽可能的逼近…

十四届蓝桥杯STEMA考试Python真题试卷第二套第五题

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套编程第五题 本题属于迷宫类问题,适合用DFS算法解决,解析中给出了Python中 map() 和列表推导式的应用技巧。最后介绍了DFS算法的两种常见实现方式——递归实现、栈实现,应用场景——迷宫类问题、图的连通性、树的遍历、拓朴排…

keil5的Debug调试时,卡在 LDR R0, =SystemInit,无法往后进行

解决办法&#xff1a;使用STM32Cube生成的工程文件时&#xff0c;勾选Use MicroLIB即可

OpenEuler 使用ffmpeg x11grab捕获屏幕流,rtsp推流,并用vlc播放

环境准备 安装x11grab(用于捕获屏幕流)和libx264(用于编码) # 基础开发环境&x11grab sudo dnf install -y \autoconf \automake \bzip2 \bzip2-devel \cmake \freetype-devel \gcc \gcc-c \git \libtool \make \mercurial \pkgconfig \zlib-devel \libX11-devel \libXext…

ai常见实验

参考链接https://arxiv.org/pdf/2410.19894 对比实验&#xff08;sota 表格&#xff09; -辅助信息可以体现 P F 等 可视化结果 &#xff08;图片形式&#xff09; 消融实验 超参数实验 &#xff08;有时候表示 有时候单独表格 看哪个参数好&#xff09; 部分消融和超参数…

【万字详文介绍】:迭代扩张卷积神经网络(IDCNN)

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

Oracle OCP认证考试考点详解082系列12

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 56. 第56题&#xff1a; 题目 解析及答案&#xff1a; 关于企业管理器&#xff08;EM&#xff09;Express&#xff0c;以下哪两个陈述是…

任务:拟合曲面

3d 要拟合粗的蓝色曲面&#xff0c;剩下三条线是在3个平面的投影 1 2 3 4d

Python世界:自动化办公Word之批量替换文本生成副本

Python世界&#xff1a;自动化办公Word之批量替换文本生成副本 任务背景编码思路代码实现相关参考 任务背景 为提高办公效率&#xff0c;用python试手了一个word任务&#xff0c;要求如下&#xff1a; 给你一个基础word文档A&#xff0c;格式为docx&#xff0c;名字为&#xf…

如何检查雷池社区版 WAF 是否安装成功?

容器运行状态检查&#xff1a; 使用命令行检查&#xff1a;打开终端&#xff0c;连接到安装雷池的服务器。运行 docker ps 命令&#xff0c;查看是否有与雷池相关的容器正在运行。 如果能看到类似 safeline-mgt、safeline-tengine 等相关容器&#xff0c;并且状态为 Up&#x…

青少年编程能力等级测评CPA Python编程(一级)

青少年编程能力等级测评CPA Python编程(一级) &#xff08;考试时间90分钟&#xff0c;满分100分&#xff09; 一、单项选择题&#xff08;共20题&#xff0c;每题3.5分&#xff0c;共70分&#xff09; 下列语句的输出结果是&#xff08; &#xff09;。 print(35*2) A&a…

java学习2

一、什么是方法 方法&#xff08;method&#xff09;是程序中最小的执行单元 重复的代码、具有独立功能的代码可以抽取到方法中&#xff1b;提高代码的复用性和可维护性。 二、方法的格式 1.方法的格式定义&#xff1a; 最简单的方法定义 调用&#xff1a;playGame(); 带…