ROS机器人和NPU的往事和新知-250602

article/2025/6/20 7:03:34

往事:

回顾一篇五年前的博客:

ROS2机器人笔记20-12-04_ros2 移植到vxworks-CSDN博客

里面提及专用的机器人处理器,那时候只有那么1-2款专用机器人处理器。 


无关:

01: 每代人的智商和注意力差异是如何出现的-250602-CSDN博客

02: 在考古方向遥遥领先的高校课程建设-250602-CSDN博客 


新知:

以下是一个详细列举支持NPU的ROS机器人处理器的表格:

处理器型号厂商NPU算力特点与应用场景ROS支持情况
i.MX 8M Plus恩智浦(NXP)2.3 TOPS(INT8)内置NPU,支持TensorFlow Lite等机器学习框架,适用于需要AI加速的机器人应用,如物体识别、语音助手等。可通过社区支持或自定义开发集成到ROS系统中。
RV1109/RV1126瑞芯微(Rockchip)RV1109:1.2 TOPS
RV1126:更高
支持多种AI框架,常用于智能摄像头、边缘计算设备,也适用于机器人视觉处理。社区中有相关开发案例,可通过SDK集成到ROS中。
V853全志科技(Allwinner)未具体提及,但集成AI加速器支持多种神经网络模型,适用于低功耗AI应用,如轻量级机器人、智能家居设备等。需通过社区或第三方开发支持集成到ROS。
旭日X3派地平线(Horizon Robotics)5 TOPS(伯努利2.0架构BPU)适用于机器人视觉、语音交互等AI任务。官方提供ROS开发套件,支持ROS 2。
Jetson Nano英伟达(NVIDIA)0.472 TOPS(FP16)内置128核GPU,适合入门级AI应用,如机器人视觉、物体识别等。官方提供完整的ROS支持,包括驱动程序、示例代码和工具链。
Jetson Xavier NX英伟达(NVIDIA)21 TOPS适用于需要高性能AI和实时处理的机器人应用,如自动驾驶、复杂环境感知等。官方提供完整的ROS支持。
Jetson AGX Orin英伟达(NVIDIA)275 TOPS适用于高端机器人和自动驾驶等需要极高AI算力的应用。官方提供完整的ROS支持。
RB5平台高通(Qualcomm)15 TOPS(INT8)内置Hexagon DSP和AI引擎,适用于需要高性能AI和实时处理的机器人应用。高通与ROS社区合作,提供ROS 2支持,包括驱动程序和示例代码。
Core™ Ultra处理器英特尔(Intel)未具体提及,但内置NPU适用于需要高性能计算的机器人应用,如高端机器人、自动驾驶等。可通过OpenVINO™工具套件与ROS集成,支持AI推理加速。
D9350芯驰科技(SemiDrive)1 TOPS集成NPU,支持多操作系统并行,适用于需要高集成度和多系统支持的机器人应用。支持ROS 2,提供完整的工具和库。
KR260(基于Kria K26 SOM)AMD/Xilinx未具体提及,但支持ROS 2和AI加速适用于机器人和工业应用,提供高性能和灵活性。支持ROS 2,提供示例代码和工具链。
RK3562J/RK3566/RK3588瑞芯微(Rockchip)未具体提及,但内置NPU支持多种AI框架,适用于机器人视觉、工业相机等场景。社区中有相关开发案例,可通过SDK或自定义开发集成到ROS中。

说明

  • NPU算力:表格中列出的算力可能因具体型号和配置而有所不同,且可能使用不同的精度(如INT8、FP16)进行衡量。
  • 特点与应用场景:简要描述了处理器的特点和主要应用场景,但具体应用可能因项目需求而异。
  • ROS支持情况:提供了处理器与ROS的集成情况,包括官方支持、社区支持或需要自定义开发等。

这个表格涵盖了多个支持NPU的ROS机器人处理器,并提供了它们的基本信息、特点、应用场景以及ROS支持情况。开发者可以根据自己的项目需求和预算选择合适的处理器。

支持NPU的ROS机器人处理器涵盖了多个厂商和型号,以下是根据公开信息整理的详细列表,这些处理器因其内置的NPU单元,能够显著加速AI推理任务,从而提升机器人在视觉感知、路径规划、语音交互等方面的性能:

1. 恩智浦(NXP)i.MX 8M Plus

  • 特点:内置NPU,算力达2.3 TOPS(INT8),支持TensorFlow Lite等机器学习框架。
  • 应用:适用于需要AI加速的机器人应用,如物体识别、语音助手等。
  • ROS支持:可通过社区支持或自定义开发集成到ROS系统中。

2. 瑞芯微(Rockchip)RV1109/RV1126

  • 特点:RV1109内置1.2 TOPS NPU,RV1126算力更高,支持多种AI框架。
  • 应用:常用于智能摄像头、边缘计算设备,也适用于机器人视觉处理。
  • ROS支持:社区中有相关开发案例,可通过SDK集成到ROS中。

3. 全志科技(Allwinner)V853

  • 特点:集成AI加速器,支持多种神经网络模型,适用于低功耗AI应用。
  • 应用:适用于轻量级机器人、智能家居设备等。
  • ROS支持:需通过社区或第三方开发支持集成到ROS。

4. 地平线(Horizon Robotics)旭日X3派

  • 特点:搭载伯努利2.0架构的BPU(类似NPU),算力达5 TOPS。
  • 应用:适用于机器人视觉、语音交互等AI任务。
  • ROS支持:官方提供ROS开发套件,支持ROS 2,便于开发者快速构建机器人应用。

5. 英伟达(NVIDIA)Jetson系列

  • 特点
    • Jetson Nano:内置128核GPU,算力0.472 TOPS(FP16),适合入门级AI应用。
    • Jetson Xavier NX:算力高达21 TOPS,支持多传感器融合和复杂AI任务。
    • Jetson AGX Orin:算力达275 TOPS,适用于高端机器人和自动驾驶。
  • 应用:广泛应用于机器人、无人机、自动驾驶等领域。
  • ROS支持:官方提供完整的ROS支持,包括驱动程序、示例代码和工具链。

6. 高通(Qualcomm)RB5平台

  • 特点:内置Hexagon DSP和AI引擎,算力达15 TOPS(INT8)。
  • 应用:适用于需要高性能AI和实时处理的机器人应用。
  • ROS支持:高通与ROS社区合作,提供ROS 2支持,包括驱动程序和示例代码。

7. 英特尔(Intel)Core™ Ultra处理器

  • 特点:内置NPU,支持AI加速,适用于需要高性能计算的机器人应用。
  • 应用:适用于高端机器人、自动驾驶等领域。
  • ROS支持:可通过OpenVINO™工具套件与ROS集成,支持AI推理加速。

8. 地平线(Horizon Robotics)旭日X3派

  • 特点:搭载伯努利2.0架构的BPU,算力达5 TOPS,支持多种AI框架。
  • 应用:适用于机器人视觉、语音交互等AI任务。
  • ROS支持:官方提供ROS 2开发套件,支持快速开发。

9. 芯驰科技(SemiDrive)D9350

  • 特点:集成NPU,算力达1 TOPS,支持多操作系统并行。
  • 应用:适用于需要高集成度和多系统支持的机器人应用。
  • ROS支持:支持ROS 2,提供完整的工具和库。

10. 其他潜在支持NPU的处理器

  • AMD/Xilinx Kria KR260:基于Kria K26 SOM,支持ROS 2,适用于机器人和工业应用。
  • 瑞芯微RK3562J/RK3566/RK3588:内置NPU,支持多种AI框架,适用于机器人视觉、工业相机等场景。

总结

  • 选择建议
    • 入门级:瑞芯微RV1109/RV1126、恩智浦i.MX 8M Plus。
    • 中端:地平线旭日X3派、芯驰科技D9350。
    • 高端:英伟达Jetson系列、AMD/Xilinx Kria KR260。
  • 关键因素:算力需求、功耗预算、操作系统兼容性、开发工具链成熟度。

这些处理器通过内置NPU单元,为ROS机器人提供了强大的AI加速能力,使得机器人能够更高效地处理复杂的AI任务,从而提升整体性能和应用范围。


为了优化ROS环境以更好地支持NPU(神经网络处理单元)加速,可以从以下几个方面入手:

1. 确保NPU驱动和软件栈的安装与配置

  • 安装NPU驱动
    • 根据硬件平台(如Intel® Core™ Ultra或i.MX 8M Plus)的指南,安装相应的NPU驱动。
    • 确保驱动版本与操作系统和机器学习框架兼容。
  • 配置软件栈
    • 安装机器学习框架(如OpenVINO™)并配置其使用NPU进行推理。
    • 确保框架的版本与NPU驱动兼容,并能够充分利用NPU的加速能力。

2. 优化ROS节点与NPU的交互

  • 节点设计
    • 设计ROS节点时,考虑将计算密集型任务(如图像处理、模型推理)移至使用NPU加速的节点中。
    • 避免在ROS主线程中执行耗时操作,以免影响系统的实时性和响应速度。
  • 数据传输
    • 使用ROS的高效数据传输机制(如话题、服务)来传递需要处理的数据。
    • 考虑使用共享内存或其他快速数据传输方式,以减少数据传输的开销。
  • 并行处理
    • 如果可能,将任务分解为多个子任务,并在多个ROS节点或线程中并行处理。
    • 利用NPU的多核处理能力,同时处理多个推理请求。

3. 调整系统配置以优化性能

  • CPU与NPU的协同工作
    • 确保CPU和NPU之间的负载均衡,避免NPU过载而CPU空闲,或反之。
    • 可以使用任务调度器或资源管理器来动态调整CPU和NPU的工作负载。
  • 内存管理
    • 优化内存使用,避免内存泄漏或过度分配。
    • 使用内存池或缓存机制来减少内存分配和释放的开销。
  • 电源管理
    • 根据需要调整系统的电源管理模式,以确保NPU在需要时能够全速运行。
    • 避免在不必要时进入低功耗模式,以免影响性能。

4. 使用性能分析工具进行调优

  • 性能监控
    • 使用性能监控工具(如tophtopnvidia-smi(对于NVIDIA GPU,虽不直接适用于NPU,但类似工具可能存在)或NPU厂商提供的专用工具)来监控系统的资源使用情况。
    • 识别性能瓶颈,如CPU使用率过高、内存不足或NPU利用率低等。
  • 调优与优化
    • 根据性能监控的结果,调整系统配置、节点设计或算法实现。
    • 尝试不同的参数设置或优化策略,以找到最佳的性能平衡点。

5. 考虑使用ROS 2的改进特性

  • ROS 2的优势
    • ROS 2相比ROS 1在实时性、分布式计算和模块化设计方面有所改进。
    • 考虑迁移到ROS 2以利用这些改进特性,特别是如果项目需要处理大量数据或实时性要求较高。
  • 迁移指南
    • 如果决定迁移到ROS 2,参考ROS官方提供的迁移指南和文档。
    • 逐步迁移ROS节点和功能包,确保迁移过程中的兼容性和稳定性。

6. 参考厂商文档和社区支持

  • 厂商文档
    • 查阅NPU厂商提供的文档和指南,了解特定于硬件平台的优化建议和最佳实践。
  • 社区支持
    • 参与ROS和NPU相关的社区论坛和讨论组,与其他开发者交流经验和心得。
    • 寻求社区支持以解决遇到的问题或获取新的优化思路。

ROS机器人和NPU结合的详细教程案例和应用场景综述

一、详细教程案例

1. 硬件与软件准备

  • 硬件:选择支持NPU(如Intel® Core™ Ultra处理器内置NPU或i.MX 8M Plus处理器)的开发板或计算机,以及必要的摄像头、传感器等外围设备。
  • 软件:安装Ubuntu操作系统(如Ubuntu 20.04),ROS(如ROS 2),以及NPU驱动和相关的机器学习框架(如OpenVINO™)。

2. 安装NPU驱动

  • Intel® Core™ Ultra处理器
    • 参考Intel NPU驱动安装指南,使用APT包源安装NPU驱动。
    • 配置udev规则以确保用户对NPU设备的访问权限。
  • i.MX 8M Plus处理器
    • 确保使用支持NPU的Ubuntu镜像,或参考NXP社区中的指南自行构建。
    • 根据需要,可能需要对系统进行特定配置以支持NPU加速。

3. 安装与配置ROS

  • 按照ROS官方文档安装ROS 2。
  • 配置ROS环境,包括设置ROS_MASTER_URI、ROS_IP等环境变量。

4. 集成NPU与ROS

  • 使用OpenVINO™与ROS
    • 编写ROS节点,利用OpenVINO™加载和运行预训练的机器学习模型。
    • 通过ROS话题(topics)发布和订阅数据,实现机器人感知、决策和控制。
  • 示例代码
    • 创建一个ROS节点,订阅摄像头图像话题,使用OpenVINO™进行物体检测。
    • 将检测结果发布到另一个ROS话题,供其他节点使用。
import rospy
from sensor_msgs.msg import Image
from std_msgs.msg import String
from cv_bridge import CvBridge
import cv2
import openvino.inference_engine as ieclass ObjectDetectorNode:def __init__(self):rospy.init_node('object_detector', anonymous=True)self.image_sub = rospy.Subscriber('/camera/image_raw', Image, self.image_callback)self.result_pub = rospy.Publisher('/object_detection_result', String, queue_size=10)self.bridge = CvBridge()self.ie_core = ie.IECore()self.net = self.ie_core.read_network(model="path/to/model.xml", weights="path/to/model.bin")self.exec_net = self.ie_core.load_network(network=self.net, device_name="NPU")def image_callback(self, data):try:cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")# Preprocess imageinput_blob = next(iter(self.net.input_info))input_image = self.preprocess_input(cv_image)# Perform inferenceresult = self.exec_net.infer(inputs={input_blob: input_image})# Process result and publishresult_str = self.process_result(result)self.result_pub.publish(result_str)except Exception as e:rospy.logerr(f"Error processing image: {e}")def preprocess_input(self, image):# Implement image preprocessing (resize, normalization, etc.)passdef process_result(self, result):# Implement result processing (extract bounding boxes, labels, etc.)return "Detected objects: ..."if __name__ == '__main__':try:detector = ObjectDetectorNode()rospy.spin()except rospy.ROSInterruptException:pass

python

import rospy
from sensor_msgs.msg import Image
from std_msgs.msg import String
from cv_bridge import CvBridge
import cv2
import openvino.inference_engine as ie
class ObjectDetectorNode:
def __init__(self):
rospy.init_node('object_detector', anonymous=True)
self.image_sub = rospy.Subscriber('/camera/image_raw', Image, self.image_callback)
self.result_pub = rospy.Publisher('/object_detection_result', String, queue_size=10)
self.bridge = CvBridge()
self.ie_core = ie.IECore()
self.net = self.ie_core.read_network(model="path/to/model.xml", weights="path/to/model.bin")
self.exec_net = self.ie_core.load_network(network=self.net, device_name="NPU")
def image_callback(self, data):
try:
cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")
# Preprocess image
input_blob = next(iter(self.net.input_info))
input_image = self.preprocess_input(cv_image)
# Perform inference
result = self.exec_net.infer(inputs={input_blob: input_image})
# Process result and publish
result_str = self.process_result(result)
self.result_pub.publish(result_str)
except Exception as e:
rospy.logerr(f"Error processing image: {e}")
def preprocess_input(self, image):
# Implement image preprocessing (resize, normalization, etc.)
pass
def process_result(self, result):
# Implement result processing (extract bounding boxes, labels, etc.)
return "Detected objects: ..."
if __name__ == '__main__':
try:
detector = ObjectDetectorNode()
rospy.spin()
except rospy.ROSInterruptException:
pass

5. 测试与优化

  • 在实际环境中测试机器人系统,确保NPU加速有效,且ROS节点间通信正常。
  • 根据测试结果调整模型、参数或系统配置,以优化性能。
二、应用场景综述

1. 自主导航与避障

  • 场景描述:机器人需要在复杂环境中自主导航,避开障碍物并到达目标位置。
  • NPU作用:加速视觉处理,实现实时障碍物检测和路径规划。
  • ROS集成:使用ROS的导航栈(navigation stack)结合NPU加速的视觉处理,实现高效导航。

2. 物体识别与抓取

  • 场景描述:机器人需要识别特定物体并进行抓取操作。
  • NPU作用:加速物体识别模型,提高识别准确率和速度。
  • ROS集成:通过ROS话题接收摄像头图像,使用NPU加速的识别模型进行处理,并发布抓取指令。

3. 智能监控与安防

  • 场景描述:机器人用于监控特定区域,检测异常行为或入侵者。
  • NPU作用:加速视频分析,实现实时异常检测。
  • ROS集成:结合ROS的摄像头驱动和NPU加速的视频分析节点,实现智能监控。

4. 农业机器人

  • 场景描述:机器人用于农田作业,如作物监测、病虫害识别等。
  • NPU作用:加速图像处理和分析,提高监测效率和准确性。
  • ROS集成:利用ROS的通信机制,实现机器人与农田环境信息的交互,以及与其他农业设备的协同作业。

5. 工业自动化

  • 场景描述:机器人在工业生产线上执行装配、检测等任务。
  • NPU作用:加速机器视觉处理,实现高精度的零件识别和定位。
  • ROS集成:结合ROS的工业接口和NPU加速的视觉处理,实现高效、准确的工业自动化。


内容总结

  1. TensorFlow Lite支持:
    • 用户询问i.MX 8M Plus是否支持TensorFlow Lite中的所有操作符。
    • 回答指出,TensorFlow Lite库使用Android NN API通过GPU/NPU驱动进行推理,但NN API版本1.2在支持的张量数据类型和操作符上有限制,因此某些模型可能在无加速情况下工作,但在使用NN API时可能失败。
  2. Ubuntu与ROS支持:
    • 用户询问i.MX 8M Plus的Ubuntu根文件系统是否包含ROS和一些机器学习示例。
    • 回答确认i.MX 8M Plus支持Ubuntu根文件系统,但不包含ROS,用户需要自行安装。
  3. 性能比较:
    • 用户比较i.MX 8M Plus(基于INT8的2.3 TOPS)与Jetson Nano(472 GFLOPS,约0.92 TOPS)的性能。
    • 回答提供了TOPS到GFLOPS的转换说明,并确认i.MX 8M Plus在性能上优于Jetson Nano。
  4. 摄像头使用:
    • 用户询问AI机器人评估套件中使用的摄像头信息。
    • 回答指出AI机器人板支持AP1302+AR1335摄像头组合,并提供了AR1335模块供应商和联系窗口的信息。
  5. Ubuntu 20.04安装指南:
    • 用户请求在AI机器人评估套件上安装Ubuntu 20.04的用户指南。
    • 回答提供了基于Yocto项目的Ubuntu 20.04构建指南,包括repo初始化、补丁应用、以及构建命令。
  6. 构建问题与解决:
    • 用户在构建过程中遇到错误,特别是与nfs-common包相关的问题。
    • 回答通过提供补丁文件(移除nfs-common)解决了用户的问题。
  7. 其他问题:
    • 用户还询问了关于Ubuntu 18.04/16.04的支持、NPU加速计算、YoloV4计算加速、以及双目摄像头获取深度数据的问题。
    • 回答提供了关于Ubuntu版本支持、NPU加速限制、模型转换建议、以及双目摄像头解决方案的信息。

教程指南

1. 安装Ubuntu 20.04 on i.MX 8M Plus AI Robot EVK
  • 准备工作:
    • 确保有支持Yocto项目的构建环境。
    • 下载必要的补丁文件和tar.gz文件。
  • 步骤:
    1. 初始化repo:repo init -u https://source.codeaurora.org/external/imx/imx-manifest-b imx-linux-gatesgarth -m imx-5.10.9-1.0.0_desktop.xml
    2. 应用补丁:对meta-nxp-desktop层应用补丁0001-Add-to-support-i.MX8M-Plus-AI-Robot-board-and-some-t.patch
    3. 解压tar.gz文件:将meta-imx8mp-ai-robot-L5.10.9-gatesgarth.tar.gz解压到<Yocto folder>/source下。
    4. 设置环境变量并运行构建脚本:DISTRO=imx-desktop-xwayland MACHINE=imx8mpairobotdesktop source imx-setup-desktop.sh -b build-ai-robot-desktop
    5. 添加BBLAYERS:在<Yocto folder>/build-ai-robot-desktop/bblayers.conf中添加BBLAYERS += "${BSPDIR}/sources/meta-imx8mp-ai-robot "
    6. 构建镜像:bitbake imx-image-desktop
2. 解决构建问题
  • nfs-common问题:
    • 如果在构建过程中遇到与nfs-common包相关的问题,可以按照回答中的建议,从imx-image-desktop.bb文件中移除nfs-common包,然后重新构建。
3. NPU加速计算
  • 模型转换:
    • 如果需要使用NPU加速计算,可以将TensorFlow模型转换为TensorFlow Lite模型,并使用i.MX 8M Plus的NPU作为后端。
4. 摄像头使用
  • 双目摄像头:
    • 如果需要使用双目摄像头获取深度数据,可以参考NXP提供的解决方案或联系供应商获取更多信息。

总结

该网页提供了关于i.MX 8M Plus处理器在AI机器人平台上使用Ubuntu操作系统的详细信息和教程指南,包括系统安装、构建问题解决、NPU加速计算、以及摄像头使用等方面的内容。通过遵循这些指南,用户可以成功地在i.MX 8M Plus平台上构建和运行Ubuntu操作系统,并利用其强大的计算能力进行AI机器人开发。


内容总结

  1. 目的:
    • 指导用户在Intel® Core™ Ultra处理器的NPU设备上安装Intel® NPU驱动,以便运行OpenVINO™推理应用程序。
  2. 驱动组件:
    • intel-driver-compiler-npu: Intel® NPU硬件的驱动编译器,用于编译使用Level Zero Graph Extension API的OpenVINO™ IR模型。
    • intel-fw-npu: Intel® NPU硬件的固件包。
    • intel-level-zero-npu: Intel® NPU硬件的Level Zero驱动,实现与NPU硬件交互的Level Zero API。
  3. 安装方式:
    • 推荐从APT包源安装驱动,以便自动获取更新,而不是从Linux NPU Driver网站下载.deb文件手动安装。
  4. 安装步骤:
    • 确保系统已设置APT仓库(通常在设置APT仓库的页面有详细说明)。
    • 使用命令安装驱动包:sudo apt-get install intel-level-zero-npu intel-driver-compiler-npu
  5. 用户权限设置:
    • 安装后需执行特定步骤以赋予用户对NPU设备的访问权限,包括创建或加入适当的用户组,并配置udev规则以自动设置设备权限。
  6. 验证安装:
    • 通过检查/dev/accel/accel0设备是否存在且属于正确的用户组(如render组)来验证驱动是否正确安装和配置。

详细教程

1. 准备工作
  • 确认系统要求: 确保系统使用Intel® Core™ Ultra处理器,并已设置APT仓库。
2. 安装NPU驱动
  • 打开终端: 在Linux系统中打开一个终端窗口。
  • 更新包列表:(可选,但推荐)sudo apt-get update,以确保APT包索引是最新的。
  • 安装驱动: 执行命令sudo apt-get install intel-level-zero-npu intel-driver-compiler-npu以安装NPU驱动。
3. 配置用户权限
  • 创建或加入用户组: 根据Linux NPU Driver网站上的“User access to the device”部分,将用户添加到适当的组(如render组)。
  • 配置udev规则:
    • 执行命令sudo bash -c "echo 'SUBSYSTEM==\"accel\", KERNEL==\"accel*\", GROUP=\"render\", MODE=\"0660\"' > /etc/udev/rules.d/10-intel-vpu.rules"以创建udev规则文件。
    • 重新加载udev规则:sudo udevadm control --reload-rules
    • 触发udev事件以应用新规则:sudo udevadm trigger --subsystem-match=accel
4. 验证安装
  • 检查设备: 执行命令ls -lah /dev/accel/accel0,确认设备存在且权限设置正确(应属于render组,且用户有读写权限)。
5. 后续步骤
  • 重启系统:(如果需要)根据具体需求,可能需要重启系统以确保所有更改生效。
  • 运行OpenVINO™应用: 现在可以在NPU设备上运行OpenVINO™推理应用程序。

注意事项

  • 驱动更新: 使用APT包源安装驱动可以确保自动获取更新,避免手动下载和安装的麻烦。
  • 权限问题: 如果遇到权限问题,请检查udev规则和用户组设置。
  • 文档参考: 始终参考最新的官方文档和指南,以获取最准确的信息和步骤。

通过遵循上述教程,用户可以在Intel® Core™ Ultra处理器的NPU设备上成功安装和配置Intel® NPU驱动,从而运行OpenVINO™推理应用程序


产品概述

  • 产品名称: NavQPlus
  • 目标应用: 移动机器人、地面站、智能相机等
  • 核心特性:
    • 使用与i.MX 8M Plus EVK相同的系统模块(SOM),但支持8GB LPDDR4(而i.MX 8M Plus EVK支持6GB)。
    • 小型化设计,配备Linux Foundation Dronecode连接器、双USB、双CAN、双MIPI-CSI摄像头接口、IX-Industrial以太网连接器、100BaseT1双线以太网、9-20V输入电源管理(使用USB-C PD)、工业实时时钟(RTC)带篡改/时间戳功能,以及板载SE050安全元件和NFC。
    • 支持Linux Desktop POC、Python、eIQ和ROS2等软件,用于低功耗机器学习、视觉、计算、路径规划和导航的机器人开发。
    • 配备HDMI、LVDS、MIPI DSI显示接口,适用于数字标牌、地面站、工业远程控制器等需要连接性的显示应用。

产品详情

  • 硬件配置:
    • NavQPlus i.MX 8M Plus Companion Computer EVK,配备8GB LPDDR4和32GB eMMC。
    • 库存状态:显示有现货(In Stock),通常1-2个工作日内发货。
  • 软件支持:
    • 提供针对机器人开发的软件支持,包括低功耗机器学习、视觉、计算、路径规划和导航。
    • 定制化的Ubuntu Core也可从Canonical获取。
  • 文档资源:
    • 快速参考指南(Quick Start Guide)
    • 用户指南(User Guide)

教程指南

1. 准备工作
  • 获取开发板: 从NXP的合作伙伴或分销商处购买NavQPlus开发板。
  • 阅读文档: 下载并阅读NavQPlus的快速参考指南和用户指南,了解开发板的基本特性和使用方法。
2. 硬件连接
  • 电源连接: 使用USB-C PD适配器为开发板供电,电压范围为9-20V。
  • 外设连接: 根据需要连接USB设备、CAN总线、MIPI-CSI摄像头、以太网等外设。
  • 显示连接: 如果需要显示输出,连接HDMI、LVDS或MIPI DSI显示器。
3. 软件环境搭建
  • 安装操作系统: 如果使用定制化的Ubuntu Core,按照Canonical的指南进行安装。
  • 配置ROS2: 安装并配置ROS2环境,以便进行机器人开发。
  • 安装其他软件: 根据需要安装Python、eIQ等软件工具。
4. 开发与应用
  • 机器人开发: 利用NavQPlus的硬件特性和软件支持,进行机器人路径规划、导航、视觉处理等开发。
  • 显示应用: 如果开发板用于数字标牌等显示应用,利用显示接口进行内容展示。
  • 调试与测试: 使用开发板提供的调试接口和工具,对开发的应用进行调试和测试。
5. 资源与支持
  • 文档与教程: 参考NXP提供的文档和教程,获取更多关于NavQPlus开发板的使用和开发信息。
  • 社区与论坛: 加入NXP的开发者社区或论坛,与其他开发者交流经验,解决问题。
  • 技术支持: 如果遇到技术问题,可以联系NXP的技术支持团队获取帮助。

总结

NavQPlus开发板是一款功能强大、配置灵活的任务计算机,适用于移动机器人、地面站和智能相机等多种应用。通过详细的文档资源和教程指南,开发者可以快速上手并利用NavQPlus进行机器人开发和显示应用开发


项目概述

  • 项目名称: opennav_amd_demonstrations
  • 目标: 展示AMD Ryzen AI技术在机器人导航中的应用,通过ROS 2 Humble和Nav2实现室内2D、城市3D和户外GPS导航。
  • 技术栈: ROS 2, Nav2, AMD Ryzen AI CPU/GPU/NPU, 嵌入式系统。
  • 演示平台: Honeybee参考平台,基于Clearpath Robotics Jackal,配备多种传感器和AMD的计算技术。

仓库内容

  1. 代码结构:
    • .github/workflows: 包含GitHub Actions的工作流配置。
    • README: 项目介绍和使用说明。
    • honeybee_demos: 包含详细的演示描述、视频和数据集。
    • docs: 开发者指南,涵盖新机器人计算机引导、ROS 2网络设置、远程数据可视化等。
  2. 演示内容:
    • 室内2D导航
    • 城市3D导航
    • 户外GPS导航
    • 演示使用Nav2配置为特定应用,包括自主导航脚本和看门狗程序,用于数据记录和系统处理。
  3. 资源利用:
    • 在16核、60W Ryzen AI计算机上,自主导航、3D激光雷达和摄像头感知、定位的平均CPU使用率为10.85%。
    • 使用MPPI等现代算法时,CPU使用率上升至12.8%,但仍保持高效。
    • 整个自主、感知和定位系统仅需2个AMD Zen 4核心。
  4. 构建和运行:
    • 克隆仓库git clone <仓库地址>
    • 安装依赖: 手动安装非rosdep依赖,并通过rosdep安装可用依赖。
    • 构建项目: 使用colcon build构建项目。
    • 启动机器人ros2 launch honeybee_bringup robot.launch.py,通过use_simulation参数指定使用物理机器人或模拟机器人。
    • 启动导航系统ros2 launch honeybee_nav2 nav2.launch.py,配置导航选项。
    • 启动演示: 使用honeybee_demos中的相应启动文件。
  5. 网络和配置:
    • 机器人内部网络在192.168.131.*范围内。
    • Lidar连接到内置PC,可通过以太网交换机解决端口限制。
    • 控制器具有自定义布局,系统中的各个节点订阅操纵杆主题以激活功能。
    • 默认工作空间路径为~/amd_ws,可通过更新honeybee_bringup/systemd中的服务来更改。
    • 实验数据记录在~/experiment_files目录中,可通过参数filepath设置替代路径。
  6. 注意事项:
    • 避免在Wifi上订阅大型主题,以免网络拥堵和程序停滞。
    • 推荐在ROS_LOCALHOST_ONLY模式下使用机器人,或在不必要时不订阅非必要主题。
    • 使用隔离网络以避免在大公司或建筑网络中发现所有设备。
    • 根据使用的摄像头(Realsense D435或Orbecc 355)设置USE_ORBECC环境变量。

教程指南

  1. 环境准备:
    • 安装ROS 2 Humble和Nav2。
    • 确保系统满足项目依赖要求。
  2. 克隆和构建:
    • 克隆仓库到本地工作空间。
    • 安装依赖并构建项目。
  3. 配置和启动:
    • 根据需要配置网络和摄像头。
    • 启动机器人和导航系统。
  4. 运行演示:
    • 选择并启动相应的演示。
    • 观察机器人行为和导航效果。
  5. 数据记录和分析:
    • 查看实验数据记录,分析导航性能。
  6. 进一步开发:
    • 利用开发者指南中的资源,进行新功能的开发和测试。

这个仓库为开发者提供了一个完整的平台,用于探索和开发基于AMD Ryzen AI技术和ROS 2的机器人导航应用。通过详细的演示和文档,开发者可以快速上手并深入理解相关技术


本文主要介绍了支持NPU加速的ROS机器人处理器及其应用场景。表格列举了包括恩智浦i.MX8MPlus、瑞芯微RV1109/RV1126、英伟达Jetson系列等12款处理器型号,详细说明了它们的NPU算力、厂商、特点及ROS支持情况。文章还通过具体案例展示了如何将NPU与ROS集成,包括驱动安装、模型转换、节点设计等关键技术步骤。在应用场景方面,重点介绍了自主导航、物体识别、智能监控等领域中NPU加速的实际应用效果。最后给出了处理器选型建议,强调需综合考虑算力需求、功耗预算和开发工具链等因素。



http://www.hkcw.cn/article/jGHmuXiiBj.shtml

相关文章

双向奔赴好暖!赵露思哽咽安慰哭泣粉丝

6月2日,赵露思的微博线下和粉丝见面。粉丝转为露丝淘了一本《关于爱》的书,希望她能更爱自己。“你真的特别棒!你多吃一点好不好,我好心疼啊。”露丝瞬间泪崩,粉丝说让你这么煽情不是故意的,赵露思哽咽安慰哭泣粉丝:“你就故意的。”责任编辑:zx0002

C罗晒照备战欧国联半决赛 国家队报到展英姿

当地时间6月1日,C罗在社交媒体上分享了他抵达葡萄牙国家队报到的照片。照片中,C罗身穿休闲装,戴着墨镜,背着双肩包,手里拉着行李箱。葡萄牙队将在6月份的国际比赛日期间与德国队进行一场欧国联半决赛。胜者将与西班牙和法国之间的胜者争夺2025年欧国联冠军。此前,葡萄牙队…

莫雷加德称期待与樊振东成为队友 共战新赛季

当地时间6月1日,德国萨尔布吕肯乒乓球俱乐部在欧洲乒乓球冠军联赛男团决赛中第三次夺冠,队中的瑞典选手莫雷加德因表现稳定被评为赛事MVP。欧洲乒联发布了莫雷加德的赛后采访,他对樊振东即将加盟表示非常期待。莫雷加德说:“能和樊振东做队友简直不要太爽,他是个超厉害的选…

【Unity】相机 Cameras

1 前言 主要介绍官方文档中相机模块的内容。 关于“9动态分辨率”&#xff0c;这部分很多API文档只是提了一下&#xff0c;具体细节还需要自己深入API才行。 2 摄像机介绍 Unity 场景在三维空间中表示游戏对象。由于观察者的屏幕是二维屏幕&#xff0c;Unity 需要捕捉视图并将…

Ubuntu20.04 LTS 升级Ubuntu22.04LTS 依赖错误 系统崩溃重装 Ubuntu22.04 LTS

服务器系统为PowerEdge R740 BIOS Version 2.10.2 DELL EMC 1、关机 开机时连续按键盘F2 2、System Setup选择第一个 System BIOS 3、System BIOS Setting 选择 Boot Setting 4、System BIOS Setting-Boot Setting 选择 BIOS Boot Settings 5、重启 开启时连续按键盘F11 …

“黑救护车”为何屡禁不绝 高额费用与监管难题

家住广东省湛江市的张理没想到,外公临终前回家的3公里路竟会花费1800元。2024年8月,因心脏病、肿瘤、器官衰竭等多种老年疾病住院两个月后,张理的外公走到了生命的尽头。医生表示已无救治意义,家属决定带老人回家保守治疗。然而,如何回家成了难题。大多数普通汽车拒载病人…

钓鱼佬被困河中男子用无人机吊上岸 暴雨救援展现科技力量

钓鱼佬被困河中男子用无人机吊上岸 暴雨救援展现科技力量!近日,在浙江丽水,一名垂钓爱好者因突降暴雨导致河水暴涨而被困河道中央。情况危急之际,当地无人机飞手陈先生迅速行动,仅用2分钟就将被困者安全吊运至岸边。这架用于救援的无人机原本是用于农业植保作业,其最大起…

白银价格查询接口如何用Java进行调用?

一、什么是白银价格查询接口&#xff1f; 它聚焦于上海黄金交易所、上海期货交易所等权威市场&#xff0c;精准提供白银价格行情数据&#xff0c;助力用户实时把握市场脉搏&#xff0c;做出明智的投资决策。 二、应用场景 分析软件&#xff1a;金融类平台可以集成本接口&…

警方通报6岁女童被拖进小巷 嫌疑人已被拘留

6月3日,湖南娄底市公安局娄星分局发布了一则警情通报。通报称,2025年5月20日下午,嫌疑人刘某某(男,38岁)酒后行至娄底市娄星区涟滨中街附近,拖拽一名6岁女童进入居民区巷子,后被居民及时制止并报警。民警迅速赶到现场将刘某某控制。经侦查,刘某某涉嫌寻衅滋事已被拘留…

水果放成这样还能吃吗 如何辨别安全食用

水果丰收季节,市场上会出现一些外观异常的水果,如黑丝芒果、豹纹芒果和酒味榴莲等。这些水果有些只是外观奇特,有些则不宜食用。了解如何辨别这些水果对于消费者来说非常重要。发红的甘蔗是不能食用的,因为这表明甘蔗发生了霉变,可能含有节菱孢霉菌及其代谢产物3-硝基丙酸…

贾跃亭哽咽:是散户救了我们的命,FF重生之路

6月3日,在首届“FFAI首年度股东日”活动上,一段贾跃亭的讲话视频流出。一位从乐视早期就追随贾跃亭投资乐视和FF的股民自费从国内飞到洛杉矶参加活动,表达了对贾跃亭东山再起的期盼。现场贾跃亭数度哽咽,他表示FF能够存活下来很大程度上是因为散户的支持。贾跃亭在发言中承…

C语言:内存函数

目录 一、引言 二、memcpy 三、memmove 四、memset 五、memcmp 一、引言 C语言作为一门经典的系统编程语言&#xff0c;以其高效性和底层操作能力广泛应用于操作系统、驱动开发及嵌入式系统中。掌握C语言的内存函数&#xff0c;不仅是写出高性能程序的基础&#xff0c;也是…

女孩高空滑索坠落景区涉事项目整改 安全带隐患待查

女孩高空滑索坠落景区涉事项目整改!6月1日下午4点多,南宁市西乡塘区芦仙山景区飞越丛林探险乐园发生了一起惊险事件。一名10岁女孩在高空滑索过程中,从距离地面七八米的高空中坠落,经医生检查身体并无大碍。据孩子父母说,当天下午2点20分左右,他们带着女儿小枚(化名)上…

苏超出圈火到A股 足球概念股飙升

6月3日,市场低开高走迎来节后开门红,创业板指领涨。A股半天成交额7640.07亿元,较上个交易日缩量76.72亿元。盘面上,市场热点良性轮动,个股涨多跌少,全市场超3400只个股上涨。截至午间收盘,沪指涨0.48%,深成指涨0.35%,创业板指涨0.73%。新消费概念股再度大涨,美容护理…

【笔记】在 MSYS2 MINGW64 环境中降级 NumPy 2.2.6 到 2.2.4

&#x1f4dd; 在 MSYS2 MINGW64 环境中降级 NumPy 到 2.2.4 ✅ 目标说明 在 MSYS2 的 MINGW64 工具链环境中&#xff0c;将 NumPy 从 2.2.6 成功降级到 2.2.4。 &#x1f9f0; 环境信息 项目内容操作系统Windows 11MSYS2 终端类型MINGW64&#xff08;默认终端&#xff09;Py…

蔚来车主高速开车睡觉 李斌回应 强调辅助非自动

蔚来汽车创始人李斌近日转发了一位博主的经历,该博主在下雨天以110km/h的速度在高速公路上开车时睡着了,车辆自动触发紧急靠边停车,并通过SOS电话唤醒车主。李斌借此机会再次提醒大家注意驾驶安全。他提到,“蔚来世界模型NWM”已经量产了“紧急自主靠边停车”功能。当辅助驾…

坠河遇难新人原计划第二天举行婚礼 悲剧突发震惊亲友

6月1日,江苏靖江市一网友发布视频称,当天本是其亲友举行婚礼的日子,但在婚礼前一天,这对新人开车坠河双双遇难。视频中显示一辆白色小车被从河中吊起,现场有交警等工作人员处理。该网友定位在靖江市西来镇。6月3日,靖江市交警部门和西来派出所均表示接到此事的报警,但未…

蔚来能重回第一梯队吗?挑战面前,蔚来必须加快脚步

蔚来能重回第一梯队吗?「挑战面前,蔚来必须加快脚步」在一季度销售淡季褪去之后,中国车市再度疯狂竞技,战事卷土重来。中国车企已经深刻意识到,要么“价格内卷”,要么“价值加倍”,总有一种情绪价值到位,才能在残酷竞技场存活下来。只有找准节奏,玩家才能积蓄势能,满…

男子向棋牌室借4000赌博输光不还,法院:不用还

江苏的孙某在县城开了一家棋牌室,章某是棋牌室的老客户,此前,章某在棋牌室参与赌博输了精光,向孙某借了4000元后再次输光,后孙某多次催要欠款无果,将章某告上了法庭。法院审理认为,原告的借款行为,从主客观来说,都属于不法要件,存在主观上的恶意,违反了公序良俗,最…

男子骑车闯红灯被撞还要负全责 规则面前无弱者

在处理道路交通事故时,责任认定基于客观事实和过错责任原则。法律保护的是遵守规则的行为,而非“弱者身份”。济南交警公布了一起相关事故案例。2025年2月6日13时16分,赵某驾驶鲁AN*5无轨电车沿历城区北园大街由东向西行驶,遇到李某驾驶电动自行车闯红灯逆向行驶,双方发生…