瑞莎 Dragon Q6A 实战:把 Rush Mog 改造成端侧 AI 智能麦克纳姆轮机器人

王王子热 2026-09-20 16:45:41

最近看到一个挺有意思的开源机器人项目:Rush Mog,它是一辆致敬 Unimog 的麦克纳姆轮智能小车,原项目采用 STM32F103 + ESP32-S3-CAM,已经具备底盘运动、手机控制、摄像头、语音等基础能力,同时规划了目标识别、自动寻物、LiDAR、机械臂和 VLA。这次我们尝试做一次更彻底的升级,改造后的项目叫:RushMog-Q6A,它核心使用瑞莎 Dragon Q6A 作为机器人的端侧 AI 大脑,把视觉、语音、任务理解和自主决策集中到 QCS6490 上。


1. 为什么要改造 Rush Mog?

原项目的软件架构大致是:

ESP32-S3-CAM
├── Camera
├── Wi-Fi
├── Web
└── 上层控制

STM32F103
├── 麦克纳姆轮
├── 电机
├── PCA9685
├── 机械臂
├── MPU6050
└── TOF

这种结构已经能够完成遥控小车,但如果继续增加:

YOLO目标检测
语音识别
自动寻找目标
机械臂抓取
视觉语言理解
VLA

ESP32 就明显不够用了,原项目虽然已经提出这些方向,但 LiDAR、VLA、机械臂智能控制等部分仍然存在较大的完善空间,所以这次 Q6A 改造的核心并不是:

ESP32
  ↓
换成更快的板子

而是重新划分机器人的:

大脑和身体。


2. 改造后的整体架构

新的结构非常清晰:

                 Camera
                    │
                    ▼
             Dragon Q6A
          Qualcomm QCS6490
                    │
       ┌────────────┼────────────┐
       │            │            │
     Vision       Speech       Web
       │            │            │
     YOLO          ASR       手机控制
       │            │            │
       └────────────┼────────────┘
                    │
               Task Planner
                    │
                 Skills
                    │
              Safety Layer
                    │
                 UART
                    │
                    ▼
               STM32F103
                    │
           ┌────────┴────────┐
           │                 │
      麦克纳姆轮           机械臂

Q6A 负责:

看见、听懂、理解、规划。

STM32 负责:

稳定、实时地执行。


3. 为什么选择 Dragon Q6A?

Dragon Q6A 搭载 Qualcomm QCS6490,提供最高约 12 TOPS AI 算力,并集成 Hexagon DSP / Tensor Accelerator,对于这个项目比较关键的是:

QCS6490
Adreno GPU
Hexagon NPU

MIPI CSI
USB Camera

Wi-Fi 6
Bluetooth

40-Pin GPIO
UART
SPI
I2C

同时能够运行完整 Linux,所以原来需要:

ESP32
+
OpenMV
+
树莓派
+
语音模块

共同完成的一部分工作,可以逐渐收敛到:

Dragon Q6A

上。


4. 哪些硬件继续保留?

这次不会把 Rush Mog 推倒重做。

建议保留:

模块是否保留
STM32F103保留
JGB37-520 电机保留
麦克纳姆轮保留
PCA9685保留
MG996R 机械臂保留
MPU6050保留
TOF / LiDAR保留
ESP32-S3-CAMQ6A 替代
OV2640USB/MIPI Camera 替代
OpenMV删除
Raspberry Pi删除
独立 ASR 板可选删除

其中最重要的是:

STM32 一定要留下。

Q6A 很强,但 Linux 并不适合直接承担底盘 PWM、电机闭环和舵机实时控制。


5. Q6A 和 STM32 怎么通信?

推荐使用:

Q6A
 ↓
UART / USB Serial
 ↓
STM32

Q6A 不再发送底层 PWM,而是发送高级动作。

例如:

{
  "type": "motion",
  "action": "strafe_left",
  "speed": 0.35
}

机械臂:

{
  "type": "arm",
  "action": "grasp"
}

急停:

{
  "type": "emergency_stop"
}

STM32 再负责将:

forward
strafe_left
turn_right
grasp

转换成实际的:

四轮转速
电机方向
PWM
舵机角度

这样 AI 层完全不用关心底盘细节。


6. 先把 Q6A 的 NPU 跑起来

AI 部分不要一上来就做“大而全”。

第一步先验证:

QCS6490
+
FastRPC
+
QAIRT
+
Hexagon NPU

是否正常。

然后使用:

QAI AppBuilder

作为主要 AI 开发入口。

它可以进一步封装 Qualcomm AI Runtime,同时提供 Python / C++ API,非常适合机器人应用。

第一阶段建议直接运行官方 NPU Demo。

确认环境没有问题以后再开始接 Camera。


7. 第一个 AI 功能:YOLOv8 目标检测

Rush Mog 最适合实现的第一个智能功能就是:

自己寻找指定物体。

视觉链路:

USB / MIPI Camera
        ↓
      OpenCV
        ↓
      YOLOv8
        ↓
 QAI AppBuilder
        ↓
   Hexagon NPU
        ↓
      Objects

比如识别出:

{
  "label": "bottle",
  "confidence": 0.92,
  "bbox": [620, 210, 780, 610]
}

接着计算瓶子位于:

left
center
right

再结合 TOF 距离:

{
  "target": "bottle",
  "direction": "right",
  "distance": 1.42
}

这就把“图片中的框”转换成了机器人真正可以使用的信息。


8. 麦克纳姆轮特别适合视觉跟踪

这是 Rush Mog 很有意思的一点。

普通两轮机器人发现物体偏右,通常要:

右转
 ↓
重新对齐
 ↓
继续前进

麦克纳姆轮可以直接:

目标偏右
  ↓
strafe_right

横向移动。

因此可以构成一个非常简单的视觉伺服闭环:

Camera
 ↓
YOLO
 ↓
目标中心位置
 ↓
计算横向误差
 ↓
麦克纳姆轮横移
 ↓
目标回到画面中心

例如:

目标偏左
→ 左横移

目标偏右
→ 右横移

目标居中
→ 向前接近

这个 Demo 很适合展示 Q6A 的视觉 AI 不只是“识别到了东西”,而是真的参与机器人运动。


9. 自动找水瓶怎么实现?

第一版甚至不用大模型。

做一个可靠的状态机即可:

SEARCH
 ↓
旋转寻找 bottle
 ↓
检测到目标
 ↓
ALIGN
 ↓
左右横移对齐
 ↓
APPROACH
 ↓
根据 TOF 向前
 ↓
目标距离达到阈值
 ↓
STOP

逻辑类似:

if not detected:
    action = "turn_left"

elif direction == "left":
    action = "strafe_left"

elif direction == "right":
    action = "strafe_right"

elif distance > 0.6:
    action = "forward"

else:
    action = "stop"

这样就完成第一个真正的:

视觉 → 决策 → 运动

闭环。


10. 再把机械臂接进来

原项目本身已经规划机械臂。

Q6A 版本不需要让 AI 直接输出:

Servo1 = 72°
Servo2 = 103°
Servo3 = 46°

而应该抽象成 Robot Skill:

pre_grasp
grasp
lift
place

例如:

arm.pre_grasp()
arm.grasp()
arm.lift()

真正的关节角度和运动序列仍然放在 STM32。

这样完整任务就变成:

发现瓶子
 ↓
底盘对齐
 ↓
靠近瓶子
 ↓
停止
 ↓
pre_grasp
 ↓
grasp
 ↓
lift

后面再加入深度摄像头或者目标位姿估计,就可以继续往真正的移动抓取升级。


11. VLA 不建议第一版就做成“大模型直接控电机”

Rush Mog 原项目提出了 VLA。

但第一版 Q6A 改造,我更建议实现一个分层的:

VLA-style Architecture

例如用户说:

“帮我把前面的水瓶拿过来。”

Language:

{
  "goal": "bring_object",
  "target": "bottle"
}

Vision:

{
  "target": "bottle",
  "direction": "right",
  "distance": 1.8
}

Planner 再拆成:

find_object
 ↓
align_object
 ↓
approach_object
 ↓
pick_object
 ↓
return_home

也就是说:

Vision
+
Language
       ↓
Task Planner
       ↓
Robot Skills
       ↓
Safety
       ↓
STM32

而不是:

大模型
 ↓
PWM

这样更容易调试,也更加安全。


12. 最终 Demo:一句话让机器人把水瓶拿回来

最终可以把整个案例包装成一个完整任务。

用户:

“帮我把前面的水瓶拿过来。”

系统开始执行:

语音 / 文本输入
      ↓
识别任务
      ↓
target = bottle
      ↓
Camera
      ↓
YOLOv8
      ↓
找到水瓶
      ↓
麦克纳姆轮横移对齐
      ↓
TOF测距
      ↓
向前接近
      ↓
停止
      ↓
机械臂抓取
      ↓
抬起
      ↓
返回

最终整个系统用到:

QCS6490 CPU
→ Robot Application

Hexagon NPU
→ YOLO / AI

Camera
→ Vision

TOF
→ Distance

Wi-Fi 6
→ Web Control

UART
→ STM32

STM32
→ 电机 + 机械臂

这时候 Q6A 就不只是:

“一块能够运行 YOLO 的开发板。”

而是真正进入了机器人闭环。


总结

Rush Mog 原项目本身已经有一个非常好的机器人骨架:

麦克纳姆轮
+
STM32
+
Camera
+
测距
+
机械臂
+
手机控制

Dragon Q6A 的加入,主要补上:

端侧视觉 AI
+
语音理解
+
任务规划
+
自主决策

最终形成:

           Dragon Q6A
               │
        Qualcomm QCS6490
               │
   ┌───────────┼───────────┐
   │           │           │
 Vision     Language     Planner
   │           │           │
   └───────────┼───────────┘
               │
            Skills
               │
            Safety
               │
               ▼
            STM32
               │
       ┌───────┴───────┐
       │               │
   麦克纳姆轮         机械臂

Q6A 负责:

看见、理解和规划。

STM32 负责:

实时、可靠地执行。

相比直接追求一个端到端的大型 VLA 模型,这种:

Vision + Language + Planner + Robot Skills

的分层方案,更适合第一版真实机器人项目。

最终 RushMog-Q6A 就可以从一辆智能遥控麦克纳姆轮小车,进一步变成:

能够自己找目标、接近目标,并使用机械臂完成任务的端侧 AI 移动操作机器人。

...全文
131 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文系统研究了三相光伏发电系统中的最大功率点跟踪(MPPT)与并网控制策略,深入分析光伏阵列在不同光照和温度条件下的输出特性,设计并实现了基于Simulink的完整仿真模型。该模型涵盖光伏阵列、DC-DC变换器、MPPT控制器、逆变器及锁相环等关键模块,重点验证了系统在动态环境变化下实现高效能量转换的能力,并确保并网电流符合电能质量标准。研究对比了多种MPPT算法的动态响应与稳定性表现,优化了并网控制策略以提升整体系统性能,为光伏系统的设计与控制提供了理论依据与仿真支持。; 适合人群:具备电力电子、自动控制或新能源发电基础知识的高校研究生、科研人员及从事光伏系统设计与仿真的工程技术人员。; 使用场景及目标:①用于教学与科研中深入理解光伏发电系统的MPPT原理与并网控制机制;②指导实际工程项目中光伏逆变器控制策略的设计与仿真验证;③为撰写相关学术论文或完成课程设计提供可复现的Simulink模型与理论支持。; 阅读建议:建议读者结合文中提供的Simulink仿真文件,逐步搭建系统模型,调试MPPT与并网控制参数,观察关键波形如光伏电压、电流、功率及并网电流的变化,加深对控制逻辑的理解。同时可尝试改进算法以进一步提升系统动态响应与鲁棒性。
内容概要:本文系统解读了一套完整的多机器人路径规划(MAPF)MATLAB代码库,聚焦于优先级规划算法的工程实现。该框架采用四层架构设计(几何、拓扑、调度与呈现),实现了从地图解析、Petri网建模、基于动态边权膨胀的路径规划,到时间同步冲突消解及动画可视化的全流程。核心创新包括动态边权膨胀机制、节点预留历史查表优化、几何惩罚驱动的局部同步策略以及Petri网双阶段优化方法,有效提升了大规模场景下的求解效率与可行性。文章详细阐述了各模块之间的接口契约与不变量,对比分析了三种时间同步策略的适用场景,并强调了信息前移、模块解耦与可维护性设计的重要性,为MAPF的研究与教学提供了可复现、可批判的参考文本。; 适合人群:具备一定MATLAB编程基础,从事机器人路径规划、智能调度、自动化控制等相关领域的科研人员与研究生。; 使用场景及目标:① 学习并复现多机器人路径规划中的优先级规划算法及其工程实现细节;② 深入理解动态边权膨胀、节点预留历史、局部同步等核心机制的设计原理与性能优化策略;③ 掌握Petri网建模与整数规划在路径调度中的应用,以及多智能体系统冲突消解与可视化的方法。; 阅读建议:此资源以工程化框架形式呈现,不仅关注算法逻辑,更重视模块化设计与系统集成。建议读者按照数据流顺序逐步学习,结合代码调试理解各层交互,并尝试替换不同同步策略以评估其对效率与解质量的影响,从而深入掌握大规模MAPF问题的求解范式。

7,867

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、IoT、PC 、XR、Auto等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
物联网人工智能开源 企业社区 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧