今年开年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 在机器人方面的应用大家有什么想法或者经验,欢迎在下方留言讨论~