项目实物照片
一、项目背景
从智能小车到家庭机器人,关键差异不只是“能不能动”,而是能否在真实室内环境中稳定感知、定位、规划、避障,并与人自然交互。PiCarHome 项目正是在前期两个小车方向的基础上继续演进。
PiCar Mini 2WD
聚焦超低成本教学与创客验证,用 ESP32-C3、MicroPython、超声波、按键和 LED 快速完成入门级小车控制。
MiniClaw
聚焦高性能运动底盘实验,通过 DDSM400 直驱轮毂电机、LIN 总线、里程反馈和 Web 控制验证更强的运动控制能力。
PiCarHome
面向家庭机器人完整系统,把底盘、电源、雷达、IMU、里程计、ROS2、SLAM、Nav2、Web 前端和语音交互串成可运行平台。
二、项目目标
- 稳定可控的移动底盘:基于 ESP32-S3 + 驱动板实现双轮差速、编码器读取、PID 调速与串口控制。
- 可靠的室内定位与建图:融合 N10 激光雷达、IMU 和轮速里程计,完成 2D SLAM 建图与位姿估计。
- 可用的自主导航:集成 Nav2,实现点击目标点、路径规划、避障与速度平滑控制。
- 友好的远程操作界面:通过 Web 页面查看地图、雷达、小车状态,并支持方向键遥控与点击导航。
- 多车可复制部署:通过主机名与 ROS_DOMAIN_ID 区分多台 PiCarHome,支持教学分组、设备克隆和现场交付。
- 面向家庭机器人的扩展能力:预留摄像头、实时语音、VLM 视觉理解、老人看护、儿童陪伴等上层智能应用接口。
三、系统架构
PiCarHome 采用“树莓派上层智能 + ESP32 底层实时控制”的分层架构。Raspberry Pi 5 运行 Ubuntu 24.04 与 ROS2 Jazzy,负责传感器接入、SLAM、导航、Web 服务和智能应用;ESP32-S3 负责电机控制、编码器读取与底层安全逻辑。
┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ Web 控制台 / 实时语音 App / 后续移动端或家庭大屏 │
│ ├── 地图与雷达可视化 │
│ ├── 方向键遥控与急停 │
│ └── 点击目标点导航 / 语音指令扩展 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ ROS2 机器人中间层 │
│ ├── slam_toolbox:2D 建图 │
│ ├── robot_localization EKF:编码器 + IMU 融合 │
│ ├── Nav2:全局规划、局部控制、行为树、速度平滑 │
│ ├── twist_mux:遥控 / 导航速度指令多路复用 │
│ └── aiohttp + WebSocket:浏览器控制台 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 硬件感知与运动层 │
│ ├── N10 激光雷达:/scan,360° 环境扫描 │
│ ├── IM10A / BNO085 IMU:姿态、角速度、航向 │
│ ├── ESP32-S3 串口桥:/odom ↔ /cmd_vel │
│ ├── 双路直流电机 + 霍尔编码器:差速运动与里程计 │
│ └── UPS HAT:电压、电流与电池状态监测 │
└─────────────────────────────────────────────────────────────┘
硬件平台
| 模块 | 型号 / 方案 | 作用 |
|---|---|---|
| 主控制器 | Raspberry Pi 5 8GB | Ubuntu 24.04、ROS2 Jazzy、SLAM/Nav2/Web |
| 底层控制 | ESP32-S3 + 奇果派驱动板 | 电机控制、编码器采集、JSON 串口协议 |
| 激光雷达 | 镭神 N10 | 2D 360° 扫描、建图与避障 |
| IMU | 幻尔 IM10A 十轴 AHRS / BNO085 备用 | 姿态、航向、角速度与 EKF 融合 |
| 电机 | 双路直流电机 + 霍尔编码器 | 差速驱动与轮速里程计 |
| 电源 | Waveshare UPS HAT (E) | 电池供电、电压电流监测、低电量保护 |
| 视觉扩展 | RGB / 红外摄像头,后续可接深度相机 | 视频查看、视觉识别、家庭看护 |
| 语音扩展 | USB 麦克风阵列 + 扬声器 | 实时语音对话与语音导航 |
软件栈
| 层级 | 技术组件 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 24.04 aarch64 | Pi5 端部署环境 |
| 机器人框架 | ROS2 Jazzy | 节点通信、TF、传感器与运动控制 |
| 建图 | slam_toolbox | 基于 N10 雷达的 2D SLAM |
| 导航 | Nav2 | 路径规划、局部避障、行为树、速度平滑 |
| 融合定位 | robot_localization EKF | 融合编码器速度与 IMU 航向 |
| 底层固件 | PlatformIO / Arduino / ESP32-S3 | 编码器、PID、NVS 参数、串口协议 |
| Web 服务 | Python aiohttp + WebSocket | 地图、雷达、遥控和导航前端 |
| 语音交互 | Flutter 前端 + Pi5 Audio Bridge | 可扩展为自然语音家庭机器人入口 |
四、关键技术方案
robot_localization 融合轮速里程计与 IMU 的 yaw / vyaw,输出稳定的 /odom_filtered 与 TF。/scan,由 slam_toolbox 生成 /map 与 map -> odom TF。Nav2 自主导航与狭窄通道调参
项目已完成 Nav2 全栈集成,包括 global planner、local costmap、DWB controller、behavior server、velocity smoother 和 twist_mux。Web 前端可以在地图上点击目标点,由 Nav2 自动规划路径并控制小车移动。
- 调整 local costmap 膨胀半径,让小车与障碍物保持更大距离;
- 调整 DWB 障碍物评分、角速度和角加速度,减少转弯扫尾碰撞;
- 弱化 PathAlign / GoalAlign,抑制拐弯时“多转”;
- 通过 velocity smoother 让运动更平滑,降低突然加减速。
Web 可视化控制台
PiCarHome 内置 Web 控制台,学生或用户只需浏览器访问 http://<Pi的IP>:8095 即可操作小车。界面包含 SLAM 地图、雷达扫描、方向键遥控、速度调节、建图控制、导航按钮和 WebSocket 状态流。
多车部署与教学交付
每台车通过主机名自动分配 ROS_DOMAIN_ID,同一局域网下互不干扰;硬件串口路径放入独立的 hardware.yaml,代码主线统一维护,再按需同步到具体设备。
家庭机器人上层智能扩展
- 实时语音对话:接入 PiCarVoice,实现可打断、低延迟、带人设和用户背景的自然语音交互;
- 视觉看护:接入 RGB / 红外 / 深度相机,支持远程查看、人体检测、跌倒检测和场景理解;
- VLM 视觉语言模型:让机器人理解“前面有什么”“桌子旁边有没有人”等开放式视觉问题;
- 家庭任务 Agent:结合导航、日程、健康档案和家庭规则,实现提醒、巡逻、陪伴和求助。
五、工程亮点
- 从硬件到算法的完整闭环:覆盖底盘驱动、串口协议、ROS2 节点、传感器融合、SLAM、导航、Web 前端和语音交互扩展。
- 真实家庭场景调优:围绕桌腿、柜壁、狭窄通道、转弯扫尾等实际问题进行 Nav2 参数验证。
- 可复制的多车体系:支持 Home01、Home02、Home03、Home04 等多台设备的配置、克隆、同步和交付。
- 教学友好:学生可从 Web 页面直接观察地图、雷达、路径与控制效果,再逐步深入 ROS2 与底层固件。
- 可研究扩展:可作为 VLM、RL Agent、家庭看护、语音交互、具身智能课程项目的实物载体。
- 工程问题沉淀完整:WiFi、USB、串口、IMU 替换、TF 链、SLAM 丢帧、CPU 占用等问题均有排查记录,可复用为实践教学案例。
六、与前期小车项目的关系
PiCarHome 可以看作前期小车技术路线的系统化升级。
| 项目 | 定位 | 核心价值 |
|---|---|---|
| PiCar Mini 2WD | 低成本教学小车 | 用极低成本完成 ESP32、MicroPython、超声波避障和基础 IO 教学 |
| MiniClaw | 高性能底盘实验 | 验证 DDSM400 直驱电机、LIN 通信、里程反馈和 Web 电机控制 |
| PiCarHome | 家庭机器人平台 | 集成 Pi5、ROS2、雷达、IMU、SLAM、Nav2、Web 和语音扩展,面向真实室内服务 |
七、应用场景
家庭陪伴机器人
结合实时语音系统,为儿童提供问答、讲故事、英语练习和机械电子启蒙。
独居老人看护助手
结合摄像头、语音和日程信息,提供巡逻、提醒、远程查看和异常报警。
室内导航教学平台
用于讲解 ROS2、TF、SLAM、Nav2、EKF、传感器融合和路径规划。
具身智能实验平台
承载 VLM、Agent、语音控制、视觉导航、强化学习等研究型任务。
机器人系统工程案例
展示从供电、串口、驱动、传感器、算法到交互界面的完整工程实践。
八、当前状态与后续路线
当前状态
- 已形成
4-PiCarHome04/PiCar_home/主线代码与文档基线; - 已完成 Pi5 + ROS2 Jazzy 运行环境;
- 已集成 N10 雷达、IM10A IMU、ESP32 串口桥、EKF、SLAM、Nav2 与 Web 控制台;
- 已支持一键启动完整系统;
- 已完成狭窄通道、避障距离、转弯幅度等关键导航参数验证;
- 已沉淀多车部署、WiFi 迁移、系统克隆和现场故障排查文档。
后续路线
- 导航稳定性增强:继续优化窄通道、桌腿、柜角、抱起后重定位等真实家庭场景;
- 视觉能力接入:从 RGB / 红外 Web 推流升级到深度相机与人体姿态识别;
- 语音与导航联动:实现“去客厅”“回充电点”“到桌子旁边”等自然语言导航;
- 家庭看护功能:加入巡逻任务、跌倒检测、用药提醒、紧急呼叫和家庭成员识别;
- 课程化封装:整理成从 ESP32 入门、ROS2 建图、Nav2 导航到 AI 机器人应用的分阶段实验教程。