黄油机器人项目介绍
复刻与部署方法见开始前的准备和复刻步骤,也可以按需查看各功能章节。
📖 项目简介
黄油机器人(Butter Robot) 是一款基于 ROS2 Humble 的移动机器人学习与开发平台,采用 Rockchip RK3588S 作为主控芯片,搭配 ESP32S3 微控制器实现底层运动控制。项目涵盖感知、定位建图、运动控制、视觉处理和语音交互五大核心功能模块,是一个集成度较高的机器人学习与开发平台。
教程与资源
📷 产品外观
🏗️ 系统架构
系统采用分层模块化架构,主要分为以下五层:
感知层:集成 LDLiDAR 2D 激光雷达(360° 环境扫描)、1080P 摄像头、6 轴 IMU 惯性测量单元和轮式编码器里程计,提供多源环境感知能力。
定位与建图层:基于 slam_toolbox 实现在线异步 SLAM 建图,通过 robot_localization 扩展卡尔曼滤波(EKF)融合轮式里程计与 IMU 数据,定位配置使用 laser_filters 过滤机器人自身遮挡;当前建图输入仍为原始雷达。
控制层:通过 UART 串口(460800 波特率)与 ESP32S3 通信,实现差速驱动底盘的 PID 速度控制和舵机控制,支持键盘与手柄输入;大模型到运动指令的接口尚未接通。
视觉处理层:利用 RK3588S 的 NPU(6TOPS 算力)硬件加速 YOLOv8 目标检测,三个视觉组件(采集、推理、推流)运行在同一 ComposableNodeContainer 中,启用进程内通信减少节点间图像复制。
交互层:集成 sherpa-onnx ASR 语音识别、RKLLM 本地文本生成和百度大模型音色复刻 TTS 语音合成,实现全流式语音交互;同时通过 Foxglove Bridge 提供 Web 端远程监控与数字孪生可视化。
🎬 视频演示

📺 视频作者:B站 @鸿尘客 🔗 视频链接:黄油机器人
⚙️ 硬件规格
以下为本项目使用的硬件配置。采用其他存储或外设时,按实际设备调整配置。
| 项目 | 参数 |
|---|---|
| 主芯片 SOC | Rockchip RK3588S |
| CPU | 4 核 Cortex-A76(2.4GHz)+4 核 Cortex-A55(1.8GHz) |
| NPU | 6TOPS |
| VPU | H.264/H.265/JPEG 硬件编解码 |
| RAM | LPDDR5 8GB |
| TF | 32GB |
| Wi-Fi+蓝牙 | Wi-Fi 5+BT 5.0 |
| 驱动器 MCU | ESP32S3 |
| 电池容量 | 3000mAh 12V |
| 摄像头分辨率 | 1920x1080 30FPS |
| 操作系统 | Ubuntu22.04 |
| ROS 版本 | ROS2 Humble |
📐 硬件框图
🚀 产品功能
五大核心能力:语音交互 | 运动控制 | 视觉处理 | 定位导航 | 远程监控
🗣️ 语音交互 —— 识别、文本生成与播报
| 模块 | 核心能力 | 技术方案 |
|---|---|---|
| ASR 语音识别 | 中英双语实时识别,增量输出无需等待整句 | sherpa-onnx + RKNN 加速 Zipformer,48kHz→16kHz 重采样,端点检测 |
| LLM 大语言模型 | 本地文本流式生成;可触发拍照,图像理解未接通 | Qwen3-VL-2B 文本推理路径,RKLLM,4096 上下文,流式输出 |
| TTS 语音合成 | 自定义音色克隆,支持多种方言,边合成边播放 | 百度大模型音色复刻 API,句级分段合成,HTTP 流式推送(端口 8090) |
🎮 运动控制 —— 多模式操控,精准灵活
| 模块 | 核心能力 | 技术方案 |
|---|---|---|
| 差速驱动底盘 | PID 闭环控制;键盘线速度配置 0.15 m/s,在线调参默认关闭 | UART 460800 波特率通信 ESP32S3,自定义二进制协议,左右电机独立控制 |
| 舵机控制 | 3 路舵机接口与关节状态映射;固件舵机初始化默认关闭 | /joint_states 话题发布关节状态,角度精确控制 |
| 键盘遥控 | WASD 八方向移动,launch 配置 0.2 秒无输入停车 | launch 配置 50 Hz 轮询 |
| 手柄遥控 | 摇杆模拟量控制速度,按键控制舵机(±5° 步进) | 线速度 + 角速度双轴控制 |
| 语音控制接口 | ASR / LLM 文本链路已有;运动指令转换待实现 | 尚无 LLM 到运动控制的桥接 |
👁️ 视觉处理 —— NPU 检测与视频推流
| 模块 | 核心能力 | 技术方案 |
|---|---|---|
| 摄像头采集 | 1080P@30fps 硬件加速采集,支持 RGA 硬件旋转 | GStreamer + v4l2src,NV12 原生格式输出 |
| 目标检测 | 单类别黄油检测与图像标注;手掌检测、跟随未实现 | YOLOv8 + RKNN NPU 加速,640x640,NMS 0.45 |
| 视频推流 | RTSP 实时推流,同进程图像传输优化 | MPP 硬件 H.264 编码,ComposableNode 进程内通信 |
🗺️ 定位导航 —— SLAM 建图与 Nav2 配置
| 模块 | 核心能力 | 技术方案 |
|---|---|---|
| 里程计融合 | 50 Hz 配置的 EKF 融合轮式里程计与 IMU,输出二维位姿 | robot_localization,2D 模式,odom → base_link TF |
| SLAM 建图 | 在线异步建图,回环检测,0.05 m/pixel 分辨率 | slam_toolbox + Ceres 求解器,激光量程 12.0 m |
| 纯定位模式 | 加载已有地图重定位,过滤自身遮挡 | slam_toolbox 定位模式 + laser_filters |
| 自主导航 | Nav2 规划与避障配置;完整任务闭环待集成 | Nav2 原型,NavFn / DWB;控制与检测接口待集成 |
🖥️ 远程监控 —— Web 端数字孪生,随时随地掌控
| 能力 | 说明 |
|---|---|
| Foxglove 可视化 | WebSocket(端口 8765)实时查看机器人状态、话题数据和 TF 坐标树 |
| RTSP 视频流 | 远程查看摄像头画面及目标检测结果 |
| 远程控制 | Web 端发布控制指令,实现数字孪生效果 |








