一种基于计算机视觉技术的前后端架构地图定位方法

文档序号:1753672 发布日期:2019-11-29 浏览:14次 >En<

阅读说明:本技术 一种基于计算机视觉技术的前后端架构地图定位方法 (A kind of front and back end framework Orientation on map method based on computer vision technique ) 是由 施荣圳 廖勇 吴金添 舒凌洲 于 2019-08-28 设计创作,主要内容包括:一种基于计算机视觉技术的前后端架构地图定位方法,包括定位、传输和建图三个部分,所述定位部分运行于基于嵌入式设备的前端,所述传输和建图部分运行于PC后端,本发明通过使用后端提前对后续需要进行定位的地图区域进行离线的全局地图的构建,再对提前构建好的全局地图进行信息读取和预处理,然后使用前端对待定位目标所处位置进行拍照,将拍照所得图形进行语义分割、特征点提取及描述子计算、视觉单词归类处理,在对每个特征点进行视觉单词归类后,利用视觉单词类别,将前端当前图像的特征点与后端传送来的子地图的特征点进行全局地图匹配,从而估计出当前相机在全局地图中的姿态信息,从而实现对无人机或无人车的地图实时定位。(A kind of front and back end framework Orientation on map method based on computer vision technique, including positioning, transmit and build three parts of figure, the position portion runs on the front end based on embedded device, it the transmission and builds figure part and runs on the rear end PC, by the present invention in that carrying out the building of offline global map to the subsequent map area positioned in advance with rear end, information reading and pretreatment are carried out to the global map built in advance again, then it is taken pictures using front end to target present position to be positioned, the gained figure that will take pictures carries out semantic segmentation, feature point extraction and description calculate, vision word classification processing, after carrying out vision word classification to each characteristic point, utilize vision word classification, the characteristic point for the sub- map that the characteristic point of front end present image and rear end transmission are come is subjected to global map matching, to estimate Posture information of the Current camera in global map is counted out, the map of unmanned plane or unmanned vehicle is positioned in real time to realize.)

一种基于计算机视觉技术的前后端架构地图定位方法

技术领域

本发明属于计算机视觉技术领域,具体来说,涉及一种基于计算机视觉技术的前后端架构地图定位方法。

背景技术

在当前计算机视觉技术领域内,主要是利用SLAM(即时定位与地图构建)技术来实现自主定位。SLAM技术在高性能PC上能够实现较高准确性和实时性的局部定位,其主流的主要技术步骤如下:

1)图像获取:图像主要是由相机设备获得,而相机设备可分为单目相机、双目相机和深度相机。若为单目相机,则获取到的图像为彩色图,而双目相机和深度相机获取到的图像则为彩色图和深度图。

2)特征点提取与描述子计算:图像中存在着大量具备本质特征的特征点,该步骤会将这些特征点从图像中提取出来,并计算其描述子以用数据的方式来描述其特征信息。

3)姿态估计:利用前后两帧图像上的特征点及其描述子信息,能够估算出前后两帧图像的运动关系,从而得到前后两帧的相机姿态信息。当相机运动经过一段路径后,便可得到相对于相机运动起始点的定位信息。

4)地图建立:在定位的同时,三维点云地图也能随着局部定位信息而建立起来。

5)姿态优化:为了提高定位的准确性,一般会利用回环等信息来对步骤3中所得到的姿态进行优化和更新。

由于主流的SLAM技术主要利用相机前后两帧图像之间的关系来进行姿态估计,因此会存在以下技术问题:

1)姿态估计后得到的定位轨迹通常是针对于初始位置的局部定位,并不能很好地实现全局意义上的定位;

2)由于通过前后帧图像得到的姿态估计存在误差,随着时间的推进,定位轨迹的累积误差将越来越大,导致最终的定位信息准确性不够高;

3)多数SLAM技术方案虽能在高性能PC上达到很好的效果,但却不能在嵌入式设备上兼顾实时性和准确性;

4)即使在有提供地图辅助的情况下,地图本身容量也过于庞大不利于在嵌入式设备中存储,并且在真实场景中常常会受到动态物体的干扰。

发明内容

本发明针对现有技术中利用SLAM技术对无人机或无人车进行定位存在的缺陷,提出了一种基于计算机视觉技术的前后端架构地图定位方法,兼顾实时性和准确性的同时基于嵌入式设备实现了无人机或无人车的全局全轨迹的定位,而且降低了前后帧图像姿态误差。

本发明通过下述技术方案实现:

一种基于计算机视觉技术的前后端架构地图定位方法,包括定位与建图两个部分,所述定位部分运行于基于嵌入式设备的前端,前端安装在待定位的目标,如无人机或无人车上,所述建图部分运行于基于PC的后端,本发明基于所述前端与后端按照以下步骤进行:

步骤S1.使用后端提前对后续需要进行定位的地图区域进行离线的全局地图的构建,所述全局地图包括由大量三维特征点组成的三维特征点和待定位目标的真实轨迹信息;

步骤S2.使用后端对提前构建好的全局地图进行信息读取和预处理,所述预处理是将全局地图切割成一块块子地图;

步骤S3.使用前端对待定位目标所处位置进行拍照,将拍照所得图形进行语义分割、特征点提取及描述子计算、视觉单词归类处理,在对每个特征点进行视觉单词归类后,利用视觉单词类别,将前端当前图像的特征点与后端传送来的子地图的特征点进行全局地图匹配,从而估计出当前相机在全局地图中的姿态信息,从而完成地图定位。

为了更好地实现本发明,进一步地,所述步骤S3中的语义分割能区分动态物体和静态物体的特性,提取出图像中动态物体的区域,并将该区域剔除,从而使得前端在匹配后端地图时,能够除去场景中动态物体所带来的干扰。

为了更好地实现本发明,进一步地,所述步骤S3中的视觉单词归类具体步骤如下:

步骤S3.1.1.利用FLANN通过不相关的图像中的特征点来训练出一个视觉词典;

步骤S3.1.2.以视觉词典为基础将前端图像中的二维特征点与后端图像中的三维特征点进行视觉单词归类;

步骤S3.1.3.当两个特征点的视觉单词号相同时,认定这两个特征点具有相似性,可成为一个匹配对;

步骤S3.1.4.当在一次定位中得到大量的匹配对后,进行后续的姿态估计。

为了更好地实现本发明,进一步地所述步骤S3中的全局地图匹配具体步骤如下:

步骤S3.2.1.对视觉单词匹配对进行进一步的描述子匹配操作,即当一个前端二维特征点和一个后端三维特征点的视觉单词号相同时,再对这两个特征点的描述子进行距离的计算;

步骤S3.2.2.若距离在阈值范围内,则真正认定这两个特征点是相互匹配的;

步骤S3.2.3.重复步骤S3.2.2获得多组相互匹配的特征点,然后再通过多组特征点匹配对来解决透视多点问题,由此估计出相机姿态信息;

步骤S3.2.4.使用计算当前估计出的相机姿态与子地图最后一个相机姿态之间的在XZ轴上的距离,即相机的运动的距离,若小于阈值则切换到下一片新的子地图。

为了更好地实现本发明,进一步地,所述步骤S2涉及的具体步骤如下:

步骤S2.1.对全局地图的信息进行读取;

步骤S2.2.将整个全局地图进行地图分割,切割成一块块的子地图,所述地图分割通过确定定位端将要运行的轨迹,在全局地图上将该整体轨迹分割成多段子轨迹,即将包含全部三维特征点的全局地图分割成一块块包含部分三维特征点的子地图来实现;

步骤S2.3在地图定位模块运行前,预先将前几块子地图传输给地图定位模块,以便开始进行定位。

为了更好地实现本发明,进一步地,所述三维特征点云主要由大量三维特征点所构成,所述三维特征点包括的信息有三维坐标值、视觉单词识别号、相机识别号和特征点描述子信息,其中所述相机识别号表示信息为对应特征点是相机在第几帧下所拍摄的。

为了更好地实现本发明,进一步地,所述三维特征点云保留了所有的三维特征点容量较为庞大,通过八叉树的方法对三维点云进行压缩并降低冗余度。

为了更好地实现本发明,进一步地,所述步骤S1涉及的具体步骤如下:

步骤S1.1.摄影:利用高精度的双目相机对后续需要进行定位的地图区域进行视频流式的拍摄,得到双目图像;

步骤S1.2.预处理:将双目图像及一些附带信息输入到地图定位模块后,经过预处理便可得到深度图、语义分割图和相机轨迹;

步骤S1.3.提取特征点:在预处理完毕后,对图像中的特征点进行提取以及描述子的计算,并对各个特征点进行视觉单词的归类;

步骤S1.4.生成全局地图:结合已经获得的相机轨迹和相机内外参数生成三维特征点云,即最终的全局地图。

为了更好地实现本发明,进一步地,所述特征点提取与描述子计算使用了ORB算法来对图像中的特征点进行提取并计算其描述子信息。特征点即为图像中部分具备一定特征的点,如边缘或边缘相交处等,而描述子则可以以数据的形式来表现点的特征性。当得到特征点后,即可对特征点之间进行描述子的距离计算,从而实现匹配过程。

为了更好地实现本发明,进一步地,所述通行传输模块主要用于前端和后端的数据无线通信。具体来说,前端定位过程中需要借助后端的全局地图来完成,而后端则借助TCP无线通信,将全局地图切割后的子地图依次传输到前端供定位使用;除此之外,前端定位过程中将产生定位姿态信息,即当前相机姿态信息,这些定位姿态信息也将通过TCP无线通信传送到后端供监控使用。本模块定义后端为TCP服务器,而前端为TCP客户端,即后端网络属于常驻等待连接的状态,而前端在需要接受子地图和需要传送定位姿态信息时,再向后端TCP服务器发起连接,从而完成数据无线传输。

本发明与现有技术相比,具有以下优点及有益效果:

1)在对全局地图进行切割后,子地图能够并行且连续不断地通过无线传输提供给前端进行定位。这种切割后形成的小容量子地图,不仅能够节约前端嵌入式设备的内存使用,让嵌入式设备无需一次性存储下庞大的全局地图信息,还能减小前端在二维与三维匹配中的三维特征点匹配量,这既提升了匹配速度也提高了匹配准确性。

2)在对图像进行语义分割后,能够识别出场景中的动态物体与静态物体。以此为依据,对场景中的动态物体的特征点进行剔除,能够有效降低在地图匹配定位过程中,动态物体带来的干扰。

3)由于定位所需的全局地图是离线构建好的,并且能够提前对全局地图进行在准确性上的人为优化。因此,前端能够根据后端所提供的更准确的地图来进行定位,从根本上摒除了利用相机前后运动关系来进行姿态估计的方案,从而解决了原本方案中误差累积的问题。

4)将传统的SLAM技术拆分成了离线建图和在线定位两部分,使得能够在前期建图的过程中,提前将地图的全局信息确定下来。当运行前端在线定位时,能根据构建好的全局地图进行定位,从而知晓当前运行定位程序的嵌入式设备的具***置,进而解决了传统SLAM技术方案中,嵌入式设备的位置只能相对于定位起始位置来确定的问题。

5)实现准确性高的地图构建需要较多的计算资源,本发明将这一部分交给高性能PC进行离线处理,使得处于前端的嵌入式设备的计算量大幅度下降,从而实现更好的实时性。而又因为后端能够提供高准确度的全局地图,前端在根据该全局地图进行定位时,又能够达到更好的定位准确性。

附图说明

图1为整体系统架构图;

图2为划分子地图分割区域流程图;

图3为语义分割流程图;

图4为视觉单词归类流程图;

图5为构建包含三维点的子地图的流程图;

图6为TCP通信中服务器的流程图;

图7为TCP通信中客户端流程图;

图8为TCP通信中子地图并行传输的流程图。

具体实施方式

为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

如图1所示,一种基于计算机视觉技术的前后端架构地图定位方法,包括定位、传输与建图三个部分,所述定位部分运行于基于嵌入式设备和单目相机的前端,前端和单目相机安装在待定位目标上,例如无人机或无人车;所述建图部分运行于基于PC和双目相机的后端,本发明基于所述前端、单目相机、双目相机和后端按照以下步骤进行:

步骤S1.通过双目相机,对带定位目标将要运行的轨迹所处的环境进行拍摄,从而获得双目图像;再由PC端对所获得的双目图像进行预处理,通过预处理可以获得双目图像的深度图,语义分割图和双目相机运行轨迹,而因为双目相机运行轨迹即是待定位目标将要运行的轨迹;经过了预处理之后,再由PC进行特征点提取与描述子计算、视觉单词归类、生成三维特征点云,最终在离线的情况下构建出全局地图;

步骤S2.在离线的全局地图构建完毕以后,通过PC对全局地图进行在线的处理,具体处理包括对全局地图信息进行读取以及地图分割,其中地图分割不是简单地通过一定比例将地图进行区域分割,而是按照待定位目标将要运行的总轨迹,将总轨迹分割成一段段成一定比例的子轨迹,该子轨迹就是通过地图分割得到的子地图,最后将子地图发送至前端,以供前端进行实时在线的定位;

步骤S3.在通过基于嵌入式设备和单目相机的前端接收来自PC的子地图之前,先通过单目相机获取待定位目标所处环境的单目图像,通过嵌入式设备对单目图像进行语义分割、特征点提取与描述子计算、视觉单词归类;然后将接收到的全局地图子的三维的子地图与单目相机获取的二维的单目图像进行匹配,通过匹配进行姿态估计,从而在线计算出待定位目标所处位置,实现待定位目标的定位,最后将定位信息从嵌入式设备中传输到PC上,实现在线的定位监控。

工作原理:后端通过高精度的双目相机提前对后续需要进行定位的地图区域进行视频流式拍摄获得双目图像,经过预处理和特征提取等操作后可生成全局地图;然后将全局地图根据需要定位的目标将要运行的总轨迹,按照总轨迹路线进行分割,分割成多个子轨迹,即子地图,将子地图传输给前端;在前端中有单目相机,所述单目相机将以视频流的方式逐帧获取单目图像,并对单目图像进行预处理,最后将处理后的单目图像与子地图进行匹配从而完成实时在线定位。在整个定位过程中,前端每次估计出相机姿态将回传给后端,从而实现在线实时的定位监控的功能。通过语义分割和特征点提取,可以对单目相机获得的单目图像与全局地图进行相似点匹配,当两点相似时,进行视觉单词归类然后再进行相似度匹配,如此可以提高定位的精确度。

实施例2:

在实施例1的基础上,结合图3,为了很好的实施本发明,进一步地,所述步骤S3中的语义分割能区分动态物体和静态物体的特性,提取出图像中动态物体的区域,并将该区域剔除,从而使得前端在匹配后端地图时,能够除去场景中动态物体所带来的干扰,在实际运行过程中,系统会先判断是否已经有训练好的模型,如果没有,则会先进行模型训练,当判断到有已经训练好的模型,则会对已经训练好的模型进行读取,然后通过模型对需要进行语义分割的图像进行处理,剔除图像中的动态物体区域,保留静态物体的区域。

工作原理:在全局地图的建立时,通过双目相机获得的图片中包括了轨迹路线中固有的静态物体,也有实时经过的运动的动态物体,同样的,在单目摄像机进行拍摄的时候同样也会有轨迹路线中固有的静态物体与实时运动的动态物体。当在对两次图像进行特征比对匹配从而定位的时候,两次图像中的动态物体对于匹配来说就是一种干扰,通过语义分割区分动态物体和静态物体的特性,提取出图像中动态物体的区域,并将该区域剔除,从而使得前端在匹配后端地图时,能够除去场景中动态物体所带来的干扰。例如,在前端定位过程中,场景中有一辆汽车,但后端的全局地图在构建时可能并不存在这辆汽车,此时若不对这辆汽车进行剔除,将会对前端定位造成一定程度的干扰。它主要利用了卷积神经网络的方法来实现图像的语义分割。为了提高后端地图的准确性以及前端定位的实时性,本发明在后端的语义分割模块中,选用了Xception 65层结构作为语义分割的后端,并使用DeepLab v3+方法来实现语义的分割;而在前端的语义分割模块中,选用了层数仅有10层的MobileNet v2作为语义分割的后端,并精简了DeepLab v3+来实现语义的分割,该精简步骤主要是去掉了ASPP层。同时,在语义分割网络的训练和推理中,前端输入的图像尺寸大小为256*256,而后端输入的图像尺寸大小为512*512。

本实施例的其他部分与实施例1相同,故不再赘述。

实施例3:

在实施例1-2的基础上,结合图4和图5所示,为了更好地实施本发明,进一步地,所述步骤S3中的视觉单词归类具体步骤如下:

步骤S3.1.1.利用FLANN通过不相关的图像中的特征点来训练出一个视觉词典;

步骤S3.1.2.以视觉词典为基础将前端图像中的二维特征点与后端图像中的三维特征点进行视觉单词归类;

步骤S3.1.3.当两个特征点的视觉单词号相同时,认定这两个特征点具有相似性,可成为一个匹配对;

步骤S3.1.4.当在一次定位中得到大量的匹配对后,进行后续的姿态估计。

工作原理:如图4所示,在具体的运行中,系统会提前判断是否已经有提前训练好的视觉词典,若没有,则会进行视觉词典训练的操作,若判断到有,则会对已经训练好的视觉词典进行读取,并建立单词索引;最后对输入的需要处理的二维或者三维的图像的特征点集合进行归类,得到每个特征点的单词标识号,通过单词标识号可以将前端单目图像的二维特征点与后端全局地图的三维特征点进行匹配,通过两个图像的特征点匹配,可以先进行一次粗略的匹配,将很可能是同一位置的图像进行配对,能大致确定目前定位,且先进行此步操作,再将此时获得的结果送入后续精确匹配,可以减轻精确匹配流程的工作量,在定位过程中无需对所有图像特征都进行精确的匹配,提高实时定位的速度与效率,减少设备工作处理量。

本实施例的其他部分与上述实施例1-2相同,故不再赘述。

实施例4:

在实施例1-3的基础上,为了更好地实施本发明,进一步地,所述步骤S3中的全局地图匹配具体步骤如下:

步骤S3.2.1.对视觉单词匹配对进行进一步的描述子匹配操作,即当一个前端二维特征点和一个后端三维特征点的视觉单词号相同时,再对这两个特征点的描述子进行距离的计算;

步骤S3.2.2.若距离在阈值范围内,则真正认定这两个特征点是相互匹配的;

步骤S3.2.3.重复步骤S3.2.2获得多组相互匹配的特征点,然后再通过多组特征点匹配对来解决透视多点问题,由此估计出相机姿态信息;

步骤S3.2.4.使用计算当前估计出的相机姿态与子地图最后一个相机姿态之间的在XZ轴上的距离,即相机的运动的距离,若小于阈值则切换到下一片新的子地图。

本实施例的其他部分与上述实施例1-3相同,故不再赘述。

实施例5:

在实施例1-4的基础上,结合图2、图5和图8所示,为了更好地实施本发明,进一步地,所述步骤S2涉及的具体步骤如下:

步骤S2.1.对全局地图的信息进行读取;

步骤S2.2.将整个全局地图进行地图分割,切割成一块块的子地图,所述地图分割通过确定定位端将要运行的轨迹,在全局地图上将该整体轨迹分割成多段子轨迹,即将包含全部三维特征点的全局地图分割成一块块包含部分三维特征点的子地图来实现;

步骤S2.3在地图定位模块运行前,预先将前几块子地图传输给地图定位模块,以便开始进行定位。

工作原理:如图2所示,在具体的运行中,系统首先确定每个子地图分割的固定距离Ls,再读取全局地图的信息,确定将要运行的轨迹,将双目相机拍摄时的运行轨迹的起始相机姿态点设置为起始点,然后再判断是否还有其他相机姿态点,若有下一个相机姿态点,则判断其与起始点的距离是否大于Ls,若大于,则在此点处进行地图分割,以此方式不断将全局地图分割为距离为Ls的子地图,直到再也分割不出距离为Ls的子地图时停止,最后得到了所有分割子地图的集合。此后,在地图定位模块运行前,地图传输模块会预先将前几块子地图传输至地图定位模块,以便开始进行定位。通过对全局地图进行切割可以减小单位时间需要传输的信息量,提高工作效率,使得定位更加准确快速。

本实施例的其他部分与上述实施例1-4相同,故不再赘述。

实施例6:

在实施例1-5的基础上,为了更好地实施本发明,进一步地,所述三维特征点云主要由大量三维特征点所构成,所述三维特征点包括的信息有三维坐标值、视觉单词识别号、相机识别号和特征点描述子信息,其中所述相机识别号表示信息为对应特征点是相机在第几帧下所拍摄的。

本实施例的其他部分与上述实施例1-5相同,故不再赘述。

实施例7:

在实施例1-6的基础上,为了更好地实施本发明,进一步地,所述三维特征点云保留了所有的三维特征点容量较为庞大,通过八叉树的方法对三维点云进行压缩并降低冗余度。

工作原理:将所有的三维特征点进行保留数据过于庞大,而获取的三维特征点中并不是所有的都需要,通过八叉树的方法可以对三维特征点云进行压缩,降低冗余度,具体方法是首先设定一个正方体的边长值,通过将正方体三维空间不断划分为八块小正方体,直到划分的每一块小正方体边长都是事先设定好的正方体的边长值位置,此时每一个小正方体空间都会包含若干特征点,选出其中一个最具特征的点来代表该块三维空间里的其他三维特征点,其他被代表的三维特征点直接丢弃。

本实施例的其他部分与上述实施例1-6相同,故不再赘述。

实施例8:

在实施例1-7的基础上,结合图1所示,为了更好地实施本发明,进一步地,所述步骤S1涉及的具体步骤如下:

步骤S1.1.摄影:利用高精度的双目相机对后续需要进行定位的地图区域进行视频流式的拍摄,得到双目图像;

步骤S1.2.预处理:将双目图像及一些附带信息输入到地图定位模块后,经过预处理便可得到深度图、语义分割图和相机轨迹;

步骤S1.3.提取特征点:在预处理完毕后,对图像中的特征点进行提取以及描述子的计算,并对各个特征点进行视觉单词的归类;

步骤S1.4.生成全局地图:结合已经获得的相机轨迹和相机内外参数生成三维特征点云,即最终的全局地图。

工作原理:后端通过高精度的双目相机提前对后续需要进行定位的地图区域进行视频流式的拍摄后,可得到双目图像。将双目图像及一些附带信息输入到地图定位模块后,经过预处理便可得到深度图、语义分割图和相机运动的轨迹,该轨迹也就是提前规划好的的待定位目标后续将要运动的轨迹。在预处理完毕后,对彩色图像中的特征点进行提取以及描述子的计算,并对各个特征点进行视觉单词的归类(以此达到特征点分类的效果)。之后,结合已获得的相机轨迹和相机内外参数,便可生成三维特征点云,即形成最终的全局地图。

本实施例的其他部分与上述实施例1-7相同,故不再赘述。

实施例9:

在实施例1-8的基础上,为了更好地实施本发明,进一步地,所述特征点提取与描述子计算使用了ORB算法来对图像中的特征点进行提取并计算其描述子信息。特征点即为图像中部分具备一定特征的点,如边缘或边缘相交处等,而描述子则可以以数据的形式来表现点的特征性。当得到特征点后,即可对特征点之间进行描述子的距离计算,从而实现匹配过程。

本实施例的其他部分与上述实施例1-8相同,故不再赘述。

实施例10:

在实施例1-9的基础上,结合图6、图7和图8所示,为了更好地实施本发明,进一步地,所述通行传输模块主要用于前端和后端的数据无线通信。具体来说,前端定位过程中需要借助后端的全局地图来完成,而后端则借助TCP无线通信,将全局地图切割后的子地图依次传输到前端供定位使用;除此之外,前端定位过程中将产生定位姿态信息,所述定位姿态信息即当前相机姿态信息,这些定位姿态信息也将通过TCP无线通信传送到后端供监控使用。本模块定义后端为TCP服务器,而前端为TCP客户端,即后端网络属于常驻等待连接的状态,而前端在需要接受子地图和需要传送定位姿态信息时,再向后端TCP服务器发起连接,从而完成数据无线传输。

在具体运行中,如图6所示,TCP通信中的服务器会首先创建分别用于传输子地图和定位姿态的线程,然后设置为常驻等待客户端连接的状态,到接收到客户端的连接请求时,与客户端建立网络连接,接着便可以读取客户端上传输过来的命令,若客户端传输来的命令为子地图,则首先判断是否还有子地图要传输,若还有,则将已经传输来的子地图包含的三维特征点信息打包发送,当所有子地图传输完毕,则发送消息给客户端告知所有子地图已经发送完毕,并回到待连接状态;若客户端传输的命令为不是传输子地图,则判断所传输的命令是否为接收定位姿态信息,若是,则接收定位姿态信息并保存,然后回到待连接状态,反之则判断为命令错误,不作处理并回到待连接状态;如图7所示,TCP通信中客户端首先会指定运行所需的命令,若其指定的命令为接收子地图,则TCP通信中客户端会连接TCP通行中服务器并请求TCP通行中服务器接收数据包,若数据包中包含子地图,则让TCP通信中服务器保存接收到的子地图信息,反之则让TCP通行中服务器发送信息告知子地图已经全部传输完毕并进入传输定位姿态信息命令;同样地,当命令不是接收子地图时,也会进行传输定位姿态信息命令,然后TCP通信中客户端会连接TCP通信中服务器并对其发送当前定位姿态信息,并结束此次运行;如图8所示,通常,在前端开始定位之前,前端并不拥有任何的子地图信息,因此,在定位开始之前,前端需要向后端申请传输几片子地图放入前端的子地图缓冲区中,一般小于或者等于五片,在定位开始之后,为了实现定位与子地图传输的并行化,前端在每一次定位开始前都会检测子地图缓冲区内的子地图数量是否充足,若不充足则会开启一个线程来并行地从后端接收子地图,防止定位过程中因没有子地图可用于定位而发生阻塞。

本实施例的其他部分与上述实施例1-9相同,故不再赘述。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种SLAM系统的回环检测方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!