1 概述
1.1 项目背景
当前家庭智能设备普遍为独立单品:扫地机器人、网络摄像头、语音音箱、各类环境传感器之间数据隔离,仅能完成单一功能,无法理解用户复杂自然语言指令并协同完成复合家庭任务。 随着大模型、具身智能、ROS2 机器人框架的发展,构建一体化家庭管家机器人集群。系统融合全屋固定传感器阵列、固定相机与搭载激光雷达的移动机器人,采用多角色认知架构,大模型负责高层自然语言理解与任务规划;底层运动、感知、安全逻辑由确定性程序实现,Qt 上位机提供可视化管理。用户通过自然语言下发指令,系统自动拆解、调度机器人与感知设备协同完成巡检、安防、家务搬运、环境监测等任务。
1.2 设计目标
- 一体化感知:融合可见光相机、红外热成像、温湿度、燃气、烟雾、水浸、振动、PM2.5 等多类型传感器,实现多源数据融合,降低误告警。
- 认知任务处理:基于大模型完成对话交互、复杂任务拆解;环境异常判定、动作安全校验采用确定性规则引擎,保证安全可控。
- 机器人集群执行:支持单机 / 多机器人协同,具备自主导航、巡检、地面清扫能力;物品抓取搬运为高阶演示能力。
- 智能家居联动:统一控制灯光、窗帘、电磁阀、新风机等智能硬件,支持场景联动策略。
- 可视化运维:Qt 上位机实现机器人状态监控、地图展示、任务日志、传感器曲线;配套手机 APP 远程查看与告警推送。
- 安全可靠:独立安全规则层、动作权限管理、禁区限制、隐私开关;高层认知模块不直接下发底层运动指令,保证机器人运动安全。
1.3 硬件总体组成
- 移动管家机器人
- 主控:Jetson Orin NX 嵌入式工控板
- 感知:激光雷达、RGB 移动相机、机载温湿度传感器、超声波传感器、IMU + 里程计、碰撞传感器;可选机载红外热成像
- 执行:行走底盘、清扫模组、抓取机械臂、充电对接模块
- 全屋固定感知阵列(部署厨房、客厅、卫生间、门口)
- 固定 RGB 相机、红外热成像、PIR 人体红外传感器、振动传感器
- 温湿度、PM2.5、TVOC、光照、噪声传感器
- 可燃气体(甲烷)、CO 一氧化碳、烟雾传感器、水浸传感器
- 智能家居执行单元:智能灯光、窗帘、燃气切断电磁阀、新风机、加湿器、除湿机
- 上位机与终端:Qt 管理面板、手机 APP、语音拾音与扬声器模块
- 网络:局域网 MQTT 消息总线,HTTP 接入互联网获取天气预报 API
2 总体系统架构 & 完整技术栈清单
分层架构:硬件感知执行层 → ROS2 驱动 & 技能抽象层 → 认知服务层 → 应用终端层
2.1 硬件感知执行层
硬件采集与底层驱动,以 C/C++ 开发为主
- 传感器底层驱动:libgpiod、wiringPi;通信接口 I2C/SPI/UART/RS485
- 摄像头采集:V4L2、GStreamer;红外热成像驱动:libseek/libflir
- 底盘电机控制:PID 控制,pigpio;IMU 选用 MPU6050/BNO055,配合编码器采集里程信息
- 板载外设总线:I2C(环境传感器)、SPI(激光雷达)、UART(电机控制器)
2.2 ROS2 驱动与技能抽象层
运行环境:Ubuntu22.04 + ROS2 Humble
- ROS2 基础开发包
- rclcpp:C++ 编写机器人驱动与业务节点;rclpy:Python 实现感知推理、业务逻辑节点
- Nav2:SLAM 建图、全局 / 局部路径规划、代价地图管理;slam_toolbox 用于室内二维建图
- MoveIt2:机械臂运动规划、抓取路径规划(高阶演示模块)
- ros2_control:底盘、机械臂硬件控制器
- 视觉感知推理
- YOLOv11,INT8 量化,ONNXRuntime 完成推理;用于人、宠物、物品、跌倒、明火、包裹检测
- OpenCV:图像预处理;PaddleOCR:表计文字、快递面单识别
- cv_bridge:ROS 图像消息与 OpenCV 图像格式转换
- ROS2 消息通信模型
- Topic:传感器数据流、图像流、机器人实时状态
- Service:同步调用,如拍照、查询设备状态
- Action:长时任务,导航、清扫、机械臂抓取
- 标准化技能服务封装:巡检、拍照、导航、抓取搬运、清扫、智能家居设备控制。上层认知模块仅允许调用标准化技能接口,禁止直接发布底盘速度指令。
2.3 认知服务层
单 LLM 基座,通过 Prompt 实现角色区分,不启动多套独立大模型推理进程(和上一篇的有出入);环境感知融合、安全校验使用确定性规则引擎,不依赖大模型
- LLM 推理引擎
- llama.cpp/ Ollama 本地边缘推理;基座选用 Qwen/Llama3
- 模块划分
- 交互模块(LLM 驱动)ASR:Whisper.cpp;TTS:Piper;完成语音唤醒、ASR 转文字、对话上下文管理;区分闲聊问答与任务指令;使用 pydantic 输出结构化任务 JSON,下发给任务规划模块。
- 任务规划模块(LLM 驱动)使用 transitions 状态机管理任务生命周期;接收结构化任务,拆分为串行 / 并行子任务;查询家庭记忆获取地图、机器人状态;分配任务资源;监听任务执行状态,支持失败重试;收到紧急告警时提升任务优先级,抢占当前普通任务。
- 感知融合服务(确定性规则)numpy、pandas 完成时序数据滑动窗口滤波、时间对齐;多源证据联合判定异常事件,过滤传感器噪声;从时序数据库读取历史数据;HTTP 客户端拉取天气 API 数据,生成环境提醒;输出标准化事件(温湿度异常、燃气泄漏、漏水、闯入等)。
- 安全规则引擎(确定性规则)PyRuleEngine 实现规则管理;负责权限校验、禁区校验、动作黑白名单;开门、燃气切断等高风险动作触发人工确认;危险物品搬运指令直接拦截;独立于业务逻辑,作为系统安全守门。
- 家庭记忆服务持久化存储 SLAM 地图、物品位置、成员权限、任务日志、告警记录;轻量 RAG 基于 Chroma 向量库;为其他模块提供读写查询能力。
- 模块间通信:ROS2 Service / Topic,消息载体为 JSON
2.4 中间件
- MQTT Broker:Mosquitto 用于固定传感器网关、智能家居设备、Qt 上位机、手机 APP 跨设备通信
- 时序存储:嵌入式端采用 SQLite 环形缓存存储传感器时序数据;上位机部署 InfluxDB 2.x 用于离线数据分析
- 关系数据库:SQLite,存储任务日志、告警记录、用户权限配置
- 向量数据库:Chroma,轻量本地 RAG
2.5 应用终端层
- Qt 上位机 Qt5.12/Qt6,C++ 开发;Qt Charts/QCustomPlot 绘制传感器时序曲线;Mosquitto 对接 MQTT;rclcpp 与 ROS2 节点通信;实现地图可视化、任务管理、告警面板
- 移动端 APP Flutter 跨平台 Android/iOS;MQTT 客户端;图片预览、告警推送、指令下发、历史记录查询
- 语音终端:拾音麦克风 + 扬声器
3 各功能模块技术栈落地
模块 1:自然语言对话陪伴
Whisper.cpp (ASR)、Piper (TTS)、Ollama/llama.cpp 本地 LLM、pydantic 结构化输出;会话上下文管理,区分闲聊问答和任务指令。简单预设场景(一键布防、全屋清扫)直接调用状态机,绕过 LLM,降低延迟。
模块 2:全屋环境巡检 & 安全监测
libgpiod 传感器采集;ROS2 sensor_msgs 上报原始数据;OpenCV 拍照;ONNXRuntime YOLO 识别明火;numpy 滑动窗口多源融合;SQLite 本地时序缓存;MQTT 推送告警消息。
模块 3:看家护院安防告警
YOLOv11 ONNX 推理识别人、宠物、陌生人;OpenCV 图像抓拍;ROS 图像话题传输;PIR 人体红外、门窗振动传感器 GPIO 采集;MQTT 推送告警快照至终端。
模块 4:门禁访客管理
YOLO 人脸识别;GStreamer 视频流;MQTT 音视频透传;SQLite 存储开门日志;开门动作提交安全规则引擎校验,触发用户二次确认。
模块 5:小件物品搬运递送
MoveIt2 机械臂运动规划;YOLO 物品检测;深度相机获取物体尺寸;ROS2 Action 执行抓取任务;安全规则引擎校验物品风险等级。
模块 6:快递取件辅助
YOLO 包裹识别;OpenCV+PaddleOCR 识别面单文字;ROS2 导航 + 抓取技能;MQTT 推送通知。
模块 7:家务清扫
ros2_control 底盘控制;Nav2 区域覆盖路径规划;YOLO 识别地面污渍,生成重点清扫区域;电池电压 ROS 节点采集,低电量自动回充。
模块 8:家庭事务管理(水电燃气账单)
OpenCV + PaddleOCR 识别表计读数;SQLite 时序存储;到缴费周期自动生成提醒,MQTT 推送通知。
模块 9:儿童作业辅导
PaddleOCR 识别题目文本;本地 LLM 解题;YOLO 视觉坐姿检测;交互模块语音对话反馈。
模块 10:智能家居联动
Mosquitto MQTT 网关;ROS2 封装设备控制 Service;支持单点设备控制和场景联动,燃气告警自动关闭燃气电磁阀。
模块 11:多机器人集群协同(高阶)
ROS2 Multi-Robot;nav2_map_server 共享全局地图;ROS2 Topic 广播障碍物信息;任务规划模块做负载均衡与任务接力。
4 通信技术栈汇总
- ROS 内部:rclcpp/rclpy,Topic / Service / Action
- 固定传感器 ↔ 网关:I2C/SPI/UART → MQTT
- 跨系统(Qt/APP/ 智能家居):Mosquitto MQTT
- 认知模块内部通信:ROS2 Service
- 外部天气 API:HTTP Client(requests)
5 部署环境
- 机器人端:Ubuntu 22.04 + ROS2 Humble,Jetson Orin NX
- 认知服务端:Ubuntu22.04 边缘工控机,可独立部署,也可与机器人共硬件
- Qt 上位机:Windows / Linux(Qt5.12/Qt6)
- 数据库:SQLite(嵌入式主力)、InfluxDB2.x(上位机分析)、Chroma 向量库
- 可选容器:Docker 打包认知服务、MQTT、数据库,方便部署迁移
6 Python 依赖清单
numpy pandas requests pydantic transitions ollama llama-cpp-python whisper-cpp-pybind piper-tts opencv-python onnxruntime paddleocr influxdb-client chromadb paho-mqttC++ 依赖:rclcpp rclpy nav2 moveit2 ros2_control opencv cv_bridge onnxruntime libgpiod mosquitto
7 安全设计技术栈
- 权限管理:SQLite 存储角色权限;PyRuleEngine 规则引擎执行校验逻辑
- 隐私控制:V4L2 相机硬件开关控制;视频本地存储,默认不上公网
- 动作隔离:ROS2 Skill 服务作为机器人动作唯一入口;认知模块禁止直接发布
/cmd_vel - 网络:局域网 MQTT 优先;外网访问增加 Token 鉴权
8 分阶段开发计划
阶段 1:MVP 最小可用版本(单机器人)
ROS2 Humble + slam_toolbox + Nav2;GPIO 传感器采集;Whisper+LLM 简易交互;Qt 基础面板;SQLite 日志;基础巡检、语音指令。
阶段 2:功能迭代版本
YOLO INT8 推理;MoveIt2 抓取;PaddleOCR 抄表;Mosquitto 智能家居联动;感知融合逻辑;SQLite 时序存储;安防告警。
阶段 3:高阶集群版本
完整 LLM 任务规划;多机器人 ROS2 集群;Chroma RAG;集群负载均衡、任务接力。
9 关键技术难点 & 解决方案
- LLM 高层决策与 ROS 底层实时性冲突 LLM 输出结构化任务 JSON,调用 ROS Action/Service;LLM 不参与运动闭环;导航、避障实时逻辑完全交给 Nav2+ros2_control。
- 传感器误报问题 采用 numpy 时序滑动窗口,感知融合服务做多证据联合判定,单一传感器触发仅标记事件,多条证据同时满足才生成告警。
- 家庭环境动态障碍物 Nav2 代价地图 + YOLO 动态目标检测 + 超声波近距离补盲。
- 多机器人地图共享与路径冲突 nav2_map_server 提供全局共享地图,机器人之间广播局部障碍物 Topic,增加冲突避让策略。
10 总结与展望
本方案基于 ROS2 Humble + 本地 LLM 架构,分层解耦,将感知、安防、家务、巡检能力整合。大模型负责自然语言理解与复杂任务规划;安全校验、异常判定采用确定性规则保证稳定可靠。整套方案适合原型与项目验证,可分阶段迭代开发,核心组件支持本地边缘部署,减少对公网依赖。 后续可扩展方向:Qt3D 数字孪生界面、接入更多第三方智能硬件。