|
598| 17
|
[项目] 【花雕】嵌入式AI Agent 机器人:硬件小车、部署和主架构 |
|
本帖最后由 驴友花雕 于 2026-4-27 09:09 编辑 ## 引言:机器人需要怎样的“大脑”? 传统机器人系统,似乎早已固化了“上位机 + 下位机”的分布式架构范式:一台运行 Linux 系统的高性能单板计算机(如树莓派、Jetson),承担着视觉处理、SLAM 建模、路径规划与 AI 交互的“脑力工作”;另一块单片机(STM32、Arduino 等),则专职负责电机控制、传感器采集等实时性要求极高的“体力活”。 这种架构固然能实现复杂功能,但也不可避免地带来了三大痛点:硬件成本居高不下、系统功耗难以控制、多设备协同的复杂度大幅提升,让机器人技术难以走进低成本场景。 而 ESP32‑S3 这类高性能微控制器的出现,彻底打破了这一困局。这款集成双核 Xtensa LX7 @ 240MHz 处理器、向量扩展指令、WiFi/蓝牙双模通信,以及最高 16MB Octal PSRAM 的芯片,让“单芯片机器人”的构想从理论走向现实。MimiClaw 正是这一趋势下的标志性实践——它在一颗成本不足 5 美元的微控制器上,完整实现了“感知(多通道交互)→ 决策(LLM 推理 + 上下文记忆)→ 执行(电机/灯光控制)”的智能体闭环,用极简硬件撬动了机器人 AI Agent 的全面落地。 本文将跳出单纯的代码解读,从机器人学经典范式(感知-规划-行动)的视角,重新审视 MimiClaw 的架构设计,探讨其在教育机器人、桌面级服务机器人、低成本科研平台等领域的应用潜力与工程启示,为嵌入式 AI 机器人的开发提供可借鉴的实战思路。 栏目开篇: 【花雕学编程】从代码到运动:MimiClaw 如何用 ESP32‑S3 微控制器撬动机器人 AI Agent 的全面落地 https://blog.csdn.net/weixin_416 ... 1001.2014.3001.5502 ![]() |
|
## 第一部分,搭建一个简单有效硬件小车的实验测试平台 1、小车底盘,选择了一款1.5mm厚的铝合金4WD四轮底盘,比较专业,便于后续二次开发的相关硬件拓展。 ![]() 2、二只差速电机,使用了最普通的小减速比48:1的快速TT马达,后续升级再另行更换电动机。 ![]() 3、电机驱动模块,使用了手头有的L9110 主要参数 双L9110S芯片的电机驱动 模块供电电压:2.5-12V 适合的电机范围:电机工作电压2.5v-12V之间,最大工作电流0.8A,目前市面上的智能小车电压和电流都在此范围内 可以同时驱动2个直流电机,或者1个4线2相式步进电机。 PCB板尺寸:2.8cm*2.1cm 超小体积,适合组装 设有固定安装孔,直径:3mm ![]() |
|
本帖最后由 驴友花雕 于 2026-4-27 06:16 编辑 ## 第二部分,实际部署迷你小龙虾 mimiclaw MimiClaw官网与代码仓库 官方网站:https://mimiclaw.io 代码仓库:https://github.com/memovai/mimiclaw 国内镜像:https://gitcode.com/RealGao/mimiclaw ![]() ![]() ![]() 关于部署 MimiClaw 的参考资料: 1、《【花雕动手做】ESP32-S3 成功部署 MimiClaw(迷你小龙虾):本地调用 DeepSeek API 的部分实操记录》 https://blog.csdn.net/weixin_41659040/article/details/159633206 2、《【花雕动手做】ESP32-S3 开发板部署迷你小龙虾 MimiClaw 完整流程+避坑指南》 https://blog.csdn.net/weixin_41659040/article/details/160185171 3、《【花雕动手做】从“能听会算”到“自主行动”:MimiClaw 开启嵌入式 AI 的新篇章》 https://blog.csdn.net/weixin_41659040/article/details/160351859 4、《【花雕动手做】打破AI轻量化极限!MimiClaw:国产EP32S3 芯片上跑的纯C轻量AI Agent》 https://blog.csdn.net/weixin_41659040/article/details/152157480 |
|
## 第一步:部署前准备:硬件与账号 在开始之前,请确保你已准备好以下“物料”: 1、核心开发板:ESP32-S3 N16R8。这是部署成功最关键的一步,必须选用 16MB Flash 和 8MB PSRAM 的版本(如 ESP32-S3-DevKitC-1-N16R8)。容量不足会导致固件烧录失败或设备反复重启。 推荐型号: 乐鑫官方 ESP32-S3-DevKitC-1-N16R8:兼容性最佳,推荐所有开发者使用。 小智AI开发板 (N16R8版本):集成基础外设,新手友好,开箱即用。 行空板K10:DFRobot推出的集成ESP32-S3 N16R8与多种传感器、屏幕、麦克风的学习板。 2、USB数据线:必须支持数据传输。仅充电用的线无法用于烧录,请使用开发板原装线或品牌高速数据线。 3、API密钥 (模型调用):Mimiclaw 调用云端大模型需要API Key。 (1)Anthropic API Key:从 console.anthropic.com 获取。 (2)DeepSeek API Key:从 platform.deepseek.com 获取,价格便宜,非常适合国内用户。 (3)Bot Token (通信渠道):MimiClaw 通过聊天机器人交互。 (4)Telegram Bot Token:在 Telegram 找 @BotFather 创建一个Bot即可获取。 (5)飞书应用凭证:在飞书开放平台创建一个“企业自建应用”,开启机器人能力。需要获取应用的 App ID 和 App Secret。 (6)(可选) 搜索API Key:如需网页搜索功能,可从 app.tavily.com 获取免费的 Tavily API Key。 ![]() |
|
## 第二步:搭建开发环境 (ESP-IDF) Mimiclaw 基于乐鑫官方开发框架 ESP-IDF v5.5+,推荐使用 v5.5.3 版本。 1、下载安装脚本 (国内用户推荐) 为了获得更快的下载速度,推荐使用乐鑫官方的Gitee镜像安装工具。 2、激活环境 安装成功后,你需要为每一个新打开的终端窗口激活ESP-IDF环境,才能使用相关命令。 提示:可以将此行添加到你的shell配置文件(如 ~/.bashrc)中,以避免每次手动激活。 3、打开CMD ![]() |
|
本帖最后由 驴友花雕 于 2026-4-26 17:13 编辑 ## 第三步:获取并配置 Mimiclaw 1、克隆项目代码 2、如果克隆失败,可以尝试使用Gitee镜像: 3、设置目标芯片 4、配置项目密钥 这是核心步骤,需要将你的各种Token和密码填入配置文件。 首先复制模板文件: 然后用你习惯的文本编辑器(如 nano, vim, code)打开 main/mimi_secrets.h 文件,填入你的信息。 下面是一个参考配置示例,其中粗体部分是你需要替换的内容: |
|
## 第四步:编译与烧录 1、编译项目 首次编译时间较长,请耐心等待。如果不想每次都从头编译,可跳过 fullclean。 2、将开发板连接到电脑 使用准备好的数据线将ESP32-S3开发板连接至电脑。 3、烧录固件 4、烧录完成后,开发板可能会自动重启。 5、成功部署MimiClaw的串口返回情况 ![]() |
2、config_show – 查看当前配置![]() 配置项解读 WiFi 就绪:设备记住了你的 Wi-Fi zhz3,密码也存好了。[build] 意味着它是编译时写进去的,而不是运行中修改的。 模型已切换:这一行 Model: deepseek-chat [NVS] 非常关键。 它证实了你刚才的 set_model 命令不仅生效了,而且已经被保存到了设备内部的 NVS 永久存储区。 即使今天拔电重启,它依然会默认尝试使用 DeepSeek 模型,而非你代码里原本默认的那个。 提供者关系:Provider: openai [build] 说明虽然模型名是 deepseek-chat,但你的 MimiClaw 会把它当成一个兼容 OpenAI 接口的模型来处理。这恰好是调用 DeepSeek 的正确姿势,无需额外改动。 其他空项:Telegram Bot Token 和搜索服务暂时空着,这完全没问题。因为你正在使用飞书通道,所以不需要 TG。搜索也是可选的增强功能,不影响核心对话和机器人控制。 3、实验场景图 ![]() |
|
## 一、为什么你需要懂它的结构? 如果你的目标是让机器人真正理解你、记住你、自主行动,那你迟早要面对代码,进行符合实际使用场景的二次开发。好在 MimiClaw 并没有把复杂性隐藏在黑盒里,它的 mimi 像是精细编排的交响乐,每个函数都承载着一个明确的设计意图。 从之前系列测试与实验中,遇到的飞书连接成功、电机控制正常,再到调用 deepseek-chat 模型时因证书验证失败引发的系统重启,这些经验都指向同一个事实:架构决定了调试的方向。现在我们就结合架构图与 mimi.c 的源码,对 MimiClaw 进行一次彻底的解剖。 ![]() |
|
## 二、整体架构:四个层次,一个大脑 MimiClaw 的系统可划分为清晰的四层,各层职责明确、协同工作,共同构成机器人的完整“生命体”: 1. 通道层 — 耳朵与嘴巴 Telegram、WebSocket(含飞书)是消息的核心入口。所有用户发送的指令(如“你好[握手]”)都将通过这里进入系统,并送入消息队列排队,等待后续处理,是机器人与外界交互的“桥梁”。 2. 智能体核心 — 大脑的思考与决策 这是 MimiClaw 最核心、最精彩的部分。Agent Loop 作为系统的“心跳”,持续从消息总线拉取消息,结合记忆(SOUL.md、MEMORY.md 等)和可用的技能/工具,判断是直接回答用户指令,还是调用云端 LLM 生成响应,最终将回复推回消息总线。 Tool Registry(工具注册表)中注册了 25 个实用工具,涵盖 LED 控制、电机驱动、文件读写、定时任务等,这些工具相当于机器人的“手和脚”,让思考决策能够转化为实际动作。 3. 增强模块 — 让感官更丰富 该模块为机器人赋予了物理感知能力,使其不再只是对话框中的文字,而是一个有“感知”的物理存在:IMU(惯性测量单元)用于感知设备的摇动、倾角;RGB LED 用于展示系统状态和“情绪”;物理按钮可实现紧急打断或模式切换,提升交互的便捷性和安全性。 4. 存储层 — 记忆的根 存储层是机器人“记忆”的载体,保障数据不丢失:SPIFFS 文件系统存放在 16MB Flash 中,用于存储人格定义、对话历史、技能脚本等核心数据;NVS(非易失性存储)用于保存 Wi-Fi 密码和运行时修改的配置(如通过 set_model deepseek-chat 写入的模型配置)。即使设备意外断电,记忆和配置也能完整保留。 |
|
## 三、mimi() 源码全解:一场精心编排的启动舞步 MimiClaw 主程序 mimi.c 源代码如下: |
|
完整的 mimi.c 本质上是上述架构图的线性实现,这里将其拆分为 5 个有明确意图的启动阶段,清晰看懂机器人的“启动逻辑”。 阶段一:硬件感官就绪 —— Wi-Fi 未连,感官先活 这 5 行代码蕴含着重要的设计理念:机器人应像生物一样,即使“大脑”(联网功能)尚未上线,感官和基础反射也要先正常工作。在烧录固件后等待 Wi-Fi 连接的几十秒内,设备会通过红灯和屏幕向用户传递“正在启动、正常运行”的信号,提升用户体验。 阶段二:基础地基 —— 搭建系统骨架 这三步是整个系统的“骨架”,缺一不可:没有 NVS,Wi-Fi 密码每次重启都需重新输入;没有事件循环,飞书 WebSocket 无法实现异步通信;没有 SPIFFS,SOUL.md 等核心文件无处存放,机器人也就没有了“灵魂”和“记忆”。 阶段三:大脑初始化 —— 服务全部“插上电” 注意此处仅执行“初始化(init)”,未执行“启动(start)”。这种“初始化与启动分离”的设计,使得系统可在离线状态下完成所有核心组件的初始化,待 Wi-Fi 就绪后,再一键启动所有依赖网络的功能,提升系统灵活性。 阶段四:离线先行,在线随后 —— 鲁棒性的核心 这是 MimiClaw 鲁棒性设计的核心:即使联网失败(如之前遇到的 TLS 崩溃),串口 CLI 依然可用,Wi-Fi AP 热点也能正常工作,不会出现“彻底死机”的情况。这种“离线底座”设计,为系统设置了不可突破的底线,确保调试和基础操作始终可用。 阶段五:双核任务分配 —— 高效协同,避免卡顿 ESP32-S3 拥有两个 CPU 核,MimiClaw 对双核进行了合理分工,保障核心功能的流畅性: - Core 0:运行 Wi-Fi 协议栈、LWIP、飞书 WebSocket 客户端的网络 I/O 以及串口 CLI,负责“对外通信”和“基础调试”。 - Core 1:运行 Agent 决策循环和消息派发任务,负责“核心思考”和“动作执行”。 这种分工确保了对话响应和电机控制不会被网络波动卡住,因为最核心的智能体决策的运行环境是独立的,不受网络组件的干扰。 |
|
本帖最后由 驴友花雕 于 2026-4-28 09:03 编辑 ## 四、从调试经验回看架构 之前遇到的 TLS 错误,恰好印证了架构设计的合理性,也让我们更深刻地理解了各模块的关联: 该错误证实了架构图中 LLM Proxy 模块直接依赖 mbedTLS 组件,而错误的根源是 menuconfig 中未开启 TLS server verification。当我们理解了 llm_proxy_init() 与 SSL 库的关联后,修复这类问题就不再是盲目搜索,而是有明确方向的配置检查。 同样,飞书消息“Message from ou_... : 你好[握手]”能被成功处理,正是 outbound_dispatch_task 从消息总线取到回复后,根据 channel 字段正确路由回飞书的结果,这也体现了消息总线和出站派发任务的协同作用。 ## 五、给你的动手路线图 在拥有可正常运行的设备、看懂系统架构后,可通过以下实践内化理解,二次开发亲手改造 MimiClaw: 1. 离线模式实验 故意留空 Wi-Fi 密码,刷入固件后观察:红灯是否正常亮起?屏幕是否有显示?串口 CLI 可输入哪些命令?通过该实验,能真切体会 MimiClaw“不联网也能正常工作”的架构优势。 2. “摇一摇”触发配置切换 拿起开发板快速晃动(需连接 IMU 和屏幕),观察配置页面是否会切换。config_screen_toggle 回调函数,正是架构图中“IMU → User Interface”这条交互链路的具体实现。 3. 写一个自定义技能 在 skills/ 目录下模仿已有 .c 文件,编写一个“情绪灯”技能,实现 skill_init(初始化)、skill_execute(执行)、skill_deinit(销毁)三个核心函数,再将其注册到 skill_loader 中。无需修改框架其他代码,即可为机器人新增一种行为。 4. 调校机器人的灵魂 通过串口 CLI 或直接编辑 SPIFFS 中的 SOUL.md 文件,定义机器人的人格。例如设置“用喵星人口吻回答,句尾必须加上‘咔嚓咔嚓’”,几分钟后,一个符合你预期人设的机器人就会诞生。 5. 纯本地闭环 假如编写一个 FreeRTOS 任务,每秒检查一次温度传感器数值。若温度超过 28°C 且 Agent 当前未处于移动状态,则直接驱动风扇。这是真正端侧智能的雏形,响应延迟可控制在毫秒级。 ## 结语 MimiClaw 的真正价值,不在于它能让 ESP32 发出一条消息,而在于它提供了一个轻量、模块化、可离线的 AI Agent 开发底座。理解它的四层架构和启动流程,就相当于拿到了这个底座的“说明书”,从此可以尝试地添加传感器、执行器与大模型,而不会破坏系统原有的智能结构。 “迷你小龙虾”已经活了,它有了心跳、眼睛和手脚。接下来要做的,就是按照设想,逐步进行二次开发,一点一点教会它如何感知世界、如何自主行动。 ![]() 附录 MimiClaw 的架构与主程序概览相关参考资料 1、《【花雕动手做】全球首款 MCU 级 AI 智能体开盒:MimiClaw 架构全解析,把 “智能龙虾” 跑在 ESP32 上》 https://blog.csdn.net/weixin_41659040/article/details/159711424 2、《【花雕动手做】 AI 迷你小龙虾(MimiClaw)主程序:综合分析 + 深度解读 + 总体功能》 https://blog.csdn.net/weixin_41659040/article/details/159758142 3、《【花雕动手做】打破AI轻量化极限!MimiClaw:国产EP32S3 芯片上跑的纯C轻量AI Agent》 https://blog.csdn.net/weixin_41659040/article/details/152157480 4、《【花雕动手做】MimiClaw 嵌入式AI Agent系统架构剖析——基于FreeRTOS的多线程通信与外设协同机制》 https://blog.csdn.net/weixin_41659040/article/details/160352124 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed