FPGA助力智能机器人应用

news2025/3/29 1:13:56

今年开年AI+机器人引爆科技圈,都说FPGA是“万能芯”,在AI方向上已经挣扎了几年,仍旧不能“破圈”,那么在机器人方向呢?

个人观点我是不太看好目前FPGA能在机器人方面能“破圈”,但是一切皆有可能,吾等也不能左右行业发展,我们能做的是多关注相关行业发展,提前学习相关知识,为后续发展做好准备。

接下来说一下本篇文章的主题-使用FPGA搭建 ROS 和 MicroRoS。

该系列教程由 AMD 的工业架构师 Tomas Thoresen 在 Hackster 上利用 FPGA 进行机器人应用的探索,下面先介绍一下这个项目:

项目核心架构与技术

使用Zynq™ UltraScale+™ MPSoC EV (XCK26)在 A53 核心上运行 ROS2,在可编程逻辑(PL端)部分使用 MicroBlazes 进行传感器接口工作。MicroBlazes 运行 MicroROS,实现与运行 ROS2 的 A53 处理器便捷通信。在  FPGA 上部署四个 MicroBlazes,分别对应开发板上的 Pmod 接口。

IO Switch:这是一个自定义 IP 组件,最初用于 PYNQ 框架支持 MicroBlazes。它能在运行时更改 Pmod 连接器上 UART、I2C、SPI 和 GPIO 的 IO 配置及引脚设置,方便连接各类传感器、执行器和驱动器。

项目教程

第一个项目:由于 KR260 运行 Ubuntu,该教程详细介绍了如何为 KR260 添加新的自定义 PL IP、按需修改设备树并重新配置系统,使新设备树在下次启动时生效。这对于使用基于 Ubuntu 的 MPSoC 开发板的开发者来说非常实用。在 A53(运行 Ubuntu)和 MicroBlazes 之间的通信方面,使用 remoteproc 管理四个 MicroBlazes 上运行的软件生命周期。

第二个项目:在第一个项目搭建的硬件和 Ubuntu 配置基础上进行扩展,让运行在 MicroBlaze 处理器上的软件使用 MicroRos。这使得连接到 PL 以太网 TEMAC 的两个 MicroBlazes 能够将数据发送到通过网络运行的 Micro ROS 代理,该代理可以在与网络连接的任何设备上运行,如 x86 设备或 Kria。

感兴趣的读者可以通过以下链接深入探索项目内容:

https://www.hackster.io/tomas-hackster-thoresen/kria-kr260-the-right-engine-for-the-right-task-05e41c

https://www.hackster.io/tomas-hackster-thoresen/kria-kr260-unifying-the-communication-stack-ii-b18cc8

总结

第一篇文章(The Right Engine for the Right Task)重点介绍了 KR260 在异构计算方面的优势。它结合了 ARM 处理器、FPGA、GPU 和 AI 引擎,可以根据任务需求分配合适的计算资源,实现高效能耗比,特别适用于机器人视觉、路径规划等计算密集型任务。

第二篇文章(Unifying the Communication Stack)则介绍了 KR260 在通信方面的能力。它支持 TSN(时间敏感网络)、以太网、CAN 总线 等工业协议,能够高效整合不同的通信协议,满足工业 4.0 及协作机器人应用的需求。

该项目只是一个起点,将来作者会扩展该基础项目的功能,增加更复杂的传感器、执行器和可视化功能。

关于 FPGA 在机器人方面的应用大家有什么想法或者经验,欢迎在下方留言讨论~

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

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

相关文章

如何在jupyter notebook中使用django框架

(最好以管理员身份进入,否则在安装某些内容时会报错) 一.创建一个名为new_env虚拟环境 输入以下指令创建名为new_env的虚拟环境: conda create -n new_env python3.8 回车,出现以下内容,输入y确认安装,等待安装完毕…

Axure RP9.0教程: 多级联动【设置选项改变时->情形->面板状态】(给动态面板元件设置相关交互事件的情形,来控制其他面板不同的状态。)

文章目录 引言I 多级联动(省、市、区)实现思路添加三省、市、区下拉列表给省下拉框添加数据源将市、区下拉框添加不同状态,分别以省、市命名给省下拉控件设置选项改变时的交互事件省下拉控件的交互事件情形市下拉交互事件的配置II 知识扩展: 展示省 → 地级市 → 区县的多级…

Rabbitmq消息被消费时抛异常,进入Unacked 状态,进而导致消费者不断尝试消费(下)

一、消费流程图 消息在消费出现异常的时候,将一直保留在消息队列,所以你会看到以下奇怪的现象: 消息队列仅有5个消息, 投递速度也非常快,结果却一直无法消费掉。 二、重试策略 重试机制的使用场景:重试机制…

AI 的“幻觉”现象:深入解析 Hallucination 的成因与应对之道

文章目录 一、啥是 AI 的 Hallucination?二、啥时候容易出现幻觉?1. 知识边界之外的问题2. 模糊或不明确的输入3. 生成长篇内容4. 多模态任务中的误解5. 过度自信的语气要求 三、幻觉为啥会出现?原理是啥?1. 概率预测的本质2. 训练…

核心知识——论文详解

引入 在2010年,来自Berkeley的博士生 Matei Zaharia 发表了一篇论文《Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing》。伴随着这篇论文的,是一个开源系统,也就是 Spark。在之后的几年里&…

LeetCode hot 100 每日一题(15)——48.旋转图像

这是一道难度为中等的题目,让我们来看看题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 提示…

屏幕后处理Post-Processing安装及使用

一、安装Post-Processing插件 在 Window --- PackageManager 中搜索并安装 Post-Processing 二、添加后处理效果步骤 给场景中的相机Camera添加 Post - process Layer,只有添加了该组件的相机才会进行相应的后处理,此组件允许您为该后处理层配置抗锯齿…

探索Halo:不止是博客,更是创作新宇宙

开篇:邂逅 Halo 作为一名热爱写作与分享的博主,拥有一个称手的博客系统一直是我的追求。在探索博客系统的旅程中,我尝试过不少平台,从 WordPress 到 Hexo ,每一次转换都是为了寻找那个最完美的 “写作伴侣”。 WordP…

吐血整理:Air8201如何使用LuatOS进行电源管理功能!

在物联网应用场景中,设备续航能力直接影响其部署成本与运维效率。LuatOS操作系统通过软件层面的精细化控制,为Air8201提供了灵活且高效的电源管理策略。本文将从系统架构、API接口、实战配置三个维度,解析如何利用LuatOS实现Air8201的智能电源…

开源视觉语言模型MiniMax-VL-01:动态分辨率+4M超长文本,性能比肩GPT-4o

在人工智能领域,构建能够像人类一样理解、思考和行动的智能体(AI Agent)一直是研究人员的终极目标之一。而实现这一目标的关键在于模型是否具备足够强大的感知能力、记忆能力和推理能力。近期,国内人工智能公司MiniMax重磅开源了其…

Java面试第十三山!《设计模式》

大家好,我是陈一。如果文章对你有帮助,请留下一个宝贵的三连哦~ 万分感谢! 一、设计模式入门指南 1. 什么是设计模式? 设计模式是可复用的解决方案模板,用于解决软件开发中常见的架构问题。如同建筑领域的…

vue 点击放大,图片预览效果

背景: 在使用vue框架element组件的背景下,我们对图片的展示需要点击放大(单张);如果是多张图片,要支持左右滑动查看多张图片(多张)。 单张图片放大,el-image图片组件,或者原生的img标签。 多张图片放大&…

笛卡尔轨迹规划之齐次变换矩阵与欧拉角、四元数的转化

一、笛卡尔轨迹规划需求 笛卡尔轨迹规划本质就是我们对机械臂的末端位置和姿态进行规划,其实也就是对末端坐标系的位姿进行规划。我们清楚末端坐标系的位姿是可以用齐次变换矩阵T来表示的,但这样表示的话,并不利于我们去做规划,所…

NPU上如何使能pytorch图模式

1 Pytorch的compile技术 PyTorch 的 torch.compile 是一个强大的功能,用于优化 PyTorch 模型的性能。它通过将 PyTorch 的动态图转换为静态图,并利用 Just-In-Time(JIT)编译技术,显著提高模型的推理速度和训练效率。 …

进制转换(c++)

由于进制转换属于基础且比较重要,所以我就写一个博客方便自己复习,过程中如有错误,还请指出。 常用的进制有二进制,八进制,十进制和十六进制。 常用的进制转换就是十进制转换成其他进制和其他进制转换成十进制 我们先…

2025-03-24 学习记录--C/C++-PTA 习题7-7 字符串替换

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 习题7-7 字符串替换 本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换&#…

为什么TCP需要三次握手?一次不行吗?

文章目录 1. 三次握手的过程2. 为什么需要三次握手?3. 握手过程中每一步的具体作用4. 简单比喻5. 为什么是三次握手,而不是两次或四次?6. 三次握手中的序列号有什么作用?7. 总结 1. 三次握手的过程 三次握手是建立 TCP 连接的过程…

SpringBoot2集成Elasticsearch8(使用spring-boot-starter-data-elasticsearch)

写在前面 使用spring-boot-starter-data-elasticsearch集成Elasticsearch8? What? 官方写的不支持啊?让我们来看下官方给出的版本建议。 官方地址: https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/versions.…

【平台优化】持续调度参数在高负载大集群中的影响

持续调度参数在高负载大集群中的影响 背景介绍2种调度通信方式对集群的影响社区相关的讨论结论 背景介绍 这几年经历了我们大数据的Yarn集群的几次扩容,集群从原先的800多台增加到1300多台到现在的1600多台,在集群规模不断增加的过程中,有遇…

ElasticSearch 可观测性最佳实践

ElasticSearch 概述 ElasticSearch 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别(大数据时代)的数据。ES 也使用 Java 开…