基于 Google Coral Edge TPU 的垃圾分类机器人
你知道回收设施的污染率高达 25% 吗?即每四件物品中就有一件因人工分拣错误无法进入回收流程。气候变化加剧下,降低污染率比以往更关键。我们的方案——一款利用 Google Coral Edge TPU 和机器学习目标检测的自主分拣机器人——能大幅降低污染率,同时降低运营成本。
演示
代码仓库
在 GitHub 克隆完整项目跟进学习。
步骤 1:获取数据集
训练准确的目标检测模型需要多样化的标注图像。我们使用 TrashNet 数据集,含六类 2,527 张图片:
- 玻璃 – 501 张
- 纸张 – 594 张
- 纸板 – 403 张
- 塑料 – 482 张
- 金属 – 410 张
- 垃圾(不可回收) – 137 张
数据集可在 Google Drive 下载。快速训练可下载预缩放压缩包 (dataset-resized.zip)。若需自定义缩放,用 dataset-original.zip。
步骤 2:标注图像
用 labelImg 标注每个物体的边界框。边界框应紧贴物品以最大化模型精度。所有标注文件 (.xml) 存放在专用文件夹。若标注耗时,可下载我们预标注数据集 此处。
步骤 3:训练模型
采用 TensorFlow 迁移学习管线,主干为 MobileNet-SSD v2 (COCO),完全兼容 Coral Edge TPU。训练可本地或云端。本地训练简单但较慢;为加速,可用 Google Cloud TPU 或 AWS GPU 实例,参考 Google 教程 或 EdjeElectronics 指南。
步骤 4:为 Coral Edge TPU 编译
训练后导出冻结图 (.pb),转为带训练后量化的 TensorFlow Lite,再用 edgetpu_compiler 编译为 Edge TPU 二进制。完整说明见 Edge TPU 编译器文档。
步骤 5:在树莓派部署
按官方 入门指南 配置树莓派 4、Coral USB 加速器和树莓派摄像头。准备好后运行:
python test_detection.py \
--model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite \
--labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels.txt
实时窗口显示检测结果;按 q 退出。
步骤 6:构建机械臂
机械臂为 3D 打印六自由度操作臂,源自 Thingiverse。按组装说明连接舵机,顺序(从底到顶):3, 11, 10, 9, 6, 5。上传 basicMovement.ino 到 Arduino 测试抓取放置。
步骤 7:集成树莓派与机械臂
将摄像头安装在机械臂夹爪根部以减少透视畸变。上传 roboticArm.ino 到 Arduino,通过 USB 连接树莓派与 Arduino 建立串口通信。在 Arduino 代码配置串口匹配 Pi 的 /dev/ttyUSB0 接口。
步骤 8:收尾
用定制项目外壳封装电子元件,兼顾安全与美观。成品如下:

预训练模型
若想跳过训练,可直接下载即用模型 此处。
借助 Coral Edge TPU 上的机器学习,这款机器人以远低于人工成本的代价实现精准、低污染分拣。
制造工艺
- 莱昂内尔模型火车:历史、制造与未来
- Python/MicroPython 传感器记录仪:无缝写入 Google Sheets
- 基于树莓派的视觉避障移动机器人
- gatoBot:基于树莓派 Zero W 的网页控制机器人,支持实时视频流
- Arduino Mega 驱动紫外线消毒机器人:远程遥控杀菌系统
- 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
- Arduino + Android 蓝牙控制 Roomba Create 2 扫地机器人完整指南
- 语音控制家电:Google Assistant + 蓝牙 + Arduino UNO
- 智能公交站台建筑模型:自动遮阳棚系统
- 通过专用 Android App 蓝牙控制 Arduino 机械臂
- 在MATLAB/Simulink中掌握3D机器人夹爪的PID控制
- Yama Seiki GA-2000CR:配备机械臂与托盘系统的紧凑型车削中心