一种防止位置检测抖动的算法的制作方法

文档序号:30267134发布日期:2022-06-02 04:49阅读:277来源:国知局
一种防止位置检测抖动的算法的制作方法

1.本发明涉及车载技术领域,具体为一种防止位置检测抖动的算法。


背景技术:

2.现如今出行越来越依赖与车,车钥匙也越来越智能。很多的车钥匙都在使用蓝牙、rfid、uwb等无线技术进行位置的自动感应,从而做到智能解锁,落锁。
3.但是这些无线技术都存在一个缺陷:无线技术容易收到外界的干扰,导致通过rssi值或者飞行时间计算出来的距离发生比较大的波动,从而引起多点检测计算的位置发生很大的抖动。比如驾驶员在解锁线临界区域,由于检测位置抖动,会发生解锁后车辆又被落锁,然后又重新解锁,给客户非常差的体验。


技术实现要素:

4.本发明的目的在于提供一种防止位置检测抖动的算法,可以避免蓝牙,uwb,rfid等无线定位技术由于干扰或者个别基站偶尔通信失败等导致的位置定位抖动的问题。为了实现上述目的,通过以下技术方案实现。
5.本发明提供了一种防止位置检测抖动的算法,包括以下步骤:s1:设置车身投影的长方形区域ps的中心点(x0,y0)为坐标原点,以由车头指向车尾方向为纵向x轴,由车身右侧指向左侧为横向y轴,在所述区域ps外围为区域pe,对所述区域pe进行子区域划分,所述子区域包括车头,车尾,左前门,左后门,右前门和右后门区域;s2:对每一所述子区域划分成检测区域和临界区域;s3:判断当前车钥匙的检测位置是否在所述区域ps,若在,则钥匙位置类型type不变,延用上一次的位置类型。再继续判断钥匙是否进入ps检测区域,若是则位置类型type = ps;否则,检测当前车钥匙的检测位置是否在所述区域pe,若在pe区域中,则继续判断当前车钥匙是否在任一所述子区域检测位置中,若在则继续判断是否已经进入子区域的检测区域,如果是更改所述钥匙位置类型type = 子区域位置类型,若不在pe区域中,设置钥匙位置为未知区域,type = unknown。
6.其中,所述s1还包括:所述区域ps长度为l,宽度为w;划分所述区域pe时,将所述区域ps的4个顶角向外延伸连接至区域pe对应的四个顶点,将所述区域pe划分成车头,车尾,左侧和右侧区域;所述延伸线与车身区域纵向中轴线夹角为45
°
;将所述左侧区域中分成左前门和左后门区域,将右侧区域中分成右前门和右后门区域。
7.所述区域pe和所述区域ps形状相同,并成一预设比例大小,每一所述区域ps与其对应区域pe的每条对应边之间距离为r;所述区域ps内侧部分为虚线区域ps作为检测区域。
8.每一子区域与其对应的所述检测区域均为形状相同,并成一预设比例大小;每一所述检测区域与其对应子区域的每条对应边之间距离为d;所述临界区域为宽度为d的环形
状。
9.进一步的,定义所述子区域的坐标范围为:车头x坐标 x_head = x0

l/2;车尾x坐标 x_tail = x0 + l/2;车左侧y坐标 y_left = y0 + w/2;车右侧y坐标 y_right = y0
ꢀ–ꢀ
w/2。
10.所述s3还包括:判断当前车钥匙是否在区域ps中,判断公式为:x 》= x_head && x 《= x_tail, y》= y_right && y 《《 y_left;若在区域ps中,则延用上一次的位置类型;当钥匙进入虚线ps检测区域即x 》= x_head + d && x 《= x_tail
ꢀ–
d , y》= y_right + d && y 《《 y_left

d ,则更新位置类型type = ps。
11.所述s3还包括:若当前车钥匙不在区域ps中,则判断当前车钥匙是否在所述区域pe中的任一处,依次进行所述子区域位置中的车头,车尾,左前门,左后门,右前门和右后门的位置判断,包括:s301:获取当前车钥匙在任一所述子区域位置中;s302:判断上一次钥匙位置类型,若位置类型不在所述子区域位置中,即为位置类型type = unknown,则改为当前钥匙位置类型type =子区域位置;如果上一次的位置类型不是unknown,则转s303;s303:判断钥匙是否进入子区域检测区域,若当前车钥匙的x,y位置类型满足子区域检测区域的公式条件,则改为当前钥匙位置类型type =子区域位置,并将type类型添加到位置类型数组中,判断新添加的所述钥匙位置类型type在所述位置类型数组中同样位置类型type个数是否占该数组存储最大数据个数的一半,若是,则将当前钥匙位置作为新的type位置;否则,认定所述当前钥匙位置受到干扰引起位置跳变,并继续保留在原type位置。
12.所述子区域位置的判断,包括:所述车尾区域判断公式为:x 》 x_tail && x 《 x_tail + r && y + x 》 y_right + x_tail && y
ꢀ–ꢀ
x 《 y_left
ꢀ–ꢀ
x_tail。
13.所述车头区域判断公式为:x 》 x_head
ꢀ‑ꢀ
r && x 《 x_head && y
ꢀ‑ꢀ
x 》 y_right
ꢀ‑ꢀ
x_head && y + x 《 y_left + x_head。
14.所述左前门区域判断公式为:y 》 y_left && y 《 y_left + r && x + y 》 x_head + y_left && x 《 x0 。
15.所述左后门区域判断公式为:y 》 y_left && y 《 y_left r && x 》 x0 && x
ꢀ‑ꢀ
y 《 x_tail
ꢀ‑ꢀ
y_left。
16.所述右前门区域判断公式为:y 《 y_right && y 》 y_right
ꢀ‑ꢀ
r && x
ꢀ‑ꢀ
y 》 x_head
ꢀ‑ꢀ
y_right && x 《 x0。
17.所述右后门区域判断公式为:
y 《 y_right && y 》 y_right
ꢀ‑ꢀ
r && x 》 x0 && x + y 《 x_tail + y_right。
18.所述子区域检测区域的判断,包括:判断钥匙是否进入车尾检测区域,判断公式为:x 》 x_tail + d && x 《 x_tail + r
‑ꢀ
d && y + x 》 y_right + x_tail + d && y
ꢀ–ꢀ
x 《 y_left
ꢀ–ꢀ
x_tail
ꢀ–
d。
19.判断钥匙是否进入车头检测区域,判断公式为:x 》 x_head
ꢀ‑ꢀ
r + d && x 《 x_head
ꢀ‑ꢀ
d && y
ꢀ‑ꢀ
x 》 y_right
ꢀ‑ꢀ
x_head + d && y +x 《 y_left + x_head
ꢀ–
d。
20.判断钥匙是否进入左前门检测区域,判断公式为:y 》 y_left + d && y 《 y_left + r
ꢀ–
d && x + y 》 x_head + y_left + d && x 《 x0
ꢀ‑ꢀ
d。
21.判断钥匙是否进入左后门检测区域,判断公式为:y 》 y_left + d && y 《 y_left r
ꢀ–ꢀ
d && x 》 x0 + d && x
ꢀ‑ꢀ
y 《 x_tail
ꢀ‑ꢀ
y_left
ꢀ‑ꢀ
d。
22.判断钥匙是否进入右前门检测区域,判断公式为:y 《 y_right
ꢀ‑ꢀ
d && y 》 y_right
ꢀ–ꢀ
r + d && x
ꢀ‑ꢀ
y 》 x_head
ꢀ‑ꢀ
y_right + d && x 《 x0
ꢀ‑ꢀ
d。
23.判断钥匙是否进入右后门检测区域,判断公式为:y 《 y_right
ꢀ‑ꢀ
d && y 》 y_right
ꢀ‑ꢀ
r + d && x 》 x0 + d && x + y 《 x_tail + y_right
ꢀ‑ꢀ
d。
24.所述钥匙位置类型数组中保存10次历史位置类型记录,并按一预设频率实时更新数据;所述钥匙位置类型数组中每次新增一新的钥匙位置类型type时,剔除最先加入的钥匙位置类型type。
25.本发明所述的一种防止位置检测抖动的算法,以车身投影的长方形区域ps的中心点为坐标原点对车身分别进行区域划分成车头,车尾,左前门,左后门,右前门和右后门区域;在对每一所述子区域划分成检测区域ps和临界区域pl,判断当前车钥匙的检测位置,若在临界区域pl,则钥匙位置类型type不变,延用上一次的位置类型;若在检测区域,则更改所述钥匙位置类型type,从而防止由于干扰引起的位置跳变,导致误判了钥匙位置。
附图说明
26.图1为车坐标原点对车身分别进行区域划分示意图。
具体实施方式
27.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所活动的所有其他实施例,都属于本发明保护的范围。
28.本发明提供的一种防止位置检测抖动的算法,包括以下步骤:s1:设置车身投影的长方形区域ps的中心点(x0,y0)为坐标原点,以由车头指向车
尾方向为纵向x轴,由车身右侧指向左侧为横向y轴,在所述区域ps外围为区域pe,对所述区域pe进行子区域划分,所述子区域包括车头,车尾,左前门,左后门,右前门和右后门区域;s2:对每一所述子区域划分成检测区域和临界区域;s3:判断当前车钥匙的检测位置是否在所述区域ps,若在,则钥匙位置类型type不变,延用上一次的位置类型。再继续判断钥匙是否进入ps检测区域,若是则位置类型type = ps;否则,检测当前车钥匙的检测位置是否在所述区域pe,若在pe区域中,则继续判断当前车钥匙是否在任一所述子区域检测位置中,若在则继续判断是否已经进入子区域的检测区域,如果是更改所述钥匙位置类型type = 子区域位置类型,若不在pe区域中,设置钥匙位置为未知区域,type = unknown。
29.其中,如图1所示,所述区域ps长度为l,宽度为w;划分所述区域pe时,将所述区域ps的4个顶角向外延伸连接至区域pe对应的四个顶点,将所述区域pe划分成车头,车尾,左侧和右侧区域;所述延伸线与车身区域纵向中轴线夹角为45
°
;将所述左侧区域中分成左前门和左后门区域,将右侧区域中分成右前门和右后门区域。
30.所述区域pe和所述区域ps形状相同,并成一预设比例大小,每一所述区域ps与其对应区域pe的每条对应边之间距离为r;所述区域ps内侧部分为虚线区域ps作为检测区域。
31.每一子区域与其对应的所述检测区域均为形状相同,并成一预设比例大小;每一所述检测区域与其对应子区域的每条对应边之间距离为d;所述临界区域为宽度为d的环形状。
32.定义所述子区域的坐标范围为:车头x坐标 x_head = x0

l/2;车尾x坐标 x_tail = x0 + l/2;车左侧y坐标 y_left = y0 + w/2;车右侧y坐标 y_right = y0
ꢀ–ꢀ
w/2。
33.所述s3还包括:判断当前车钥匙是否在区域ps中,判断公式为:x 》= x_head && x 《= x_tail, y》= y_right && y 《《 y_left;若在区域ps中,则延用上一次的位置类型;当钥匙进入虚线ps检测区域即x 》= x_head + d && x 《= x_tail
ꢀ–
d , y》= y_right + d && y 《《 y_left

d ,则更新位置类型type = ps。
34.所述s3还包括:若当前车钥匙不在区域ps中,则判断当前车钥匙是否在所述区域pe中的任一处,依次进行所述子区域位置中的车头,车尾,左前门,左后门,右前门和右后门的位置判断,包括:s301:获取当前车钥匙在任一所述子区域位置中;s302:判断上一次钥匙位置类型,若位置类型不在所述子区域位置中,即为位置类型type = unknown,则改为当前钥匙位置类型type =子区域位置;如果上一次的位置类型不是unknown,则转s303;s303:判断钥匙是否进入子区域检测区域,若当前车钥匙的x,y位置类型满足子区域检测区域的公式条件,则改为当前钥匙位置类型type =子区域位置,并将type类型添加到位置类型数组中,判断新添加的所述钥匙位置类型type在所述位置类型数组中同样位置类型type个数是否占该数组存储最大数据个数的一半,若是,则将当前钥匙位置作为新的
type位置;否则,认定所述当前钥匙位置受到干扰引起位置跳变,并继续保留在原type位置。
35.所述子区域位置的判断,包括:所述车尾区域判断公式为:x 》 x_tail && x 《 x_tail + r && y + x 》 y_right + x_tail && y
ꢀ–ꢀ
x 《 y_left
ꢀ–ꢀ
x_tail。
36.所述车头区域判断公式为:x 》 x_head
ꢀ‑ꢀ
r && x 《 x_head && y
ꢀ‑ꢀ
x 》 y_right
ꢀ‑ꢀ
x_head && y + x 《 y_left + x_head;所述左前门区域判断公式为:y 》 y_left && y 《 y_left + r && x + y 》 x_head + y_left && x 《 x0 。
37.所述左后门区域判断公式为:y 》 y_left && y 《 y_left r && x 》 x0 && x
ꢀ‑ꢀ
y 《 x_tail
ꢀ‑ꢀ
y_left。
38.所述右前门区域判断公式为:y 《 y_right && y 》 y_right
ꢀ‑ꢀ
r && x
ꢀ‑ꢀ
y 》 x_head
ꢀ‑ꢀ
y_right && x 《 x0。
39.所述右后门区域判断公式为:y 《 y_right && y 》 y_right
ꢀ‑ꢀ
r && x 》 x0 && x + y 《 x_tail + y_right。
40.所述子区域检测区域的判断,包括以下:判断钥匙是否进入车尾检测区域,判断公式为:x 》 x_tail + d && x 《 x_tail + r
‑ꢀ
d && y + x 》 y_right + x_tail + d && y
ꢀ–ꢀ
x 《 y_left
ꢀ–ꢀ
x_tail
ꢀ–
d。
41.判断钥匙是否进入车头检测区域,判断公式为:x 》 x_head
ꢀ‑ꢀ
r + d && x 《 x_head
ꢀ‑ꢀ
d && y
ꢀ‑ꢀ
x 》 y_right
ꢀ‑ꢀ
x_head + d && y +x 《 y_left + x_head
ꢀ–
d。
42.判断钥匙是否进入左前门检测区域,判断公式为:y 》 y_left + d && y 《 y_left + r
ꢀ–
d && x + y 》 x_head + y_left + d && x 《 x0
ꢀ‑ꢀ
d。
43.判断钥匙是否进入左后门检测区域,判断公式为:y 》 y_left + d && y 《 y_left r
ꢀ–ꢀ
d && x 》 x0 + d && x
ꢀ‑ꢀ
y 《 x_tail
ꢀ‑ꢀ
y_left
ꢀ‑ꢀ
d。
44.判断钥匙是否进入右前门检测区域,判断公式为:y 《 y_right
ꢀ‑ꢀ
d && y 》 y_right
ꢀ–ꢀ
r + d && x
ꢀ‑ꢀ
y 》 x_head
ꢀ‑ꢀ
y_right + d && x 《 x0
ꢀ‑ꢀ
d。
45.判断钥匙是否进入右后门检测区域,判断公式为:y 《 y_right
ꢀ‑ꢀ
d && y 》 y_right
ꢀ‑ꢀ
r + d && x 》 x0 + d && x + y 《 x_tail + y_right
ꢀ‑ꢀ
d。
46.所述钥匙位置类型数组中保存10次历史位置类型记录,并按一预设频率实时更新数据;所述钥匙位置类型数组中每次新增一新的钥匙位置类型type时,剔除最先加入的钥匙位置类型type。
47.所述钥匙位置类型数组中保存10次历史位置类型记录,并按一预设频率实时更新数据。
48.所述钥匙位置类型数组中每次新增一新的钥匙位置类型type时,剔除最先加入的钥匙位置类型type。
49.作为另一优选的,如图1中所示,车头、车尾、左前门、左后门、右前门、右后门中每一子区域中虚线范围作为检测区域,在虚线和子区域实线围成的部分作为临界区域,当检测到车钥匙从车的区域pe外侧进入至区域pe内侧时,且在车钥匙未进入任一子区域中虚线范围前,则钥匙位置类型type延用上一次的位置类型。直到继续检测到车钥匙位置进入任一子区域中虚线范围,例如:进入车尾坐标范围:x 》 x_tail + d && x 《 x_tail + r
‑ꢀ
d && y + x 》 y_right + x_tail + d && y
ꢀ–ꢀ
x 《 y_left
ꢀ–ꢀ
x_tail
ꢀ–
d,则进入了车尾区域的检测区域,则更改所述钥匙位置类型type = 车尾区域pe,并添加到钥匙位置类型数组中。继续判断数组中,属于车尾区域位置类型type的个数是否占所述数组存储最大数据个数的一半,如数组存储最大数据个数若为10个,即车尾区域位置类型type的个数超过5个,则将当前钥匙位置作为新的type位置;如果是由于位置跳变导致检测到数据偏差,则检测到的车尾区域位置类型type的个数未超过5个,若只有1个,则说明,当前数组中存在另一位置类型type的个数超过5个,如所述另一位置类型type为车身位置类型type,则说明当前车钥匙保留为原来的位置类型type,即车钥匙位置类型type为车内ps,只是少数跳变点为车尾type类型,则认定所述当前钥匙位置受到干扰引起位置跳变,并继续保留在原type位置。
50.本发明所述的一种防止位置检测抖动的算法,设置车身投影的长方形区域ps的中心点为坐标原点,以由车头指向车尾方向为纵向x轴,由车身右侧指向左侧为横向y轴,在所述区域ps外围为区域pe,对所述区域pe进行子区域划分,对每一所述子区域划分成检测区域和临界区域。判断当前车钥匙的检测位置是否在所述区域ps,若在,则钥匙位置类型type不变,延用上一次的位置类型,再继续判断是否已经进入ps检测区域,如果是则改变位置类型为ps区域;否则,检测当前车钥匙的检测位置是否在所述区域pe,若在pe区域中,则继续判断当前车钥匙是否在任一所述子区域检测位置中,若在则继续判断是否已经进入子区域的检测区域,如果是更改所述钥匙位置类型type = 子区域位置类型,若不在pe区域中,设置钥匙位置为未知区域,type = unknown。然后根据当前位置类型在位置类型数组个数是否大于一半,来判断是否更新当前位置类型,从而防止由于干扰引起的位置跳变,导致误判了钥匙位置。
51.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体详细,但并不能因此理解为对本发明专利范围的限制,应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1