一种电子围栏和虚拟墙生成方法与流程

文档序号:31936010发布日期:2022-10-26 01:47阅读:179来源:国知局
一种电子围栏和虚拟墙生成方法与流程

1.本发明属于自主导航技术领域,具体为一种电子围栏和虚拟墙生成方法。


背景技术:

2.近年来,电子围栏已被广泛应用于设备导航领域。比如在车辆导航中,电子围栏可表示地图上的一个指定区域,在这个指定区域内车辆可以正常行驶,当行驶超过了指定区域后,车台设备gps就会进行报警。
3.如上所述,传统的电子围栏是由gps坐标点连接生成,即在需要设置的电子围栏端点处打点,直接使用gps数据作为电子围栏端点。然而这种方式无法进行电子围栏的收缩或扩张调整,即电子围栏所指定的区域是固定不变的;并且传统电子围栏仅仅用于判断设备是否超出电子围栏,实际使用中表现为无法帮助用户提前规避超出电子围栏的情况,即只能在超出后进行报警或提示。
4.基于此,若能通过电子围栏生成虚拟墙,那么虚拟墙的内边界就是电子围栏,则可以通过虚拟墙来引导自主导航设备避开电子围栏。具体来说,虚拟墙的数据会将电子围栏以外的区域遮挡住,这些数据会参与局部路径规划,进而使得路径规划算法无法向电子围栏外的区域规划路径,从而实现引导导航设备避开电子围栏的功能。


技术实现要素:

5.本发明的目的在于提供一种电子围栏和虚拟墙生成方法,以解决传统电子围栏生成方法无法实现电子围栏缩放、以及无法生成虚拟墙以引导用户设备避开电子围栏的问题。
6.本发明是采用以下技术方案实现的:一种电子围栏生成方法,包括如下步骤:s11:检查端点;s12:确定缩放向量;s13:生成缩放电子围栏;s14:上传缩放电子围栏。
7.当需要对电子围栏进行收缩或扩张调整时,依次执行以上步骤,即可得到调整后的缩放电子围栏。
8.进一步的,所述s11具体包括如下步骤:s11-1:提取任务上传的端点坐标;s11-2:检测端点坐标内端点的数量n;s11-3:检测端点坐标内是否存在端点共线;s11-4:检测端点坐标内的端点是否构成封闭区间。
9.对端点坐标的检测步骤依次包括s11-2、s11-3、s11-4,分别为检测端点数量、检测是否存在端点共线、检测端点是否构成封闭空间,s11-2、s11-3、s11-4中若有任一步骤中检
测结果为不合格,均自动退出电子围栏构建。
10.进一步的,所述s11-2中,对于数量n:若n≧3,代表n个端点之间存在构成封闭区间的可能性,则执行s11-3;若n﹤3,代表n个端点之间肯定无法构成封闭区间,则自动退出电子围栏构建,并提示信息。在本方案的语境中,数量n指端点的数量,因此n取正整数;当n﹤3,即代表n取1或2,当端点为1时只能构成射线,当端点为2时只能构成单条线段,射线或单条线段均无法形成封闭空间,故而此种情况下即代表s11-2的检测结果为不合格。
11.进一步的,所述s11-3具体包括如下子步骤:s11-31:依次对n个端点进行共线检测,并将共线的相邻3个点的中间点去掉,当对n个端点共线检测完毕并去除掉全部中间点后,得到端点集合p,端点集合p即为经过共线检测与去除共线点后的端点坐标;s11-32:若端点集合p中端点数量m﹦2,则自动退出电子围栏构建,并提示信息;若端点集合p中端点数量m>2,则执行s11-4。在此步骤中,由于构成电子围栏的基本单位为线段,因此端点集合p中端点数量m必定≧2,当m﹦2时,只能构成单条线段、必定无法构成封闭区间,故而此种情况下即代表s11-3的检测结果为不合格。
12.进一步的,所述s11-4具体包括如下子步骤:s11-41:若端点集合p中端点数量m﹦3,代表3个端点必定构成一个封闭区间,则直接执行s12;若端点集合p中端点数量m﹥3,代表可能存在端点交叉,则执行s11-42。前文已提到端点集合p即为经过共线检测与去除共线点后的端点坐标,因此端点集合p中端点数量m>2,即m≧3。当端点集合p中端点数量m﹦3时,又有前提条件3个点不共线,则这3个连续的点必定构成一个封闭区间;当端点集合p中端点数量m﹥3时,即代表至少存在4个不共线的端点,根据几何常规知识可得,4个不共线的端点可能存在端点交叉情况,即第一第二端点连成的两点线段、与第三第四端点连成的两点线段有交叉,此时若按照顺序将四个点依次连接起来(即第一端点

第二端点

第三端点

第四端点

第一端点),则无法形成封闭区间。因此当m﹥3时需要进行端点集合p中所有端点是否构成封闭区间(是否存在端点交叉情况)的检测。
13.s11-42:对m个端点,按照先后顺序划分两点线段,而后依次判断除相邻线段外、其他线段与某线段的交叉情况,直至对m个端点形成的所有两点线段检测完毕。对于某线段来说,它的相邻线段与它共用一个端点,因此某线段的相邻线段不会与它存在交叉。
14.s11-43:s11-42中,若m个端点形成的所有两点线段均不存在交叉情况,则执行s12;若m个端点形成的任意一条两点线段存在交叉情况,则自动退出电子围栏构建,并提示信息。若存在端点交叉情况,则代表该m个端点不能构成一个封闭区间,故而此种情况下即代表s11-4的检测结果为不合格。
15.进一步的,所述s12中,根据用户设置的缩放距离d,计算端点集合p中m个端点的缩放向量,将得出的缩放向量带入s13。其中,缩放距离d根据用户使用的自主导航设备尺寸来确定;缩放距离d一般为自主导航设备的外接圆半径,可以根据上传端点及实际使用效果微调。缩放向量的具体计算方法如下:从端点集合p中依次提取相邻的3个点a、b、c,计算三个点的中间点b在x和y两个方向的缩放向量。b在x和y两个方向的缩放向量为,其中

16.进一步的,所述s13中,缩放电子围栏的具体计算方法如下:对于端点集合p中m个原始端点坐标,根据步骤s12中计算得出的每个端点的缩放向量,计算缩放后的端点集合中m个电子围栏端点坐标,m个电子围栏端点坐标即构成电子围栏,其中而后,在s14中,将s13中新生成的电子围栏端点坐标重新上传。
17.一种虚拟墙生成方法,基于以上所述的电子围栏生成方法,包括如下步骤:s21:生成围栏墙外边界;s22:生成感知点图;s23:遍历感知点图;s24:生成虚拟墙,并将虚拟墙数据发布出去。
18.进一步的,所述s21中,围栏墙外边界的具体计算方法如下:根据端点坐标 ,向外扩展距离w,生成围栏墙边界q,电子围栏 和围栏墙边界q之间的空间即为虚拟墙空间。其中,向外扩展距离w的具体实现与计算方法同s12、s13所述,此处不再展开赘述。
19.进一步的,所述距离w是由算法根据感知分辨率e自动适应得出,w>1.5e。其中感知分辨率e由用户设置,感知分辨率e用于在s22中生成分辨率为e大小的感知点图。
20.进一步的,所述s23中,遍历感知点图内的所有点,判断每个点是否位于虚拟墙空间内,如果某点位于虚拟墙空间内,则将某点加入到虚拟墙数据中。其中遍历是指沿着某条搜索路线,依次对感知图中每个点均做一次访问。
21.进一步的,所述判断每个点是否位于虚拟墙空间内时,由于围栏墙边界q中的端点集合和电子围栏中的端点集合各组成一个封闭区域,且电子围栏在围栏墙边界q内部,因此先计算某点是否位于围栏墙边界q中的端点集合组成的多边形区域内,而后计算该点是否位于电子围栏中的端点集合组成的多边形区域外。
22.本发明实现的有益效果是:一种电子围栏生成方法,可根据用户设置的缩放距离,通过计算缩放向量来生成相应的缩放电子围栏;一种虚拟墙生成方法,通过生成围栏墙外边界和感知点图,从而生成内边界为电子围栏的虚拟墙。
23.与传统的直接使用gps数据作为电子围栏端点的方式相比,本发明可实现对电子围栏的收缩或扩张调整,从而使电子围栏的适用性更强;并且通过生成虚拟墙可进行导航路径规划,进而引导自主导航设备避开电子围栏、防止设备超出电子围栏,因此本发明在原有判断、警示的功能基础上实现了进一步的预防、引导功能,从而具备更强的实用性。
附图说明
24.图1是判断某点与某多边形区域的位置关系的计算流程图;图2是两条线段无交叉的位置关系示意图;图3是两条线段出现交叉的位置关系示意图。
具体实施方式
25.为清楚说明本发明中的方案,下面结合附图做进一步说明:实施例1:一种电子围栏生成方法,在nvidia jetson nano 控制器内运行,包括如下步骤:s11:检查端点。具体来说,需依次检测端点数量、检测是否存在端点共线、检测端点是否构成封闭空间,若有任一步骤中检测结果为不合格,均自动退出电子围栏构建。s11具体包括如下子步骤:s11-1:提取任务上传的端点坐标。
26.即通过算法,将一系列端点坐标中所包含的、连续的多个经纬度坐标分离为单个的经纬度坐标。其中任务上传指的是设备终端(用户在实际使用中的手机、平板、电脑等)通过配套软件、利用网络将端点坐标发送到nvidia jetson nan控制器所订阅的ros主题(ros主题是ros通信机制提供的通信方式,ros为robot operating system、即机器人操作系统)上的过程。
27.s11-2:检测端点坐标内端点的数量n。
28.若n≧3,代表n个端点之间存在构成封闭区间的可能性,则执行s11-3;若n﹤3,代表
n个端点之间肯定无法构成封闭区间,则自动退出电子围栏构建,并提示信息“端点数量少于三个不足以构成封闭区间,请重新上传”。
29.其中,上述文字信息发布到消息提示的ros主题上,用户可以自行订阅、并通过导航设备的显示屏查看(原理类似于广播员把信息广播到某个频段上,想收听的用户需要自己将收音机调到对应频段收听);下文中,各处提示信息的实现原理同此处。
30.s11-3:检测端点坐标内是否存在端点共线。
31.其中,包括如下子步骤:s11-31:通过斜率公式依次对n个端点进行共线检测,并将共线的相邻3个点的中间点去掉。
32.比如在本实施例中,具体的计算步骤为:

取 n个端点中的前三点,分别为1、2、3;
②ꢀ
根据斜率公式先计算线段的斜率线段 的斜率
ꢀ③ꢀ
如果并且由于这2条线段共用一个端点2,所以端点1、2、3共线且相接;
④ꢀ
将端点2去掉、保留端点1、3,在此基础上线段线段自动合并为1条线段;
⑤ꢀ
重复上述计算步骤,直至对所有端点共线检测完毕、并去除掉全部中间点。当步骤

执行完毕后,得到端点集合p,端点集合p即为经过共线检测与去除共线点后的端点坐标。
33.s11-32:若端点集合p中端点数量m﹦2,则自动退出电子围栏构建,并提示信息“上传端点共线,请检查后重新上传”;若端点集合p中端点数量m>2,则执行s11-4。
34.s11-4:检测端点坐标内的端点是否构成封闭区间。
35.其中,包括如下子步骤:s11-41:若端点集合p中端点数量m﹦3,代表3个端点必定构成一个封闭区间,则直接执行s12;若端点集合p中端点数量m﹥3,代表可能存在端点交叉,则执行s11-42。具体来说,参照图2至图3,当4个不共线的端点1、2、3、4存在端点交叉情况时,即线段与线段交叉;此时,按照1
→2→3→4→
1的顺序将四个端点连接,则无法构成一个封闭区间。
36.s11-42:对m个端点,按照先后顺序划分两点线段,而后依次判断除相邻线段外、其他线段与某线段的交叉情况,直至对m个端点形成的所有两点线段检测完毕。
37.比如在本实施例中,将m个端点按照先后顺序划分为两点线段,则第一条两点线段为,其相邻线段为和;需要依次判断除相邻线段外,其他所有连续线段与当前线段的交叉情况,其他所有连续线段即为、

。具体的计算步骤如下:
①ꢀ
取m个端点中的端点、,连成第一条两点线段;再按照先后顺序、依次从、、

中取两个连续的点、,连成线段。
②ꢀ
通过两点直线方程公式检测线段与线段 是否存在交叉;先计算线段 所在直线的方程,将线段的端点、的横坐标带入方程,得到相对应的两个纵坐标。
③ꢀ
若步骤

中得到的两个纵坐标不存在一正一负的情况,则证明线段与线段没有交叉;若存在
一正一负的情况,则执行步骤


④ꢀ
计算线段所在直线的方程,将线段的端点、的横坐标分别带入方程如果得出的相应两个纵坐标也存在一正一负的情况,则代表端点、、、中存在交叉情况。

当线段 与、、
…ꢀ
中连续两点所连成的全部线段都没有交叉时,再取点、 连成线段,然后判断线段与 、
…ꢀ
中连续两点所连成的全部线段的交叉情况。最后,重复上述步骤直至完成对所有端点的交叉情况检测。
38.需要注意的是,由常规的数学学科中坐标系知识可得,若步骤

中结论为不存在一正一负,即代表线段与线段不会交叉;若结论为存在一正一负,这种情况下线段与线段可能有交叉,也可能线段位于线段的上方或下方;因此,为进一步得到两条线段是否交叉的结论,需要执行步骤

。若步骤

中结论也为存在一正一负,即可代表线段与线段有交叉,也就是端点中存在交叉情况。
39.s11-43:若m个端点全部分组的端点交叉检测过程中均不存在交叉情况,则执行s12;若m个端点任意一组的端点交叉检测过程中存在交叉情况,则自动退出电子围栏构建,并提示信息“上传端点构成交叉空间,请检测端点顺序后再上传”。
40.s12:确定缩放向量。根据用户设置的缩放距离d,计算端点集合p中m个端点的缩放向量,将得出的缩放向量带入s13。其中:缩放距离d根据用户使用的自主导航设备尺寸来确定,一般为自主导航设备的外接圆半径,可以根据上传端点及实际使用效果微调,本实施例中规定缩放距离大于零为向外扩张,小于零为向内收缩。
41.缩放向量的具体计算过程为:从端点集合p中依次提取相邻的3个点a、b、c,计算三个点的中间点b在x和y两个方向的缩放向量,b在x和y两个方向的缩放向量为 ,其中其中其中

42.s13:生成缩放电子围栏。具体计算方法如下:对于端点集合p中m个原始端点坐标 ,根据步骤s12中计算得出的每个端点的缩放向量,计算缩放后的端点集合 中m个电子围栏端点坐标,m个电子围栏端点坐标即构成电子围,其中 而后,在s14中,将s13中新生成的电子围栏端点坐标重新上传。
43.s14:上传缩放电子围栏。
44.本实施例中,通过执行步骤s11-s14,实现了对电子围栏的缩放,并且缩放方向、距离均可根据用户需求灵活调整,从而增强了电子围栏的适应性和实用性。
45.实施例2:一种虚拟墙生成方法,基于实施例1所述的电子围栏生成方法,在nvidia jetson nano 控制器内运行,包括如下步骤:s21:生成围栏墙外边界。围栏墙外边界的具体计算方法如下:根据端点坐标,向外扩展距离w,生成围栏墙边界q,电子围栏和围栏墙边界q之间的空间即为虚拟墙空间。其中,向外扩展距离w的具体实现与计算方法同实施例1中s12、s13所述,此处不再展开赘述。距离w在本实施例中默认0.3m,是由算法根据感知分辨率e自动适应得出;具体来说,通过简单的判断算法,将w初始值设置为0.3m,用户设置感知分辨率e,如果w》1.5e、则w不变,如果w《1.5e、则w取值1.5e,因此w≥1.5e;其中感知分辨率e由用户设置,本实施例中感知分辨率取值0.1m(0.1m为建议用户的取值)。
46.s22:生成感知点图。根据用户设置的感知分辨率e,生成分辨率为e大小的感知点图。
47.s23:遍历感知点图。遍历感知点图内的所有点,判断每个点是否位于虚拟墙空间内,从而找出位于虚拟墙空间内的点,并将这些点加入到虚拟墙数据中,使虚拟墙数据得到完善。其中判断每个点是否位于虚拟墙空间内时,先计算某点是否位于围栏墙边界q中的端点集合组成的多边形区域内,而后计算该点是否位于电子围栏中的端点集合组成的多
边形区域外。
48.比如本实施例中,参照图1,计算某点与某多边形区域的位置关系的具体过程如下:
①ꢀ
取当前点m(, )、多边形点集合l(, ,
ꢀ…
)。
②ꢀ
从多边形点集合l中取得两连续边界点 、。
③ꢀ
判断点m与取出的边界点是否重合,若重合,则代表点m位于多边形点集合l构成的多边形 内;若不重合,则执行步骤


④ꢀ
判断点 、是否同在射线(其中射线为以m点为端点、沿y轴正方向的射线)的一侧,若在同一侧,则代表射线 不会穿过由点 、所连成的多边形的边界线,则重新执行步骤

、取下一组两个连续边界点;若不在同一侧,则执行步骤


⑤ꢀ
将 带入到点、所连成的直线方程中,得到y *( )/()+。
⑥ꢀ
判断y与 是否相等,若相等,则代表点m在点、 所连成的多边形的边界线上,所以点m位于多边形内;若不相等,则执行步骤


⑦ꢀ
判断y是否大于 ,若大于,则代表射线 穿过点、 所连成的直线,则执行步骤

;若不大于,则代表射线 不会穿过点、所连成的直线,则重新执行步骤



令c增加1,c为射线穿过多边形 的边界的次数。
⑨ꢀ
判断i+1与n的关系,若i+1小于n,则代表当前检测的边界线还不是最后一条,则重新执行步骤

;若i+1不小于n,则代表当前检测的边界线已经是最后一条,则执行步骤


⑩ꢀ
计算的余数h,若h为0,则代表c为偶数,得出结论为点m位于多边形外;若h不为0,则代表c为奇数,得出结论为点m位于多边形内。
49.s24:生成虚拟墙,并将虚拟墙数据发布出去。将虚拟墙数据转为激光雷达点云的数据格式,发布到ros主题上,便可供用户自行订阅,并进行下一步的避障决策控制。
50.本实施例中,通过执行步骤s21-s24,实现了符合用户需求的虚拟墙的生成,生成的虚拟墙以电子围栏为内边界,可以使得路径规划算法无法向电子围栏外的区域规划路径,从而引导自主导航设备来避免越出电子围栏。
51.当然,上述内容仅为本发明的较佳实施例,不能被认为用于限定对本发明的实施例范围。本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的均等变化与改进等,均应归属于本发明的专利涵盖范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1