0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3576 + ROS2 进阶:NPU加速MixFormerV2目标跟随与机械臂抓取实战

米尔电子 2026-04-10 08:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

回顾上篇:基于RK3576+ROS2 Humble+SLAM Toolbox+Nav2,我们实现了机器人的建图与自主导航。机器人已经能够“走到哪里”。但真正的智能机器人不仅要“走到哪”,还要“看到并操作”——识别特定物体、主动跟随、近距离抓取。本文将在此基础上,集成深度摄像头,实现机器人核心功能:

  • 使用米尔RK3576 NPU加速MixFormerV2进行目标跟踪,替代传统OpenCV算法
  • 移动底盘跟随目标物体,保持安全距离;
  • 机器人机械抓取物体,完成“识别-跟随-抓取”闭环。

名词预先了解:

  • 手眼转换:将相机看到的物体坐标转换到机械臂可执行的坐标系下。
  • 逆运动学:给定末端目标位姿,反解出机械臂各关节应转动的角度。

e4a1ba54-3470-11f1-ab55-92fbcf53809c.jpg米尔基于RK3576核心板开发板第一章:系统总体架构与硬件连接

1.1 硬件组成

  • 主控:米尔基于RK3576核心板开发板(内置6TOPS NPU)
  • 深度摄像头:RGB-D深度相机(输出RGB、IR、深度三路数据)
  • 机械臂:6轴轻量机械臂(串口控制)
  • 移动底盘STM32控制,麦克纳姆轮

e4b3629a-3470-11f1-ab55-92fbcf53809c.jpg1.2 软件模块与数据流整个系统分为五个核心ROS2节点:e4ca3e2a-3470-11f1-ab55-92fbcf53809c.png整体数据流:
相机→ MixFormerV2跟踪器 → 手眼转换 → 底盘跟随节点 → 靠近停止 → 机械臂逆运动学规划 → 抓取执行。e4d19ef4-3470-11f1-ab55-92fbcf53809c.png第二章:深度相机数据获取

与普通USB摄像头不同,深度相机在ROS2下通过标准驱动节点发布话题数据。本文使用的RGB-D相机输出三路信息:

  • RGB图像:用于目标跟踪的视觉输入
  • IR图像:辅助深度计算(夜间或弱光可用)
  • 深度图像:每个像素的毫米级距离值

相机输出格式为:640×400 NV12,帧率13~15 FPS。主控RK3576通过订阅ROS话题(如/camera/color/image_raw/camera/depth/image_raw)即可获取数据,无需直接操作/dev/video*节点。关键点:深度图像与RGB图像需要时间对齐和空间对齐(通常相机驱动已提供对齐后的深度图),以便后续将目标2D框映射到3D坐标。第三章:NPU加速的MixFormerV2目标跟踪

3.1 为什么放弃OpenCV,改用NPU+MixFormerV2?传统OpenCV跟踪算法(KCF、CSRT等)在光照变化、遮挡、快速运动下容易丢失目标,且完全依赖CPU,帧率受限。而MixFormerV2是一种基于Transformer的端到端跟踪器,精度高、鲁棒性好。配合RK3576内置的6TOPS NPU,可以:

  • 推理速度提升:单帧推理30ms左右,实际跟踪帧率可达15~20 FPS;
  • CPU占用大幅降低:NPU独立处理视觉任务,CPU可专注ROS2通信与运动控制;
  • 功耗更低,适合嵌入式移动机器人。

3.2 模型转换与部署流程1.模型转换:下载MixFormerV2的PyTorch权重,使用RKNN-Toolkit2工具转换为.rknn格式,并做INT8量化。2.ROS2节点实现:

  • 订阅RGB图像话题;
  • 将图像缩放至模型输入尺寸(如224×224),进行预处理;
  • 调用NPU推理,输出目标边界框;
  • 结合深度图中对应区域的有效深度值,通过手眼转换得到目标在机器人坐标系下的3D坐标(X, Y, Z);
  • 发布/target_3d_position/tracking_box话题。

3.性能匹配:相机帧率约15 FPS,MixFormerV2采用累计3帧一起推理的方式(batch size=3),单次耗时约70ms,整体匹配流畅。3.3 手眼转换本文采用“眼在手上”的配置:深度相机固定在机械臂末端,随机械臂一起运动。此时,相机到机械臂末端(camera_link → end_effector_link)的变换是固定的(可通过标定获得),而机械臂末端到基座(end_effector_link → arm_base_link)的变换则随关节角度实时变化。在ROS中,我们需要:

  • 标定相机到机械臂末端的静态TF
  • 机械臂驱动节点根据当前关节角度实时发布end_effector_link → arm_base_link的动态TF。
  • 通过tf2监听完整变换链,将物体坐标从相机系转换到机械臂基座系。

第四章:底盘移动跟随目标

当跟踪节点输出目标在机器人底盘坐标系下的3D位置后,底盘跟随节点object_follower执行以下逻辑:

  • 计算相对位置:得到目标相对于机器人中心水平距离角度偏差
  • 优先调整方向:先原地旋转,使机器人正对目标(角度偏差< 5°)。
  • 前进至抓取距离:保持正对,以线速度向前移动,直到距离目标约0.5米(安全抓取范围)。
  • 停止并通知抓取:到达抓取范围后,发布速度零指令,并触发抓取标志。

第五章:机械臂抓取物体

当底盘停止在抓取距离(约0.5米)后,抓取节点启动。本系统不依赖MoveIt 2,所有机械臂控制通过串口直接下发各关节角度,逆运动学由我们自行实现。5.1 手眼转换(眼在手上)相机固定在机械臂末端,因此手眼转换分为两部分:

  • 静态部分:相机到机械臂末端的变换(camera_link → end_effector_link),通过一次标定得到固定值。
  • 动态部分:机械臂末端到基座的变换(end_effector_link → arm_base_link),由机械臂当前关节角度实时决定。

在抓取流程中,目标物体在相机图像中被检测到后,首先得到物体在相机坐标系下的3D坐标,然后通过ROS的tf2监听完整的变换链:camera_link → end_effector_link → arm_base_link,自动转换到机械臂基座坐标系。这一过程无需手动干预,只要机械臂驱动节点正确发布关节状态和TF即可。5.2 逆运动学解算六轴机械臂通过串口接收角度指令(每个轴一个角度值)。为了抓取目标点,需要求解逆运动学:已知末端夹爪在机械臂基座下的目标位置(以及期望的姿态,例如垂直向下抓取),反算出6个关节的角度。

  • 实现方式:针对具体机械臂的几何参数(D-H参数),编写解析解数值迭代解(如雅可比伪逆法)。解析解速度快,适合固定构型;数值法通用但需注意收敛。
  • 输出:6个关节角度(单位:度或弧度),通过串口逐条发送(可同时发送或按顺序移动)。

5.3 抓取流程

  • 获取目标坐标:从跟踪节点读取底盘停止瞬间的目标3D点(已转换到arm_base_link坐标系)。
  • 设定抓取姿态:根据物体形状和相机视角,设定夹爪的期望方向(例如让夹爪水平或垂直接近)。这一步需结合经验预设。
  • 逆运动学求解:输入末端目标位姿,计算出各关节角度。若求解失败(如目标超出工作空间),则调整底盘位置重新跟随。
  • 发送关节角度:通过串口依次发送6个关节的角度指令,等待机械臂运动到位(可简单延时或读取状态反馈)。
  • 夹取:发送夹爪闭合指令(串口另一命令),通过电流反馈或限位开关判断是否夹住物体。
  • 完成:抓取成功后,机械臂保持闭合,底盘可原地等待下一步指令。

第六章:总结与展望

本文在上篇“建图与导航”的基础上,为米尔RK3576机器人增加了“视觉跟随与抓取”能力,实现了完整的“识别-跟随-抓取”闭环。关键技术包括:

  • MixFormerV2 + NPU实现高能效目标跟踪;
  • 手眼转换:将相机看到的物体坐标转换到机械臂可执行的坐标系下。本文采用“眼在手上”配置(相机固定在机械臂末端),需同时考虑固定偏移和关节运动。
  • 自研逆运动学控制6轴机械臂精准抓取(不依赖MoveIt 2)。

米尔RK3576这一方案可广泛应用于服务机器人、巡检机器人、教育竞赛等场景。下一步可探索:

  • 多目标切换跟随;
  • 动态避障与跟随并行;
  • 抓取后自动放置(结合上篇的导航回位功能)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    214

    文章

    31650

    浏览量

    224565
  • 机械臂
    +关注

    关注

    14

    文章

    606

    浏览量

    26231
  • NPU
    NPU
    +关注

    关注

    2

    文章

    393

    浏览量

    21434
  • rk3576
    +关注

    关注

    1

    文章

    315

    浏览量

    1721
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    当国产芯遇上机器人:RK3576ROS2奇幻之旅

    RK3576的强劲“大脑”(四核A72+四核A53)与强大的GPU、VPU、NPU加速模块相遇,一场高性价比的机器人开发革命正在悄然发生。我们成功将完整的Ubuntu22.04
    的头像 发表于 01-15 08:04 1.1w次阅读
    当国产芯遇上机器人:<b class='flag-5'>RK3576</b>的<b class='flag-5'>ROS2</b>奇幻之旅

    RK3576 + ROS2 SLAM建图与导航实战

    前言文档定位与目标读者本文档面向具备一定ROS基础、希望深入理解并在实际项目中部署ROS2Humble+SLAMToolbox+Nav2完整建图与导航系统的机器人工程师。我们将从零开始,基于米尔
    的头像 发表于 03-12 08:08 9317次阅读
    <b class='flag-5'>RK3576</b> + <b class='flag-5'>ROS2</b> SLAM建图与导航<b class='flag-5'>实战</b>

    RK3576 vs RK3588:为何越来越多的开发者转向RK3576

    高端平板、边缘计算)。 NPU 算力相同,但 RK3588 支持更复杂的 AI 计算(如 INT4/FP16)。 2. 多媒体与存储:满足主流需求 [td]项目RK3576RK35
    发表于 05-30 08:46

    米尔RK3576成功上车!ROS2 Humble生态系统体验

    RK3576的强劲“大脑”(四核A72+四核A53)与强大的GPU、VPU、NPU加速模块相遇,一场高性价比的机器人开发革命正在悄然发生。我们成功将完整的Ubuntu 22.04与ROS2
    发表于 01-15 18:30

    YOLO5目标检测方案-基于米尔RK3576开发板

    与调优提供了一套完整的思路与实践方案。 PART 01 系统架构与性能目标 1.1 硬件平台 主控芯片:Rockchip RK3576(四核A72+四核A53,6TOPS NPU,RGA,GPU
    发表于 01-22 19:21

    ROS2 SLAM建图与导航实战--基于米尔RK3576开发板

    + 定位 + Nav2核心 第七章:总结与展望 7.1 本文总结 从环境搭建、URDF建模、SLAM建图、Nav2导航到基于米尔RK3576开发板的实体部署,全面覆盖了ROS2 Hu
    发表于 03-12 17:55

    机器人主控核心板米尔RK3576 + ROS2NPU加速实现目标跟随机械抓取

    操作”——识别特定物体、主动跟随、近距离抓取。本文将在此基础上,集成深度摄像头,实现机器人核心功能: 使用米尔RK3576 NPU加速
    发表于 04-10 21:23

    基于米尔RK3576核心板的国产割草机器人解决方案

    采用瑞芯微自主研发的8nm制程工艺,集成4核Cortex-A72 + 4核Cortex-A53大小核架构: 图:米尔基于RK3576核心板及开发板 2. 6 TOPS NPU:端侧智能的核心引擎 区别于
    发表于 04-24 17:31

    使用myCobot 280机械结合ROS2系统搭建机械分拣站

    这篇文章是来自Automatic Addison的开源项目,已获作者授权转载自github。本项目的主要内容是使用myCobot 280机械结合ROS2系统搭建机械分拣站。
    的头像 发表于 01-15 09:22 2448次阅读
    使用myCobot 280<b class='flag-5'>机械</b><b class='flag-5'>臂</b>结合<b class='flag-5'>ROS2</b>系统搭建<b class='flag-5'>机械</b>分拣站

    迅为RK3576开发板NPU例程测试-rknn-toolkit2环境搭建和使用

    迅为RK3576开发板NPU例程测试-rknn-toolkit2环境搭建和使用
    的头像 发表于 06-17 13:46 2115次阅读
    迅为<b class='flag-5'>RK3576</b>开发板<b class='flag-5'>NPU</b>例程测试-rknn-toolkit<b class='flag-5'>2</b>环境搭建和使用

    迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示模型转换

    迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示模型转换
    的头像 发表于 06-19 10:53 1659次阅读
    迅为<b class='flag-5'>RK3576</b>开发板<b class='flag-5'>NPU</b>环境搭建和使用rknn-toolkit<b class='flag-5'>2</b>功能演示模型转换

    迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示连板推理

    迅为RK3576开发板NPU环境搭建和使用rknn-toolkit2功能演示连板推理
    的头像 发表于 06-23 13:54 1468次阅读
    迅为<b class='flag-5'>RK3576</b>开发板<b class='flag-5'>NPU</b>环境搭建和使用rknn-toolkit<b class='flag-5'>2</b>功能演示连板推理

    硬核上车!RK3576基于Ubuntu部署ROS机器人系统详细攻略(上)

    本文适用于瑞芯微RK3562、RK3566、RK3568、RK3576RK3588等Arm64位SoC,适配开发
    的头像 发表于 07-03 18:45 3212次阅读
    硬核上车!<b class='flag-5'>RK3576</b>基于Ubuntu部署<b class='flag-5'>ROS</b>机器人系统详细攻略(上)

    开发必看,RK3576基于Ubuntu22.04安装 测试ROS2机器人系统

    本文介绍基于Ubuntu22.04安装ROS2机器人系统教程,并附带详细测试方法,基于触觉智能RK3576核心板方案,使用配套开发板PurplePiOH2演示。ROS
    的头像 发表于 03-13 17:48 536次阅读
    开发必看,<b class='flag-5'>RK3576</b>基于Ubuntu22.04安装 测试<b class='flag-5'>ROS2</b>机器人系统

    RK3576单板机玩转ROS2:通信测试+编译部署全流程详解

    本文为创龙科技RK3576 单板机 ROS2 开发指南,涵盖 ROS2 Humble 环境搭建、节点通信测试、turtlesim 仿真及功能包编译部署。支持 Python/C++ 双语言开发,提供交叉编译与板端运行的完整流程。创
    的头像 发表于 05-16 13:49 291次阅读
    <b class='flag-5'>RK3576</b>单板机玩转<b class='flag-5'>ROS2</b>:通信测试+编译部署全流程详解