CN108364314B - 一种定位方法、系统及介质 - Google Patents
一种定位方法、系统及介质 Download PDFInfo
- Publication number
- CN108364314B CN108364314B CN201810029397.5A CN201810029397A CN108364314B CN 108364314 B CN108364314 B CN 108364314B CN 201810029397 A CN201810029397 A CN 201810029397A CN 108364314 B CN108364314 B CN 108364314B
- Authority
- CN
- China
- Prior art keywords
- robot
- picture
- positioning
- address
- virtual machine
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Manipulator (AREA)
Abstract
本发明适用于机器人技术领域,提供了一种定位方法、系统及介质,包括:NginX服务器为指定地址的机器人建立与所述指定地址对应的Lua虚拟机;所述NginX服务器接收所述机器人通过Websocket协议发送的定位指令和通过Http协议发送的第一图片,并将所述定位指令发送至所述Lua虚拟机;所述Lua虚拟机接收所述定位指令并根据所述定位指令执行定位服务,包括:将所述第一图片与图片集中的多张第二图片进行特征比较,根据比较结果从所述图片集中选取出一张所述第二图片,并基于选取出的所述第二图片确定所述机器人的方位信息。所述方法能够大大的降低对机器人处理器的性能要求,从而降低机器人成本。
Description
技术领域
本发明属于机器人技术领域,尤其涉及一种定位方法、系统及介质。
背景技术
让机器人为人服务是发展机器人技术的最终目的,而机器人导航是机器人执行任务,使得机器人为人服务的第一步,只有具备良好的导航能力,才能保证机器人能够顺利到达目的地执行任务。
机器人导航包括机器人的同步定位与地图构建(Simultaneous Localizationand Mapping,SLAM),即机器人实时估计自身状态和机器人周围环境地图的过程,只有清楚的知道机器人当前所处的状态,即机器人所处位置和所处环境,才能实时的为机器人规划合理的路径。因此,机器人导航的第一步就是实现机器人的定位。
现有的机器人的定位方法包括:在机器人中加入独立的全球定位系统(GlobalPositioning System,GPS)定位模块,然后再将GPS定位模块的定位结果进行离线分析或者是将上述SLAM系统直接运行在机器人之上,直接对机器人进行定位分析。服务型机器人是低成本机器人的一种,如果在服务型机器人中加入单独的GPS定位模块显然会增加机器人的成本,而如果将复杂的SLAM系统运行在服务型机器人之上,那么对机器人处理器的要求又较高,也会增加机器人成本。
发明内容
有鉴于此,本发明实施例提供了一种定位方法、系统及介质,以解决现有技术中,低成本机器人为实现定位而导致的成本增加的技术问题。
本发明实施例的第一方面提供了一种定位方法,包括:NginX服务器为指定地址的机器人建立与所述指定地址对应的Lua虚拟机;所述NginX服务器接收所述机器人通过Websocket协议发送的定位指令和通过超文本传输协议(HyperText Transfer Protocol,Http)发送的第一图片,并将所述定位指令发送至所述Lua虚拟机;所述Lua虚拟机接收所述定位指令并根据所述定位指令执行定位服务,包括:将所述第一图片与图片集中的多张第二图片进行特征比较,根据比较结果从所述图片集中选取出一张所述第二图片,并基于选取出的所述第二图片确定所述机器人的方位信息;所述图片集中的多张第二图片的特征数据预先存储在所述NginX服务器中的文件存储区。
本发明实施例的第二方面提供了一种定位系统,包括:NginX服务器和机器人;所述NginX服务器包括创建模块,用于为指定地址的机器人建立与所述指定地址对应的Lua虚拟机;所述NginX服务器还包括接收模块,用于接收所述机器人通过Websocket协议发送的定位指令和通过Http协议发送的第一图片,并将所述定位指令发送至所述Lua虚拟机;所述Lua虚拟机包括定位模块,用于接收所述定位指令并根据所述定位指令执行定位服务;所述定位模块包括比较子模块,用于将所述第一图片与图片集中的多张第二图片进行特征比较,根据比较结果从所述图片集中选取出一张所述第二图片,所述图片集中的多张第二图片的特征数据预先存储在所述NginX服务器中的文件存储区;所述定位模块还包括定位子模块,用于基于选取出的所述第二图片确定所述机器人的方位信息。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:
本发明实施例提供了一种定位方法、系统及介质,所述方法首先通过NginX服务器为指定地址的机器人建立一个为所述机器人提供各种服务的Lua虚拟机,由于一个Lua虚拟机只为一个指定地址的机器人服务,因此可以提高为所述机器人执行所述各种服务时的效率,然后所述NginX服务器通过Websocket协议和Http协议分别接收定位指令和第一图片,由于通过两种不同的协议同时传输定位指令和图片,可以大大提高数据传输的效率,最后所述Lua虚拟机根据接收到的定位指令执行定位服务,从而定位所述机器人,由于对机器人的定位操作是通过NginX服务器进行的,因此可以大大的降低对机器人处理器的性能要求,从而降低机器人成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的定位方法的实现流程示意图;
图2示出了本发明实施例提供的NginX服务器为指定地址的机器人建立与所述指定地址对应的Lua虚拟机的实现流程示意图;
图3示出了本发明实施例提供的Lua虚拟接收定位指令并根据定位指令执行定位服务的实现流程示意图;
图4示出了本发明实施例提供的第二图片的选择的实现流程示意图;
图5示出了本发明实施例提供的设置序号存储区域来进行第二图片的序号的选择的示意图;
图6示出了本发明实施例提供的位置信息的示意图;
图7示出了本发明实施例提供的基于选取出的第二图片确定机器人的方位信息的实现流程示意图;
图8示出了本发明实施例提供的定位系统的组成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解的是,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
图1示出了本发明实施例一提供的定位方法的实现流程,详述如下:
在步骤S11中,NginX服务器为指定地址的机器人建立与所述指定地址对应的Lua虚拟机。
NginX服务器是一种高性能的服务器,具有较高的稳定性、丰富的功能集、较低的系统资源消耗和较强的并发能力。基于NginX服务器的上述优势,在本发明实施例中,采用NginX服务器为机器人提供各种服务。
在本发明实施例中,如图2所示,NginX服务器为指定地址的机器人建立与所述指定地址对应的Lua虚拟机,包括:
步骤S111,所述NginX服务器接收所述机器人通过Websocket协议发送的地址指令,所述地址指令中携带有所述机器人的机器人地址。
WebSocket协议是基于传输控制协议(Transmission Control Protocol,TCP)的一种新的网络协议,可以在机器人和服务器之间建立一条全双工、持续连接的通道,相较于超文本传输协议(HyperText Transfer Protocol,Http),在高并发的连接中,使用WebSocket协议传输数据可以大大减少对系统带宽资源的消耗。WebSocket协议避免了以长轮询的方式进行数据传输,可以大大的减少网络延迟,因此,本发明实施例选用WebSocket协议进行小尺寸消息的传输,其中,小尺寸消息包括:指令、结果数据等。
在机器人向NginX服务器请求为其执行各种服务之前,机器人需要先向NginX服务器发送地址指令,该地址指令中携带有该机器人的机器人地址。NginX服务器可以根据接收到的地址判断是否为该地址的机器人提供服务。
步骤S112,所述NginX服务器根据所述机器人地址建立与所述机器人地址对应的Lua虚拟机。
当NginX服务器接收到机器人通过Websocket协议发送的地址指令后,建立与所述机器人地址对应的Lua虚拟机,新建立的Lua虚拟机会为该机器人提供一个独立的服务环境,即该机器人完全享有该Lua虚拟机中内存和服务资源,保证在为该机器人提供服务的时候不会被其他服务程序所干扰,这样,可以提高NginX服务器为单个机器人服务时的服务效率,同时,当NginX服务器因进程占用太多而导致该Lua虚拟机处理速度变慢时,可以通过关闭其他不重要的虚拟机的任务的执行来加快该Lua虚拟机的处理速度。
可选的,当NginX服务器接收到机器人通过Websocket协议发送的地址指令后,首先判断地址指令中的地址的合法性,然后再根据该地址的合法性判断是否为该地址的机器人提供服务。具体地,NginX服务器中可以存储有包含多个机器人地址的地址库,当NginX服务器接收到机器人地址后,先判断该接收到的地址是否是地址库中存储的地址,如果该地址是地址库中预先存储的地址,证明该地址是合法的地址,然后为该地址的机器人建立与该地址对应的Lua虚拟机,以为该地址的机器人提供各种服务;如果该地址不是地址库中预先存储的地址,证明该地址是非法地址,NginX服务器拒绝为该地址的机器人提供服务,保证系统的安全性,同时,不影响NginX服务器为合法地址的机器人提供服务。
在步骤S12中,所述NginX服务器接收所述机器人通过Websocket协议发送的定位指令和通过Http协议发送的第一图片,并将所述定位指令发送至所述Lua虚拟机。
由于采用WebSocket协议进行大尺寸数据的传输会大大的占用带宽资源,因此,在本发明实施例中,WebSocket协议只用于传输小尺寸消息的数据,大尺寸消息采用Http协议进行传输,通过采用两种协议分别传输大、小尺寸的数据,可以提高数据的传输效率。
在本发明实施例中,机器人获取摄像头拍摄的第一图片。其中,摄像头包括但不限于置于该机器人外部且位于该机器人正前方的定位摄像头,该定位摄像头用于拍摄机器人正前方的环境图像。
在机器人获取到摄像头拍摄的第一图片之后,通过Http协议将该第一图片发送至NginX服务器,同时,通过Websocket协议将对应的服务指令发送至NginX服务器,以使NginX服务器根据服务指令和第一图片执行对应的服务,在这里,服务指令为定位指令,NginX服务器接收到该定位指令后为机器人执行定位服务。
在本发明实施例中,可选的,NginX服务器接收机器人发送的第一图片,包括三种情况:1)定位摄像头在拍摄环境图片的时候,可以在同一位置、同一角度连续拍摄多张第一图片,并通过机器人将多张第一图片全部上传至服务器,而后服务器再选择出一张质量最好的第一图片作为最终用于执行定位服务的第一图片;2)定位摄像头在拍摄环境图片的时候,可以在同一位置、同一角度连续拍摄多张第一图片,然后由机器人挑选出一张质量最好的第一图片,并将该第一图片发送至NginX服务器;3)定位摄像头只拍摄一张第一图片,然后机器人将该拍摄的第一图片发送至服务器。对于情况3),由于只拍摄了一张第一图片,故很难保证该第一图片的质量,从而影响服务器根据该第一图片对机器人的定位效果;而情况1)和情况2)由于拍摄了多张第一图片,并从中选择一张质量最好的第一图片来进行定位,能够在一定程度上增大服务器对该第一图片的识别的准确性,从而提高定位效果;同时,情况1)相对情况2),采用的是在服务器端进行的第一图片的质量的判断,因此,能够降低机器人端的计算资源。
在本发明实施例中,当NginX服务器接收到机器人通过Websocket协议发送的定位指令后,会将该定位指令发送至新创建的Lua虚拟机,以使得该新创建的Lua虚拟机根据接收到的定位指令为该地址的机器人执行定位服务。
在步骤S13中,所述Lua虚拟机接收所述定位指令并根据所述定位指令执行定位服务。
Lua虚拟机根据接收到的NginX服务器发送的指令类型执行与该指令对应的服务。在本发明实施例中,Lua虚拟机接收定位指令,并根据该定位指令执行定位服务。
本发明实施例提供了一种定位方法,所述方法首先通过NginX服务器为指定地址的机器人建立一个为所述机器人提供各种服务的Lua虚拟机,由于一个Lua虚拟机只为一个指定地址的机器人服务,因此可以提高为所述机器人执行所述各种服务时的效率,然后所述NginX服务器通过Websocket协议和Http协议分别接收定位指令和第一图片,由于通过两种不同的协议同时传输定位指令和图片,可以大大提高数据传输的效率,最后所述Lua虚拟机根据接收到的定位指令执行定位服务,从而定位所述机器人,由于对机器人的定位操作是通过NginX服务器进行的,因此可以大大的降低对机器人处理器的性能要求,从而降低机器人成本。
在步骤S13中,定位服务的具体执行过程如图3所示,包括:
步骤S131,将所述第一图片与图片集中的多张第二图片进行特征比较,根据比较结果从所述图片集中选取出一张所述第二图片。
在本发明实施例中,图片集为采用定位摄像头预先拍摄的某个具体场景的多张图片的集合,例如,假设当前场景为足球场,那么图片集可以是采用定位摄像头预先拍摄的足球场的800张照片的集合;或者假设当前场景为房间内部,那么图片集可以是采用定位摄像头预先拍摄的房间内部的200张图片的集合。当图片集拍摄完成之后,机器人通过Http协议将该图片集中的所有图片上传至NginX服务器,NginX服务器利用特征提取函数提取图片集中的多张图片的特征数据,并将图片集和图片集中的多张图片的特征数据存储在NginX服务器中的用于存储大数据的文件存储区,以便Lua虚拟机在执行服务时直接调用文件存储区中的图片集中的图片。
将第一图片与图片集中的多张第二图片进行特征比较之前,需要先提取到第一图片的特征数据,然后再进行第一图片与多张第二图片的特征比较,最后根据比较结果从所述图片集中选取出一张所述第二图片,并基于选取出的所述第二图片确定所述机器人的方位信息。在本发明实施例中,优选地,如图4所示,步骤S131包括:步骤S1311,提取第一图片的特征点;步骤S1312,将第一图片的特征点和图片集中的第二图片的特征点进行比较,得到图片集中的每幅第二图片与第一图片的相似特征点的个数;步骤S1313,选出与第一图片的相似特征点的个数最多的第二图片。
在步骤S1311中,提取第一图片的特征点。
特征点是一张图像中的某个像素点,且该像素点在某个小的区域内显得比较突出,例如,特征点为:图片中某个区域的轮廓点或者图片中某个较暗区域中的亮点,再或者图片中某个较亮区域中的暗点,但是特征点并不是图片中的噪点,在进行图片的特征点的提取之前,还可以预先去除图片中的噪点,以免对特征点的提取结果造成影响,即将图片中的噪点判断为特征点,进而影响最终的定位结果。为保证识别效果,一张图片的特征点可以尽可能多些,具体可根据图片的大小而定,例如:假设图片大小为720*1080,则可以提取的特征点数量为:1500个~2000个。
计算特征点的算法很多,例如,尺度不变特征转换算法(Scale-invariantfeature transform,SIFT),快速特征提取和匹配算法(Oriented FAST and RotatedBRIEF,ORB),加速稳健特征算法(Speeded-Up Robust Features,SURF)。由于相对于其他的特征点提取算法,ORB算法计算速度快,因此,本发明实施例优选地,利用ORB算法提取所述照片的特征点。
ORB算法包括特征点选择和描述子的计算两个部分,具体地,特征点选择为:算法首先从图像中选出一些比较突出的像素点,将这些突出的像素点设置为特征点。所谓突出的像素点就是这些像素点与其周围的像素点相比,在某些方面表现的不太一致,例如,这些突出的点的灰度值与周围像素点的灰度值不太一致,它与周围像素点的灰度值的差值超过了某个阈值。描述子的计算为:在特征点的周围以一定的规则选择N个点对,每个点对包括两个点,然后将这N个点对的比较结果组合起来作为该特征点的描述子,用于描述该特征点的属性。由于描述子描述的是特征点的属性,因此,通过对比判断两个特征点的描述子的相似度,可以判断两个特征点是否相似或相同。
在本发明实施例中,优选地,所述特征点包括:静态区域内的特征点,所述静态区域内不包括具有移动能力的物体。
本发明实施例的特征点为静态区域内的特征点,所述静态区域内不包括具有移动能力的物体。一张图片可以包括多个不同的区域,如果根据区域内是否包括具有移动能力的物体来对区域进行划分,那么图片的区域可以划分为动态区域和静态区域,其中,动态区域为具有移动能力的物体的区域,比如宠物所在的区域或者人所在的区域;静态区域为不具有移动能力的物体的区域。如果特征点是动态区域中的特征点,那么由于动态区域内有宠物或者人,且宠物和人正在移动,那么,最终的第二图片的选择将出现错误。例如,假设机器人当前拍摄的第一图片A中包含有6个特征点,图片集中的第二图片B,C也有6个特征点,同时假设第一图片A中的6个特征点中有二个特征点为小猫所在的动态区域M内,第二图片C中的6个特征点中也有二个特征点为该小猫所在的另一动态区域N内,那么如果特征点只包括静态区域内的特征点,那么最终得到的可以反映第一图片的拍摄方位的第二图片应该为第二图片B,但是由于小猫具备活动能力,且进行了位置的移动,从动态区域N移动到了动态区域M,导致第一图片A和第二图片C多了二个相似特征点,并导致最终的第二图片判断为第二图片C,从而出现了错误的判断。
在步骤S1312中,将第一图片的特征点和图片集中的第二图片的特征点进行比较,得到图片集中的每幅第二图片与第一图片的相似特征点的个数。
将第一图片的特征点和图片集中的多张第二图片的特征点进行比较,即将第一图片的特征点与图片集中的多张第二图片的特征点的描述子进行比较,得到图片集中的每幅第二图片与该第一图片的相似特征点的个数。其中,相似特征点指两个特征点的相似程度超过了某个设定的阈值。由于图片拍摄时间、角度等的影响,即使是在同一位置拍摄的图片也可能并不相同,例如,图片集中的第二图片是朝正前方拍摄的,而现在拍摄的第一图片可能是机器人往左偏离了一定角度后拍摄的,这个时候得到的第一图片和图片集中的第二图片很可能并不完全相同,因此,这里只能比较特征点的相似程度,而不能要求两个特征点完全相同,当两个特征点相似程度超过一定值之后,认为两个特征点相似或相同。例如,假设通过ORB算法计算得到第一图片中的某个特征点的描述子为:1010101111,图片集中某张第二图片中的某个特征点的描述子为:1010101011,设定的阈值为80%,那么通过对比两个描述子发现,它们只有一个元素不相同,计算得到的两个描述子的相似程度为90%,超过了设定的阈值80%,因此,判断这两个特征点相似。
在步骤S1313中,选出与第一图片的相似特征点的个数最多的第二图片。
当图片集中的某张第二图片与当前拍摄的第一图片包含的相似特征点最多的时候,认为该第二图片为能够反映机器人当前拍摄照片时所处方位的最佳图片。例如,假设定位摄像头当前拍摄的第一图片为A,从A中提取的特征点的数量是6,图片集中的第二图片为B,C,D,从第二图片B,C,D中提取的特征点的数量分别是6,7,8,那么将第一图片A中的特征点与第二图片B,C,D的特征点进行比较,得到相似的特征点的个数为:5,2,1,根据这个比较结果,选取与第一图片A的相似特征点的个数最多的第二图片B为最佳图片,然后根据第二图片B的方位信息确定第一图片A的方位信息。
可选的,步骤S131还可以选择利用如下步骤执行:提取第一图片的特征点;将第一图片与图片集中的多张第二图片的特征点进行顺序比较,并设置一个单独的序号存储区域存储每次比较后得到的与第一图片拥有最多相似特征点的第二图片的序号;从该单独的序号存储区域获取到挑选出的第二图片的序号。例如,如图5所示,序号存储区域初始化为0,经过第一次比较,得到与第一图片具有最多相似特征的第二图片的序号为1,此时序号存储区域存储的序号为1,然后经进行第二次比较,假设第二次比较后得到的序号2的第二图片与第一图片拥有的相似特征点数量比第一次比较的多,那么序号存储区将存储的序号1更新为序号2,假设第三次比较后得到的序号3的第二图片与第一图片拥有的相似特征点数量比第二次比较的少,那么序号存储区存储的序号保持不变,仍为2,最终经过多次比较,得到与定位摄像头拍摄的照片拥有最多相似特征点的第二图片的序号。通过以上步骤能够直接从序号存储区域获取到最终选择出的第二图片的序号,然后从文件存储区域获取到该序号的第二图片后直接进行定位,而不是如步骤S1311~S1313所述的,先得到每张第二图片与第一图片的相似特征点的个数后,再从中选择出相似特征点个数最多的第二图片。
在步骤S132中,基于选取出的所述第二图片确定所述机器人的方位信息。
在本发明实施例中,方位信息包括:角度信息和位置信息;所述位置信息用于描述所述机器人所处的位置,例如,如图6所示,将整个房间看成一个平面,同时将该平面划分为多个小的方框区域,每个小的方框代表一个位置,那么,确认机器人的位置信息就是确认机器人的中心点处于哪个方框中。以机器人所处的位置的正北方向为0度角,角度信息为以该0度角为基准,机器人所朝的方向的角度值。
在本发明实施例中,方位信息不仅包括了位置信息,还包括了机器人所朝方向的角度信息,使得可以根据机器人所朝的方位更好的规划机器人的行走路径。例如,假设不管机器人当前是朝左前方走或者朝右前方走,都可以以相同的路径长度到达目的地,如果不确定机器人的方位信息,那么这个时候将随机的进行路径的选择,可能向左前方走,也可能向右前方走,如果机器人选择了向右前方走而机器人所朝方向又是左前方,那么显然机器人需要首先将朝向调至向右前方方向,然后再按右边的路径进行行走,但是如果确定了机器人的角度信息,那么机器人将根据其当前所朝的角度来进行路径的选择,即假设确认了机器人当前所朝方向为左前方,那么机器人在经过比较后得出,选择左边的这条路径将可以使其更快的到达目的地,因为机器人不需要再去转换方向,而可以直接按照左边的路径行走。同时,在确定方位信息之后,可以在控制终端或者服务器进行显示,以方便控制终端或者服务器端的控制人员对该机器人进行位置和角度的直接控制。
本发明实施例通过将摄像头当前拍摄的第一图片的特征点与图片集中的第二图片的特征点进行对比,从而根据从图片集中选出来的第二图片来确定机器人的方位信息,即本方法在机器人不包含GPS定位模块的情况下,只需要提供一张图片就能定位,降低了机器人对GPS定位模块的依赖性,同时本发明实施例提供的利用特征点比较的定位方法还能实现准确定位:由于图片集中包含的是某个具体场景的多张第二图片,因此,即使是在某个封闭的场景内部,比如房间内部或者教室内部,也能够准确的识别出机器人所在房间内部或教室内部的具体位置,例如客厅电视墙处或者餐厅桌下面或者黑板正下方。
优选地,如图7所示,步骤S132基于选取出的所述第二图片确定所述机器人的方位信息包括:
步骤S1321,从所述文件存储区获取选取出的所述第二图片的位置信息,将该位置信息确定为所述机器人的位置信息。
在本发明实施例中,直接将选取出的第二图片的位置信息确定为机器人的位置信息。
步骤S1322,从所述文件存储区获取选取出的所述第二图片的角度信息,计算选取出的所述第二图片与所述第一图片的角度偏差,基于所述角度偏差,得到所述机器人的角度信息。
角度偏差为第二图片的拍摄角度与机器人当前拍摄第一图片时所处的角度的差异。由于在实际的拍摄过程中,第二图片是拍摄的机器人的正北方向的图片,而机器人当前拍摄第一图片时所处的方向可能并不是正北方向,因此,这个时候,为了获取机器人当前所朝的具体方向,需要进行角度偏差的计算,假设利用对极几何计算得到角度偏差为:-5度,因此确定机器人当前所朝角度为-5度,即机器人朝向为正前方,且向左偏移了5度。
在本发明实施例中,采用了后期计算角度偏差的方式来确定机器人当前所朝的角度,而不是由第二图片进行直接确定,因为如果要实现由第二图片的角度信息直接确定机器人当前拍摄第一图片时所处的角度信息,那么在构建图片集的时候就需要拍摄更多的照片,不仅要在同一位置进行拍摄的,还需要从该位置从不同的角度去拍摄,显然,最终得到的图片集的图片的数量将很大,而如果图片集中有这么多的图片,那么最终在进行第二图片的选择的时候将十分耗时,而如果是采用后期计算角度偏差的方式,只用在更少的图片的基础上进行第二图片的选择,然后再通过计算挑选出的第二图片与第一图片的角度偏差确定机器人的角度信息,节约了大量的第二图片的选择时间。
在本发明实施例中,可选的,基于所述第三图片确定所述机器人的方位信息之后,还包括:所述NginX服务器通过Websocket协议向所述机器人发送所述方位信息。
NginX服务器的定位结果可以发给机器人,也可以不发给机器人,如果该定位结果不发给机器人,很可能只是NginX服务器单方面的跟踪机器人的方位信息。而通常情况下,NginX服务器端对机器人来说是不可见的,即机器人是位于某一具体场景中的,而NginX服务器端可能距离该机器人很远,因此,如果NginX服务器端不将对机器人的方位信息的识别结果发送给机器人,那么机器人的现场控制人员需要登录NginX服务器才能得知机器人的具体方位信息,而不能在机器人端进行直接的查看,因此,为了使得机器人端的现场控制人员能够方便、直接的获取该机器人的方位信息,本发明实施例在基于所述第三图片确定所述机器人的方位信息之后,还包括:所述NginX服务器通过Websocket协议向所述机器人发送所述方位信息,同时由于是采用的Websocket协议来对方位信息进行的发送,也能增大对方位信息的发送速率。
实施例二
图4示出了本发明实施例二提供的定位系统100,包括:
NginX服务器110和机器人120;
所述NginX服务器110包括创建模块,用于为指定地址的机器人120建立与所述指定地址对应的Lua虚拟机;
所述NginX服务器110还包括接收模块,用于接收所述机器人120通过Websocket协议发送的定位指令和通过Http协议发送的第一图片,并将所述定位指令发送至所述Lua虚拟机;
所述Lua虚拟机包括定位模块,用于接收所述定位指令并根据所述定位指令执行定位服务;所述定位模块包括比较子模块,用于将所述第一图片与图片集中的多张第二图片进行特征比较,根据比较结果从所述图片集中选取出一张所述第二图片,所述图片集中的多张第二图片的特征数据预先存储在所述NginX服务器中的文件存储区;所述定位模块还包括定位子模块,用于基于选取出的所述第二图片确定所述机器人120的方位信息。
本发明实施例提供了一种定位系统,所述系统首先通过NginX服务器为指定地址的机器人建立一个为所述机器人提供各种服务的Lua虚拟机,由于一个Lua虚拟机只为一个指定地址的机器人服务,因此可以提高为所述机器人执行所述各种服务时的效率,然后所述NginX服务器通过Websocket协议和Http协议分别接收定位指令和第一图片,由于通过两种不同的协议同时传输定位指令和图片,可以大大提高数据传输的效率,最后所述Lua虚拟机根据接收到的定位指令执行定位服务,从而定位所述机器人,由于对机器人的定位操作是通过NginX服务器进行的,因此可以大大的降低对机器人处理器的性能要求,从而降低机器人成本。
在本发明实施例中,所述创建模块包括:
接收子模块,用于接收所述机器人120通过Websocket协议发送的地址指令,所述地址指令中携带有所述机器人120的机器人地址;
创建子模块,用于根据所述机器人地址建立与所述机器人地址对应的Lua虚拟机。
在本发明实施例中,所述定位子模块包括:
位置子模块,用于从所述文件存储区获取选取出的所述第二图片的位置信息,将该位置信息确定为所述机器人120的位置信息;
角度子模块,用于从所述文件存储区获取选取出的所述第二图片的角度信息,计算选取出的所述第二图片与所述第一图片的角度偏差,基于所述角度偏差,得到所述机器人120的角度信息。
在本发明实施例中,所述Lua虚拟机还包括:
发送模块,用于在基于所述第三图片确定所述机器人120的方位信息之后,所述NginX服务器110通过Websocket协议向所述机器人120发送所述方位信息。
需要说明的是,本发明实施例二提出的定位系统与本发明实施例一提出的定位方法基于相同的发明构思,系统实施例与方法实施例中的相应技术内容可互相适用,此处不再详述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述一种定位系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的方法及系统,可以通过其它的方式实现。例如,以上所描述的方法及系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.一种定位方法,其特征在于,包括:
NginX服务器为指定地址的机器人建立与所述指定地址对应的Lua虚拟机;其中,所述Lua虚拟机会为所述机器人提供一个独立的服务环境;
所述NginX服务器接收所述机器人通过Websocket协议发送的定位指令和通过Http协议发送的第一图片,并将所述定位指令发送至所述Lua虚拟机;其中,所述第一图片为摄像头拍摄的机器人正前方的环境图像;
所述Lua虚拟机接收所述定位指令并根据所述定位指令执行定位服务,包括:将所述第一图片与图片集中的多张第二图片进行特征比较,根据比较结果从所述图片集中选取出一张所述第二图片,并基于选取出的所述第二图片确定所述机器人的方位信息;其中,所述图片集为采用定位摄像头预先拍摄的具体场景的多张图片的集合;
所述图片集中的多张第二图片的特征数据预先存储在所述NginX服务器中的文件存储区。
2.如权利要求1所述的定位方法,其特征在于,所述NginX服务器为指定地址的机器人建立与所述指定地址对应的Lua虚拟机,包括:
所述NginX服务器接收所述机器人通过Websocket协议发送的地址指令,所述地址指令中携带有所述机器人的机器人地址;
所述NginX服务器根据所述机器人地址建立与所述机器人地址对应的Lua虚拟机。
3.如权利要求1所述的定位方法,其特征在于,所述方位信息包括:
角度信息和位置信息;
所述位置信息用于描述所述机器人所处的位置;
以所述机器人所处的位置的正北方向为0度角,所述角度信息为以所述0度角为基准,所述机器人所朝的方向的角度值。
4.如权利要求3所述的定位方法,其特征在于,所述基于选取出的所述第二图片确定所述机器人的方位信息,包括:
从所述文件存储区获取选取出的所述第二图片的位置信息,将该位置信息确定为所述机器人的位置信息;
从所述文件存储区获取选取出的所述第二图片的角度信息,计算选取出的所述第二图片与所述第一图片的角度偏差,基于所述角度偏差,得到所述机器人的角度信息。
5.一种定位系统,其特征在于,包括:
NginX服务器和机器人;
所述NginX服务器包括创建模块,用于为指定地址的机器人建立与所述指定地址对应的Lua虚拟机;其中,所述Lua虚拟机会为所述机器人提供一个独立的服务环境;
所述NginX服务器还包括接收模块,用于接收所述机器人通过Websocket协议发送的定位指令和通过Http协议发送的第一图片,并将所述定位指令发送至所述Lua虚拟机;其中,所述第一图片为摄像头拍摄的机器人正前方的环境图像;
所述Lua虚拟机包括定位模块,用于接收所述定位指令并根据所述定位指令执行定位服务;所述定位模块包括比较子模块,用于将所述第一图片与图片集中的多张第二图片进行特征比较,根据比较结果从所述图片集中选取出一张所述第二图片,所述图片集中的多张第二图片的特征数据预先存储在所述NginX服务器中的文件存储区;所述定位模块还包括定位子模块,用于基于选取出的所述第二图片确定所述机器人的方位信息;其中,所述图片集为采用定位摄像头预先拍摄的具体场景的多张图片的集合。
6.如权利要求5所述的定位系统,其特征在于,所述创建模块包括:
接收子模块,用于接收所述机器人通过Websocket协议发送的地址指令,所述地址指令中携带有所述机器人的机器人地址;
创建子模块,用于根据所述机器人地址建立与所述机器人地址对应的Lua虚拟机。
7.如权利要求5所述的定位系统,其特征在于,所述定位子模块包括:
位置子模块,用于从所述文件存储区获取选取出的所述第二图片的位置信息,将该位置信息确定为所述机器人的位置信息;
角度子模块,用于从所述文件存储区获取选取出的所述第二图片的角度信息,计算选取出的所述第二图片与所述第一图片的角度偏差,基于所述角度偏差,得到所述机器人的角度信息。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029397.5A CN108364314B (zh) | 2018-01-12 | 2018-01-12 | 一种定位方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029397.5A CN108364314B (zh) | 2018-01-12 | 2018-01-12 | 一种定位方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108364314A CN108364314A (zh) | 2018-08-03 |
CN108364314B true CN108364314B (zh) | 2021-01-29 |
Family
ID=63011335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810029397.5A Active CN108364314B (zh) | 2018-01-12 | 2018-01-12 | 一种定位方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108364314B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471407B (zh) * | 2019-07-02 | 2022-09-06 | 无锡真源科技有限公司 | 一种模组自动调节的自适应定位系统及方法 |
CN110631588B (zh) * | 2019-09-23 | 2022-11-18 | 电子科技大学 | 一种基于rbf网络的无人机视觉导航定位方法 |
CN112565421B (zh) * | 2020-12-03 | 2022-01-25 | 创盛视联数码科技(北京)有限公司 | 信息传输方法、系统、电子设备及存储介质 |
CN114578188B (zh) * | 2022-05-09 | 2022-07-08 | 环球数科集团有限公司 | 一种基于北斗卫星的电网故障定位方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104535962A (zh) * | 2014-12-24 | 2015-04-22 | 北京奇虎科技有限公司 | 室内定位方法和室内定位系统 |
CN205581643U (zh) * | 2016-04-27 | 2016-09-14 | 河北德普电器有限公司 | 一种机器人定位导航系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104819723B (zh) * | 2015-04-29 | 2017-10-13 | 京东方科技集团股份有限公司 | 一种定位方法和定位服务器 |
CN105975967B (zh) * | 2016-04-29 | 2019-04-23 | 殳南 | 一种目标定位方法和系统 |
-
2018
- 2018-01-12 CN CN201810029397.5A patent/CN108364314B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104535962A (zh) * | 2014-12-24 | 2015-04-22 | 北京奇虎科技有限公司 | 室内定位方法和室内定位系统 |
CN205581643U (zh) * | 2016-04-27 | 2016-09-14 | 河北德普电器有限公司 | 一种机器人定位导航系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108364314A (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108364314B (zh) | 一种定位方法、系统及介质 | |
CN111325796B (zh) | 用于确定视觉设备的位姿的方法和装置 | |
US11145083B2 (en) | Image-based localization | |
US10580206B2 (en) | Method and apparatus for constructing three-dimensional map | |
US9984473B2 (en) | Feature trackability ranking, systems and methods | |
US10217221B2 (en) | Place recognition algorithm | |
CN110457414B (zh) | 离线地图处理、虚拟对象显示方法、装置、介质和设备 | |
US10810430B2 (en) | Augmented reality with markerless, context-aware object tracking | |
US10262464B2 (en) | Dynamic, local augmented reality landmarks | |
CN110866977B (zh) | 增强现实处理方法及装置、系统、存储介质和电子设备 | |
TWI615776B (zh) | 移動物件的虛擬訊息建立方法、搜尋方法與應用系統 | |
US20220327792A1 (en) | 3-d reconstruction using augmented reality frameworks | |
CN110060230B (zh) | 三维场景分析方法、装置、介质及设备 | |
CN110555876B (zh) | 用于确定位置的方法和装置 | |
US11651560B2 (en) | Method and device of displaying comment information, and mobile terminal | |
CN113112542A (zh) | 一种视觉定位方法、装置、电子设备及存储介质 | |
CN114943773A (zh) | 相机标定方法、装置、设备和存储介质 | |
CN110111364B (zh) | 运动检测方法、装置、电子设备及存储介质 | |
WO2022247126A1 (zh) | 视觉定位方法、装置、设备、介质及程序 | |
KR20230049969A (ko) | 글로벌 측위 장치 및 방법 | |
EP3805899A1 (en) | Head mounted display system and scene scanning method thereof | |
JP2019508773A (ja) | 三次元空間のナビゲーション点間をナビゲートするための方法、関連するシステムおよび関連するデバイス | |
CN113946221A (zh) | 眼部驱动控制方法和装置、存储介质及电子设备 | |
CN116136408A (zh) | 室内导航方法、服务器、装置和终端 | |
US20140050401A1 (en) | Fast Image Processing for Recognition Objectives System |
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 |