CN114427859B - 移动机器人虚拟禁区设置与删除控制系统 - Google Patents
移动机器人虚拟禁区设置与删除控制系统 Download PDFInfo
- Publication number
- CN114427859B CN114427859B CN202210245649.4A CN202210245649A CN114427859B CN 114427859 B CN114427859 B CN 114427859B CN 202210245649 A CN202210245649 A CN 202210245649A CN 114427859 B CN114427859 B CN 114427859B
- Authority
- CN
- China
- Prior art keywords
- exclusion zone
- data
- virtual exclusion
- virtual
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3859—Differential updating map data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3863—Structures of map data
- G01C21/387—Organisation of map data, e.g. version management or database structures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请属于机器人导航技术领域,公开了一种移动机器人虚拟禁区设置与删除控制系统,用户可根据需要通过客户端向服务器发送已有虚拟禁区操作指令、添加虚拟禁区指令或删除虚拟禁区指令,从而实现清除/加载虚拟禁区数据的操作、添加虚拟禁区操作或删除虚拟禁区操作,从而实现对虚拟禁区地图层中的障碍物数据的快速修改;可见,该移动机器人虚拟禁区设置与删除控制系统可方便快捷地进行虚拟禁区地图层的修改,以便导航地图的使用者能够根据需要实现障碍物数据的快速修改。
Description
技术领域
本申请涉及机器人导航技术领域,具体而言,涉及一种移动机器人虚拟禁区设置与删除控制系统。
背景技术
使用雷达激光扫描生成机器人导航地图时,若环境中存在透明的障碍物或位置较低的障碍物,得到的地图中可能会缺少这些障碍物的数据,因此需要对地图进行修改,以避免机器人在导航过程中与这些障碍物发送碰撞。有时候,在同样的环境中的障碍物的数量和位置可能会发生变化(例如设备的添加导致障碍物的增加,设备位置的调整导致障碍物位置的变化),一旦出现这种情况,就需要对地图进行修改。
而修改地图时,一般需要对地图的内部参数进行修改和图片上的像素进行修改,由于地图的大小和像素与地图分辨率有关,这样操作起来会对地图准确性产生很大误差,在导航过程中导航精度会呈现累加状况。
为此,若在原导航地图层的基础上增加虚拟禁区地图层,在虚拟禁区地图层上记录障碍物数据,进行导航时结合原导航地图层和虚拟禁区地图层进行导航,从而当需要修改地图时,只需要对虚拟禁区地图层进行修改,并不会影响原地图层的准确性。因此,需要寻求一种能够方便快捷地进行虚拟禁区地图层的修改的系统,以便导航地图的使用者能够根据需要实现障碍物数据的快速修改。
发明内容
本申请的目的在于提供一种移动机器人虚拟禁区设置与删除控制系统,可方便快捷地进行虚拟禁区地图层的修改,以便导航地图的使用者能够根据需要实现障碍物数据的快速修改。
本申请提供了一种移动机器人虚拟禁区设置与删除控制系统,包括服务器、多个客户端、数据库、禁区设置节点和禁区删除节点,所述客户端、所述数据库、所述禁区设置节点和所述禁区删除节点均与所述服务器通信连接,所述禁区设置节点和所述禁区删除节点还与所述数据库通信连接;
所述数据库用于存储导航地图层、虚拟禁区地图层和所述虚拟禁区地图层的虚拟禁区数据,所述虚拟禁区数据包括当前虚拟禁区数据和其它现有虚拟禁区数据;
所述客户端用于向所述服务器发送对所述虚拟禁区地图层的操作指令;
所述服务器用于判断所述操作指令的类型,在所述操作指令为已有虚拟禁区操作指令时,根据所述已有虚拟禁区操作指令清除虚拟禁区地图层的虚拟禁区数据,或把相应的所述现有虚拟禁区数据加载到所述当前虚拟禁区数据中并把所述当前虚拟禁区数据发送至所述禁区设置节点;
在所述操作指令为添加虚拟禁区指令时,把接收到的新虚拟禁区数据添加到所述当前虚拟禁区数据中,把所述当前虚拟禁区数据发送至所述禁区设置节点;
在所述操作指令为删除虚拟禁区指令时,根据接收到的选取点坐标数据生成删除区域节点数组,并把所述删除区域节点数组发送至所述禁区删除节点;
所述禁区设置节点用于根据接收到的所述当前虚拟禁区数据对所述虚拟禁区地图层进行更新;
所述禁区删除节点用于根据接收到的所述删除区域节点数组对所述虚拟禁区地图层进行更新。
该移动机器人虚拟禁区设置与删除控制系统,用户可根据需要通过客户端向服务器发送已有虚拟禁区操作指令、添加虚拟禁区指令或删除虚拟禁区指令,从而实现清除/加载虚拟禁区数据的操作、添加虚拟禁区操作或删除虚拟禁区操作,从而实现对虚拟禁区地图层中的障碍物数据(虚拟禁区相当于障碍物)的快速修改;可见,该移动机器人虚拟禁区设置与删除控制系统可方便快捷地进行虚拟禁区地图层的修改,以便导航地图的使用者能够根据需要实现障碍物数据的快速修改。
优选地,所述服务器还用于在所述操作指令为已有虚拟禁区操作指令时,先开启已有虚拟禁区操作线程并带上线程锁;
在所述操作指令为添加虚拟禁区指令时,先开启添加虚拟禁区线程并带上线程锁;
在所述操作指令为删除虚拟禁区指令时,先开启删除虚拟禁区线程并带上线程锁。
在对虚拟禁区数据进行操作时,先开启对应的线程并带上线程锁,在操作过程中,其他客户端无法进入该线程,从而避免其他客户端影响当前操作的客户端的操作。
优选地,所述操作指令为字符串指令,所述字符串指令包含关键字符;
所述服务器用于根据所述关键字符判断所述操作指令的类型。
优选地,所述服务器用于在根据所述已有虚拟禁区操作指令清除虚拟禁区地图层的虚拟禁区数据,或把相应的所述现有虚拟禁区数据加载到所述当前虚拟禁区数据中并把所述当前虚拟禁区数据发送至所述禁区设置节点的时候,执行:
判断所述已有虚拟禁区操作指令的具体种类;
在所述已有虚拟禁区操作指令为清除指令时,把所述数据库的所述虚拟禁区数据清空;
在所述已有虚拟禁区操作指令为加载指令时,根据加载指令把相应的现有虚拟禁区数据加载到所述当前虚拟禁区数据中,再把所述当前虚拟禁区数据发送至所述禁区设置节点。
优选地,所述服务器用于在把接收到的新虚拟禁区数据添加到所述当前虚拟禁区数据中的时候,执行:
判断所述数据库中是否有当前虚拟禁区数据;
若有,则把所述新虚拟禁区数据与所述当前虚拟禁区数据进行合并;
若否,则根据所述新虚拟禁区数据生成当前虚拟禁区数据。
优选地,所述选取点坐标数据包括两个选取点的坐标数据;
所述服务器用于在根据接收到的选取点坐标数据生成删除区域节点数组的时候,执行:
根据两个所述选取点的坐标数据计算圆形删除区域的圆心的坐标和半径;
根据所述圆心的坐标和半径生成多个均匀分布在所述圆形删除区域的圆周上的第二节点的坐标;
根据多个所述第二节点的坐标生成所述删除区域节点数组。
用户在进行虚拟禁区的删除时,只需要在客户端的上选取两个点(即两个选取点),服务器在接收到该两个选取点的坐标即可生成删除区域节点数组以便由禁区删除节点执行虚拟禁区删除的操作,用户的操作简单,使用方便。
优选地,所述服务器用于在根据两个所述选取点的坐标数据计算圆形删除区域的圆心的坐标和半径的时候,执行:
根据以下公式计算所述圆形删除区域的圆心的坐标:
根据以下公式计算所述圆形删除区域的半径:
优选地,所述禁区设置节点用于在根据接收到的所述当前虚拟禁区数据对所述虚拟禁区地图层进行更新的时候,执行:
从所述当前虚拟禁区数据中提取第一节点的坐标数据;
在所述虚拟禁区地图层中用直线把相邻的所述第一节点连接起来,得到多个禁区轮廓线;
把所述禁区轮廓线进行膨胀操作。
优选地,所述禁区设置节点用于在把所述禁区轮廓线进行膨胀操作的时候,执行:
把所述禁区轮廓线包围的区域标记为不可到达的禁区区域;
沿径向使所述禁区轮廓线向外扩充预设的厚度,得到膨胀层边界线;
把所述禁区轮廓线与所述膨胀层边界线之间的区域标记为不可到达的膨胀层。
优选地,所述禁区删除节点用于在根据接收到的所述删除区域节点数组对所述虚拟禁区地图层进行更新的时候,执行:
从所述删除区域节点数组中提取第二节点的坐标数据;
根据所述第二节点的坐标数据判断所述当前虚拟禁区数据中是否有位于所述删除区域节点数组对应的删除区域内的待删除障碍物数据;
若有,则从所述当前虚拟禁区数据中删除所述待删除障碍物数据,否则,不对所述当前虚拟禁区数据进行删除操作;
根据所述当前虚拟禁区数据更新所述虚拟禁区地图层。
优选地,所述禁区删除节点在根据所述第二节点的坐标数据判断所述当前虚拟禁区数据中是否有位于所述删除区域节点数组对应的删除区域内的待删除障碍物数据的时候,执行:
判断当前虚拟禁区数据中是否包含位于所述删除区域内的第一节点的坐标数据;
若没有,则判定没有待删除障碍物数据;
若有,则判断位于所述删除区域内的第一节点是否均属于同一个虚拟禁区的第一节点;
若均是属于同一个虚拟禁区的第一节点,则判定有待删除障碍物数据,且以位于所述删除区域内的全部第一节点的坐标数据作为待删除障碍物数据;
若不是属于同一个虚拟禁区的第一节点,则判断是否有且仅有一个虚拟禁区的全部第一节点被包含在所述删除区域内;
如果是有且仅有一个虚拟禁区的全部第一节点被包含在所述删除区域内,则判定有待删除障碍物数据,且以全部第一节点被包含在所述删除区域内的虚拟禁区的第一节点的坐标数据作为待删除障碍物数据;
如果不是有且仅有一个虚拟禁区的全部第一节点被包含在所述删除区域内,则判定没有待删除障碍物数据。
有益效果:
本申请提供的移动机器人虚拟禁区设置与删除控制系统,用户可根据需要通过客户端向服务器发送已有虚拟禁区操作指令、添加虚拟禁区指令或删除虚拟禁区指令,从而实现清除/加载虚拟禁区数据的操作、添加虚拟禁区操作或删除虚拟禁区操作,从而实现对虚拟禁区地图层中的障碍物数据的快速修改;可见,该移动机器人虚拟禁区设置与删除控制系统可方便快捷地进行虚拟禁区地图层的修改,以便导航地图的使用者能够根据需要实现障碍物数据的快速修改。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请了解。
附图说明
图1为本申请实施例提供的移动机器人虚拟禁区设置与删除控制系统的结构示意图。
图2为服务器执行已有虚拟禁区操作指令的流程图。
图3为服务器执行添加虚拟禁区指令的流程图。
图4为服务器执行删除虚拟禁区指令的流程图。
图5为禁区设置节点进行虚拟禁区地图层更新的流程图。
图6为禁区删除节点进行虚拟禁区地图层更新的流程图。
标号说明:1、服务器;2、客户端;3、数据库;4、禁区设置节点;5、禁区删除节点。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本申请一些实施例中的一种移动机器人虚拟禁区设置与删除控制系统,包括服务器1、多个客户端2、数据库3、禁区设置节点4和禁区删除节点5,客户端2、数据库3、禁区设置节点4和禁区删除节点5均与服务器1通信连接,禁区设置节点4和禁区删除节点5还与数据库3通信连接;
数据库3用于存储导航地图层、虚拟禁区地图层和虚拟禁区地图层的虚拟禁区数据,该虚拟禁区数据包括当前虚拟禁区数据和其它现有虚拟禁区数据(其中,当前虚拟禁区数据是当前生效的虚拟禁区数据,即当前用于生成虚拟禁区地图层的虚拟禁区的虚拟禁区数据;其它现有虚拟禁区数据需要加载到当前虚拟禁区数据中才会被用于生成虚拟禁区地图层的虚拟禁区);
客户端2用于向服务器1发送对虚拟禁区地图层的操作指令;
服务器1用于判断该操作指令的类型,在操作指令为已有虚拟禁区操作指令时,根据已有虚拟禁区操作指令清除虚拟禁区地图层的虚拟禁区数据,或把相应的现有虚拟禁区数据加载到当前虚拟禁区数据中并把当前虚拟禁区数据发送至禁区设置节点4;
在操作指令为添加虚拟禁区指令时,把接收到的新虚拟禁区数据添加到当前虚拟禁区数据中,把当前虚拟禁区数据发送至禁区设置节点4;
在操作指令为删除虚拟禁区指令时,根据接收到的选取点坐标数据生成删除区域节点数组,并把删除区域节点数组发送至禁区删除节点5;
禁区设置节点4用于根据接收到的当前虚拟禁区数据对虚拟禁区地图层进行更新;
禁区删除节点5用于根据接收到的删除区域节点数组对虚拟禁区地图层进行更新。
该移动机器人虚拟禁区设置与删除控制系统,用户可根据需要通过客户端2向服务器1发送已有虚拟禁区操作指令、添加虚拟禁区指令或删除虚拟禁区指令,从而实现清除/加载虚拟禁区数据的操作、添加虚拟禁区操作或删除虚拟禁区操作,从而实现对虚拟禁区地图层中的障碍物数据(虚拟禁区相当于障碍物)的快速修改;可见,该移动机器人虚拟禁区设置与删除控制系统可方便快捷地进行虚拟禁区地图层的修改,以便导航地图的使用者能够根据需要实现障碍物数据的快速修改。
在实际应用中,当对移动机器人进行导航时,服务器1会调用数据库3中的导航地图层和虚拟禁区地图层共同对移动机器人进行导航,虚拟禁区地图层中的每个虚拟禁区均表示一个障碍物的范围,从而保证地图准确性。其中,客户端2一般为移动机器人的控制台(工控机),移动机器人需要进行导航时,服务器1会把导航地图层和虚拟禁区地图层发送至相应的客户端2,并由客户端2根据该导航地图层和虚拟禁区地图层对移动机器人进行导航。
在一些优选实施方式中,服务器1还用于在操作指令为已有虚拟禁区操作指令时,先开启已有虚拟禁区操作线程并带上线程锁(见图2);
在操作指令为添加虚拟禁区指令时,先开启添加虚拟禁区线程并带上线程锁(见图3);
在操作指令为删除虚拟禁区指令时,先开启删除虚拟禁区线程并带上线程锁(见图4)。
在对虚拟禁区数据进行操作时,先开启对应的线程并带上线程锁,在操作过程中,其他客户端2无法进入该线程,从而避免其他客户端2影响当前操作的客户端2的操作。
进一步地,服务器1还用于在根据该操作指令完成对应的操作后,把对应的线程锁销毁并关掉对应的线程(见图2-图4),以免影响后续的其他客户端2的操作。
在一些优选实施方式中,操作指令为字符串指令,字符串指令包含关键字符;
服务器1用于根据关键字符判断操作指令的类型。
其中,关键字符为字符串指令中指定位置的字符(可以是单个字符,也可以是多个字符),该指定位置可根据实际需要设置,每一类操作指令对应一种预设的字符(具体字符可根据实现需要设置),服务器1在判断操作指令的类型时,按指定位置从字符串指令中提取关键字符,再根据关键字符属于哪种预设的字符来判断该操作指令的类型。通过这种方式进行操作指令类型的判断,方便快捷,且不易出错。当提取到的关键字符不属于预设的字符,则判定该操作指令错误,从而不对虚拟禁区数据进行操作,并向对应的客户端2发送表示操作指令错误的提示信息。
在实际应用中,在接收到操作指令时,也可先判断该操作指令是否正确,例如,判断字符串指令的长度是否正确(如,字符串指令的长度为指定长度则判定其正确,否则判定其错误;或者字符串指令的长度在指定范围内则判定其正确,否则判定其错误),若字符串指令的长度正确且当前没有客户端2正在进行导航,才执行后续的操作,若字符串指令的长度错误,则向对应的客户端2发送表示操作指令错误的提示信息,若字符串指令的长度正确但当前有客户端2正在进行导航,则向对应的客户端2发送表示用户正在导航的提示信息。从而,一方面可在接收到操作指令错误时立刻进行反馈并停止后续操作,减少无效的处理过程,另一方面可避免对虚拟禁区数据进行操作而影响当前正在进行导航的用户的使用。
优选地,见图2,服务器1用于在根据已有虚拟禁区操作指令清除虚拟禁区地图层的虚拟禁区数据,或把相应的现有虚拟禁区数据加载到当前虚拟禁区数据中并把当前虚拟禁区数据发送至禁区设置节点4的时候,执行:
判断已有虚拟禁区操作指令的具体种类;
在已有虚拟禁区操作指令为清除指令时,把数据库3的虚拟禁区数据清空;
在已有虚拟禁区操作指令为加载指令时,根据加载指令把相应的现有虚拟禁区数据加载到当前虚拟禁区数据中,再把当前虚拟禁区数据发送至禁区设置节点。
在一些可能的实施方式中,见图2,服务器1在判断已有虚拟禁区操作指令的具体种类的时候,执行:
提取识别位的识别字符(该识别位为指定位置,一般与关键字符所处的位置不同;但如果关键字符包括多位字符,则可以是关键字符中其中一个字符的位置,此时识别字符为关键字符中的一个字符);
把该识别字符转化为整数;
若转化得到的整数为0,则判定该已有虚拟禁区操作指令为清除指令,否则,判定该已有虚拟禁区操作指令为加载指令。
其中,在把数据库3的虚拟禁区数据清空后,可向对应的客户端2返回表示已经清空虚拟禁区数据的通知信息。
其中,在已有虚拟禁区操作指令为加载指令时,可先根据加载指令把相应的现有虚拟禁区数据发送至对应的客户端2进行确认,在客户端2确认正确后(即确认加载的现有虚拟禁区数据是否为要求加载的现有虚拟禁区数据),再根据加载指令把相应的现有虚拟禁区数据加载到当前虚拟禁区数据中。其中,加载指令中包含要求加载的现有虚拟禁区数据的识别信息(如编号信息),服务器1根据该识别信息调用对应的现有虚拟禁区数据进行加载,从而确保加载的现有虚拟禁区数据的正确性。
优选地,见图3,服务器1用于在把接收到的新虚拟禁区数据添加到当前虚拟禁区数据中的时候,执行:
判断数据库3中是否有当前虚拟禁区数据(对于首次建立虚拟禁区地图层时或此前执行过清空操作时,会出现数据库3中没有当前虚拟禁区数据的情况);
若有,则把新虚拟禁区数据与当前虚拟禁区数据进行合并;
若否,则根据新虚拟禁区数据生成当前虚拟禁区数据。
其中,新虚拟禁区数据是由客户端2发送的;该新虚拟禁区数据可以包括多个点的坐标和相邻点之间的线段函数(可以是直线函数也可以是曲线函数),从而服务器1在把新虚拟禁区数据与当前虚拟禁区数据进行合并或根据新虚拟禁区数据生成当前虚拟禁区数据的时候,根据相邻点之间的线段函数在该相邻点之间的线段上提取更多的点的坐标,与原有的多个点的坐标合并成坐标数组(坐标数组的格式与当前虚拟禁区数据的格式相同,例如:[X1,Y1,X2,Y2,…,Xi,Yi,…Xn,Yn],其中Xi、Yi分别是第i个点的横坐标和纵坐标),再与当前虚拟禁区数据进行合并或以此生成当前虚拟禁区数据。该新虚拟禁区数据也可仅包括多个点的坐标(即添加的虚拟禁区为多边形),从而服务器1根据多个点的坐标生成坐标数组,再与当前虚拟禁区数据进行合并或以此生成当前虚拟禁区数据。
在一些实施方式中,见图3,服务器1在完成把新虚拟禁区数据与当前虚拟禁区数据进行合并或根据新虚拟禁区数据生成当前虚拟禁区数据,并把当前虚拟禁区数据发送至禁区设置节点4之后,可向所有客户端2发送表示虚拟禁区添加成功的通知信息,以便各客户端2了解虚拟禁区的变化情况。
优选地,见图4,选取点坐标数据包括两个选取点的坐标数据;
服务器1用于在根据接收到的选取点坐标数据生成删除区域节点数组的时候,执行:
根据两个选取点的坐标数据计算圆形删除区域的圆心的坐标和半径;
根据圆心的坐标和半径生成多个均匀分布在圆形删除区域的圆周上的第二节点的坐标;
根据多个第二节点的坐标生成删除区域节点数组。
用户在进行虚拟禁区的删除时,只需要在客户端2的上选取两个点(即两个选取点,可通过鼠标点选或直接输入坐标值的方式进行选取),服务器1在接收到该两个选取点的坐标即可生成删除区域节点数组以便由禁区删除节点5执行虚拟禁区删除的操作,用户的操作简单,使用方便。
具体地,服务器1用于在根据两个选取点的坐标数据计算圆形删除区域的圆心的坐标和半径的时候,执行:
根据以下公式计算圆形删除区域的圆心的坐标:
根据以下公式计算圆形删除区域的半径:
即相当于以客户端2选定的两个选取点为直径的两个端点,以确定圆形删除区域。
其中,可等间隔地选取预设数量的第二节点(如144个,但不限于此),也可根据预设间隔选取第二节点(在圆周上随机选取第一个第二节点,然后沿一个方向以预设间隔依次选取各第二节点,直到最后一个第二节点与第一个第二节点之间的间隔不大于预设间隔)。
其中,删除区域节点数组为坐标数组(即数组中记录各节点的坐标)。
优选地,见图5,禁区设置节点4用于在根据接收到的当前虚拟禁区数据对虚拟禁区地图层进行更新的时候,执行:
从当前虚拟禁区数据中提取第一节点的坐标数据;
在虚拟禁区地图层中用直线把相邻的第一节点连接起来,得到多个禁区轮廓线;
把禁区轮廓线进行膨胀操作。
虚拟禁区数据(当前虚拟禁区数据和已有虚拟禁区数据)均为坐标数组,包含多个第一节点的坐标数据,从而禁区设置节点4在接收到服务器1发送的当前虚拟禁区数据后,提取其中的第一节点的坐标数据。
用直线把相邻的第一节点连接起来从而得到多边形的初步的虚拟禁区,再对禁区轮廓线进行膨胀操作,从而把虚拟禁区的范围扩大,得到最终的虚拟禁区。
在一些实施方式中,见图5,禁区设置节点4在接收到服务器1发送的当前虚拟禁区数据后,可先对接收到的当前虚拟禁区数据的格式正确性进行判断,若格式正确才执行后续步骤,否则,结束操作。从而可确保建立的虚拟禁区的正确性。
具体地,禁区设置节点4用于在把禁区轮廓线进行膨胀操作的时候,执行:
把禁区轮廓线包围的区域标记为不可到达的禁区区域;
沿径向使禁区轮廓线向外扩充预设的厚度,得到膨胀层边界线;
把禁区轮廓线与膨胀层边界线之间的区域标记为不可到达的膨胀层。
其中,禁区区域和对应的膨胀层组成的区域为虚拟禁区,在进行导航时,把虚拟禁区作为障碍物进行路径规划。
其中,可通过颜色来对禁区区域和膨胀层进行标记,例如,以第一预设颜色填充禁区区域,从而实现对禁区区域的标记,以第二预设颜色填充膨胀层,从而实现对膨胀层的标记;其中,第一预设颜色和第二预设颜色可根据实际需要设置;但不限于此。
优选地,见图6,禁区删除节点5用于在根据接收到的删除区域节点数组对虚拟禁区地图层进行更新的时候,执行:
从删除区域节点数组中提取第二节点的坐标数据;
根据第二节点的坐标数据判断当前虚拟禁区数据中是否有位于删除区域节点数组对应的删除区域内的待删除障碍物数据;
若有,则从当前虚拟禁区数据中删除待删除障碍物数据,否则,不对当前虚拟禁区数据进行删除操作;
根据当前虚拟禁区数据更新虚拟禁区地图层。
有时候可能存在相邻的两个虚拟禁区之间距离较小的情况,而用户在选取两个选取点时,其圆形删除区域可能把要删除的虚拟禁区旁的其它虚拟禁区部分圈入,此时,不应该对被部分圈入的虚拟禁区进行删除。因此,禁区删除节点5在根据第二节点的坐标数据判断当前虚拟禁区数据中是否有位于删除区域节点数组对应的删除区域内的待删除障碍物数据的时候,执行:
判断当前虚拟禁区数据中是否包含位于该删除区域内的第一节点的坐标数据;
若没有,则判定没有待删除障碍物数据;
若有,则判断位于该删除区域内的第一节点是否均属于同一个虚拟禁区的第一节点;
若均是属于同一个虚拟禁区的第一节点,则判定有待删除障碍物数据,且以位于该删除区域内的全部第一节点的坐标数据作为待删除障碍物数据;
若不是属于同一个虚拟禁区的第一节点,则判断是否有且仅有一个虚拟禁区的全部第一节点被包含在该删除区域内;
如果是有且仅有一个虚拟禁区的全部第一节点被包含在该删除区域内,则判定有待删除障碍物数据,且以全部第一节点被包含在该删除区域内的虚拟禁区的第一节点的坐标数据作为待删除障碍物数据;
如果不是有且仅有一个虚拟禁区的全部第一节点被包含在该删除区域内,则判定没有待删除障碍物数据。
其中,同一个虚拟禁区的第一节点的坐标数据在坐标数据组中的排序一般是连续的,因此,禁区删除节点5在判断位于该删除区域内的第一节点是否均属于同一个虚拟禁区的第一节点的时候,可执行:
判断位于该删除区域内的第一节点的坐标数据是否全部为当前虚拟禁区数据的坐标数据组中同一段连续数据段的数据;
如果不是,则判定位于该删除区域内的第一节点不是均属于同一个虚拟禁区的第一节点;
如果是,则计算该连续数据段的首尾两个第一节点之间的距离,若该距离不大于预设的距离阈值,则判定位于该删除区域内的第一节点是均属于同一个虚拟禁区的第一节点,否则,判定位于该删除区域内的第一节点不是均属于同一个虚拟禁区的第一节点。
进一步地,禁区删除节点5在判断是否有且仅有一个虚拟禁区的全部第一节点被包含在该删除区域内的时候,可执行:
当位于该删除区域内的第一节点的坐标数据不是全部为当前虚拟禁区数据的坐标数据组中同一段连续数据段的数据的时候,则针对各段连续数据段执行以下步骤a-c:a.计算该连续数据段首尾两个第一节点之间的距离;b.若该距离不大于预设的距离阈值,则判定该连续数据段包含且仅包含一个虚拟禁区的全部第一节点的坐标数据;c.若该距离大于预设的距离阈值,则计算该连续数据段中相邻的第一节点之间的间隔,在有间隔突变情况(有至少一个间隔与其上一个间隔之间的偏差大于预设的间隔阈值,则表示有间隔突变情况)时,在间隔突变的位置把该连续数据段分割为多个子数据段,并计算各子数据段的首尾两个第一节点之间的距离,若仅有一个子数据段的首尾两个第一节点之间的距离不大于预设的距离阈值,则判定该连续数据段包含且仅包含一个虚拟禁区的全部第一节点的坐标数据;在只有一个连续数据段满足“包含且仅包含一个虚拟禁区的全部第一节点的坐标数据”的条件时,判定有且仅有一个虚拟禁区的全部第一节点被包含在该删除区域内;
当位于该删除区域内的第一节点的坐标数据是全部为当前虚拟禁区数据的坐标数据组中同一段连续数据段的数据,且位于该删除区域内的第一节点不是均属于同一个虚拟禁区的第一节点的时候,则计算该连续数据段首尾两个第一节点之间的距离;若该距离不大于预设的距离阈值,则判定有且仅有一个虚拟禁区的全部第一节点被包含在该删除区域内;若该距离大于预设的距离阈值,则计算该连续数据段中相邻的第一节点之间的间隔,在有间隔突变情况(有至少一个间隔与其上一个间隔之间的偏差大于预设的间隔阈值,则表示有间隔突变情况)时,在间隔突变的位置把该连续数据段分割为多个子数据段,并计算各子数据段的首尾两个第一节点之间的距离,若仅有一个子数据段的首尾两个第一节点之间的距离不大于预设的距离阈值,则判定有且仅有一个虚拟禁区的全部第一节点被包含在该删除区域内。
进一步地,禁区删除节点5在根据当前虚拟禁区数据更新虚拟禁区地图层的时候,执行:
在虚拟禁区地图层中把被删除的虚拟禁区所在的区域标记为背景。
其中,可用通过颜色进行背景的标记,例如,以第三预设颜色填充被删除的虚拟禁区所在的区域;其中,第三预设颜色可根据实际需要设置,且第三预设颜色不同于第一预设颜色和第二预设颜色;但不限于此。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种移动机器人虚拟禁区设置与删除控制系统,其特征在于,包括服务器(1)、多个客户端(2)、数据库(3)、禁区设置节点(4)和禁区删除节点(5),所述客户端(2)、所述数据库(3)、所述禁区设置节点(4)和所述禁区删除节点(5)均与所述服务器(1)通信连接,所述禁区设置节点(4)和所述禁区删除节点(5)还与所述数据库(3)通信连接;
所述数据库(3)用于存储导航地图层、虚拟禁区地图层和所述虚拟禁区地图层的虚拟禁区数据,所述虚拟禁区数据包括当前虚拟禁区数据和其它现有虚拟禁区数据;
所述客户端(2)用于向所述服务器(1)发送对所述虚拟禁区地图层的操作指令;所述服务器(1)用于判断所述操作指令的类型,在所述操作指令为已有虚拟禁区操作指令时,根据所述已有虚拟禁区操作指令清除虚拟禁区地图层的虚拟禁区数据,或把相应的所述现有虚拟禁区数据加载到所述当前虚拟禁区数据中并把所述当前虚拟禁区数据发送至所述禁区设置节点(4);
在所述操作指令为添加虚拟禁区指令时,把接收到的新虚拟禁区数据添加到所述当前虚拟禁区数据中,把所述当前虚拟禁区数据发送至所述禁区设置节点(4);在所述操作指令为删除虚拟禁区指令时,根据接收到的选取点坐标数据生成删除区域节点数组,并把所述删除区域节点数组发送至所述禁区删除节点(5);
所述禁区设置节点(4)用于根据接收到的所述当前虚拟禁区数据对所述虚拟禁区地图层进行更新;
所述禁区删除节点(5)用于根据接收到的所述删除区域节点数组对所述虚拟禁区地图层进行更新;
所述禁区删除节点(5)用于在根据接收到的所述删除区域节点数组对所述虚拟禁区地图层进行更新的时候,执行:
从所述删除区域节点数组中提取第二节点的坐标数据;根据所述第二节点的坐标数据判断所述当前虚拟禁区数据中是否有位于所述删除区域节点数组对应的删除区域内的待删除障碍物数据;若有,则从所述当前虚拟禁区数据中删除所述待删除障碍物数据,否则,不对所述当前虚拟禁区数据进行删除操作;根据所述当前虚拟禁区数据更新所述虚拟禁区地图层;
所述禁区删除节点(5)在根据所述第二节点的坐标数据判断所述当前虚拟禁区数据中是否有位于所述删除区域节点数组对应的删除区域内的待删除障碍物数据的时候,执行:
判断当前虚拟禁区数据中是否包含位于所述删除区域内的第一节点的坐标数据;若没有,则判定没有待删除障碍物数据;
若有,则判断位于所述删除区域内的第一节点是否均属于同一个虚拟禁区的第一节点;
若均是属于同一个虚拟禁区的第一节点,则判定有待删除障碍物数据,且以位于所述删除区域内的全部第一节点的坐标数据作为待删除障碍物数据;
若不是属于同一个虚拟禁区的第一节点,则判断是否有且仅有一个虚拟禁区的全部第一节点被包含在所述删除区域内;
如果是有且仅有一个虚拟禁区的全部第一节点被包含在所述删除区域内,则判定有待删除障碍物数据,且以全部第一节点被包含在所述删除区域内的虚拟禁区的第一节点的坐标数据作为待删除障碍物数据;
如果不是有且仅有一个虚拟禁区的全部第一节点被包含在所述删除区域内,则判定没有待删除障碍物数据。
2.根据权利要求1所述的移动机器人虚拟禁区设置与删除控制系统,其特征在于,所述服务器(1)还用于在所述操作指令为已有虚拟禁区操作指令时,先开启已有虚拟禁区操作线程并带上线程锁;
在所述操作指令为添加虚拟禁区指令时,先开启添加虚拟禁区线程并带上线程锁;
在所述操作指令为删除虚拟禁区指令时,先开启删除虚拟禁区线程并带上线程锁。
3.根据权利要求1所述的移动机器人虚拟禁区设置与删除控制系统,其特征在于,所述操作指令为字符串指令,所述字符串指令包含关键字符;
所述服务器(1)用于根据所述关键字符判断所述操作指令的类型。
4.根据权利要求1所述的移动机器人虚拟禁区设置与删除控制系统,其特征在于,
所述服务器(1)用于在根据所述已有虚拟禁区操作指令清除虚拟禁区地图层的虚拟禁区数据,或把相应的所述现有虚拟禁区数据加载到所述当前虚拟禁区数据中并把所述当前虚拟禁区数据发送至所述禁区设置节点(4)的时候,执行:
判断所述已有虚拟禁区操作指令的具体种类;
在所述已有虚拟禁区操作指令为清除指令时,把所述数据库(3)的所述虚拟禁区数据清空;
在所述已有虚拟禁区操作指令为加载指令时,根据所述加载指令把相应的现有虚拟禁区数据加载到所述当前虚拟禁区数据中,再把所述当前虚拟禁区数据发送至所述禁区设置节点(4)。
5.根据权利要求1所述的移动机器人虚拟禁区设置与删除控制系统,其特征在于,所述服务器(1)用于在把接收到的新虚拟禁区数据添加到所述当前虚拟禁区数据中的时候,执行:
判断所述数据库(3)中是否有所述当前虚拟禁区数据;
若有,则把所述新虚拟禁区数据与所述当前虚拟禁区数据进行合并;
若否,则根据所述新虚拟禁区数据生成当前虚拟禁区数据。
6.根据权利要求1所述的移动机器人虚拟禁区设置与删除控制系统,其特征在于,所述选取点坐标数据包括两个选取点的坐标数据;
所述服务器(1)用于在根据接收到的选取点坐标数据生成删除区域节点数组的时候,执行:
根据两个所述选取点的坐标数据计算圆形删除区域的圆心的坐标和半径;
根据所述圆心的坐标和半径生成多个均匀分布在所述圆形删除区域的圆周上的第二节点的坐标;
根据多个所述第二节点的坐标生成所述删除区域节点数组。
8.根据权利要求1所述的移动机器人虚拟禁区设置与删除控制系统,其特征在于,所述禁区设置节点(4)用于在根据接收到的所述当前虚拟禁区数据对所述虚拟禁区地图层进行更新的时候,执行:
从所述当前虚拟禁区数据中提取第一节点的坐标数据;
在所述虚拟禁区地图层中用直线把相邻的所述第一节点连接起来,得到禁区轮廓线;
把所述禁区轮廓线进行膨胀操作。
9.根据权利要求8所述的移动机器人虚拟禁区设置与删除控制系统,其特征在于,所述禁区设置节点(4)用于在把所述禁区轮廓线进行膨胀操作的时候,执行:
把所述禁区轮廓线包围的区域标记为不可到达的禁区区域;
沿径向使所述禁区轮廓线向外扩充预设的厚度,得到膨胀层边界线;
把所述禁区轮廓线与所述膨胀层边界线之间的区域标记为不可到达的膨胀层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210245649.4A CN114427859B (zh) | 2022-03-14 | 2022-03-14 | 移动机器人虚拟禁区设置与删除控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210245649.4A CN114427859B (zh) | 2022-03-14 | 2022-03-14 | 移动机器人虚拟禁区设置与删除控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114427859A CN114427859A (zh) | 2022-05-03 |
CN114427859B true CN114427859B (zh) | 2023-06-02 |
Family
ID=81313927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210245649.4A Active CN114427859B (zh) | 2022-03-14 | 2022-03-14 | 移动机器人虚拟禁区设置与删除控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114427859B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990779A (zh) * | 2017-03-24 | 2017-07-28 | 上海思岚科技有限公司 | 通过电脑客户端使移动机器人进行虚拟墙避障的实现方法 |
CN108303980A (zh) * | 2018-01-16 | 2018-07-20 | 上海木爷机器人技术有限公司 | 基于机器人实现虚拟墙图层的系统及方法 |
CN108334090A (zh) * | 2018-02-12 | 2018-07-27 | 弗徕威智能机器人科技(上海)有限公司 | 一种虚拟障碍物的设置方法 |
DE102017104428A1 (de) * | 2017-03-02 | 2018-09-06 | RobArt GmbH | Verfahren zur Steuerung eines autonomen, mobilen Roboters |
CN109491394A (zh) * | 2018-12-17 | 2019-03-19 | 中新智擎科技有限公司 | 一种虚拟避障方法、装置、存储介质及机器人 |
WO2020041817A1 (de) * | 2018-08-31 | 2020-03-05 | RobArt GmbH | Exploration eines robotereinsatzgebietes durch einen autonomen mobilen roboter |
CN111523334A (zh) * | 2020-04-09 | 2020-08-11 | 江苏美的清洁电器股份有限公司 | 虚拟禁区的设置方法、装置、终端设备、标签和存储介质 |
CN112137509A (zh) * | 2020-09-24 | 2020-12-29 | 江苏美的清洁电器股份有限公司 | 虚拟禁区的设置方法、装置和清洁机器人 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9443363B2 (en) * | 2014-03-03 | 2016-09-13 | Consortium P, Inc. | Real-time location detection using exclusion zones |
-
2022
- 2022-03-14 CN CN202210245649.4A patent/CN114427859B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017104428A1 (de) * | 2017-03-02 | 2018-09-06 | RobArt GmbH | Verfahren zur Steuerung eines autonomen, mobilen Roboters |
CN106990779A (zh) * | 2017-03-24 | 2017-07-28 | 上海思岚科技有限公司 | 通过电脑客户端使移动机器人进行虚拟墙避障的实现方法 |
CN108303980A (zh) * | 2018-01-16 | 2018-07-20 | 上海木爷机器人技术有限公司 | 基于机器人实现虚拟墙图层的系统及方法 |
CN108334090A (zh) * | 2018-02-12 | 2018-07-27 | 弗徕威智能机器人科技(上海)有限公司 | 一种虚拟障碍物的设置方法 |
WO2020041817A1 (de) * | 2018-08-31 | 2020-03-05 | RobArt GmbH | Exploration eines robotereinsatzgebietes durch einen autonomen mobilen roboter |
CN109491394A (zh) * | 2018-12-17 | 2019-03-19 | 中新智擎科技有限公司 | 一种虚拟避障方法、装置、存储介质及机器人 |
CN111523334A (zh) * | 2020-04-09 | 2020-08-11 | 江苏美的清洁电器股份有限公司 | 虚拟禁区的设置方法、装置、终端设备、标签和存储介质 |
CN112137509A (zh) * | 2020-09-24 | 2020-12-29 | 江苏美的清洁电器股份有限公司 | 虚拟禁区的设置方法、装置和清洁机器人 |
Also Published As
Publication number | Publication date |
---|---|
CN114427859A (zh) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4102186A1 (en) | Method for constructing self-driving map and related device | |
JPH0786819B2 (ja) | 木構造表示方式 | |
JPH05242027A (ja) | 協働的コンピュータ・ベース・システムにおいてユーザを識別するための方法及びシステム | |
JPH05324359A (ja) | 選択可能ロック領域 | |
JPH05282099A (ja) | 対象指定方法 | |
US6381612B2 (en) | Link information maintenance and management method | |
CN105869512A (zh) | 多信息的混杂度量地图建图方法和装置 | |
CN114427859B (zh) | 移动机器人虚拟禁区设置与删除控制系统 | |
CN111666361B (zh) | 一种存储多边形包含关系的四叉树构建方法及索引方法 | |
JP2011033987A (ja) | 地図生成装置及び地図生成方法 | |
JP3946628B2 (ja) | ナビゲーションシステムの地図データ更新システム、地図データサーバ、コンピュータプログラム及び地図データ更新方法 | |
CN112884656B (zh) | 一种包装盒平面展开图图像的印刷拼版方法及系统 | |
KR102459756B1 (ko) | 배송지 간 접근성 및 다중 모드 사용을 고려한 계층적 경로 추천 방법 및 시스템 | |
JP2662539B2 (ja) | 3次元図形処理装置 | |
JP2004139485A (ja) | 要約地図生成装置、道路地図変換装置、該プログラム、及び要約地図サービスシステム | |
Žalik | Merging a set of polygons | |
Qin et al. | Dynamic Detection of Topological Information from Grid‐Based Generalized Voronoi Diagrams | |
JP2018018458A (ja) | 入力支援装置、及び入力支援プログラム | |
US6510423B1 (en) | Method and device for object control with a plurality of operation-target flags | |
JP2003150144A (ja) | 筆順等の情報を持ったインテリジェントフォント、およびその作成方法、並びにその描画方法 | |
WO2021176677A1 (ja) | 管理装置、管理方法及び管理プログラム | |
JPH05189529A (ja) | 図形編集方式 | |
WO2021176678A1 (ja) | 生成装置、生成方法及び生成プログラム | |
JP3617225B2 (ja) | 描画処理装置 | |
JP3087517B2 (ja) | フィレット面の作成指示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |