本科毕业设计基于双指标检测的自助智能台球柜

Posted SinHao22

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本科毕业设计基于双指标检测的自助智能台球柜相关的知识,希望对你有一定的参考价值。

目录

0. 前言

毕业设计已经完成了,前前后后花了有将近两个月时间,期间主要受到了两位学弟的帮助,一位帮忙做动力控制,另一位负责设计机械和动力方案,非常感谢。

该项目主要目的是设计一款“基于双指标检测的自助智能台球柜”,主要实现以下功能:

  1. 用户可以使用小程序进行自助取球和自助还球;
  2. 还台球时会对台球数量进行检测,进行视觉(YOLOv5)和重量(重力传感器)的双指标检测。

感兴趣的话可以看看视频展示:视频展示:基于双指标检测的自助智能台球柜

首先看看成品的大致外观:

1. 整体技术方案

首先看下项目整体的技术方案,项目主要可以分为机械、动力、数量检测、通信和用户交互五大功能模块,如下图:

各功能模块联系和整体流程可以看下面的图片

1.1 机械结构

机械结构主要是用2020铝型材做框架,黑色环氧板做外壳,其实从上面的图片就明白机械结构是怎么设计的了。

1.2 动力系统

动力系统使用了三根滑轨,每根滑轨控制一维的运动,三根滑轨就可以保证台球盒在整个空间内的运动,滑轨长这个样子:

三根滑轨组装在一起长这样:

控制方面用STM32发送控制信号,采用Microstep driver DM542步进电机驱动器提供驱动电压。

1.3 台球数量检测

1.3.1 YOLOv5视觉检测

视觉方面使用YOLOv5对做数量检测,效果很不错的,因为台球是放在检测平台上的,场景相对单一,效果如下图:

YOLOv5部署在Jetson Nano上,实测未加速情况下稳定在15fps左右(加有散热风扇),可以满足需求,因此我也没有做模型加速。

1.3.2 重力检测

另一方面采用重力检测来通过重量确定台球的数量,主要用到的就是下面的高精度重力传感器。

该传感器能将重量大小转换为毫伏级别的电压高低,然后再经过电压放大器和模数转换模块,在STM32上经过模数转化就可以得到台球重力,实测误差在1g左右。

然而实际情况是重力检测并没什么用,原因在于不同的台球重量相差挺大的,我们买的台球一个在160-170g左右,而学校的台球一个在180-200g左右。。。无法很好的进行重量检测。后来就改成了重量只要不是小的离谱就算检测成功(大于1200g),主要还是依赖视觉做数量检测。

1.4 通信方案

用户手机需要与台球柜进行通信:比如手机给台球柜发送取球和还球信号,取球或还球成功后给手机返回成功信号等,使用的是一个低功耗蓝牙模块:

但其实后来发现这种通信方案并不理想,弊端太多了,比如不能多用户同时连接蓝牙,手机和蓝牙的连接需要2秒左右的额外时间等等,实在是不够合理。

1.5 小程序交互模块

采用微信小程序完成设备和用户间的交互,没有自己搭建服务器,采用的是云数据库。大体效果如下:

2. 存在问题

虽然能完成大体功能,但项目整体还是存在不少问题,鲁棒性也不算很高:

  1. 机械系统鲁棒性不高:台球存放平台不够稳固,空间利用率较低等;
  2. 动力系统速度慢:从视频中可以看到还球和取球的速度还是挺慢的,用户需要等好几十秒;
  3. 蓝牙通信方案不合理:蓝牙通信方案在该项目中显然不是最优选择,存在诸多弊端;
  4. 小程序功能较为简陋:小程序的功能还是比较简单的,而且鲁棒性有待进一步提升,目前还是比较toy的。

以上就是关于我本科毕设的分享,也算是简单做一个总结和回顾了吧。马上毕业了,准备在读研之前找个CV方向的线上实习,希望有公司要我哈哈哈。:)

以上是关于本科毕业设计基于双指标检测的自助智能台球柜的主要内容,如果未能解决你的问题,请参考以下文章

Canvas 实现台球假想球精准定位

Canvas 实现台球假想球精准定位

西电本科生研发果蔬自助电子秤,利用图像识别技术称重结算

2544: 台球碰撞

中式台球 规则 ( ChinaBilliards )

Unity3d台球/台球瞄准问题