KRS(Kratos Robotics Stack):让 Zynq / FPGA 机器人开发真正“跑”起来

在机器人与自主系统开发中,ROS 2 已经成为事实标准,但当它遇到 FPGA / Zynq / Kria 这类异构平台时,工程复杂度往往直线上升。

KRS(Kratos Robotics Stack) 正是为了解决这个问题而诞生的。

KRS 是一个由 Xilinx(AMD)官方推动的 开源机器人软件栈,目标非常明确:

让基于 ROS 2 的机器人应用,能够高效、可重复、工程化地运行在 Zynq 和 Kria 平台上。

先看下下面的应用视频:

🧠 什么是 KRS?

KRS(Kratos Robotics Stack) 是一个围绕 ROS 2 + FPGA 加速 构建的完整开发框架,主要面向:

  • Zynq UltraScale+ MPSoC
  • Kria SOM / Kria Robotics Stack(KR260 等)
  • 需要 CPU + FPGA 异构加速 的机器人与感知系统

它并不是“又一个 ROS 发行版”,而是一个 工程化工具集合 + 架构规范。

它通过与 ROS(机器人领域的通用语言)紧密集成,并结合现代 C++ 和高级综合 (HLS) 技术,以及参考开发板和设计架构,为机器人专家快速启动项目提供了可能。

KRS功能:

KRS特征

以 ROS 2 为中心

ROS之于机器人专家,正如Linux之于大多数计算机科学家和软件开发人员。它帮助机器人专家构建机器人应用程序。随着ROS 2的发布,机器人行为的生成能力已达到生产就绪状态,并有可能对众多行业产生深远影响。与那些用大量库的复制品或分支以及/或类似的机器人模拟器来重复发明轮子的新机器人平台不同,Xilinx的KRS方案满足了ROS机器人社区的需求,并基于ROS 2及其紧密集成的机器人模拟器Gazebo构建而成。

为了将 Xilinx 的硬件加速技术与 ROS 2 生态系统连接起来,并鼓励软件包维护者从中受益,Xilinx 创建了一系列 ROS 2 构建系统 ( ament) 和元构建工具 ( colcon) 的扩展,以最大限度地减少 ROS 2 软件包维护者的工作量。该架构基于三大支柱。

实时 ROS 2

实时性是机器人系统的端到端特性。运行在标量处理器(例如 CPU)上的 ROS 2 应用会受到各种不确定性因素的影响。上图展示了 OSI 模型栈中的这些不确定性因素。为了使机器人在使用 ROS 2 进行进程间、进程内或网络内信息交换时能够确定性地响应,OSI 模型栈中涉及的所有层都必须能够确定性地响应。除非所有覆盖层和底层都具有相同的时间限制,否则无法保证 ROS 2 的实时性。相应地,对于实时 ROS 2 交互,其所有层也必须是实时的。对于运行在 CPU 上的 ROS 2,需要针对每个层级解决不确定性因素。

FPGA 允许设计能够提供确定性响应的机器人电路。虽然可以仅依靠 FPGA 设计硬实时机器人系统,但当与通常运行在标量处理器 (CPU) 上的 ROS 2 进行交互时,确定性往往会受到影响。KRS 的目标是通过模块化方法提供机制来缓解标量处理器中所有这些不确定性问题。可以根据具体用例,优先选择并使用特定模块来消除所需的不确定性来源,并调整缓解措施。

一般来说,CPU 实时问题的解决方案可分为两大类:a) 在相应的抽象层中设置正确的优先级;b) 应用服务质量 (QoS) 技术。每一层都有其自身的 QoS 方法。在 OSI 模型第二层(OSI 2 层),有 IEEE 802.1Q 标准中规定的成熟 QoS 技术,以及诸如时间敏感网络 (TSN) 标准等新技术。对于 Linux 网络协议栈(OSI 模型第三层和第四层),流量控制允许配置 QoS 方法。类似地,从 Linux 内核到应用程序库,每一层都需要配置为限制最大延迟,才能使机器人系统具备实时能力。

ROS 2 加速应用

ROS 生态系统汇聚了全球数千名机器人专家,他们使用 ROS 2 抽象层开发机器人应用程序。从某种意义上说,ROS 是机器人专家构建机器人行为时常用的 API,也是机器人领域的参考软件开发工具包 (SDK)。随着机器人领域混合源代码技术生态系统的出现,在 ROS 领域,已经有许多公司围绕开源软件包提供价值,并回馈社区。

通过与 Xilinx 应用商店的连接,KRS 将 ROS 2 叠加工作区容器化为机器人加速应用。

除了扩展 ROS 2 构建系统和工具以简化 ROS 2 软件包的货币化过程外,KRS 还提供了额外的工具和扩展,以简化 ROS 2 overlay 工作区的打包和发布到 Xilinx 应用商店的过程。上面的 subverb 展示了其中一个这样的工具。

KRS 的核心理念

KRS 的设计思想可以总结为三点:

1️⃣ ROS 2 原生优先(ROS-native)

不改变 ROS 2 的使用方式

节点、话题、消息、launch 文件全部保持 ROS 生态一致

FPGA 加速被“封装”在 ROS 2 节点之下

👉 对上层算法工程师 几乎无感知

2️⃣ 异构加速可重用(Reusable Acceleration)

KRS 将 FPGA 加速抽象为 可复用组件:

图像处理

计算机视觉

运动规划

感知与控制链路

这些加速模块可以被多个 ROS 2 节点复用,而不是“一次性工程”。

3️⃣ 面向产品级部署(Production-ready)

KRS 从一开始就不是 Demo 导向,而是:

支持 Yocto / PetaLinux

支持容器化(Docker)

支持 CI / 自动化构建

面向 可量产、可维护系统

KRS 的整体架构

从官方文档来看,KRS 的结构大致分为三层:

上层:标准 ROS 2 应用

中层:KRS 提供的加速 ROS 2 组件

底层:FPGA 硬件加速(Vitis、HLS、RTL)

参考资料

https://xilinx.github.io/KRS/sphinx/build/html/docs/intro.html
https://github.com/Xilinx/Vitis_Libraries

✅ 总结一句话

KRS 不是教你“怎么用 FPGA”,而是教你“如何把 FPGA 自然地用进 ROS 2 机器人系统”。

它代表了一种趋势:

FPGA 不再是孤立的硬件模块,而是 ROS 生态中的一等公民。

关于这个机器人的项目,我们后面展开聊聊:

Read more

all-MiniLM-L6-v2镜像免配置:预置WebUI+健康检查+标准化API接口

all-MiniLM-L6-v2镜像免配置:预置WebUI+健康检查+标准化API接口 1. 为什么你需要一个开箱即用的embedding服务 你有没有遇到过这样的情况:项目刚起步,需要快速接入语义搜索或文本相似度计算,但光是部署一个embedding模型就卡在环境配置、依赖冲突、端口调试上?更别说还要自己搭Web界面、写健康检查、封装API——这些本该是基础设施的事,却成了压在开发进度上的三座大山。 all-MiniLM-L6-v2本身是个好模型:轻、快、准。但它不是“装完就能用”的工具,而是一块需要打磨的璞玉。我们做的,就是把这块玉雕琢成一把趁手的刀——不用你配环境、不用你写胶水代码、不用你调参试错。镜像启动即用,WebUI点开就测,API调用即返回,健康检查自动守护。这不是又一个“教你从零部署”的教程,而是一份交付物:你拿到的不是说明书,是已经组装好的整机。 它不炫技,不堆参数,只解决一个最朴素的问题:让语义能力真正成为你项目里可调度、可验证、可运维的一环。 2. all-MiniLM-L6-v2:小身材,大用处

WebSite-Downloader 终极使用指南:轻松实现网站整站下载

想要快速备份整个网站、离线浏览网页内容或迁移网站资源吗?WebSite-Downloader 正是你需要的强大工具!这款基于 Python 开发的网站整站下载器,通过智能多线程技术,能够高效地递归抓取网站的所有页面和资源文件,为你构建完整的本地网站镜像。无论你是开发者、内容创作者还是普通用户,都能轻松掌握这个实用工具。 【免费下载链接】WebSite-Downloader 项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader 🎯 项目核心优势 多线程下载引擎 - 默认配置 8 个工作线程同时执行下载任务,大幅提升下载效率。采用生产者-消费者模型,主线程负责链接队列管理,子线程专注具体下载,实现资源的最优分配。 智能链接解析 - 内置正则表达式引擎自动识别 HTML、CSS 中的各类资源链接,支持相对路径转换和跨域链接过滤,确保下载范围精准可控。 完整资源支持 - 不仅下载网页文件(HTML、CSS、JavaScript),还支持各类媒体资源(图片、

Android WebRTC 播放流实战:从协议解析到性能优化

快速体验 在开始今天关于 Android WebRTC 播放流实战:从协议解析到性能优化 的探讨之前,我想先分享一个最近让我觉得很有意思的全栈技术挑战。 我们常说 AI 是未来,但作为开发者,如何将大模型(LLM)真正落地为一个低延迟、可交互的实时系统,而不仅仅是调个 API? 这里有一个非常硬核的动手实验:基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。 从0到1构建生产级别应用,脱离Demo,点击打开 从0打造个人豆包实时通话AI动手实验 Android WebRTC 播放流实战:从协议解析到性能优化 在移动直播、在线教育、视频会议等场景中,WebRTC技术凭借其低延迟、点对点通信的特性成为首选方案。但在Android平台上实现稳定流畅的播放流,