发明内容
本申请实施例中提供了一种端云结合定位方法、装置、及电子设备、计算机程序产品,可以充分发挥云端和终端各自的优势实现更有效的定位。
根据本申请实施例的第一个方面,提供了一种定位方法,包括如下步骤:
利用第一定位方式进行定位,得到第一定位数据;并获取第二定位方式所需的原始数据;
将所述第一定位数据以及所述第二定位方式所需的原始数据上传至云端;
接收云端下发的决策指令;所述决策指令为根据所述第一定位数据与第二定位方式所需的原始数据计算得到。
根据本申请实施例的第二个方面,提供了一种定位方法,包括如下步骤:
接收终端上传的第一定位数据以及第二定位方式所需的原始数据;所述第一定位数据为利用第一定位方式定位得到;
根据所述第二定位方式所需的原始数据利用第二定位方式进行定位,得到第二定位数据;
根据所述第一定位数据与所述第二定位数据生成决策指令,并下发至终端。
根据本申请实施例的第三个方面,提供了一种定位装置,包括:
终端定位模块,用于利用第一定位方式进行定位,得到第一定位数据;
获取模块,用于获取第二定位方式所需的原始数据;
终端发送模块,用于将所述第一定位数据以及所述第二定位方式所需的原始数据上传至云端;
终端接收模块,用于接收云端下发的决策指令;所述决策指令为根据所述第一定位数据与第二定位方式所需的原始数据计算得到。
根据本申请实施例的第四个方面,提供了一种定位装置,包括:
云端接收模块,用于接收终端上传的第一定位数据以及第二定位方式所需的原始数据;所述第一定位数据为利用第一定位方式定位得到;
云端定位模块,用于根据所述第二定位方式所需的原始数据利用第二定位方式进行定位,得到第二定位数据;
融合模块,用于根据所述第一定位数据与所述第二定位数据生成决策指令;
云端发送模块,用于将所述决策指令下发至终端。
根据本申请实施例的第五个方面,提供了一种电子设备,该电子设备包括:显示器,存储器,一个或多个处理器;以及一个或多个模块,该一个或多个模块被存储在该存储器中,并被配置成由该一个或多个处理器执行,该一个或多个模块包括用于执行本申请实施例的第一个方面的定位方法中各个步骤的指令。
根据本申请实施例的第六个方面,提供了一种计算机程序产品,该计算机程序产品对用于执行一种过程的指令进行编码,该过程包括本申请实施例的第一个方面的定位方法。
采用根据本申请实施例的定位方法、装置、及电子设备、计算机程序产品,可以将一部分定位方式部署于终端、一部分定位方式部署于云端,充分利用终端的实时处理能力以及云端的计算能力,从而可以确保定位准确性的同时降低终端的资源消耗。
具体实施方式
以下通过具体示例,进一步阐明本发明实施例技术方案的实质。显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
发明人在发明过程中注意到:
目前,定位技术可以分为绝对和相对定位两大类。比如,vSLAM重定位,GPS,WIFI,4G等无线定位技术属于绝对定位。IMU、VIO等定位技术属于相对定位。单独依靠其中任何一种定位技术都不能完全解决机器人的移动问题,所以本申请将这两大类定位方法结合形成——全局用绝对定位,局部用相对定位,并且可以根据算法复杂度和定位频率分别部署在云端和终端,构成一种切实有效的定位***。
实施例1
本申请实施例从终端侧对定位方法进行说明。
图1示出了本申请实施例中终端侧定位方法实施的流程示意图,如图所示,所述定位方法可以包括如下步骤:
步骤101、利用第一定位方式进行定位,得到第一定位数据;并获取第二定位方式所需的原始数据;
步骤102、将所述第一定位数据以及所述第二定位方式所需的原始数据上传至云端;
步骤103、接收云端下发的决策指令;所述决策指令为根据所述第一定位数据与第二定位方式所需的原始数据计算得到。
具体实施时,终端可以利用第一定位方式进行定位,得到定位结果(第一定位数据),并且获取到第二定位方式所需的原始数据。其中,利用第一定位方式进行定位,以及获取第二定位方式所需的原始数据,这两个步骤可以并行执行,也可以先利用第一定位方式进行定位再获取第二定位方式所需的原始数据、或者先获取第二定位方式所需的原始数据再利用第一定位方式进行定位,本申请实施例对这两个步骤的执行顺序不做限定。
第一定位方式可以为预先部署在终端的定位算法,第二定位方式可以为预先部署在云端的定位算法,第一定位方式和第二定位方式分别可以包括多种定位技术,这些定位技术均可以采用现有的定位技术实现。
终端将第一定位结果和第二定位方式所需的原始数据发送给云端服务器,然后就可以等待云端下发决策指令,并根据所述决策指令执行相应的动作,例如:前进、转弯、后退等等。
采用根据本申请实施例的定位方法,可以将第一定位方式部署于终端、第二定位方式部署于云端,终端通过将第一定位方式获得的定位数据以及第二定位方式所需的原始数据发送给云端,从而可以使得云端进一步计算终端的位置,确保定位准确性的同时降低终端的资源消耗。
实施中,所述第一定位方式的定位频率可以高于预设第一频率阈值和/或算法复杂度低于预设复杂度阈值;所述第二定位方式的定位频率可以低于预设第二频率阈值和/或算法复杂度高于预设复杂度阈值。
具体实施时,本申请实施例可以将定位频率较高的、或者算法复杂度较低的定位方式部署于终端侧,而定位频率较低的、或者算法复杂度较高的定位方式部署于云端侧,这样可以充分发挥终端的实时定位优点,以及云端的算法处理能力高的优点。
其中,第一频率阈值、第二频率阈值、复杂度阈值均可以为根据实际需要或经验预先设置,第一频率阈值可以与第二频率阈值相同,或者,第一频率阈值高于第二频率阈值。
实施中,所述第一频率阈值可以为100fps,所述第二频率阈值可以为10fps。
根据工程经验,可以根据功能请求频率的不同选择云端和终端结合的定位方案。具体来说,高帧率要求(≥100fps)部署在本地,中等帧率要求(≥10fps而<100fps)则可以分别部署在终端和云端上,低帧率要求(<10fps)则部署在云端上。
具体实施时,可以将高帧率要求的定位方式部署在终端,将低帧率要求的定位方式部署在云端。其中,高帧率(第一频率阈值)可以为100fps(画面每秒传输帧数),低帧率(第二频率阈值)可以为10fps。实际操作时,还可以将要求帧率/定位频率≥100fps的定位方式部署在终端本地,将中等帧率要求(即,≥10fps而<100fps)的定位方式则可以分别部署在终端和云端上,将低帧率要求(<10fps)的定位方式部署在云端上。
实施中,所述第一定位方式可以包括全球定位***(GPS,Global PositioningSystem)定位、无线定位、惯性测量单元(IMU,Inertial Measurement Unit)定位、和/或视觉惯性测距(VIO,Visual-Inertial Odometry)定位;所述第一定位数据可以包括GPS定位结果、无线定位结果、IMU定位结果、和/或VIO定位结果。
GPS定位技术,结合了GPS技术、无线通信技术、图像处理技术、GIS技术,是目前广泛使用的定位技术。
无线定位技术,可以包括:蓝牙定位、RFID定位、wifi定位、4G定位等等,目前常用于室内定位。
IMU定位技术,是通过测量物体三轴姿态角(角速率)以及加速度来检测物体的姿态的技术,IMU定位技术还可以根据待定位物体是人还是车,又可以分为IMU计步定位和IMU惯导定位(INS,惯性导航***Inertial Navigation System定位)。
VIO定位技术,是将相机和惯性测量单元结合起来估计位置和旋转变化的技术,融合了视觉和IMU的信息。
本申请实施例中第一定位方式可以包括GPS定位、无线定位、IMU定位、VIO定位等等,这些定位技术均可以采用现有技术中相应的技术手段实现,本申请在此不做赘述。
所述第一定位数据可以包括GPS定位结果、无线定位结果、IMU定位结果、VIO定位结果等,也可以将其中任意的一个或几个定位结果进行互相校对、修正,输出校对、修正后的定位结果,本申请对此不作限制。
实施中,所述第二定位方式所需的原始数据可以为图像数据,所述第二定位方式可以包括同时定位与地图创建(SLAM,Simultaneous localization and mapping)定位。
SLAM定位技术,通常是指在未知环境中创建地图、同时利用地图进行自主定位和导航,可以包括基于视觉的SLAM技术vSLAM和基于激光雷达的SLAM技术Lidar SLAM等。
所述第二定位方式为SLAM定位技术时,所述第二定位方式所需的原始数据可以为图像数据、激光雷达数据等等。
实施例2
本申请实施例从云端侧对定位方法进行说明。
图2示出了本申请实施例中云端定位方法实施的流程示意图,如图所示,所述方法可以包括如下步骤:
步骤201、接收终端上传的第一定位数据以及第二定位方式所需的原始数据;所述第一定位数据为利用第一定位方式定位得到;
步骤202、根据所述第二定位方式所需的原始数据利用第二定位方式进行定位,得到第二定位数据;
步骤203、根据所述第一定位数据与所述第二定位数据生成决策指令,并下发至终端。
云端可以接收终端上传的第一定位数据和第二定位方式所需的原始数据,可以首先根据第二定位方式所需的原始数据进行第二定位方式定位,得到第二定位方式定位的定位结果(即第二定位数据),然后将终端上传的第一定位数据与计算得到的第二定位数据进行融合,确定终端的当前位置,然后向终端发送决策指令,指示终端进行前进、后退、转弯等移动操作。
本申请实施例中,云端通过接收终端采集获得的第二定位方式所需的原始数据利用第二定位方式进行定位,然后将第二定位方式的定位结果与终端定位得到的定位结果进行融合,从而确保定位的准确性,此外,将第二定位方式部署在云端,在一定程度上降低了终端的资源消耗。
实施中,所述第一定位方式的定位频率可以高于预设第一频率阈值和/或算法复杂度低于预设复杂度阈值;所述第二定位方式的定位频率可以低于预设第二频率阈值和/或算法复杂度高于预设复杂度阈值。
具体实施时,本申请实施例可以将定位频率较高的、或者算法复杂度较低的定位方式部署于终端侧,而定位频率较低的、或者算法复杂度较高的定位方式部署于云端侧,这样可以充分发挥终端的实时定位优点,以及云端的算法处理能力高的优点。
其中,第一频率阈值、第二频率阈值、复杂度阈值均可以为根据实际需要或经验预先设置,第一频率阈值可以与第二频率阈值相同,或者,第一频率阈值高于第二频率阈值。
实施中,所述第一频率阈值可以为100fps,所述第二频率阈值可以为10fps。
具体实施时,可以将高帧率要求的定位方式部署在终端,将低帧率要求的定位方式部署在云端。其中,高帧率(第一频率阈值)可以为100fps(画面每秒传输帧数),低帧率(第二频率阈值)可以为10fps。实际操作时,还可以将要求帧率/定位频率≥100fps的定位方式部署在终端本地,将中等帧率要求(即,≥10fps而<100fps)的定位方式则可以分别部署在终端和云端上,将低帧率要求(<10fps)的定位方式部署在云端上。
实施中,所述第一定位方式可以包括GPS定位、无线定位、惯性测量单元IMU定位、和/或视觉惯性测距VIO定位;所述第一定位数据可以包括GPS定位结果、无线定位结果、IMU定位结果、和/或VIO定位结果。
本申请实施例中第一定位方式可以包括GPS定位、无线定位、IMU定位、VIO定位等等,这些定位技术均可以采用现有技术中相应的技术手段实现,本申请在此不做赘述。
所述第一定位数据可以包括GPS定位结果、无线定位结果、IMU定位结果、VIO定位结果等,也可以将其中任意的一个或几个定位结果进行互相校对、修正,输出校对、修正后的定位结果,本申请对此不作限制。
实施中,所述第二定位方式所需的原始数据可以为图像数据,所述第二定位方式可以包括同时定位与地图创建SLAM定位。
SLAM定位技术可以包括vSLAM和Lidar SLAM等,所述第二定位方式为SLAM定位技术时,所述第二定位方式所需的原始数据可以为图像数据、激光雷达数据等等。
实施例3
基于同一发明构思,本申请实施例提供了一种终端侧定位装置,由于这些设备解决问题的原理与一种终端侧定位方法相似,故重复之处不再赘述,下面进行说明。
图3示出了本申请实施例中终端侧定位装置的结构示意图,如图所示,所述定位装置可以包括:
终端定位模块301,用于利用第一定位方式进行定位,得到第一定位数据;
获取模块302,用于获取第二定位方式所需的原始数据;
终端发送模块303,用于将所述第一定位数据以及所述第二定位方式所需的原始数据上传至云端;
终端接收模块304,用于接收云端下发的决策指令;所述决策指令为根据所述第一定位数据与第二定位方式所需的原始数据计算得到。
实施中,所述第一定位方式的定位频率高于预设第一频率阈值和/或算法复杂度低于预设复杂度阈值;所述第二定位方式的定位频率低于预设第二频率阈值和/或算法复杂度高于预设复杂度阈值。
实施中,所述第一频率阈值为100fps,所述第二频率阈值为10fps。
实施中,所述第一定位方式包括GPS定位、无线定位、惯性测量单元IMU定位、和/或视觉惯性测距VIO定位;所述第一定位数据包括GPS定位结果、无线定位结果、IMU定位结果、和/或VIO定位结果。
实施中,所述第二定位方式所需的原始数据为图像数据,所述第二定位方式包括同时定位与地图创建SLAM定位。
实施例4
基于同一发明构思,本申请实施例还提供了一种云端侧定位装置,由于这些设备解决问题的原理与一种云端侧定位方法相似,故重复之处不再赘述,下面进行说明。
图4示出了本申请实施例中云端侧定位装置的结构示意图,如图所示,所述定位装置可以包括:
云端接收模块401,用于接收终端上传的第一定位数据以及第二定位方式所需的原始数据;所述第一定位数据为利用第一定位方式定位得到;
云端定位模块402,用于根据所述第二定位方式所需的原始数据利用第二定位方式进行定位,得到第二定位数据;
融合模块403,用于根据所述第一定位数据与所述第二定位数据生成决策指令;
云端发送模块404,用于将所述决策指令下发至终端。
实施中,所述第一定位方式的定位频率高于预设第一频率阈值和/或算法复杂度低于预设复杂度阈值;所述第二定位方式的定位频率低于预设第二频率阈值和/或算法复杂度高于预设复杂度阈值。
实施中,所述第一频率阈值为100fps,所述第二频率阈值为10fps。
实施中,所述第一定位方式包括GPS定位、无线定位、惯性测量单元IMU定位、和/或视觉惯性测距VIO定位;所述第一定位数据包括GPS定位结果、无线定位结果、IMU定位结果、和/或VIO定位结果。
实施中,所述第二定位方式所需的原始数据为图像数据,所述第二定位方式包括同时定位与地图创建SLAM定位。
实施例5
本申请实施例提供了一种电子设备,该电子设备包括:显示器,存储器,一个或多个处理器;以及一个或多个模块,该一个或多个模块被存储在该存储器中,并被配置成由该一个或多个处理器执行,该一个或多个模块包括用于执行本申请实施例的第一个方面的定位方法中各个步骤的指令。
实施例6
本申请实施例提供了一种计算机程序产品,该计算机程序产品对用于执行一种过程的指令进行编码,该过程包括本申请实施例的第一个方面的定位方法。
实施例7
为了便于实施,本申请实施例以一实例进行说明。
本申请实施例可以对人进行定位,待定位的人可以手持终端设备或者佩戴可穿戴设备作为终端与云端交互。
图5示出了本申请实施例行人定位过程示意图,如图所示,本申请实施例提供了一种端云结合的基于视觉、IMU、GPS融合的行人行为方法,下面进行说明。
本申请实施例所提供的云端和终端结合的定位方法,在终端上部署绝对GPS定位和相对VIO、IMU计步定位,在云端上部署了vSLAM绝对定位,并且融合了终端的定位结合,根据该结果形成决策指令发送至终端。
具体过程可以如下:
1、在终端侧,采集相机、IMU和GPS的原始数据以及时间戳;
2、在终端侧,绝对定位:依靠GPS的定位给出结果GPS;
相对定位:依靠IMU计步和VIO定位给出结果P;
3、在终端侧,将图像、结果GPS和P发送到云端;
4、在云端侧,绝对定位:将图像输入vSLAM给出视觉重定位结果;
5、在云端侧,融合vSLAM和GPS的绝对定位结果以及相对定位结果P,给出当前的位置;
6、在云端侧,根据当前的位置,给出决策并发送至终端。
本申请实施例根据定位算法复杂度大小、定位功能请求频率的高低,提出了一种云端和终端结合的定位方法,在终端上部署复杂度较低、频率较高的视觉定位算法,避免图像传输的延迟造成视觉定位算法的稳定性和准确性下降,在云端上部署复杂度较高、频率较低的视觉重定位方法,避免过多消耗终端的资源,将绝对定位和相对定位融合,形成一种高效和稳定的定位***。
实施例8
为了便于本申请的理解,本申请实施例以另一实例进行说明。
本申请实施例中终端可以为智能物流车机器人,云端可以为服务器或服务器集群,下面对智能物流车和云服务器的交互定位过程进行说明。
图6示出了本申请实施例中智能物流车与云服务器的定位过程示意图,如图所示,定位过程可以如下:
智能物流车可以利用摄像头获取当前场景图像,并且利用内置的惯性导航***(或简称惯导)INS的陀螺仪和加速度计来测定智能物流车的位置;然后利用内置的VIO模块对当前场景图像进行特征提取、图像处理等操作并结合里程计等数据对智能物流车进行定位;
智能物流车可以将两次定位的结果(惯导定位以及VIO定位)进行融合计算,得到最终的相对定位结果,并将相对定位结果和当前场景图像上传至云服务器。
此外,智能物流车还可以根据内置的GPS模块进行GPS定位,得到GPS绝对定位结果,并将GPS绝对定位结果同样上传至云服务器。
云服务器获取到当前场景图像以及终端上传的相对定位结果、绝对定位结果之后,可以根据当前场景图像利用视觉SLAM技术进行定位,得到vSLAM绝对定位结果;然后将终端上传的GPS绝对定位结果、相对定位结果与vSLAM绝对定位结果进行融合,得到最终的智能物流车的位置。
最后,云服务器根据智能物流车的位置、以及智能物流车的目的地等信息,可以生成决策指令发送给智能物流车,智能物流车可以根据决策指令进行相应的操作以向目的地行进。
本申请实施例通过将智能物流车的定位与云服务器的定位融合、绝对定位与相对定位融合,实现了确保定位稳定性和准确性的同时降低智能物流车的资源消耗。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。