科创II-B 11组 —— 小车自动走迷宫

项目简介

项目介绍:大致来说,是在给定一个迷宫的情况下,通过人工确定小车的位置之后,小车能够智能的走出迷宫。具体任务包括通过OPENCV对迷宫进行图像处理,获得处理后的迷宫的图像,设计出小车应该走的路线,同时硬件部分对小车进行编程,实现对小车的基本控制,在小车行进过程中通过对小车进行定点确定最后实现对小车的智能控制。
项目完成情况:能够通过有线串口通信在无人操控的情况下实现小车智能走迷宫。
项目整体结构说明:项目分为三部分:1)对OPENCV软件的学习运用。通过对OPENCV的软件学习,掌握对图像处理的基本知识,实现对迷宫和小车定位的基本图像处理。2)对小车的硬件编程。通过对51单片机的学习,已经通过KEIL的编程,实现对小车的基本控制操作,即实现上位机对下位机的基本动作控制,进而实现对小车的实时监控。3)物理部分实现。包括对小车的板子的检测,以及对小车外形的处理,方便之后对图像的处理。:

opencv

通过opencv进行图像处理。
详情见“软件部分”页面。


串口通信

利用串口进行通信...
详情见"硬件部分"页面。


项目最终结果

系统测试情况:在无人控制的情况下实现了小车转过三个弯道,成功走出迷宫。
系统的不足及可以改进的地方:
1) 小车的控制是通过USB连接实现的,这一点既有可能在小车行进的过程中对图像识别做出干扰,同时制约了小车的活动范围。 改进方法:可以改进为蓝牙的无线控制。
2) 小车轨迹识别未能实现完全智能化,其一是需手动取点确定迷宫的位置,不能自主识别,其二是小车的调试对环境的要求比较高,导致程序的可适用性降低,在调试的过程中同样需要消耗大量的时间。 改进方法:需要进一步提高代码的处理能力。
3) 代码的有效性还有待提高。在小车行进的过程中,因为比对矫正路线的程序过烦,小车的行进速度不快。 改进方法:可以通过减少循环的次数实现精简。
4) 小车本身的设计不太合理。因为前后轮子的摩擦系数差不多,导致在转弯时并不是完全的转身,而是在前进(或者后退)的同时转身,导致在编程时难度加大。 改进方法:可以减小小车前轮从动轮的摩擦系数,同时增大主动轮的摩擦系数,将轮子对小车的影响减小到最小。