项目总结博客:基于 OpenClaw 的情绪互动机器人系统 —— Milk-V Duo S 执行层开发总结
本次对所有工作做一个总结

一、项目背景
本项目旨在构建一套基于大语言模型(LLM)的情绪互动机器人系统。
系统整体架构分为:
-
Web交互层
-
OpenClaw智能分析层
-
Webhook消息中转层
-
Milk-V Duo S执行层
-
人形机器人执行层
用户通过网页输入情绪文本或故事内容后,系统利用 OpenClaw 对内容进行情绪理解与行为规划,生成对应的动作序列,并通过云端接口下发至机器人,由机器人完成动作与语音反馈。
在本项目中,我主要负责 Milk-V Duo S 执行层的设计与开发。
二、执行层总体职责
Milk-V Duo S 位于整个系统的最下层,是连接云端智能分析结果与机器人硬件执行机构的关键桥梁。
其主要职责包括:
-
获取云端动作指令
-
解析 JSON 数据
-
动作序列调度
-
舵机控制
-
音频播放控制
-
状态管理
-
ACK确认反馈
-
异常恢复
整体执行流程如下:
用户输入情绪
↓
OpenClaw分析
↓
Webhook生成动作序列
↓
Milk-V Duo S轮询获取
↓
动作调度执行
↓
串口控制舵机
↓
反馈ACK
↓
等待下一条任务
三、嵌入式平台搭建
项目初期首先完成 Milk-V Duo S 的开发环境建设。
主要工作包括:
系统烧录
完成 TF 卡镜像烧录。
Python 环境部署
配置:
-
Python 3.12
-
pip
-
requests
-
pyserial
等运行环境。
网络配置
完成:
-
USB RNDIS 网络
-
SSH远程登录
-
云服务器访问
配置。
实现 Windows 远程开发。
四、机器人底层控制开发
串口通信研究
阅读舵机控制板协议文档。
确定控制指令格式:
PL0 SQ1 SM100 ONCE
含义:
-
PL0:动作播放
-
SQ1:动作组编号
-
SM100:速度
-
ONCE:执行一次
pyserial驱动开发
完成:
RobotController
控制类设计。
实现:
-
send_cmd()
-
run_action()
-
stop()
等接口。
实现 Python 对机器人动作组的直接调用。
动作时间标定
逐个测试动作组执行时间。
建立动作映射表:
ACTION_DURATION
用于动作调度系统。
例如:
动作1 → 12秒
动作6 → 72秒
动作13 → 23秒
动作14 → 38秒
提高连续动作执行的准确性。
五、动作调度系统设计
为了让机器人能够执行连续动作序列,我设计了动作调度模块。
例如:
[11,13,10,12,7,0]
系统自动解析为:
前进招手
↓
下蹲保护
↓
后退
↓
鞠躬感谢
↓
金鸡独立
↓
站立
核心实现包括:
动作序列解析
自动解析服务器返回的 JSON 数据。
动作时间管理
根据动作时长自动等待。
动作队列执行
保证动作顺序执行。
连续动作调度
支持复杂动作链运行。
实现机器人从单动作控制升级为序列化行为控制。
六、云端通信系统开发
为了连接 OpenClaw 云端能力,我完成了执行层与 Webhook 服务的联调。
HTTP轮询机制
每2秒主动访问:
GET /poll/{client_id}
获取动作序列。
优点:
-
穿透 NAT
-
无需公网 IP
-
部署简单
JSON解析
自动解析:
{
"action_sequence":[1,6,0],
"command_id":"cmd_xxx"
}
转换为动作执行任务。
ACK确认机制
执行完成后:
POST /ack/{client_id}
通知服务器。
避免重复执行。
形成完整闭环。
七、状态机设计
为了提高系统可靠性,我进一步引入机器人状态机。
定义如下状态:
IDLE
POLLING
RECEIVED
VALIDATING
RUNNING
ACKING
ERROR
RECOVERING
状态机实现了:
-
生命周期管理
-
状态切换控制
-
异常处理流程
使机器人系统从简单脚本升级为工程化执行系统。
八、安全与可靠性设计
针对机器人实际运行过程中的风险,我设计了安全机制。
包括:
动作合法性检查
非法动作直接拒绝执行。
执行锁机制
防止动作冲突。
网络超时检测
自动处理连接异常。
ACK重试机制
保证消息可靠送达。
自动恢复机制
异常后返回安全状态。
提高系统稳定性。
九、新动作组开发
项目后期新增复杂动作组:
11 前进招手
12 鞠躬感谢
13 下蹲保护
14 复杂情绪动作
相比原有动作:
实现:
-
手脚协同
-
重心变化
-
连续姿态切换
增强机器人表现力。
十、项目成果与收获
经过多个阶段的设计、开发与联调,最终完成了机器人执行层的整体架构设计与实现,主要成果包括:
嵌入式平台建设
✓ Milk-V Duo S 系统烧录与部署
✓ Python 运行环境配置
✓ SSH 远程开发环境搭建
✓ 网络通信环境配置
机器人底层控制
✓ 串口通信协议研究与实现
✓ pyserial 驱动开发
✓ 舵机控制板指令封装
✓ 动作组调用机制实现
✓ 动作时长标定与管理
动作调度系统
✓ 动作序列解析
✓ 动作时间管理
✓ 动作队列执行
✓ 连续动作调度
✓ 复杂动作链执行
云端通信系统
✓ OpenClaw 与机器人联动
✓ HTTP轮询客户端开发
✓ JSON数据解析
✓ ACK确认反馈机制
✓ Webhook接口联调
状态机与可靠性设计
✓ 机器人生命周期管理
✓ IDLE/POLLING/RUNNING等状态设计
✓ 网络异常检测
✓ ACK重试机制
✓ 自动恢复机制
✓ 离线保护机制
动作安全机制
✓ 动作合法性检查
✓ 执行锁设计
✓ 异常恢复机制
✓ 自动回正策略
✓ 风险动作隔离
动作库设计与扩展
✓ 原有动作组调试与优化
✓ 新动作组开发与测试
✓ 前进招手动作(11)
✓ 鞠躬感谢动作(12)
✓ 下蹲保护动作(13)
✓ 复杂情绪动作(14)
✓ 手脚协同动作设计
音频与多模态交互
✓ 音频播放框架设计
✓ 动作与语音同步机制设计
✓ 情绪驱动行为表达框架
软件架构设计
✓ 配置层(Config)
✓ 通信层(Communication)
✓ 控制层(Controller)
✓ 调度层(Scheduler)
✓ 安全层(Safety)
✓ 工具层(Utils)
实现模块化、可维护、可扩展的软件架构。
在本项目中,我不仅掌握了嵌入式 Linux 开发、串口通信和网络通信技术,也深入理解了机器人执行系统的设计思想。
未来还可以进一步扩展:
-
MQTT实时通信
-
WebSocket长连接
-
动作自动生成
-
情绪强度映射
-
多机器人协同
持续提升机器人智能交互能力。
总结
Milk-V Duo S 在本项目中不仅仅是一个控制板,而是连接人工智能与实体机器人的核心执行节点。
它负责将云端大模型产生的情绪理解结果转化为真实世界中的动作与反馈,使机器人真正具备了“理解情绪、表达情绪”的能力。
从环境搭建到系统架构设计,从动作控制到可靠通信,我完整参与并完成了机器人执行层的设计与开发工作,为整个情绪互动机器人系统的落地提供了关键支撑。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)