[G-非接触物体尺寸形态测量] G题_安徽赛区_合肥工业大学——非接触物体尺寸形态测量 安徽赛区G题第一

  [复制链接]

1

主题

7

帖子

105

积分

二氧化硅

Rank: 2

积分
105
查看: 6187回复: 15 发表于 2020-10-20 18:01:53   只看该作者
非接触物体尺寸形态测量
摘要:采用STM32F103C8T6最小核心作为主控模块,设计了主要包含激光测距模块、OpenMV模块、舵机云台模块、OLED显示模块、按键模块和电源模块的非接触式物体尺寸形态测量系统。系统通过OpenMV进行图像处理,控制板将利用坐标信息通过PWM,控制调控舵机,使其达到目标位置;测量方面,利用摄像头小孔成像原理,计算物体具体尺寸然后将各参数信息发送至OLED显示;控制方式采用PID算法,比例环节进行快速响应,积分环节实现无静差,微分环节减小超调,加快动态响应,能很好实现将摄像头移向目标中心点。经后期测试,系统采集到平面目标的形状、尺寸以及距离等参数,可以自动寻找目标测量、进行立体目标测量;该系统性能可靠,技术指标满足设计要求。
关键词:STM32F1控制板;OpenMV;机器视觉;PID控制;仪器测量;非接触物体尺寸形态测量

1  引言
根据题目要求,需要设计一个非接触物体尺寸形态测量装置,在规定时间内,完成以下功能:(1)显示规则形状的平面目标的边长(直径)、几何形状和目标与测量头之间的距离。
(2)更换目标板,重复测量显示。
(3)目标摆放在目标放置区内任选位置,使装置自动寻找目标测量,激光指示几何中心,并显示距离、形状、尺寸。
(4)随机抽取篮球、排球、足球中的任一个立体目标进行测量,判断球类品种,测量与球面最近距离。

为了设计实现该形态测量系统的功能,我们采用模块化设计,将OpenMV机器视觉模块获取的目标形状和尺寸参数,以及激光测距获取的测量头中心点与被测目标之间的距离传送到主控制器STM32F103C8T6中,计算获得目标尺寸,并在OLED上显示目标形状、尺寸、距离,利用PID控制对电机组进行调节,可以自动寻找目标进行测量。整个设计功能实现完整,机械构造精巧,实现了软硬件的充分结合。
2 系统方案设计与论证
本系统主要由STM32C8T6最小板控制模块、OpenMV模块、舵机云台模块、OLED显示模块、电源模块组成,下面分别论证这几个模块的选择。

2.1主控制器件的论证与选择
方案一:传统的51单片机为8位机,价格便宜,控制简单,但是运算速度慢,片内资源少,存储容量小,难以存储大体积的程序和实现快速精准的反应控制。并且受时钟限制,计时精度不高,外围电路也增加了系统的不可靠性。
方案二:STM32F103C8T6单片机最小控制板是一款基于ARM Cortex-M内核,STM32系列的32位微控制器,具有功能强大、效率高的指令系统,高性能模拟技术及丰富的外围模块。并且定时功能强大,主要应用的是定时器的 PWM 模式,控制舵机的运行,需要用到定时器的PWM模式。
综合以上两种方案,我们选择了方案二,采用STM32F103C8T6单片机作为控制器。

2.2 测距模块的论证与选择
方案一:OpenMV测距。利用OpenMV识别捕捉的像素点,根据实际长度和摄像头里的像素成反比的关系进行测量;该方案需要在视野中含有已知尺寸的距离信息进行像素对比。
方案二:超声波测距。超声波测距具有指向性强、能量消耗缓慢、成本低廉等优点,但超声波对色彩、光照度不敏感,超声波测距仪的测量精度是厘米级,精度较低且计算时间长。
方案三:激光测距。通过对激光相位差的检测,感知目标物距离,激光测距具有精确度高、距离远等优点,测量精度可达到毫米级,受干扰比较小,比较适用于精确稳定测距。
综合以上三种方案,根据功能实现及测量精度要求,选择方案三。

2.4        电机的选择与论证
方案一:采用舵机。舵机是靠脉冲的宽度来控制其转动的角度,使用舵机带动连接轴即可控制平台的倾斜。舵机使用方便,响应速度快。
方案二:采用步进电机,优点是价格便宜,缺点是扭力小,所以加速度小,而且有震动,体积重量较大不宜安装调试。
综合考虑,采用舵机进行PID调控稳定性较高,故选择方案一。

3 状态测量及运动控制
3.1 目标物体的识别
3.1.1 平面物体形状识别
目标识别采用的OpenMV模块,其中:圆形和正方形通过OpenMV自带的函数进行预先处理识别,为了避免其他因素干扰,其中圆形图形识别利用高圆形阈值识别的方法,正方形识别在基本矩形识别的基础上,通过限制识别出正方形的长宽值,减少其他图像因素的干扰,达到准确识别的效果。

3.1.2 平面物体颜色识别
颜色识别主要在平面物体形状识别的基础上,统计识别框中所有像素LAB色彩空间L、A、B的众数,进行判断具体三种色彩;其中,为了减少光线对图像颜色的影响,在设置阈值时,将LAB色彩中L值范围调高,仅通过A和B的值判断颜色种类。
为了减少未知因素的干扰,颜色识别和形状识别通过判断连续多次识别无误时,方通过准确判断。

3.1.3 立体物体识别
立体物体识别通过机器学习中 模板匹配的方法进行图像识别;模板匹配是最简单的模式匹配算法,相较于其他识别算法,运算量较小,正因为此才能够在STM32平台上运行,模板匹配通过简单的平移移动图像对比的方法实现图形识别,为了能够准确识别三种球体,我们通过预先保存30张照片进行模板匹配,准确识别。

3.2 目标物体尺寸的测量计算
3.2.1 测量原理
平面目标物体尺寸采用摄像头小孔成像原理测量;首先在选择镜头时,我们选择了变焦镜头,相比于普通镜头,其焦距可伸缩并且焦距更大,可以通过变焦方式增大视野中物体的像素点,直至视野正好为测量平面竖直方向距离,使得利用像素值测量物体长度更为准确;测量原理方面,因为使用的摄像头通过小孔成像原理获取图像点数据。其中焦距计算公式如下:
f=v*D/V
其中:f代表焦距;v代表目标图像横向像素,V代表实际物体横向尺寸;D为镜头到拍摄物体之间的距离。预先通过已知物体长度、测试距离,利用测试得
图1
到相对焦距(自定义焦距和焦距存在单位上的差异);在实际测量时,通过预先测定得到的f,利用激光测距测量镜头与拍摄物体之间的距离D,通过V=v*D/f得到物体尺寸测量结果;下图为小孔成像原理图。

3.2.2 实际测量结果
在预先测量自定义焦距f时,通过多次测量取平均值得到一个稳定的平均相对焦距f值;以下是实际测量分析数据,共15组数据:(测试使用目标物横向尺寸为35mm)。表1:
目标横向像素值v        30        31        32        33        ……        42        43        44
实际距离D        3.007
        2.897
        2.841
        2.722
        ……        2.072
        2.022
        2.010

上述数据利用软件进行拟合效果如下:
图2
测得相对焦距f平均值:2.536
多次测量后计算与实际参数对比,得该参数符合要求,测量物体实际长度误差在±1mm左右。

4 系统结构与电路设计
4.1 系统流程图
    系统软件流程图见附录3。

4.2 电路设计

4.2.1系统总体框图
系统总体框图,如图3所示,系统主要由STM32F103C8T6单片机,红外测距,OpenMV模块,OLED显示,声光提示,云台舵机和电源模块等部分组成。具体见附录2。



图3 系统总体框图

4.2.2电源模块的设计
电源模块设计利用学生电源将220V交流电源转换成12V直流电源,再通过降压模块转至5V供控制板及其他模块供电,电源模块详细原理图信息见附录2整体原理图。

4.2.3 执行机构控制算法:PID算法
当被控对象模拟PID控制系统组成,如图4所示。

图4  PID控制系统原理框图
PID调节器是一种线性调节器,它将给定值r(t)与实际输出值c(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制。

4.3 程序的设计
4.3.1 程序功能描述与设计思路
程序功能描述:该非接触物体尺寸形态测量系统通过STM32F103C8T6最小核心板能够实现对OpenMV、OLED显示模块、激光测距模块、声光模块、舵机等模块的连接和调用;通过外部按键控制系统识别模块,系统中的OpenMV识别模块能够准确识别物体的形状、颜色、和像素距离。
程序设计思路:程序设计原则依据实际任务要求设计,
4.3.2  OpenMV和STM32通信协议如下表:

0x3b        0x3b        X        Y        mode        color        distance        0xb5
头帧1        头帧2        物体中心X坐标        物体中心Y坐标        识别出的目标类型        目标颜色        目标边长像素        尾帧
表2 通信协议

5 测试结果及分析
5.1         测试结果
通过直接识别正方形、三角形、圆形三种形状和三种颜色搭配的目标,以下表格为具体识别情况,因为测试场地路灯灯光间断开关情况,在识别蓝色正方形时,因为阈值部分区域重合,会发生偶尔同时错误识别的情况。         
        
测试次数      测试物体      颜色识别情况      形状识别情况
   1         红色圆形         正确识别           正确识别
   2         蓝色正方形    旋转时偶尔错误识别成绿色 正确识别
   3         红色三角形        正确识别          正确识别
   4         蓝色正方形        正确识别          正确识别
   5         绿色正方形        正确识别          正确识别

表3 平面物体识别情况

下表为测试识别立体目标结果,在初期测试时因为算法识别的问题,未能识别到中心目标,后期已通过圆形识别解决。

测试次数       测试立体物体种类    实际测试情况   备注
    1          排球               正确识别       无
    2          足球               正确识别       无
    3          篮球               正确识别      非中心
表4  立体目标识别情况

6 测试分析与结论
经过测试,本系统按键选择模式后,能够准确识别目标物形状、尺寸以及横向像素值,其中横向像素值通过利用自定义结合焦距和激光测距得到的距离值后,能够计算出物体实际横向长度,经多次测试后,测量误差在正负1mm左右;立体物体识别模式下,可以通过模板匹配准确识别分类三种球体,并通过激光测距模块准确测量距离。本系统可满足非接触物体尺寸形态测量系统所有任务要求。
通过本次比赛我们团队深入理解了非接触式物体参数测量原理,并对电子设计领域产生了极大的兴趣,同时这次比赛锻炼了我们的团队合作能力。虽然比赛的时间有限,但是我们的研究并不会因为这次的大赛而结束,我们会在已经实现的基础上作进一步的研究,完善其功能。





附录1整体电路原理图:


附录2 STM32F103C8T6芯片引脚图 :










附录三 软件流程图:



1

主题

7

帖子

105

积分

二氧化硅

Rank: 2

积分
105
发表于 2020-10-21 10:15:10   只看该作者
其实我们组的设计还是有很多不足的地方,比如(4)中球形识别,由于使用openmv只能检查轮廓的问题,一些球体上白色部分和背景板白色部分会重合导致无法识别,最后我们也只是简单识别色块;欢迎各位G题的朋友交流思路和方法。

150

主题

445

帖子

1904

积分

审核员

Rank: 9Rank: 9Rank: 9

积分
1904
发表于 2020-10-21 11:26:37   只看该作者
图片好像要上传以后再插入

43

主题

241

帖子

509

积分

单晶硅锭

Rank: 3Rank: 3

积分
509
发表于 2020-10-21 14:57:11   只看该作者
谢谢分享 如果有图就更好了

20

主题

124

帖子

290

积分

二氧化硅

Rank: 2

积分
290
发表于 2020-10-21 14:58:49   只看该作者
谢谢分享

1

主题

7

帖子

105

积分

二氧化硅

Rank: 2

积分
105
发表于 2020-10-24 17:42:25   只看该作者
secret 发表于 2020-10-21 11:26
图片好像要上传以后再插入

哦哦,好的

1

主题

7

帖子

105

积分

二氧化硅

Rank: 2

积分
105
发表于 2020-10-24 17:44:45   只看该作者
春风十里 发表于 2020-10-21 14:57
谢谢分享 如果有图就更好了

行,我等下试试

0

主题

1

帖子

83

积分

一粒轻沙

Rank: 1

积分
83
发表于 2020-10-31 20:33:53   只看该作者
问下三角形怎么识别的

1

主题

7

帖子

105

积分

二氧化硅

Rank: 2

积分
105
发表于 2020-11-4 10:50:42   只看该作者
pz1234 发表于 2020-10-31 20:33
问下三角形怎么识别的

通过两条直线角度判别,你直接看源代码吧
https://github.com/GRF-Sunomikp31/OpenMV

1

主题

7

帖子

105

积分

二氧化硅

Rank: 2

积分
105
发表于 2020-11-4 10:55:13   只看该作者
另附本人Openmv部分总结和源代码
https://blog.csdn.net/qq_44847636/article/details/109196012

0

主题

2

帖子

68

积分

一粒轻沙

Rank: 1

积分
68
发表于 2020-11-25 15:41:20   只看该作者
李东东 发表于 2020-11-4 10:55
另附本人Openmv部分总结和源代码
https://blog.csdn.net/qq_44847636/article/details/109196012 ...

用心了 楼主 点赞

0

主题

1

帖子

4

积分

一粒轻沙

Rank: 1

积分
4
发表于 2020-12-4 05:24:27   只看该作者
我现在用超声波测距,但是对球类物体而言误差有点大,想问问楼主激光测距部分的模块以及这部分的代码

1

主题

7

帖子

105

积分

二氧化硅

Rank: 2

积分
105
发表于 2020-12-10 21:29:33   只看该作者
H1143944677 发表于 2020-12-4 05:24
我现在用超声波测距,但是对球类物体而言误差有点大,想问问楼主激光测距部分的模块以及这部分的代码
...

激光测距这块不是我负责的,但是我们用的就是一个200-400的测距模块,具体代码就是一种 通信方式获取信息。你可以去网上看看

0

主题

5

帖子

11

积分

一粒轻沙

Rank: 1

积分
11
发表于 2020-12-15 10:42:23   只看该作者
感谢分享!有图就更好了!

0

主题

1

帖子

26

积分

一粒轻沙

Rank: 1

积分
26
发表于 2021-1-13 21:26:57   只看该作者
没有参加比赛毕设想搞一下,我最初的想法和楼主的一模一样,除了用32做控制,我打算用K210直接控制的舵机。

0

主题

2

帖子

2

积分

一粒轻沙

Rank: 1

积分
2
发表于 4 天前   只看该作者
感谢分享!
快速回复 返回顶部 返回列表