一种清洁机器人识别基站位置的方法与流程

文档序号:31144518发布日期:2022-08-16 23:03阅读:57来源:国知局
一种清洁机器人识别基站位置的方法与流程

1.本发明涉及一种清洁机器人识别基站位置的方法。


背景技术:

2.清洁机器人在返回基站的过程中,通常采用红外、激光等传感器来定位基站的位置。而针对激光方式识别基站,目前常见的做法是通过激光雷达获取光强数据,利用阈值对基站上的强反光区域与吸光区域进行区分,从而实现定位到基站。
3.当激光雷达与基站的位置不同、角度不同时,扫描基站得到的光强数据也是不一样的,即其能够区分基站上的强反光区域与吸光区域的阈值也是不同的,因此需要多次试验获得多组阈值来匹配不同的位置和角度,并且在明暗程度不同的环境中,其试验的结果也是不同,因此该方法存在明显的不能自适应问题。


技术实现要素:

4.本发明所要解决的技术问题是针对上述现有技术提供一种环境适应性强、定位精确的清洁机器人识别基站位置的方法。
5.本发明解决上述技术问题所采用的技术方案为:一种清洁机器人识别基站位置的方法,其特征在于:在基站表面设置m个强反光区和m-1个吸光区,m个强反光区的宽度分别为x1、x2、

xm,m-1个吸光区的宽度分别为y1y2…ym-1
,m为大于等于2的自然数,强反光区和吸光区间隔分布;在清洁机器人上设置激光雷达;所述清洁机器人通过如下步骤识别基站的位置:
6.步骤1:清洁机器人上的激光雷达扫描一圈周围环境,并收集激光雷达收到的探测数据,这些探测数据包括距离、光强值和角度,
7.令探测数据为data=[ranges intensities angle_increment];
[0008]
其中ranges表示激光雷达扫描一圈周围环境得到各个障碍物到激光雷达的距离,ranges=[range1、range2、

rangen];intensities表示对应障碍物反射回来的激光光强值,intensities=[intensities1、intensities2、

intensitiesn];n为扫描一圈得到的障碍物反射回来的激光点数;angle_increment=2π/n;
[0009]
步骤2、将探测数据中的光强进行可视化图像转换,得到光强可视化图像,光强可视化图像中的横坐标为索引值,即对应第几个激光点,纵坐标为对应的光强值;
[0010]
步骤3、找出光强可视化图像中的波峰点,具体包括:
[0011]
步骤3-1、计算intensities的一阶差分向量数组,记为i1i,i1i=intensity
i+1-intensityi,i=1,2,
……
n;
[0012]
步骤3-2、对i1i进行取符号函数运算,即遍历i1i,若元素值大于0,则取值为1,如果小于0,则取-1,否则取值为0,至此得到一个新的差分向量数组,记为i2i;
[0013]
步骤3-3、从尾部遍历i2i,如果当前元素值为0,且下一个元素值大于等于0,则当前元素值取值1;如果当前元素值为0,且下一个元素值小于0,则当前元素值取值-1;如果当
前元素值不为0,保持当前元素值不变;
[0014]
步骤3-4、对i2i进行一阶差分运算,得到的结果记为i3i,即i3i=i2
i+1-i2i,i=1,2,
……
n;
[0015]
步骤3-5、遍历i3i,如果当前元素值为-2,则下一个元素的下标为intensities的一个波峰位,记录所有的波峰位的下标存入数组a1中;
[0016]
步骤3-6、根据与基站中的强反光区对应的预设的m个波峰高度和宽度,以及预设的相邻两个波峰之间的距离,对数组a1进行一次筛选,即将数组a1中与预设的波峰高度和宽度相同、且相邻两个波峰之间的距离与预设的相邻两个波峰之间的距离相同的元素筛选出来,筛选过后得到的数组记为a2,如果数组a2中的元素个数小于m,则表示当前位置未识别到基站,否则进入下一步;
[0017]
步骤4、对光强可视化图像中的波峰点进行二次筛选,具体包括:
[0018]
步骤4-1、对于数组a2,设其表达式如下所示
[0019]
a2=[a1ꢀ…ꢀaj
ꢀ…ꢀal
]
[0020]
j=1,2,
……
l;aj为intensities的元素下标,因此根据aj值,取对应的距离值将数组a2中所有的索引元素都取对应的距离,得到一个距离数组d,则有
[0021][0022]
步骤4-2、根据数组a2和数组d,计算出所有相邻波峰间的真实距离,得到数组w,则有
[0023]
w=[w1ꢀ…ꢀ
wjꢀ…ꢀwl-1
]
[0024]
其中wj表示第j和第j+1个波峰对应索引之间的距离,则:
[0025]
wj=d
j2
+d
j+12-2
×dj
×dj+1
×
cosθ
[0026]
其中,dj和d
j+1
分别表示第j个波峰点和第j+1个波峰点到激光雷达的距离;
[0027]
θ=angle_increment
×
(a
j+1-aj)
[0028]
步骤4-3、从前到后遍历数组w,每次遍历取当前元素及其往后m-1个元素,令第k次遍历,取[wk,w
k+1
,

,w
k+m-1
],并进行如下计算:
[0029][0030]
k=1,2,

l-m
[0031]
其中c为误差,如果该误差大于预设值,则表示当前取的m个元素[wk,w
k+1
,

,w
k+m-1
]没有与基站的波峰距离匹配上,将当前wk进行剔除;当k取l-m次遍历执行完后,进入步骤4-4;
[0032]
步骤4-4、如果w1满足连续m个元素的下标是连续的,则计算这m元素值之和是否满足预设总长度,对于不满足的,则剔除当前元素;
[0033]
步骤4-5、对于执行步骤4-4后,如果w1的长度小于0,则表示当前位置未识别到基站,否则,将剩下的元素所对应障碍物所在位置作为识别到的基站位置。
[0034]
所述强反光区表面贴有强反光膜;所述吸光区表面贴有吸光膜。
[0035]
作为优选,所述m=4,4个强反光区和3个吸光区的排列顺序为:强反光区、吸光区、强反光区、吸光区、强反光区、吸光区、强反光区。
[0036]
将探测数据中光强值为镜面干扰形成的光强值和阳光干扰形成的光强值进行替换处理,替换方法为:将被替换点最近的左右邻近的可信的光强值进行平均计算,得到的值作为被替换点的光强值,如果被替换点是第一个点,则将距离被替换点最近的右邻近的可信的光强值作为被替换点的光强值,如果被替换点是最后一个点,则将距离被替换点最近的左邻近的可信的值作为被替换点的光强值;
[0037]
将激光点距离为0对应的光强值进行替换,替换方法同上。
[0038]
与现有技术相比,本发明的优点在于:强反光区和吸光区制作简易,额外增加成本很低,激光受环境干扰比较小,相对稳定,通过波峰识别基站上的强反光区和吸光区,通用性好,受环境干扰小,不受机器人相对基站的位置和角度影响。
附图说明
[0039]
图1为本发明实施例中基站表面强反光区和吸光区分别示意图。
[0040]
图2为本发明实施例中光强可视化图像的示意图。
具体实施方式
[0041]
以下结合附图实施例对本发明作进一步详细描述。
[0042]
本实施例提供了一种清洁机器人识别基站位置的方法,需要在基站1表面设置m个强反光区2和m-1个吸光区3,m个强反光区的宽度分别为x1、x2、

xm,m-1个吸光区的宽度分别为y1y2…ym-1
,m为大于等于2的自然数,且强反光区和吸光区间隔分布,即自左向后,依次为强反光区、吸光区、强反光区、吸光区、
……
、强反光区、吸光区、强反光区,然后在清洁机器人上设置激光雷达。
[0043]
以m=4为例,4个强反光区2和3个吸光区3的排列顺序为:强反光区、吸光区、强反光区、吸光区、强反光区、吸光区、强反光区,参见图1所示。
[0044]
强反光区2表面贴有强反光膜,如白色强反光膜;吸光区3表面贴有吸光膜,如黑色强反光膜,增加成本较低。
[0045]
所述清洁机器人通过如下步骤识别基站的位置:
[0046]
步骤1:清洁机器人上的激光雷达扫描一圈周围环境,并收集激光雷达收到的探测数据,这些探测数据包括距离、光强值和角度,
[0047]
令探测数据为data=[ranges intensities angle_increment];
[0048]
其中ranges表示激光雷达扫描一圈周围环境得到各个障碍物到激光雷达的距离,ranges=[range1、range2、

rangen];intensities表示对应障碍物反射回来的激光光强值,intensities=[intensities1、intensities2、

intensitiesn];n为扫描一圈得到的障碍物反射回来的激光点数;angle_increment=2π/n;
[0049]
然后,将探测数据中光强值为镜面干扰形成的光强值和阳光干扰形成的光强值进行替换处理,替换方法为:将被替换点最近的左右邻近的可信的光强值进行平均计算,得到的值作为被替换点的光强值,如果被替换点是第一个点,则将距离被替换点最近的右邻近的可信的光强值作为被替换点的光强值,如果被替换点是最后一个点,则将距离被替换点最近的左邻近的可信的值作为被替换点的光强值;镜面干扰形成的光强值一般为1021,阳光干扰形成的光强值一般为1022;将激光点距离为0对应的光强值进行替换,替换方法同
上;
[0050]
步骤2、将探测数据中的光强进行可视化图像转换,得到光强可视化图像,光强可视化图像中的横坐标为索引值,即对应第几个激光点,纵坐标为对应的光强值,参见图2所示;
[0051]
步骤3、找出光强可视化图像中的波峰点,具体包括:
[0052]
步骤3-1、计算intensities的一阶差分向量数组,记为i1i,i1i=intensity
i+1-intensityi,i=1,2,
……
n;
[0053]
步骤3-2、对i1i进行取符号函数运算,即遍历i1i,若元素值大于0,则取值为1,如果小于0,则取-1,否则取值为0,至此得到一个新的差分向量数组,记为i2i;
[0054]
步骤3-3、从尾部遍历i2i,如果当前元素值为0,且下一个元素值大于等于0,则当前元素值取值1;如果当前元素值为0,且下一个元素值小于0,则当前元素值取值-1;如果当前元素值不为0,保持当前元素值不变;
[0055]
步骤3-4、对i2i进行一阶差分运算,得到的结果记为i3i,即i3i=i2
i+1-i2i,i=1,2,
……
n;
[0056]
步骤3-5、遍历i3i,如果当前元素值为-2,则下一个元素的下标为intensities的一个波峰位,记录所有的波峰位的下标存入数组a1中;
[0057]
步骤3-6、根据与基站中的强反光区对应的预设的m个波峰高度和宽度,以及预设的相邻两个波峰之间的距离,对数组a1进行一次筛选,即将数组a1中与预设的波峰高度和宽度相同、且相邻两个波峰之间的距离与预设的相邻两个波峰之间的距离相同的元素筛选出来,筛选过后得到的数组记为a2,如果数组a2中的元素个数小于m,则表示当前位置未识别到基站,否则进入下一步;
[0058]
步骤4、对光强可视化图像中的波峰点进行二次筛选,具体包括:
[0059]
步骤4-1、对于数组a2,设其表达式如下所示
[0060]
a2=[a1ꢀ…ꢀaj
ꢀ…ꢀal
]
[0061]
j=1,2,
……
l;aj为intensities的元素下标,因此根据aj值,取对应的距离值将数组a2中所有的索引元素都取对应的距离,得到一个距离数组d,则有
[0062][0063]
步骤4-2、根据数组a2和数组d,计算出所有相邻波峰间的真实距离,得到数组w,则有
[0064]
w=[w1ꢀ…ꢀ
wjꢀ…ꢀwl-1
]
[0065]
其中wj表示第j和第j+1个波峰对应索引之间的距离,则:
[0066]
wj=d
j2
+d
j+12-2
×dj
×dj+1
×
cosθ
[0067]
其中,dj和d
j+1
分别表示第j个波峰点和第j+1个波峰点到激光雷达的距离;
[0068]
θ=angle_increment
×
(a
j+1-aj)
[0069]
步骤4-3、从前到后遍历数组w,每次遍历取当前元素及其往后m-1个元素,令第k次遍历,取[wk,w
k+1
,

,w
k+m-1
],并进行如下计算:
[0070]
[0071]
k=1,2,

l-m
[0072]
其中c为误差,如果该误差大于预设值,则表示当前取的m个元素[wk,w
k+1
,

,w
k+m-1
]没有与基站的波峰距离匹配上,将当前wk进行剔除;当k取l-m次遍历执行完后,进入步骤4-4;
[0073]
步骤4-4、如果w1满足连续m个元素的下标是连续的,则计算这m元素值之和是否满足预设总长度,对于不满足的,则剔除当前元素;
[0074]
步骤4-5、对于执行步骤4-4后,如果w1的长度小于0,则表示当前位置未识别到基站,否则,将剩下的元素所对应障碍物所在位置作为识别到的基站位置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1