基于摄像头的一维滑轨控制方法与流程

文档序号:32751263发布日期:2022-12-31 00:58阅读:46来源:国知局
基于摄像头的一维滑轨控制方法与流程

1.本发明属于直流电机控制技术领域,具体涉及基于摄像头的一维滑轨控制方法。


背景技术:

2.直流电机控制领域一般使用电机电流和编码器计数(电机转速)作为输入来对直流电机进行控制计算。但对于非水平轨道而言,上升和下降受重力影响,所受的力也会不同,滑块在上升过程中,减速会偏快,从而未到目标位置就停止了,或不断的再进行修正而延长了工作时间。
3.现有的直流电机控制技术,若周围环境发生微小变化,如:负载变化、或滑轨上出现异物产生附加阻力,对电机的控制也会造成影响,从而降低工作效率。


技术实现要素:

4.本发明所要解决的技术问题是针对上述现有技术的不足,提供基于摄像头的一维滑轨控制方法,除常规的电机编码器,引入摄像头作为控制算法的一部分来提高电机运动位置的实时性和精确性;利用摄像头的像素偏移量来计算与目标位置的距离和预判电机停止运动;利用在系统空闲时段,让电机进行自测计算,从为接下来电机作业的运动状况提供的预判,并使预判越来越准确,可提高滑块对目标位置定位的精确性和实时性,实现了基于摄像头的滑轨位置校准和制动预判以提高直流电机在滑轨上位移精准性的目的。
5.为实现上述技术目的,本发明采取的技术方案为:
6.基于摄像头的一维滑轨控制方法,应用于由电机驱动滑块的一维的滑轨上,所述摄像头安装于滑块上,配合上层图像识别应用,对目标物进行识别,来确定滑块的停止时间和距离;利用在闲时进行自测校准,和对于不同位置的电机停止测试,计算出在不同位置、不同负载情况下的制动预判,所述方法包括以下步骤:
7.步骤一、摄像头工作,电机预热,测量输入延迟和制动时间和位移,记录全程摄像头偏移量和电机计数并拟合摄像头偏移量和电机转动量的线性关系后进入就绪状态;
8.步骤二、就绪状态下,判断是否空闲:
9.如不空闲,则进行作业,对滑块位置进行实时跟踪,对目标位置进行运动预判,并判断最终停止位置是否准确,若不准确,则对位置偏移量进行补偿并对制动时间距离量进行反馈,若准确,则作业完成,重新进入就绪状态;
10.若空闲,则进行是否长期空闲判断,若是,则进入步骤四,否则进入步骤三;
11.步骤三、在不同位置,测量输入延迟并计算最小值,测量制动时间和距离,拟合位置与制动距离的线性关系后进入就绪状态;
12.步骤四、记录全程摄像头像素偏移量和电机计数,拟合摄像头像素偏移量和电机转动量的线性方程后进入就绪状态;
13.为优化上述技术方案,采取的具体措施还包括:
14.上述的步骤一中,摄像头工作,实时获取摄像头像素偏移量,具体为:
15.将图像进行转换成灰度图像,然后使用canny边缘检测算法计算出图像特征物的边缘线条,即轮廓线,并将轮廓线的像素点进行保存;
16.持续记录摄像头每一帧的轮廓线的像素点,将当前帧的像素点与上一帧的像素点进行比对,并计算出每个像素点的位移量,并求出所有像素点位移量的中值,最终计算出每一帧的像素偏移量;该步骤与其它步骤并行执行。
17.上述的步骤一中,电机预热,驱动滑块沿滑轨边界运动,具体为:
18.假设滑轨的行程为x轴,电机驱动滑块移动到x=0的边界处,且继续向x轴的负方向(x-)运动,使电机堵转一段时间,使电机实现快速预热,随后再从x=0处向x轴正方向(x+)运动,当电机到达另一端边界时,电机发生堵转,电机电流增大和编码器计数不增长,故判定为到边界x=x
max
处,随后电机驱动滑块立刻返回x=0处,使电机在运动过程中,靠空气对电机进行快速散热,从而达到较为恒定的状态。
19.上述的步骤一中,测量输入延迟和制动时间和位移,具体为:
20.在滑块静止的情况下,发送指令使电机转动,该时刻记为t1,使电机驱动滑块向x轴正方向(x+)开始运动;
21.当编码器计数从0到1时,该时刻记为t2;
22.当摄像头画面从静止状态刚到运动状态时,该时刻设置为t3;
23.从而计算得:
24.发送指令至电机编码器计数变化的延迟为d
mot
=min(d
mot
,t
2-t1),首次计算时d
mot
=t
2-t1,即电机延迟时间;
25.发送指令至摄像头变化的延迟为d
cam
=min(d
cam
,t
3-t1),首次计算时d
cam
=t
3-t1,即摄像头延迟时间;
26.在滑块匀速运动时,停止对电机输出,该时刻记为t4,此时电机编码器的计数从m=0开始计数;
27.滑块因惯性逐渐停止运动;
28.当摄像头画面从运动状态刚到静止状态时,该时刻记为t5,此时m=m
stop

29.从而计算出,从发送停止指令至实际停止,需要δt
stop
=t
5-t4,滑行距离为m=m
stop-0;
30.同理,使电机驱动滑块向x轴负方向(x-)开始运动,二次测量输入延迟;
31.进入匀速状态后,停止对电机的输出,并记录负向运动的制动时间和位移;
32.除首次执行,之后的每次执行将建立m
stop
与loc的x+方向和x-方向的两组线性关系:m
stop
=m
stop1
(loc)x+运动方向,m
stop
=m
stop2
(loc)x-运动方向。
33.上述的步骤一中,记录全程摄像头偏移量和电机计数,具体为:
34.将滑块从x=0边界移动到另一端x=x
max
边界,此时n=0,m=0,当电机进入匀速状态时,记录为t6时刻;从t6+d
cam
时刻开始n=n1,记录每一帧的像素偏移量δsn;当电机驱动滑块到边界x=x
max
处时,记录为t7时刻;在t7+d
cam
时刻,此时n=n
end

35.同时,在t6+d
mot
时刻,从m=m1开始实时记录编码器的计数m和每一计数的记录时刻tm;直到滑块运动到另一端边缘x=x
max
处,t7时刻;在t7+d
mot
时刻,此时m=m
end
;最终求出匀速状态的平均速率:v=(m
end-m1)/(t
7-t6);
36.同理,再从x=x
max
处运动到x=0边界处,记录全程摄像头偏移量和电机计数;当正
反行程的m
end
不一致时,取其最大值m
end
=max(m
end1
,m
end2
);
37.建立像素偏移量δsi与编码器计数cj关系;
38.像素偏移量δsi所对应的时间(ti=t6+d
cam
+(n-n1)/fps)与摄像头的帧率关联,而编码器计数cj所对应的时间(tj=t6+d
mot
+(m-m1)/v)与计数的记录时刻关联,通过统一的时间单位的换算和插值后,建立像素偏移量δs与编码器计数c的关系图,并对两个来回的行程进行拼合,建立线性关系δs(c)。
39.上述的就绪状态下,若有待执行的作业,表示不空闲;若空闲时间在短期时间阈值内,且无作业安排,表示短期空闲;若空闲时间达到长期空闲时间阈值,且无作业安排,表示长期空闲。
40.上述的步骤二具体包括:
41.步骤b1:进行作业,执行作业指令;
42.步骤b2:对滑块位置进行预估和跟踪:
43.滑块的位置为loc=m/m
end
×
100%
44.其中,m
end
为滑轨全长,m为当前的电机编码器的计数;
45.步骤b3:对目标位置进行运动预判,使电机驱动滑块停止在指定目标物前;
46.步骤b4:通过上层应用对摄像头内容进行识别判断滑块停止位置是否准确,若准确执行步骤b5;否则执行步骤b6;
47.步骤b5:执行上层应用的操作,所有指令执行完毕后,进入就绪状态;
48.步骤b6:对偏移进行纠正:
49.根据上层应用对摄像头内容进行识别,识别出目标位置基准,再次用电机驱动滑块移动到目标基准处;计算出初始停止位置与基准处的像素偏移量δs
err
,并记录在纠正过程中的电机编码器计数m
err

50.步骤b7:对制动时间距离量进行反馈:
51.将制动起始点loc和δs(loc)+δs
err
重新带入δs(c)函数,并对函数重新进行线性回归计算;
52.将制动起始点loc和m
stop
(loc)+m
err
重新带入m
stop
(loc)函数,并对函数重新进行线性回归计算。
53.上述的步骤b3包括:
54.步骤b3.1:通过上层应用获得目标位置,计算当前位置与目标位置的像素偏移量δs
aim
;根据之前对于制动距离的估算m
stop
(loc)函数,计算出制动所需的距离;再将m
stop
(loc)代入δs(c)得到预计的制动像素偏移量
55.步骤b3.2:
56.当δs
aim
》δs
stop
时,系统先不处理,重复执行步骤b3.1;
57.当时,系统停止对电机输出,并等待滑块停止;
58.当δs
aim
《δs
stop
时,系统对制动距离进行预判,并计算出像素偏差量δs
sa
=δs
stop-δs
aim
,通过δs(c)的线性关系,转化为δc=δs-1
(δs
sa
),根据δc的大小,对电机施加反向作用,进行减速。
59.上述的步骤三拟合位置与制动时间距离的线性关系,具体包括:
60.分别建立x+方向运动的位置loc与像素偏移量s
stop
的关系,x-方向运动的位置loc与像素偏移量s
stop
的关系;对同一方向的不同位置点的位置loc与像素偏移量s
stop
进行线性回归拟合,得到s
stop
(loc)函数。
61.本发明具有以下有益效果:
62.本发明除常规的电机编码器,引入摄像头作为控制算法的一部分来提高电机运动位置的实时性和精确性;利用摄像头的像素偏移量来计算与目标位置的距离和预判电机停止运动;利用在系统空闲时段,让电机进行自测计算,从为接下来电机作业的运动状况提供的预判,并使预判越来越准确,可提高滑块对目标位置定位的精确性和实时性;在保证平滑运动的情况下,提高运动的响应速率;对于直线滑轨,可以减少因形变弯曲所带来的影响;可适用于任意方向且弯曲的滑轨;对于越是高速的滑轨,对于算法的运动要求就越高,本发明可适用于高速滑轨;减小因滑轨的微小形变给运动系统带来的影响;减小因异常环境(如皮带打滑、滑轨异物)给运动系统带来的影响;减小因负载变化给运动系统带来的影响;在保证平滑运动的情况下,提高运动的响应速率;提高滑块对目标位置定位的精确性和实时性;此外,利用摄像头来改善滑块的运动,降低了设备成本。
附图说明
63.图1为本发明基于摄像头的一维滑轨控制方法流程图。
具体实施方式
64.以下结合附图对本发明的实施例作进一步详细描述。
65.如图1所示,本发明基于摄像头的一维滑轨控制方法,应用于由电机驱动滑块的一维的滑轨上,所述摄像头安装于滑块上,配合上层图像识别应用,对目标物进行识别,来确定滑块的停止时间和距离;利用在闲时进行自测校准,和对于不同位置的电机停止测试,计算出在不同位置、不同负载情况下的制动预判,提高整个电机系统的运动效率,以及使滑块可以更为平滑地运动;同时,也适应对于非直线、非水平滑轨的电机工作情况;所述方法包括以下步骤:
66.步骤一、摄像头工作,电机预热,测量输入延迟和制动时间和位移,记录全程摄像头偏移量和电机计数并拟合摄像头偏移量和电机转动量的线性关系后进入就绪状态;
67.步骤二、就绪状态下,判断是否空闲:
68.如不空闲,则进行作业,对滑块位置进行实时跟踪,对目标位置进行运动预判,并判断最终停止位置是否准确,若不准确,则对位置偏移量进行补偿并对制动时间距离量进行反馈,若准确,则作业完成,重新进入就绪状态;
69.若空闲,则进行是否长期空闲判断,若是,则进入步骤四,否则进入步骤三;
70.步骤三、在不同位置,测量输入延迟并计算最小值,测量制动时间和距离,拟合位置与制动距离的线性关系后进入就绪状态;
71.步骤四、记录全程摄像头像素偏移量和电机计数,拟合摄像头像素偏移量和电机转动量的线性方程后进入就绪状态;
72.实施例中,所述步骤一包括:
73.步骤a1:摄像头工作,实时获取摄像头像素偏移量:
74.将图像进行转换成灰度图像,然后使用canny边缘检测算法计算出图像特征物的边缘线条,即轮廓线,并将轮廓线的像素点进行保存;
75.持续记录摄像头每一帧的轮廓线的像素点,将当前帧的像素点与上一帧的像素点进行比对,并计算出每个像素点的位移量,并求出所有像素点位移量的中值,最终计算出每一帧的像素偏移量;该步骤与其它步骤并行执行;
76.步骤a2:电机预热,驱动滑块沿滑轨边界运动:
77.假设滑轨的行程为x轴,电机驱动滑块移动到x=0的边界处,且继续向x轴的负方向(x-)运动,使电机堵转一段时间,使电机实现快速预热,随后再从x=0处向x轴正方向(x+)运动,当电机到达另一端边界时,电机会发生堵转,电机电流增大和编码器计数不增长,故判定为到边界x=x
max
处,随后电机驱动滑块立刻返回x=0处,使电机在运动过程中,靠空气对电机进行快速散热,从而达到较为恒定的状态;
78.步骤a3:测量输入延迟和制动时间和位移:
79.在滑块静止的情况下,发送指令使电机转动,该时刻记为t1,使电机驱动滑块向x轴正方向(x+)开始运动;
80.当编码器计数从0到1时,该时刻记为t2;
81.当摄像头画面从静止状态刚到运动状态时,该时刻设置为t3;
82.从而计算得:
83.发送指令至电机编码器计数变化的延迟为d
mot
=min(d
mot
,t
2-t1)(首次计算时d
mot
=t
2-t1),即电机延迟时间;
84.发送指令至摄像头变化的延迟为d
cam
=min(d
cam
,t
3-t1)(首次计算时d
cam
=t
3-t1),即摄像头延迟时间;
85.在滑块匀速运动时,停止对电机输出(输出的pwm占空比为0),该时刻记为t4,此时电机编码器的计数从m=0开始计数;
86.滑块因惯性逐渐停止运动;
87.当摄像头画面从运动状态刚到静止状态时,该时刻记为t5,此时m=m
stop

88.从而计算出,从发送停止指令至实际停止,需要δt
stop
=t
5-t4,滑行距离为m=m
stop-0;
89.同理,使电机驱动滑块向x轴负方向(x-)开始运动,二次测量输入延迟;
90.进入匀速状态后,停止对电机的输出,并记录负向运动的制动时间和位移;
91.除首次执行,之后的每次执行将建立m
stop
与loc的x+方向和x-方向的两组线性关系:m
stop
=m
stop1
(loc)x+运动方向,m
stop
=m
stop2
(loc)x-运动方向;
92.步骤a4:记录全程摄像头偏移量和电机计数:
93.将滑块从x=0边界移动到另一端x=x
max
边界,此时n=0,m=0,当电机进入匀速状态时,记录为t6时刻;从t6+d
cam
时刻开始n=n1,记录每一帧的像素偏移量δsn;当电机驱动滑块到边界x=x
max
处时,记录为t7时刻;在t7+d
cam
时刻,此时n=n
end

94.同时,在t6+d
mot
时刻,从m=m1开始实时记录编码器的计数m和每一计数的记录时刻tm;直到滑块运动到另一端边缘x=x
max
处(t7时刻);在t7+d
mot
时刻,此时m=m
end
;最终求出匀速状态的平均速率:v=(m
end-m1)/(t
7-t6);
95.同理,再从x=x
max
处运动到x=0边界处,记录全程摄像头偏移量和电机计数;当正
反行程的m
end
不一致时,取其最大值m
end
=max(m
end1
,m
end2
);
96.在匀速状态下,因摄像头的角度或弯曲的轨道,每帧的“像素偏移量δs
i”并非是定值,为了更好的预判制动距离和时间,需要建立“像素偏移量δs
i”与“编码器计数c
j”关系;
[0097]“像素偏移量δs
i”所对应的时间(ti=t6+d
cam
+(n-n1)/fps)与摄像头的帧率关联,而“编码器计数c
j”所对应的时间(tj=t6+d
mot
+(m-m1)/v)与计数的记录时刻关联,故可以通过统一的时间单位的换算和插值后,建立“像素偏移量δs”与“编码器计数c”的关系图(即摄像头所侦测到的位移与电机侦测到的位移量进行对应),并对两个来回的行程进行拼合,建立线性关系δs(c);
[0098]
步骤a5:就绪状态:
[0099]
若有待执行的作业,表示不空闲,执行步骤b1(进行作业);
[0100]
若空闲一段时间(如3分钟)后,且无作业安排,表示短期空闲,执行步骤c1;
[0101]
若长时间空闲(如30分钟),且无作业安排,表示长期空闲,执行步骤d1。
[0102]
实施例中,步骤二具体包括:
[0103]
步骤b1:进行作业
[0104]
执行作业指令;
[0105]
步骤b2:对滑块位置进行预估和跟踪:
[0106]
根据电机编码器的计数来估算滑块的位置,编码器的计数随着电机正反旋转而加减;根据在步骤a4的测量中,已知滑轨全长为m
end
;故通过当前的电机编码器的计数m,可以得出滑块的大致位置为loc=m/m
end
×
100%
[0107]
步骤b3:对目标位置进行运动预判;
[0108]
当摄像头在作业状态下,检测到目标物时,将对其位置进行制动预判,使电机驱动滑块可以精确的停止在指定目标物前;减少和避免非必要的二次校准;
[0109]
首先通过上层应用,定位目标位置,得到在摄像头中的目标位置;
[0110]
步骤b3.1:计算当前位置与目标位置的像素偏移量δs
aim
;根据之前对于制动距离的估算m
stop
(loc)函数,计算出制动所需的距离;再将m
stop
(loc)代入δs(c)得到预计的制动像素偏移量
[0111][0112]
步骤b3.2:
[0113]
当δs
aim
》δs
stop
时,系统先不处理,重复执行步骤b3.1;
[0114]
当时,系统停止对电机输出(输出的pwm占空比为0),并等待滑块停止;
[0115]
当δs
aim
《δs
stop
时,系统对制动距离进行预判,并计算出像素偏差量δs
sa
=δs
stop-δs
aim
,通过δs(c)的线性关系,转化为δc=δs-1
(δs
sa
),根据δc的大小,对电机施加反向作用,进行减速;
[0116]
步骤b4:判断最终停止位置是否准确?
[0117]
通过上层应用对摄像头内容进行识别判断滑块停止位置是否准确,若准确执行步骤b5;否则执行步骤b6;
[0118]
步骤b5:作业完成
[0119]
执行上层应用的操作,所有指令执行完毕后,返回步骤a5(就绪状态);
[0120]
步骤b6:对偏移进行纠正
[0121]
根据上层应用对摄像头内容进行识别,识别出目标位置基准,再次用电机驱动滑块移动到目标基准处;计算出初始停止位置与基准处的像素偏移量δs
err
,并记录在纠正过程中的电机编码器计数m
err

[0122]
步骤b7:对制动时间距离量进行反馈
[0123]
将制动起始点loc和δs(loc)+δs
err
重新带入δs(c)函数,并对函数重新进行线性回归计算;
[0124]
将制动起始点loc和m
stop
(loc)+m
err
重新带入m
stop
(loc)函数,并对函数重新进行线性回归计算。
[0125]
实施例中,步骤三具体包括:
[0126]
步骤c1:短期空闲
[0127]
在不同位置,执行步骤a3(测量输入延迟、测量制动时间和位移),随后执行c2;
[0128]
步骤c2:拟合位置与制动时间距离的线性关系
[0129]
因滑轨可能是非直线、非水平的滑轨,所以x+和x-方向,以及不同位置的制动时间和距离均有略微的不同;为了能更精确的估算出不同位置的制动时间和距离,将分别建立x+方向运动的“位置loc”与“像素偏移量s
stop”的关系;x-方向运动的“位置loc”与“像素偏移量s
stop”的关系;对同一方向的不同位置点的“位置loc”与“像素偏移量s
stop”进行线性回归拟合,得到s
stop
(loc)函数;
[0130]
实施例中,步骤四包括:
[0131]
步骤d1:长期空闲:执行步骤a4(记录全程摄像头偏移量和电机计数)
[0132]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1