瑞莎 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_objectreturn_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 移动操作机器人。

...全文
29 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 DELL服务器的操作系统部署流程包含一系列细致的环节,其适用范围涵盖多种操作系统类型,例如Windows Server与Red Hat Linux等。在启动部署之前,必须确认服务器的光驱设备为DVD驱动器,并且需准备对应的系统安装媒介。下面将详细列出完整的部署步骤: 1. **启动准备**:将随服务器提供的Systems Management Tools and Documentation version 6.0光盘置入服务器光驱,随后设定服务器以光驱作为启动设备。此环节旨在确保服务器在启动阶段能够读取安装光盘内容。 2. **语言设定**:服务器启动后,选定简体中文作为部署语言,并确认接受许可协议条款。 3. **时区选择**:在部署期间,需设定时区为北京、香港、重庆或乌鲁木齐,依据实际地理位置进行适配选择。 4. **系统类型选择**:随后,需选定计划部署的操作系统,支持的版本包括Server 2003 SP2、Server 2003 SP2 64位版本、Windows 2003 SBS SP2、Server 2008、Windows 2008 SBS/EBS x64版本等,以及多种Red Hat和SUSE Linux版本。 5. **RAID设定**:若服务器出厂时已预设RAID配置,则可选择跳过此步骤。若需重新设定RAID,操作时需格外小心,因为这一过程可能引发硬盘数据遗失。 6. **引导分区规划**:设定引导分区的大小,通常C盘建议预留至少20GB的空间,具体容量需根据系统需求进行调整。 7. **网络设定**:网络设定可在系统部署完成后执行,部署期间建议暂时拔除...

7,697

社区成员

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

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