登录

一套完整的NPU机器人视觉伺服系统——米尔RK3576

2026-06-26 11:14 来源:米尔电子

项目背景:随着嵌入式 AI 技术的快速发展,边缘计算设备的算力不断提升,使得在低功耗、低成本的嵌入式平台上部署深度学习模型成为可能。本项目基于瑞芯微 RK3576 芯片的 NPU(神经网络处理单元)加速能力,结合 YOLOv5 目标检测模型,实现了一套完整的机器人视觉伺服控制系统。本项目是一个学习实践项目,旨在深入理解以下技术:

 

目标类型

具体内容

核心功能

实现基于 YOLOv5 的实时目标检测,识别人脸、食物、学习用品等物体

运动控制

通过双轴舵机云台实现人脸跟踪和物品响应动作

人机交互

提供 Web 界面实时显示视频流和控制状态

 

应用场景

二、功能设计

2.1 系统功能概述

本系统实现了以下核心功能:

功能模块

功能描述

实现方式

视觉识别

80 类 COCO 目标检测,支持人脸、食物、学习用品识别

YOLOv5s + RKNN NPU 加速

人脸跟踪

检测到人脸时,舵机云台自动跟踪人脸位置

PID 控制 + 平滑滤波

物品响应

识别不同类别物品,执行对应动作序列

类别映射 + 动作队列

Web 界面

实时视频流、状态显示、手动控制

Flask + MJPEG 流

 

2.2 系统架构图

2.3 数据流程图

2.4 类别映射与动作响应

 

 

 

 

参数

数值

说明

输入尺寸

640×640

RGB 图像

骨干网络

CSPDarknet

跨阶段局部网络

检测头

3 层

P3/P4/P5 多尺度特征

类别数

80

COCO 数据集

 

三、硬件与电路说明

3.1 硬件清单

设备名称

型号规格

数量

主要参数

主控开发板

MYIR MYD-LR3576-32E4D-220-C

1

RK3576 SoC, 6 TOPS NPU, 4GB RAM

USB 摄像头

罗技 C270 / 兼容 UVC 摄像头

1

640×480@30fps, USB 2.0

舵机控制板

Arduino R4 Minima

1

ARM Cortex-M4, USB Type-C

舵机

SG90 / MG90S

2

180°, 扭矩 1.8kg/cm, PWM 控制

云台支架

双轴亚克力云台

1

适配 SG90 舵机

连接线缆

USB Type-C 数据线

2

供电 + 数据传输

杜邦线

公对母杜邦线

若干

舵机信号连接

 

3.2 硬件连接图

3.3 舵机接线详图

3.4 舵机参数配置

# config.py 中的舵机配置

SERVO_CONFIG = {

    "port": "/dev/ttyACM0",     # 串口设备

    "baudrate": 115200,         # 波特率

    "x_min": 65,                # X轴最小角度

    "x_max": 115,               # X轴最大角度

    "x_center": 90,             # X轴中心位置

    "y_min": 40,                # Y轴最小角度

    "y_max": 90,                # Y轴最大角度

    "y_center": 50,             # Y轴中心位置

    "dead_zone": 40,            # 死区像素值

    "gain_x": 0.08,             # X轴增益

    "gain_y": 0.10,             # Y轴增益

}

四、关键技术说明

4.1 AI 推理技术

4.1.1 YOLOv5 模型架构

本项目使用 YOLOv5s 模型,该模型具有以下特点:

参数

数值

说明

输入尺寸

640×640

RGB 图像

骨干网络

CSPDarknet

跨阶段局部网络

检测头

3 层

P3/P4/P5 多尺度特征

类别数

80

COCO 数据集

模型大小

7MB

RKNN INT8 量化后

 

4.1.2 RKNN 模型部署流程

4.1.3 NPU 推理代码关键实现

# detector.py 核心推理逻辑

class YOLODetector:

    def __init__(self, model_path, conf_threshold=0.5):

        self.rknn = RKNNLite()

        self.rknn.load_rknn(model_path)

        self.rknn.init_runtime()  # 初始化 NPU 运行时

   

    def detect(self, frame):

        # 1. 预处理:Resize + BGR2RGB + 归一化

        input_data = self.preprocess(frame)

       

        # 2. NPU 推理

        outputs = self.rknn.inference(inputs=[input_data])

       

        # 3. 后处理:anchor 解码 + NMS

        detections = self.postprocess(outputs, frame.shape)

        return detections

4.1.4 YOLOv5 后处理算法

YOLOv5 的输出需要通过 anchor 解码还原为实际坐标:

 

# 后处理关键代码

def postprocess(self, outputs, img_size):

    # YOLOv5 三层特征图对应的 anchors

    ANCHORS = [

        [10, 13, 16, 30, 33, 23],    # P3 (80×80)

        [30, 61, 62, 45, 59, 119],   # P4 (40×40)

        [116, 90, 156, 198, 373, 326] # P5 (20×20)

    ]

   

    for branch_idx, out in enumerate(outputs):

        stride = 640 / grid_size  # 8, 16, 32

       

        # Sigmoid 激活

        bx = sigmoid(raw_bx)

        by = sigmoid(raw_by)

        bw = sigmoid(raw_bw)

        bh = sigmoid(raw_bh)

       

        # Anchor 解码

        bx = (bx * 2.0 - 0.5 + grid_x) * stride

        by = (by * 2.0 - 0.5 + grid_y) * stride

        bw = (bw * 2.0) ** 2 * anchor_w

        bh = (bh * 2.0) ** 2 * anchor_h

4.2 控制算法

4.2.1 人脸跟踪控制策略

人脸跟踪控制流程          

目标位置 (target_x, target_y)

┌───────────────────┐

│   计算偏移量       │

│ offset_x = target_x - center_x (320)                               │

│ offset_y = target_y - center_y (240)                               │

└─────────┬─────────┘

         ↓

┌───────────────────┐

│   死区过滤        │     死区 = 40 像素

│ if |offset| < dead_zone: offset = 0                               │

└─────────┬─────────┘

         ↓

┌───────────────────┐

│   指数平滑滤波    │     α = 0.3~0.6 (根据置信度动态调整)

│ smooth_x = α * target_x + (1-α) * smooth_x                         │

└─────────┬─────────┘

         ↓

┌───────────────────┐

│   增益转换        │     gain_x = 0.08, gain_y = 0.10

│ angle_x = offset_x * gain_x                                        │

│ angle_y = offset_y * gain_y                                        │

└─────────┬─────────┘

         ↓

┌───────────────────┐

│   角度限幅        │     X: [-25°, +25°], Y: [-50°, +50°]

│ angle = clamp(angle, min, max)                                     │

└─────────┬─────────┘

         ↓

发送舵机指令

4.2.2 动态参数调整

# tracker.py 中的自适应控制

def _track_target(self, target, frame_shape):

    confidence = target.get("confidence", 0.5)

   

    # 根据检测置信度动态调整平滑系数

    if confidence > 0.7:

        alpha = 0.6   # 高置信度:响应更快

    elif confidence > 0.5:

        alpha = 0.4   # 中等置信度

    else:

        alpha = 0.25  # 低置信度:更平滑

   

    # 动态死区:置信度越高,死区越小

    dynamic_dead_zone = int(self.dead_zone * (1 - confidence * 0.5))

4.3 通信流程

4.3.1 串口通信协议

RK3576 与 Arduino 之间采用 JSON 格式的串口通信协议:

 

字段       类型       说明       示例

factory  string    命令类型 + 参数 "head_move 10 -5 3"

通信参数:

 

波特率:115200 bps

数据位:8 位

停止位:1 位

校验位:无

4.3.2 通信时序图

┌─────────────────────────────────────────────────────────────────────┐

│                        串口通信时序                                  │

└─────────────────────────────────────────────────────────────────────┘

 

   RK3576                                              Arduino

     │                                                    │

     │  {"factory": "head_move 10 -5 3"}\n               │

     │ ──────────────────────────────────────────────────→│

     │                                                    │

     │                                           解析JSON │

     │                                           执行PWM  │

     │                                                    │

     │                     (约 3-20ms 延迟)               │

     │←──────────────────────────────────────────────────│

     │                                                    │

4.3.3 舵机控制指令格式

# servo_controller.py 指令发送

def head_move(self, offset_x: int, offset_y: int, delay_ms: int = 3):

    command = {

        "factory": f"head_move {offset_x} {offset_y} {delay_ms}"

    }

    json_str = json.dumps(command) + "\n"

    self.serial.write(json_str.encode('utf-8'))

4.4 Web 服务架构

# Flask 路由定义

@app.route('/video_feed')

def video_feed():

    """MJPEG 视频流"""

    return Response(generate_frames(),

                   mimetype='multipart/x-mixed-replace; boundary=frame')

 

@app.route('/api/control', methods=['POST'])

def control():

    """舵机手动控制 API"""

    action = request.json.get('action')

    # 执行对应动作...

 

@app.route('/api/status')

def status():

    """系统状态查询"""

    return jsonify({

        'mode': tracker.status['mode'],

        'fps': tracker.fps,

        'servo_connected': servo.is_connected()

    })

五、调试过程与问题解决

5.1 主要问题及解决方案

问题 1:摄像头无法识别

现象:/dev/video0 不存在,或 OpenCV 无法打开摄像头

 

排查步骤:

# 1. 检查 USB 设备

lsusb

# 2. 查看视频设备

ls /dev/video*

v4l2-ctl --list-devices

 

# 3. 检查驱动

dmesg | grep -i video

解决方案:

# camera.py 中实现多索引尝试

camera_ids = [self.camera_id, 33, 0, 1, 2, 34, 35, 36, 37]

for cam_id in camera_ids:

    self.cap = cv2.VideoCapture(cam_id, cv2.CAP_V4L2)

    if self.cap.isOpened():

        break

问题 2:RKNN 模型加载失败

现象:rknn_init failed 或 load_rknn returns -1

 

原因:RKNN-Toolkit2 版本与固件中 RKNN Runtime 版本不匹配

 

解决方案:

检查 NPU 驱动版本:

cat /proc/driver/rknpu/version

确保 RKNN-Toolkit2 版本与之匹配:

pip install rknn-toolkit2==1.5.0  # 根据实际版本调整

问题 3:舵机抖动或不响应

现象:舵机频繁抖动、响应延迟大、或完全不动

排查:

# 检查串口

ls /dev/ttyACM*

sudo chmod 666 /dev/ttyACM0

# 测试串口通信

screen /dev/ttyACM0 115200

解决方案:

增加死区范围,过滤微小抖动

添加指数平滑滤波

检查供电是否充足(舵机需要 5V/500mA+)

问题 4:检测结果偏移/不准确

现象:检测框与实际目标位置有偏移

原因:图像镜像、坐标系不一致

解决方案:

 

# camera.py 中翻转图像

frame = cv2.flip(frame, 1)  # 水平翻转

5.2 性能优化记录

优化项

优化前

优化后

方法

推理帧率

10 FPS

25 FPS

降低输入分辨率 640→416

跟踪平滑度

抖动明显

平滑

添加指数平滑滤波

响应延迟

200ms

50ms

减少串口通信间隔

误检率

提高置信度阈值 0.5→0.55

优化项

优化前

优化后

方法

5.3 调试工具使用

# 1. 实时温度监控(避免过热降频)

watch -n 1 cat /sys/class/thermal/thermal_zone0/temp

# 2. NPU 利用率查看

cat /sys/kernel/debug/rknpu/load

# 3. 串口调试

screen /dev/ttyACM0 115200

# 4. 日志查看

tail -f /var/log/syslog | grep robot

六、项目亮点总结

6.1 技术亮点

6.2 创新点

多类别动作映射:将 80 类 COCO 目标映射为 4 大功能类别(人脸/食物/学习用品/其他),每类对应独特的动作序列,增加交互趣味性

动态参数调整:

置信度越高,响应越快(α 从 0.25 到 0.6)

置信度越高,死区越小(提高灵敏度)

Web 实时监控:通过 Flask + MJPEG 流实现实时视频监控和远程控制,方便调试和演示

 

6.3 学习收获

通过本项目,深入掌握了以下技术:

嵌入式 AI 部署:从 PyTorch 模型到 RKNN 量化部署的完整流程

NPU 编程:RKNN-Toolkit2 的使用、模型优化技巧

视觉伺服控制:PID 控制、平滑滤波、死区处理等控制理论的实践

嵌入式 Linux 开发:设备驱动、串口通信、多线程编程

系统集成:多模块协同工作、异常处理、性能调优

6.4 后续改进方向

七、未来愿景:基于 OpenClaw 的自主思考智能家居系统

状态:规划中

预期目标:打造一个能够自主思考、主动服务、持续学习的真正智能家居伴侣

 

7.1 愿景概述

当前系统的局限性

目前的视觉伺服系统虽然实现了目标检测和简单响应,但本质上仍是一个"刺激-反应"式的被动系统:

 

┌─────────────────────────────────────────────────────────────────────┐

│                    当前系统:被动响应模式                            │

└─────────────────────────────────────────────────────────────────────┘

 

    检测到人脸 ──→ 跟踪人脸(固定行为)

    检测到食物 ──→ 点头(固定行为)

    检测到书本 ──→ 摇头(固定行为)

   

    问题:

    - 无法理解场景语义(为什么要点头?用户想要什么?)

    - 无法主动发起交互(只能被动响应)

    - 无法学习用户偏好(每次都是相同反应)

    - 无法进行多轮对话(没有记忆和推理能力)

终极愿景:自主思考的智能伴侣

我希望通过集成 OpenClaw 开源 AI 代理框架,将这个简单的视觉机器人升级为一个能够自主思考、理解意图、主动服务的真正智能家居伴侣:

 

┌─────────────────────────────────────────────────────────────────────┐

│                 未来系统:自主思考模式                               │

└─────────────────────────────────────────────────────────────────────┘

 

    场景:用户拿着一本书走进房间

   

    当前系统:检测到书 → 摇头(无意义)

   

    未来系统(OpenClaw 驱动):

    ┌─────────────────────────────────────────────────────────────┐

    │ 1. 感知层:检测到用户手持书籍                                │

    │ 2. 记忆层:回忆"用户最近在准备考试,经常晚上学习"            │

    │ 3. 推理层:判断"用户可能要开始学习了"                        │

    │ 4. 决策层:主动询问"要我帮你调暗灯光、播放白噪音吗?"        │

    │ 5. 学习层:记录用户反馈,优化下次建议                        │

    └─────────────────────────────────────────────────────────────┘

7.2 OpenClaw 简介

OpenClaw 是一个开源的本地 AI 代理框架,具有以下核心特性:

 

特性

说明

对本项目的价值

本地运行

完全在设备端运行,无需云端依赖

保护隐私,低延迟响应

持久记忆

具有长期记忆能力,记住用户偏好和历史交互

个性化服务,越用越懂你

自主决策

能够自主规划和执行复杂任务

主动服务,无需命令

多模态集成

支持连接多种应用和设备

智能家居中枢控制

开源社区

GitHub 150,000+ Stars,活跃的开发者社区

持续迭代,丰富的扩展

7.3 系统架构设想

7.4 核心能力规划

7.4.1 自主感知与理解

不再是简单的目标检测,而是场景语义理解:

感知维度

当前能力

未来能力

视觉

检测物体类别和位置

理解场景语义(用户在做什么、心情如何)

时间

感知时间上下文(早晨/深夜/工作日/周末)

历史

结合历史行为预测意图

环境

感知温度、光照、噪音等环境因素

 

# 未来的场景理解示例

class SceneUnderstanding:

    def analyze(self, visual_input, time_context, user_history):

        """

        输入:视觉检测结果 + 时间 + 用户历史

        输出:场景语义理解

        """

        # 示例推理过程

        # visual: 检测到用户 + 书籍 + 台灯亮着

        # time: 晚上 10:30

        # history: 用户最近一周每晚都在学习

       

        return {

            "scene": "夜间学习",

            "user_state": "专注但可能疲劳",

            "suggested_actions": [

                "30分钟后提醒休息",

                "调整灯光至护眼模式",

                "播放轻柔白噪音"

            ],

            "confidence": 0.85

        }

7.4.2 持久记忆与个性化

通过 OpenClaw 的记忆模块,实现越用越懂你:

7.4.3 主动服务与预测

从"等待命令"到"主动关怀":

场景

被动模式(当前)

主动模式(未来)

用户回家

无反应

"欢迎回家!今天气温下降了,要我开暖气吗?"

深夜工作

无反应

"已经11点了,要不要我帮你设置30分钟后的休息提醒?"

用户生日

无反应

"生日快乐!我准备了一个小惊喜,要看看吗?"

快递到达

无反应

"刚才有快递送到门口,是你等的那本书吗?"

 

7.4.4 自然对话与情感交互

不再是冷冰冰的机器,而是有"温度"的伴侣:

 

┌─────────────────────────────────────────────────────────────────────┐

│                     对话能力对比                                     │

└─────────────────────────────────────────────────────────────────────┘

 

当前系统(无对话能力):

    用户:[拿起书]

    系统:[摇头] (用户困惑:为什么摇头?)

 

未来系统(OpenClaw 驱动):

    用户:[拿起书]

    系统:看到你拿起了《深度学习》,最近在学 AI 吗?

    用户:是啊,在准备面试

    系统:加油!需要我帮你计时做番茄钟吗?25分钟学习+5分钟休息

    用户:好啊

    系统:好的,我会在25分钟后提醒你休息。学习愉快!

          [调暗灯光,播放白噪音]

7.5 实现路线图

┌─────────────────────────────────────────────────────────────────────┐

│                        实现路线图                                    │

└─────────────────────────────────────────────────────────────────────┘

 

Phase 1: 基础集成

├── 在 米尔RK3576 开发板上部署 OpenClaw 本地代理

├── 实现视觉模块与 OpenClaw 的数据对接

├── 添加基础语音输入/输出(Whisper + TTS)

└── 验证基本的感知-理解-响应流程

 

Phase 2: 记忆与个性化

├── 实现用户偏好学习模块

├── 构建情景记忆数据库

├── 开发个性化推荐算法

└── 添加多用户识别与切换

 

Phase 3: 主动服务

├── 实现时间感知与日程理解

├── 开发主动提醒与建议系统

├── 集成更多智能家居设备

└── 添加情感分析与关怀对话

 

Phase 4: 生态扩展

├── 接入 Discord/微信等社交平台

├── 支持多设备协同(手机、平板、PC)

├── 开发技能商店,支持社区扩展

└── 探索与其他 AI Agent 的协作

7.6 技术挑战与解决思路

挑战

难点

解决思路

算力限制

RK3576 运行大语言模型有压力

采用小模型(Qwen-1.8B/Phi-2)+ 云端 Hybrid 方案

隐私保护

家庭场景对隐私要求高

核心推理本地化,敏感数据不上云

响应延迟

LLM 推理较慢

预测常见场景,预生成响应;异步处理

误触发

主动服务可能打扰用户

学习用户反馈,动态调整触发阈值

多模态融合

视觉+语音+环境信息整合

统一的场景表示层,多模态 Transformer

 

7.7 OpenClaw 配置实践与踩坑记录

状态:进行中

环境:米尔RK3576 开发板 (4GB RAM)

目标:在边缘设备上部署 OpenClaw + 大语言模型

 

在实际尝试将 OpenClaw 部署到 米尔RK3576 的过程中,遇到了以下问题,记录在此供后续参考。

 

7.7.1 本地大模型内存溢出(OOM)

问题描述:

尝试在 米尔RK3576开发板上运行本地大语言模型时,系统内存不足导致进程崩溃。

问题现象:

# 启动本地模型后

$ python run_local_llm.py

Loading model...

Killed    # 进程被 OOM Killer 终止

# 查看系统日志

$ dmesg | tail

[xxx] Out of memory: Killed process xxx (python)

原因分析:

RK3576 开发板仅有 4GB 运行内存

即使是小型 LLM(如 Qwen-1.8B)也需要约 3-4GB 内存

加上系统开销、视觉推理占用,内存严重不足

尝试的解决方案:

 

方案

效果

说明

增加 Swap 分区

部分缓解

sudo fallocate -l 4G /swapfile 但速度很慢

使用更小的模型

有限

TinyLlama-1.1B 勉强能跑,但效果差

模型量化 (INT4)

有帮助

内存占用降低,但推理质量下降

云端 API 方案

推荐

改用 DeepSeek API,本地只做调用

 

7.7.2 OpenClaw 模型对话功能失效

问题描述:

OpenClaw 启动后,模型无法进行正常对话,API 调用无响应。

问题现象:

$ openclaw chat "你好"

Error: Model not responding

# 或者长时间无输出

原因分析:

OpenClaw Gateway 配置未正确设置

端口冲突(默认端口被其他服务占用)

模型参数配置错误

解决方案:

# 1. 检查端口占用

$ netstat -tlnp | grep 8080

$ lsof -i :8080

# 2. 配置 OpenClaw Gateway

$ openclaw config set gateway.port 8081  # 更换端口

$ openclaw config set model.provider "deepseek"

$ openclaw config set model.api_key "your-api-key"

# 3. 重启服务

$ openclaw restart

配置文件示例 (~/.openclaw/config.yaml):

gateway:

  host: "0.0.0.0"

  port: 8081

model:

  provider: "deepseek"        # 使用 DeepSeek API

  api_key: "${DEEPSEEK_API_KEY}"

  model_name: "deepseek-chat"

  temperature: 0.7

  max_tokens: 2048

7.7.3 Web 界面访问问题

问题描述:

启动 OpenClaw 后,无法访问官方 Web 管理界面。

混淆点:

用户自己开发的 Flask 视觉系统 Web 界面(端口 8888)

OpenClaw 官方 Dashboard 界面(需单独启动)

解决方案:

# 启动 OpenClaw 官方 Dashboard

$ openclaw dashboard

# 或指定端口

$ openclaw dashboard --port 3000

# 访问地址

# http://<开发板IP>:3000

注意:OpenClaw 核心服务和 Dashboard 是分开的,需要分别启动。

 

7.7.4 DeepSeek API 配置问题

问题描述:

配置 DeepSeek API 作为 OpenClaw 的后端模型时,遇到认证和接口兼容问题。

 

待解决的配置步骤:

 

# 1. 获取 DeepSeek API Key

# 访问 https://platform.deepseek.com 注册获取

# 2. 设置环境变量

export DEEPSEEK_API_KEY="sk-xxxxxxxxxxxxxxxx"

# 3. 配置 OpenClaw 使用 DeepSeek

$ openclaw config set model.provider "openai-compatible"

$ openclaw config set model.base_url "https://api.deepseek.com/v1"

$ openclaw config set model.api_key "$DEEPSEEK_API_KEY"

$ openclaw config set model.model_name "deepseek-chat"

# 4. 测试连接

$ openclaw test-model

环境变量持久化(解决重启后失效问题):

# 方法1:写入 .bashrc

echo 'export DEEPSEEK_API_KEY="sk-xxx"' >> ~/.bashrc

source ~/.bashrc

# 方法2:写入 OpenClaw 配置文件(推荐)

# 直接在 ~/.openclaw/config.yaml 中写入 api_key

# 方法3:使用 systemd 服务环境变量

# /etc/systemd/system/openclaw.service

[Service]

Environment="DEEPSEEK_API_KEY=sk-xxx"

7.7.5 Discord 集成配置

问题描述:

希望通过 Discord 远程控制机器人,但配对流程尚未完成。

计划步骤:

# 1. 创建 Discord Bot

# 访问 https://discord.com/developers/applications

# 创建 Application → 添加 Bot → 获取 Token

 

# 2. 配置 OpenClaw Discord 连接

$ openclaw config set discord.enabled true

$ openclaw config set discord.token "YOUR_DISCORD_BOT_TOKEN"

# 3. 启动 Discord 服务

$ openclaw discord start

# 4. 在 Discord 服务器中邀请 Bot

# 使用 OAuth2 URL Generator 生成邀请链接

待完成事项:

[ ] 注册 Discord 开发者账号

[ ] 创建 Bot 并获取 Token

[ ] 配置 OpenClaw Discord 模块

[ ] 测试远程指令下发

7.7.6 问题总结与下一步计划

已解决:

[x] 确认本地大模型方案不可行(内存限制)

[x] 明确采用云端 API 方案

[x] 了解 OpenClaw 配置结构

进行中:

[ ] DeepSeek API 正确配置与测试

[ ] 环境变量持久化方案落地

[ ] OpenClaw 与视觉系统的数据对接

待开始:

 

[ ] Discord 远程控制配对

[ ] 语音输入模块集成(Whisper)

[ ] 完整的感知-理解-响应流程测试

经验教训:

边缘设备算力有限:不要期望在 4GB 内存的开发板上流畅运行 LLM,云端 API 是更现实的选择

配置文档很重要:OpenClaw 文档分散,建议先通读官方 Wiki 再动手

分步调试:先确保 API 能通,再集成到系统中,不要一步到位

 

7.8 我的期待

这个项目从一个简单的"检测-响应"系统开始,但我的心愿是将它打造成一个真正能理解我、陪伴我、帮助我的智能伴侣。

我希望有一天,当我疲惫地回到家时:

它能看出我的疲惫,主动调暗灯光、放起轻柔的音乐

它能记住我喜欢什么、不喜欢什么,而不是每次都问同样的问题

它能在我忘记事情时提醒我,在我需要时陪伴我

它不再是一个冷冰冰的机器,而是一个有"温度"的家庭成员

这不仅仅是一个技术项目,更是我对未来智能生活的一份期待和探索。

通过 OpenClaw 这样的开源 AI 代理框架,我相信这个愿景是可以实现的。即使现在的版本还很简陋,但每一行代码、每一次调试,都是向着这个目标前进的一步。

编辑精选