PiCarHome 是前期小车技术路线的系统化升级:不只验证“能动起来”,而是把底盘、感知、定位、规划、导航、交互与家庭看护应用组织成一台可长期迭代的机器人平台。
它适合承载本科课程、研究生课题、具身智能原型、家庭看护应用和机器人系统工程实践。
低矮差速底盘集成 N10 激光雷达与控制板,用于 SLAM 和导航调试
Home02 整机形态、雷达底盘和底盘俯视结构
从底盘硬件布局到自主导航算法形成完整闭环
┌──────────────────────────────────────────────┐
│ 用户交互层 │
│ Web 控制台 / 实时语音 App / 家庭大屏 │
│ 地图雷达可视化 · 遥控急停 · 点击导航 │
└───────────────────┬──────────────────────────┘
▼
┌──────────────────────────────────────────────┐
│ ROS2 机器人中间层 │
│ slam_toolbox · robot_localization EKF · Nav2 │
│ twist_mux · velocity_smoother · WebSocket │
└───────────────────┬──────────────────────────┘
▼
┌──────────────────────────────────────────────┐
│ 硬件感知与运动层 │
│ N10 雷达 · IMU · ESP32-S3 串口桥 · 编码器 │
│ 双路电机 · UPS HAT 电池监测 │
└──────────────────────────────────────────────┘
| 模块 | 型号 / 方案 | 作用 |
|---|---|---|
| 主控制器 | Raspberry Pi 5 8GB | Ubuntu 24.04、ROS2 Jazzy、SLAM/Nav2/Web |
| 底层控制 | ESP32-S3 + 奇果派驱动板 | 电机控制、编码器采集、JSON 串口协议 |
| 激光雷达 | 镭神 N10 | 2D 360° 扫描、建图与避障 |
| IMU | 幻尔 IM10A / BNO085 备用 | 姿态、航向、角速度与 EKF 融合 |
| 电机 | 双路直流电机 + 霍尔编码器 | 差速驱动与轮速里程计 |
| 电源 | Waveshare UPS HAT (E) | 电池供电、电压电流监测、低电量保护 |
N10 雷达提供 2D 环境感知,编码器与 IMU 提供运动状态估计
| 层级 | 技术组件 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 24.04 aarch64 | Pi5 端部署环境 |
| 机器人框架 | ROS2 Jazzy | 节点通信、TF、传感器与运动控制 |
| 建图 | slam_toolbox | 基于 N10 雷达的 2D SLAM |
| 导航 | Nav2 | 路径规划、局部避障、行为树、速度平滑 |
| 融合定位 | robot_localization EKF | 融合编码器速度与 IMU 航向 |
| Web 服务 | Python aiohttp + WebSocket | 地图、雷达、遥控与导航前端 |
4-PiCarHome04/PiCar_home/
├── config/ # 每台车独立 hardware.yaml
├── ros2_ws/src/ # serial bridge / lidar / imu 等 ROS2 包
├── projects/phase5/ # ESP32 当前固件
├── projects/phase13/ # 当前全系统集成版本
└── doc/ # WiFi、启动、克隆、交付文档
当前运行主版本集中在 Phase 13:启动脚本、Nav2 参数、Web 服务和多模块联动均以此为基线。
N10 雷达 → /scan → slam_toolbox → /map + TF(map→odom)
ESP32 编码器 → /odom ──┐
├→ EKF → /odom_filtered + TF(odom→base_link)
IM10A IMU → /imu/data ─┘
TF 链:map → odom → base_link → laser
/odom_filtered。
SLAM 与 EKF 的稳定性取决于雷达、IMU、编码器和 TF 链的协同
PiCarHome 已完成 Nav2 全栈集成,包括 global planner、local costmap、DWB controller、behavior server、velocity smoother 和 twist_mux。
/cmd_vel 转串口 JSON 控制底盘。PiCarHome 内置 Web 控制台,学生或用户只需浏览器访问 http://<Pi的IP>:8095 即可操作小车。
| 主机名 | DOMAIN_ID | 说明 |
|---|---|---|
| PiCarHome01 | 1 | 早期设备 / 教学验证 |
| PiCarHome02 | 2 | Home02 底盘与外形验证 |
| PiCarHome03-A | 3 | 现场调试设备 |
| PiCarHome03-B | 4 | 教学交付设备 |
每台车维护独立 hardware.yaml,主线代码统一迭代,再同步到具体设备。
立式支架与屏幕/交互面板为家庭人机交互预留空间
同一底盘可服务课程、实验和家庭机器人原型验证