尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

视觉SLAM主控板选型:RK3588/RK3576/RK3568如何匹配算法需求?

视觉SLAM主控板选型:RK3588/RK3576/RK3568如何匹配算法需求? 视觉SLAM这几年在机器人行业里基本是标配了从扫地机到仓储AGV再到安防巡检机器人多多少少都得带点视觉定位能力。但算法跑不跑得动、跑得稳不稳很大程度不看你的算法多漂亮而是看主控板到底行不行。早些年做视觉SLAM大家首选是英伟达的Jetson系列性能强是强但成本、供货、功耗放在量产的机器人产品上压力都不小。这两年国产芯片起来之后瑞芯微的RK3588、RK3576、RK3568逐步成了很多机器人主控板的核心选择。我帮客户做过不少基于这三颗芯片的视觉SLAM方案今天就把瑞迅科技在用的一套主控选型思路掰开聊一聊。市面上很多讲RK3588/RK3576/RK3568的文章都在列参数、跑分真正讲它们跟SLAM算法之间怎么匹配的少。这篇文章不仅讲清楚每颗芯片能干什么更重要的是我会把视觉SLAM算法对主控硬件的真实需求拆开告诉你为什么某些场景用RK3568就够某些情况不上RK3588就是不行。1. 视觉SLAM到底“吃”主控的哪些资源很多人一说视觉SLAM就开始卷摄像头、卷算法主控只是被当成“能跑Linux的板子”去选。这是个大误区。视觉SLAM本身是一个完整的计算流水线从前端视觉里程计到后端优化几乎每一环都在压榨主控的不同部件——CPU、GPU/NPU、内存带宽、存储IO、甚至编解码模块。选主控之前你得先把这个账算明白。1.1 算法链路拆解每一环在消耗什么资源一套典型的视觉SLAM系统按数据流拆开大概有这么几个环节图像采集与预处理相机图像进来之后首先要做去畸变、缩放、转灰度、增强等操作。这一步是纯数据搬移和像素处理高分辨率高帧率下非常吃内存带宽。以1080P30FPS为例一秒就是60MB以上的原始数据量如果还要做多目拼接压力直接翻倍。这一步通常没什么算法含量但对主控的ISP和内存控制器要求不低。特征提取与描述子计算这是整个SLAM里计算量最大的环节之一。ORB特征点提取、LDB描述子、或者深度学习方式的特征点网络都是在这里跑。传统特征提取主要是CPU密集计算涉及大量像素级运算换成学习型特征点就得靠NPU或者GPU的卷积加速。这个环节直接决定你的主控是CPU快不快的瓶颈。帧间匹配与位姿估计拿到特征点之后需要做特征匹配、对极几何约束、PnP求解、非线性优化。这一部分以浮点运算为主非常考验CPU的单核性能和向量指令集。ARM的NEON指令扩展在这里能发挥很大作用这也是瑞芯微芯片用A76大核跑SLAM后端比用A55小核强出一大截的原因。局部地图维护与BA优化回环检测、全局Bundle Adjustment这些重计算环节基本是CPU密集型任务。尤其建图规模变大以后地图点数量到几万、几十万级别每帧优化一次的计算量会让弱的CPU直接卡死。回环检测与重定位基于词袋模型如DBoW2或者深度学习全局描述符来做。词袋方式主要消耗内存和CPU深度学习方式则需要NPU辅助做特征编码加速序列匹配。这么一盘算结论就清楚了视觉SLAM“吃”的不只是CPU算力而是CPU单核性能、多核并行能力、内存带宽、NPU/GPU加速能力、ISP/编解码硬件模块的综合体。选主控如果只看CPU核数或者只看TOPS算力都会偏。1.2 算力评估的常见误区TOPS高不等于SLAM一定流畅很多人选边缘计算板子开口就问NPU多少TOPS。视觉SLAM和纯分类检测任务不一样它不是一个纯DNN加速问题。ORB特征提取、图优化这些环节在端侧主因都是CPU在跑。NPU能加速的部分往往是特征提取网络、语义分割辅助、回环检测的描述子网络这些子模块。所以一颗RK3568有1TOPS NPU一颗RK3588有6TOPS NPU在很多人的预期里可能觉得性能差6倍。实际跑起来ORB-SLAM3这种传统方案RK3588比RK3568综合体验强可能只有2-3倍因为大量时间耗在CPU浮点运算上。反倒是跑SuperPoint这类深度学习特征提取时NPU的优势才会真正放大。选型时如果拿着TOPS去预估SLAM表现很容易踩坑。我自己习惯的评估组合是CPU单核性能SPEC分、内存总线位宽与频率、NPU可用性是否方便切算子、ISP的接管能力这四样综合在一起才是一块板子能不能跑好SLAM的真实体现。2. RK3588/RK3576/RK3568芯片分级这是三套定位完全不同的方案瑞迅科技基于瑞芯微这三颗芯片做的机器人主控板刚好对应了视觉SLAM方案里高中低三个档次。注意这里说的“高中低”不是优劣之分是功耗、性能、成本与场景的匹配度之分。下面把每颗芯片的核心特性和适配场景逐一说明。2.1 RK3568轻量级视觉SLAM的经济适用型主力RK3568是瑞芯微的国民级芯片之一四核Cortex-A55主频最高2.0GHzGPU是Mali-G52NPU算力1TOPS。只看参数确实不起眼但在瑞迅科技的实际部署里这颗芯片却是轻量级视觉SLAM方案中出货量最大的。为什么一个“老旧”的四核A55芯片能撑起SLAM关键在于选对了算法。我的一个客户做室内配送机器人用的是单目鱼眼相机光流IMU融合方案并没有上完整ORB-SLAM3建图。在RK3568上跑优化过的轻量级视觉里程计A55集群主频拉到2.0GHz单核性能虽然不强但胜在功耗低、稳定整机可以做到无风扇被动散热这在室内安静场景里是极大的优势。配合瑞迅的板卡做图像采集优化从CSI接口到内存的DMA通路不用CPU搬运整体可以做到1080P30FPS的输入下占用率稳定在70%以内。但如果你要在RK3568上跑完整的ORB-SLAM3稠密建图那就有点勉为其难了。A55在BA优化环节比较吃力一旦关键帧积压就会出现漂移甚至丢帧。RK3568真正的归宿是轻地图、稳定位的轻量化SLAM方案或者作为激光SLAM为主的系统中做视觉补充。2.2 RK3576中端视觉SLAM的性价比断层之王RK3576是瑞芯微这几代里我个人最喜欢的一颗芯片它夹在RK3568和RK3588之间却意外地平衡。CPU采用4颗A72加4颗A53的big.LITTLE架构主频最高2.2GHzGPU是G52 MC3实际性能比RK3568强不少NPU算力6TOPS支持INT8和INT16混合精度。更重要的是这颗芯片的对外接口非常齐全USB3.2、PCIe 3.0、双千兆网口都有给上层扩展留了很大的空间。在中端视觉SLAM场景里RK3576是可以胜任完整ORB-SLAM2/3方案的。A72大核在处理单线程的浮点优化任务时比A55强太多。实测在瑞迅WM-E35主控板上跑ORB-SLAM3的RGB-D模式640x480分辨率下前端特征提取加跟踪占用CPU约65%后端优化可以放到另一个大核上跑基本能做到实时。如果再开NPU做语义分割辅助动态物体剔除整体资源也基本够用。RK3576的出现的意义在于——它让中端机器人不用再为了SLAM性能被迫上RK3588从而省下一大笔BOM成本。对于像割草机器人、商用清洁机器人、小型巡检车这类对成本敏感的产品RK3576几乎是断层级别的存在。瑞迅科技在这颗芯片上做了摄像头多路复用设计能够同时接入4路MIPI相机为多目视觉SLAM提供了很顺滑的硬件基础。2.3 RK3588旗舰重载SLAM与多传感器融合的压舱石RK3588是瑞芯微的旗舰级SoC8核CPU4颗A76加4颗A55主频最高2.4GHzGPU是Mali-G610 MP4NPU算力6TOPS还额外带一个0.8TOPS的独立NPU用于低功耗场景。内存接口支持LPDDR4X/LPDDR5最高带宽能到51.2GB/s。相比RK3576RK3588的最大升级在CPU单核性能和GPU上。A76大核的单核算力大致是A72的1.3到1.5倍这个提升在跑VINS-Mono、ORB-SLAM3加稠密重建这类重载方案时非常明显。我去年帮一个室外园区巡检机器人调参用的就是RK3588平台。它同时接了双目可见光相机加一颗红外热成像运行VINS-Fusion做紧耦合CPU负载主要集中在A76的大核上NPU同时跑一个语义分割模型做可通行区域识别。这套负载下设备整机功耗也才8到9瓦比同样场景下的Jetson Orin NX低了将近三分之一性能还差不太多。如果你要做的是带立体匹配、在线稠密建图、甚至局部语义地图更新的视觉SLAM系统RK3588基本是当前国产平台里最稳的底座。瑞迅科技在RK3588主板上做了多路MIPI CSI地接入设计支持8路摄像头同步输入做多目视觉也不用外接额外的采集卡硬件层面就省了很多事。3. 主控选型实操瑞迅科技基于SLAM场景的分级选型逻辑看完算法需求和三颗芯片的定位最后一步就是怎么把你的产品场景映射到具体芯片上去。我这里根据瑞迅科技实际项目里的经验整理出了一套选型路径大家可以照着对号入座。3.1 场景分档按“三看”原则快速定位芯片档位一看到项目就开始选芯片容易纠结。我通常建议客户先问自己三个问题问题一我需要跑什么样的视觉SLAM是单目轻量里程计、双目/深度相机加完整建图、还是多传感器紧耦合加稠密建模这三个问题的算力需求是几何级增长的。问题二我的系统还有没有别的任务要抢资源比如导航规划、避障、UI渲染、语音交互、甚至端侧识别。SLAM只能占用主控的一部分资源剩下的要给其他功能留足余量。问题三我的产品对功耗和散热有多敏感无风扇设计的产品扫地机、小型服务机器人对SoC的功耗墙有严格限制不是芯片标称功耗低就行还要看整块主板的调教水平。把这三个问题答完芯片档位基本就出来了。我直接把对应关系列成一张表需求标签单目轻量定位RGB-D完整SLAM多传感器紧耦合稠密建图语义建图规模百米级千米级千米级百米级局部并行任务少量中等较重繁重推荐芯片RK3568RK3576RK3588RK3588典型瑞迅板卡WM-E32WM-E35WM-E88WM-E88这个表不用看成硬性规则实际项目里我见过在RK3576上跑出接近RK3588效果的也见过RK3588平台被调优得很差的。SoC只是基础板卡设计水平和软件优化能力同等关键。3.2 相机接口与CSI通道这里最容易在硬件上埋雷视觉SLAM对相机接口的依赖很容易被低估。很多人买开发板只看“能接几个摄像头”忽略了MIPI CSI的实际通道数、带宽分配和同步能力。对多目SLAM来说多路相机需要硬同步触发否则帧间时间戳对不上算法跑起来漂移会非常明显。瑞迅科技在不同档位的主板上对CSI做了差异化设计。RK3568平台一般配置双MIPI CSI适合单目加IMU或者双目方案RK3576平台支持4路MIPI CSI可以做四目或双目加结构光的组合RK3588平台直接拉到8路CSI输入并且支持同步触发为多目视觉和视觉加红外融合留足了空间。实测经验是如果你做双目视觉SLAM尽量选原生支持双通道CSI同时输入的主控板不要走USB摄像头。USB摄像头虽然插上就能用但带宽共享和软件时间戳的不确定性在震动剧烈的机器人场景里非常容易丢帧一旦丢帧SLAM系统的鲁棒性会断崖式下降。3.3 内存与存储配置SLAM卡不卡内存带宽比容量更关键很多方案说明书上写“标配8GB内存”好像8GB很大似的。视觉SLAM对内存容量的需求其实没那么夸张4GB跑完整的ORB-SLAM3也够了真正影响体验的是内存带宽和延迟。以RK3588为例LPDDR5内存的带宽是LPDDR4X的将近一倍。在VINS-Fusion这类需要频繁进行矩阵运算的SLAM算法中高内存带宽能显著减少CPU等待数据的时间直接体现在跟踪帧率的提升和延迟的下降。瑞迅的实际测试里同样一套视觉SLAM算法LPDDR5配置下前端跟踪的帧率比LPDDR4X高了大约10%到15%。所以我给客户的建议是kernel内存配置别太小eMMC存储做系统启动盘没问题但地图文件、日志这些高频写入的一定要挂SSD或者高性能存储否则长期运行会产生严重的IO瓶颈。4. 我在实际项目中踩过的硬件坑与调试的心得理论说了一堆最后分享几个我自己在瑞迅科技这几款板卡上调视觉SLAM时踩过的真实问题。这些问题不是算法问题全是硬件和驱动层面的坑但每一个都足以让SLAM系统跑不起来或者跑不稳。4.1 问题一NPU做特征提取CPU反而是瓶颈我有个项目早期方案定的是在RK3588上用NPU跑SuperPoint特征提取以为6TOPS算力足够结果一跑起来系统整体帧率还不如纯CPU版ORB。排查了好久发现瓶颈出在NPU和CPU的交互链路上。每帧图像要先从ISP搬到NPU算子推理完再搬回CPU做后续匹配中间数据搬移非常频繁反而拖慢了整个链路。这个问题的本质是深度学习特征提取的加速收益在RK3588上还没有大到能抵消DDR带宽的开销。后来我把方案调成“NPU跑语义分割做动态物体剔除特征提取用CPU跑ORB”整体帧率反而稳了。所以别迷信NPU得看整个数据流在哪堵。4.2 问题二多相机同步不当导致的时间戳漂移双目标定都做完了SLAM前端依然经常出现里程计跳变。排查了很久才发现是两颗相机的硬件触发信号没接对导致帧时间戳偶尔错开几十毫秒。视觉和IMU的紧耦合算法对时间轴的对齐极其敏感稍微差一点就会在快速旋转时发散。这个问题在RK3588这种支持多路CSI的板卡上特别容易踩。瑞迅科技的板子本身做了同步触发接口但需要你在驱动层把v4l2的时间戳调整到同一个时钟源。不调整就直接跑视觉和IMU之间的时间偏移就是随机的SLAM后端再优秀也救不了。4.3 问题三散热设计不足导致的降频A76大核跑SLAM后端时发热非常猛瑞迅RK3588的主板如果放在密闭机箱里不额外做导热设计坚持不到20分钟就会触发SoC降频。一旦降频SLAM的跟踪帧率立刻掉一半用户体验就是机器人走着走着“发飘”。别信开发板官方宣传的“低功耗”那都是满载短时数据。真正量产前一定要做长时间拷机测试实测SoC表面温度再根据结温余量设计散热方案。很多客户在这个环节吃了亏最后返工改结构件成本损失远大于一开始就买好一点的散热套件。5. 最后再说说我的直观感受三颗芯片三种定位覆盖了从轻量定位到重载SLAM的完整梯度这个思路本身就很“方案商”。视觉SLAM行业卷到今天算法差距已经在缩小真正拉开口碑的是谁能把硬件吃得更透。瑞迅科技在RK3588/RK3576/RK3568上的配套设计比如多路CSI接入、同步触发的支持、内存带宽的调优恰恰是很多“公版方案”没有做深的地方。我个人的体会是选主控别追求一步到位也别图便宜凑合。视觉SLAM的算力需求和你未来要加的算法高度绑定的如果你预感半年后要上语义地图现在就该选高一档的芯片否则后面重新设计主板模具、认证、驱动全部返工那种痛感经历过的都懂。先把场景吃透再把芯片摸透这个项目就成功了一半。
返回列表