本项目开发了一款智能物流搬运小车,用于完成货箱的自动识别、定位、抓取和搬运任务。项目采用模块化设计,提供了两种技术路线的实现方案,分别基于不同的硬件平台和控制策略。系统集成了计算机视觉识别、路径规划、运动控制和机械执行四大功能模块。
项目根目录/
├── 3D/ # 3D打印设计文件
│ └── README.md # 3D打印模型说明文档
├── planA/ # 双芯片方案(ESP32S3 + K210)
│ ├── Chassis motor control/ # 底盘运动控制模块
│ │ ├── 底盘控制-basic/ # 基础底盘控制
│ │ ├── stepper/ # 步进电机控制
│ │ ├── qzj/ # L298N电机驱动
│ │ ├── qzj2.0/ # 舵机控制升级版
│ │ └── README.md # 底盘控制模块说明文档
│ ├── visual contural/ # 视觉识别控制模块
│ │ ├── ESP32_Number_Tracker/ # ESP32S3跟踪程序
│ │ ├── model-11975.nncase/ # K210模型文件
│ │ ├── K210_Detection_Sender.py # K210识别程序
│ │ └── README.md # 视觉控制模块说明文档
│ └── README.md # 方案A说明文档
├── planB/ # 单片机方案(香橙派aipro)
│ ├── xiangchengpai-aipro/ # 香橙派控制程序
│ │ └── aipro.py # 主程序代码
│ └── readme.md # 方案B说明文档
└── README.md # 本文档(项目总体说明)
└── release # 思路视频
特性 | 方案A(ESP32S3+K210) | 方案B(香橙派aipro) |
---|---|---|
系统架构 | 双芯片协同工作 | 单芯片集成控制 |
视觉处理 | K210 AI加速(Yolo2优化) | OpenCV+Pytesseract |
控制方式 | ESP32S3控制舵机和步进电机 | GPIO直接控制步进电机 |
通信方式 | UART串口(115200波特率) | 内部函数调用 |
优势 | 实时性高,功耗低 | 集成度高,易于扩展 |
适用场景 | 追求低功耗和高实时性 | 追求开发便捷和功能扩展 |
-
视觉识别:
- K210运行优化版Yolo2模型,识别货箱编号(1-8)
- 实时计算目标位置与大小
- 通过串口发送识别结果到ESP32S3
-
目标跟踪:
- ESP32S3接收K210发送的识别数据
- 使用PID算法(Kp=0.1, Ki=0.01, Kd=0.05)控制双轴舵机
- 在OLED显示屏实时显示跟踪状态
-
底盘控制:
- 支持多种控制方案:串口控制、AccelStepper、L298N直驱
- 实现精确的运动控制与路径执行
- 可选配置舵机实现更复杂的机械动作
-
视觉模块:
- K210开发板 + OV2640摄像头
- ESP32S3开发板 + SSD1306 OLED显示屏
- 双轴舵机跟踪系统
-
底盘模块:
- ESP32或Arduino控制器
- 步进电机驱动板或L298N驱动模块
- 四轮驱动系统
-
集成视觉处理:
- 使用OpenCV进行图像处理
- 通过Pytesseract进行OCR数字识别
- 实现货箱位置与编号的实时识别
-
完整控制系统:
- GPIO直接控制多组步进电机
- 实现平移、转向、升降、抓取等多种动作
- 集成激光测距避障功能
-
任务规划与执行:
- 支持任务规划与路径生成
- 按照预设任务顺序执行搬运操作
- 支持特殊任务处理(如指定货箱放置要求)
- 主控:香橙派aipro(全志H6四核Cortex-A53 CPU)
- 传感器:USB摄像头、激光测距传感器
- 执行机构:
- 驱动电机:GPIO [17, 18, 27, 22]
- 转向电机:GPIO [5, 6, 13, 19]
- 升降电机:GPIO [26, 12, 16, 20]
- 抓取机构:GPIO [21, 23, 24, 25] 或舵机GPIO 23
项目包含完整的3D打印设计文件,包括:
- 底盘框架结构
- 电机安装支架
- 摄像头和传感器安装支架
- 货箱抓取机构
- 舵机安装底座
3D模型设计考虑了结构强度、装配便捷性和功能实用性,推荐使用PLA/PETG/ABS等材料打印,详细参数请参考3D/README.md
。
- 准备硬件:K210开发板、ESP32S3开发板、摄像头、舵机等
- 烧录程序:
- 将
K210_Detection_Sender.py
上传到K210 - 使用Arduino IDE将
ESP32_Number_Tracker.ino
烧录到ESP32S3 - 根据选择的底盘控制方案,烧录相应的程序
- 将
- 硬件连接:按照各README文档中的接线说明连接硬件
- 启动系统:先启动K210,待初始化完成后启动ESP32S3
- 使用与调试:通过OLED显示屏和串口监视器观察运行状态
- 安装环境:在香橙派aipro上安装必要的Python库和依赖
- 部署程序:将
aipro.py
复制到香橙派并设置执行权限 - 硬件连接:按照README中的GPIO定义连接电机和传感器
- 运行程序:执行
python3 aipro.py
启动系统 - 监控执行:系统将自动执行初始化、识别和搬运任务
- 视觉增强:训练更精确的模型,识别多种类型的货物
- 路径优化:实现更高级的路径规划算法,提高搬运效率
- 多机协同:实现多台小车的协同作业功能
- 远程控制:添加WiFi/蓝牙接口,实现远程监控和控制
- Arduino IDE/PlatformIO:用于ESP32S3和Arduino开发
- MaixPy IDE:用于K210的开发与调试
- Python环境:用于香橙派aipro的开发
- 3D建模软件:用于设计和修改3D打印模型
-
系统通信问题:
- 检查串口连接和波特率设置
- 验证数据格式是否符合协议要求
- 使用串口监视器排查通信故障
-
视觉识别问题:
- 调整光线条件和摄像头位置
- 优化识别算法参数
- 考虑环境因素对识别结果的影响
-
电机控制问题:
- 检查电源是否足够(尤其是步进电机)
- 验证GPIO连接是否正确
- 调整控制参数适应不同负载情况