CN106416396B - 运行位置提供者进程 - Google Patents
运行位置提供者进程 Download PDFInfo
- Publication number
- CN106416396B CN106416396B CN201580025411.9A CN201580025411A CN106416396B CN 106416396 B CN106416396 B CN 106416396B CN 201580025411 A CN201580025411 A CN 201580025411A CN 106416396 B CN106416396 B CN 106416396B
- Authority
- CN
- China
- Prior art keywords
- computing device
- data
- estimated location
- motion model
- desired locations
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/025—Services making use of location information using location based information parameters
- H04W4/027—Services making use of location information using location based information parameters using movement velocity, acceleration information
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/34—Power consumption
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/01—Determining conditions which influence positioning, e.g. radio environment, state of motion or energy consumption
- G01S5/019—Energy consumption
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0257—Hybrid positioning
- G01S5/0263—Hybrid positioning by combining or switching between positions derived from two or more separate positioning systems
- G01S5/0264—Hybrid positioning by combining or switching between positions derived from two or more separate positioning systems at least one of the systems being a non-radio wave positioning system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0261—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0261—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
- H04W52/0274—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof
- H04W52/0277—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof according to available power supply, e.g. switching off when a low battery condition is detected
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W64/00—Locating users or terminals or network equipment for network management purposes, e.g. mobility management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W64/00—Locating users or terminals or network equipment for network management purposes, e.g. mobility management
- H04W64/006—Locating users or terminals or network equipment for network management purposes, e.g. mobility management with additional information processing, e.g. for direction or speed determination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0261—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
- H04W52/0264—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by selectively disabling software applications
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
本发明描述了用于使用位置提供者(LP)进程以准确地识别计算装置大致位置的方法、计算装置、和系统,同时降低计算装置的电量消耗。示例性方法可以包括在计算装置上同时地执行第一LP进程和并经过所述时间段的至少一部分,以确定表示所述时间段的计算装置位置的输出。进一步地,方法可以包括确定计算装置的运动模型,其表示计算装置的期望位置。进一步地,方法可以包括将输出与所述时间段的运动模型比较。此外,方法可以包括基于比较停用LP进程中之一。
Description
相关申请的交叉引用
本申请要求于2014年5月16日提交的标题为“运转硬件和软件处理以确定输出表示位置”的美国临时专利申请No.61/994,546的优先权,其全部内容通过引用合并于此。
背景技术
除非在本文以其他方式指出,该部分所述的内容不是本申请权利要求的现有技术且不因包含于该部分而构成现有技术。
通过使用许多不同进程可以确定计算装置的大致位置。进一步地,可以获得各种类型的数据以确定计算装置的大致位置,例如全球定位系统(GPS)数据和/或与无线接入点相关的数据,例如蜂窝基站或802.11接入点。例如,计算装置可以接收GPS信号且响应地确定其在地球表面上的位置(例如绝对位置)。在另一例子中,计算装置可以从蜂窝基站和/或802.11接入点接收信号。基于接收的信号,计算装置可以计算计算装置的大致位置。
在一些情况下,计算装置的大致位置可以从多个不同网络确定。许多基于位置的服务可以实施为确定便携计算装置的大致位置。
发明内容
本文的实施例提供用于执行一个或多个位置提供者(LP)进程的示例性方法、计算装置和系统,以确定计算装置的估计位置。每一个LP进程可以使用相应处理器而在计算装置上执行给定时间段的至少一部分。例如,第一位置提供者(LP)进程可以在应用第一处理器上执行且第二LP进程可以在第二处理器上执行。通过测量每一个LP进程消耗的电量,LP进程中之一可以用于随后的时间段,可节省计算装置的电量。
在一个例子中,提供一种方法。方法包括在计算装置上执行第一位置提供者(LP)进程和第二LP进程并经过第一时间段的至少一部分,其中执行第一LP进程包括使用应用第一处理器,且其中执行第二LP进程包括使用第二处理器。进一步地,方法包括从第一LP进程获得计算装置的第一估计位置。进一步地,方法包括从第二LP进程获得计算装置的第二估计位置。此外,方法包括从第一LP进程确定第一电量消耗。进一步地,方法包括从第二LP进程确定第二电量消耗。至少基于第一电量消耗和第二电量消耗,方法包括确定第一LP进程和第二LP进程中之一以执行第二时间段的至少一部分。
在另一例子中,提供一种系统。系统包括一个或多个处理器,其中一个或多个处理器包括第一处理器和第二处理器。进一步地,系统包括数据存储器,其包括可通过一个或多个处理器执行以执行操作的指令。操作包括执行第一位置提供者(LP)进程和第二LP进程并经过第一时间段的至少一部分,其中执行第一LP进程包括使用第一处理器,且其中执行第二LP进程包括使用第二处理器。进一步地,操作包括从第一LP进程获得系统的第一估计位置。进一步地,操作包括从第二LP进程获得系统的第二估计位置。此外,操作包括从第一LP进程确定第一电量消耗。进一步地,操作包括从第二LP进程确定第二电量消耗。至少基于第一电量消耗和第二电量消耗,操作包括确定第一LP进程和第二LP进程中之一以执行第二时间段的至少一部分。
在另一例子中,提供一种方法。方法包括在计算装置上执行第一位置提供者(LP)进程和第二LP进程中之一,以获得计算装置的第一估计位置,其中执行第一LP进程包括使用第一处理器,且其中执行第二LP进程包括使用第二处理器。进一步地,方法包括确定计算装置的运动模型,其提供计算装置的期望位置。进一步地,方法包括将第一估计位置与来自运动模型的期望位置比较。至少基于该比较,方法包括实施第一LP进程和第二LP进程,以在计算装置上同时地执行并经过时间段的至少一部分,以重新评估第一LP进程和第二LP进程中哪一个表示更靠近期望位置的第二估计位置。
在另一例子中,提供一种系统。系统包括一器件,用于在计算装置上执行第一位置提供者(LP)进程和第二LP进程并经过第一时间段的至少一部分,其中执行第一LP进程包括使用应用第一处理器,且其中执行第二LP进程包括使用第二处理器。进一步地,系统包括一器件,用于从第一LP进程获得计算装置的第一估计位置。进一步地,系统包括一器件,用于从第二LP进程获得计算装置的第二估计位置。此外,系统包括一器件,用于从第一LP进程确定第一电量消耗。进一步地,系统包括一器件,用于从第二LP进程确定第二电量消耗。至少基于第一电量消耗和第二电量消耗,系统包括一器件,用于选择第一LP进程和第二LP进程中之一以执行第二时间段的至少一部分。
通过阅读之后的详细描述并参考附随附图本领域技术人员可以理解这些以及其他方面、优点和替换。
附图说明
图1示出了了根据示例性实施方式的系统。
图2示出了根据示例性实施方式的计算装置。
图3示出了根据示例性实施方式的另一计算装置。
图4是根据示例性实施方式的流程图。
图5示出了根据示例性实施方式的运动模型。
图6是根据示例性实施方式的流程图。
图7是根据示例性实施方式的另一流程图。
图8A示出了根据示例性实施方式的数据。
图8B示出了了根据示例性实施方式的临界距离。
图9是根据示例性实施方式的另一进程图。
图10示出了根据示例性实施方式的另一系统。
具体实施方式
以下的详细描述描述了参考附随图所公开系统和方法的各种特征或操作。在图中,相似的附图标记表示相似的部件,除非另外说明其情况。本文所述的示例性方法、装置、和/或系统实施例不构成限制。可以容易地理解,所公开方法、装置和/或系统的一些方面可以各种不同构造布置和组合,其全部包含在本文中。
概览
各种进程可以在计算装置上运行,以确定计算装置的估计位置。例如,考虑智能电话显示地图的情况,该地图显示蓝色的点以代表智能电话的大致位置。在一些情况下,智能电话可以获得一个或多个信号,以在地图上显示蓝色点。例如,智能电话可以获得信号,例如全球定位系统(GPS)信号、Wi-Fi信号、和/或传感器信号。在一些情况下,通过在智能电话上运行一个或多个位置提供者(location provider:LP)进程,这种信号可以组合或融合。如此,蓝色点的位置可以是运行一个或多个LP进程(LP process)的结果。
然而,在使用LP进程的理想情况未达到和/或刚好不足以进行理想LP进程的情况下,地图中蓝色点的准确性会变化。具体说,变化的准确性会造成地图中蓝色点的估计位置之间的跳动。如此,蓝色点会在地图上跳来跳去,使得难以确定计算装置的大致位置。在这种情况下,多个LP进程可以在智能电话上运行,以评估每一个LP进程的准确性,所述LP进程用于估计智能电话的大致位置。
在一些实施例中,运行多个LP进程会很困难。例如,LP进程中之一会涉及唤醒或运行应用处理器。在一些情况下,运行应用处理器会比在智能电话中运行其他处理器花费更多电量。例如,由于运行应用处理器可能涉及的繁重处理,运行应用处理器会消耗更多电池电量。如此,在应用处理器上运行LP进程以识别智能电话的大致位置会使得智能电话以加速的速率损失电量。
因此,本文的实施例提供示例性方法、计算装置、和系统,用于执行多个LP进程,以准确地识别计算装置的大致位置,同时降低计算装置的电量消耗。例如,考虑到以上的情况,第一LP进程可以运行在智能电话的第一进程器上,以在地图上显示蓝色点。进一步地,第二LP进程可以运行在智能电话的第二进程器上,以估计靠近蓝色点位置的位置。由此,除其他可能性外,智能电话可停用第一LP进程并以第二LP进程继续,以降低运行第一处理器所涉及的电量消耗。
II.介绍
图1示出了根据示例性实施方式的系统。示例性通信系统100可以执行本文所述的一个或多个方法。在一些情况下,通信系统100可以包括计算装置,用于执行本文所述的一个或多个方法。应注意,“计算装置”可以在本文互换地称为“客户端装置”,例如具有服务器104的通信系统100中的客户端装置102。
客户端装置102可以是任何类型的客户端装置和/或传输设备,例如笔记本电脑,可穿戴计算装置,可头部安装的计算装置,移动电话,和/或平板计算装置,还存在其他计算装置。客户端装置102可以配置为根据本文所述的方法和操作将数据106传递到服务器104和/或从服务器104接收数据108。例如,在图1中,客户端装置102可以经由一个或多个有线和/或无线接口与服务器104通信。客户端装置102和服务器104可以在网络中通信。替换地,客户端装置102和服务器104每一个可以位于各自网络中。
客户端装置102可以包括用户接口、通信接口、处理器、和数据存储器,包括非瞬时计算机可读介质。数据存储器还可以包括可通过处理器执行的指令,用于执行与发送到服务器104或被服务器104接收的数据相关的一个或多个操作。客户端装置102的用户接口可以包括按钮、触摸屏、麦克风和/或用于接收输入任何其他元件,以及扬声器、一个或多个显示器和/或用于对输出进行通信的任何其他元件。
服务器104可以是任何实体或计算装置,其布置为执行本文所述的方法和操作。进一步地,服务器104可以配置为发送数据108到客户端装置102和/或从客户端装置102接收数据106。服务器104可以包括位置模块110,其可以配置为处理从客户端装置102接收的数据106,以确定与客户端装置102相关的一个或多个估计位置(例如当前和历史大致位置)。
通过服务器104从客户端装置102接收的数据106可以采取各种形式。例如,客户端装置102可以提供表示客户端装置102的一个或多个大致位置、客户端装置102的一个或多个运动、和/或从客户端装置102的用户而来的输入的数据或信息。服务器104可以随后处理数据106,以识别与接收的数据匹配的位置历史。
从服务器104发送到客户端装置102的数据108可以采取各种形式。例如,服务器104可以向客户端装置102发送一个或多个大致位置、更新的位置历史信息、和/或基于装置的一个或多个大致位置的其他信息的表示。例如,服务器104可以向客户端装置102发送与客户端装置102的大致位置周围区域有关的数据或信息。
图2示出了示例性装置200的示意图。在图2中,客户端装置200例如可以采取与图1有关的如上所述的任何客户端装置的形式。在一些例子中,图2示出的一些部件可以分布于多个计算装置。此外,出于展示的目的,部件在图2中被显示和描述为一个示例性客户端装置200的一部分。客户端装置200例如可以采取与图1有关的如上所述任何装置的形式或可以配置为执行本文所述操作的相似装置的形式。
在一些实施方式中,客户端装置200可以包括装置平台或操作系统,其可以配置为多层Linux平台和/或功能相当的操作系统。装置平台可以包括不同应用和应用框架,以及各种核心程序、函数库和运行实体(runtime entity)。在其他例子中,其他格式或系统也可以操作客户端装置200。
客户端装置200可以包括接口202、无线通信部件204、蜂窝无线电通信部件206、全球定位系统(GPS)208、传感器(一个或多个)210、数据存储器212和处理器214。图2示出的部件可以通过通信链路216连接在一起。客户端装置200还可以包括额外的硬件,以实现客户端装置200中的和客户端装置200与另一计算装置(例如图1的服务器104)之间的通信。客户端装置200的额外硬件例如可以包括发射器、接收器和天线。
接口202可以配置为允许客户端装置200与另一计算装置通信,例如图1的服务器104。由此,接口202可以配置为从一个或多个其他计算装置接收输入数据,且还可以被配置为将输出数据发送到一个或多个其他计算装置。在一些例子中,接口202还可以保持和管理通过客户端装置200接收和/或发送的数据或数据记录。在其他例子中,这种数据或数据记录可以通过客户端装置200的其他部件保持和管理。接口202还可以包括接收器和发射器以分别接收和发送数据。在其他例子中,接口202还可以包括用户接口(用户界面),例如键盘、麦克风和触摸屏,还存在其他接口,以接收输入。
无线通信部件204可以是通信接口,其配置为根据一个或多个无线通信标准发送和接收用于客户端装置200的无线数据。例如,无线通信部件204可以包括Wi-Fi通信部件,其配置为根据一个或多个IEEE 802.11标准发送和接收无线数据。作为另一例子,无线通信部件204可以包括Bluetooth通信部件,其配置为根据一个或多个Bluetooth标准(还可存在其他可能标准)发送和接收无线数据。
数据存储器212可以存储程序逻辑218,其可被处理器214和/或处理器222访问和执行。数据存储器210还可以存储所收集的传感器数据220,所述传感器数据可以包括通过无线通信部件204、蜂窝无线电通信部件206、GPS 208和任何传感器210收集的数据。
通信链路216可以显示为有线连接,而无线连接也可以实施。例如,通信链路216可以是例如通用串行总线这样的串行总线、并行总线和/或使用短程无线电波技术的无线连接。进一步地,额外的无线连接可以使用IEEE802.11(包括任何IEEE802.11修订版本)中所述的这种通信协议、或蜂窝技术,也存在其他可能。
处理器214和处理器222可以是相同或不同类型的处理器。在一个例子中,处理器214可以是应用处理器且处理器222可以是客户端装置200的第二处理器。处理器214可以配置为向客户端装置200的各种部件发送数据和从其接收数据。在一些实施方式中,处理器222可以是通用处理器(GPU),或可能地是基带处理器,还配置为向客户端装置200的各种部件发送数据和从其接收数据。在一些实施方式中,处理器222还可以是应用处理器,可类似于或不同于处理器214。
在一些情况下,处理器214和222可以运行或执行一个或多个位置提供者(LP)进程,以确定包括客户端装置200的大致位置在内的客户端装置200的一个或多个估计位置。处理器214和222可以运行涉及客户端装置200的部件的硬件进程、和/或涉及融合位置提供者(FLP)的软件进程、硬件抽象层(HAL)和位置批处理(location batching),还存在其他可能性。由此,处理器214和222可以与一个或多个接口202、无线通信部件204、蜂窝无线电通信部件206、GPS208、传感器210、数据存储器212、和处理器222通信,以确定客户端装置的估计位置。
在一些实施例中,处理器214可以运行LP进程,所述LP进程利用位置确定算法以确定客户端装置200的估计位置。例如,客户端装置200的估计位置可以基于附近的蜂窝基站确定。具体说,蜂窝无线电通信部件206可以配置为至少识别一蜂窝,客户端装置200从所述蜂窝从蜂窝网络接收一个或多个信号。进一步地,蜂窝无线电通信部件206还可以被配置为测量到提供信号的基站的往返时间(round trip time:RTT)。处理器214可以将该信息与识别的蜂窝结合,以估计客户端装置200的大致位置。在另一例子中,蜂窝通信部件206可以配置为使用从三个或更多基站而来的观察到的时间差(OTDOA),使得处理器214可以计算客户端装置200的估计位置。
在一些实施方式中,处理器214可以基于一个或多个已知无线接入点的存在和/或大致位置来运行LP进程。例如,一个或多个接入点可以处于客户端装置200的无线范围内。进一步地,无线通信部件204可以确定一个或多个无线接入点的身份(例如MAC地址)并测量从一个或多个无线接入点每一个接收的信号强度(例如接收的信号强度的指示)。由此,从无线接入点接收的信号强度指示(RSSI)可以被使用,使得处理器214可以计算与每一个无线接入点相距的相应距离。如此,距离可以与数据库比较,所述数据库存储了与无线接入点所在位置有关的信息。基于与每一个无线接入点相距的距离和每一个无线接入点的已知位置,处理器214可以估计客户端装置200的位置。
在一些实施例中,运行第一LP进程和第二LP进程可以涉及使用处理器214和222。例如,处理器214可以运行涉及位置确定算法的第一LP进程,所述位置确定算法将通过多个位置确定部件确定的位置估计相组合。具体说,这种部件可以包括接口202、无线通信部件204、蜂窝无线电部件206、GPS 208、数据存储器212和传感器210。进一步地,传感器210可以包括加速计、陀螺仪、磁力仪、和低能耗Bluetooth,以及其他可能。而进一步地,处理器222可以运行第二LP进程,其利用Wi-Fi数据库和客户端装置200的硬件层中的缓冲数据。处理器222可以确定客户端装置200的估计位置,可能地能节省计算装置200中的电量。如此,第二LP进程可以在客户端装置200处于低电量模式的同时确定估计位置。
在一些实施例中,处理器214和222可以运行涉及接收传感器数据或传感器输出的LP进程。例如,LP进程可以涉及从传感器(一个或多个)210和/或GPS 208接收数据。在一些情况下,LP进程可以接收数据以确定计算装置200的大致位置。在一些情况下,LP进程可以涉及硬件进程,例如与客户端装置200的操作系统接口连接的硬件抽象层(HAL)。例如,HAL可以提供传感器210和GPS 208以及操作系统之间的接口。具体说,HAL可以提供让传感器210和GPS 208呼入的接口,允许传感器210和GPS 208正确地发挥功能并提供指示计算装置200的估计位置的数据。传感器210可以包括一个或多个传感器。例如,传感器210可以包括加速计、陀螺仪、磁力仪、步程计、光传感器、麦克风、摄像头或其他位置和/或周围情况获知传感器。
在一些实施例中,运行LP进程可以涉及访问底层数据,例如从GPS 208获得的GPS伪范围(GPS pseudo range)。例如,处理器214和/或222可以运行位置确定算法,以基于通过地球上方的GPS卫星发送的GPS信号确定客户端装置200的估计位置。例如,GPS系统208可以配置为通过GPS所发送的正时信号来估计计算装置200的大致位置。
在一些实施例中,运行LP进程可以涉及融合位置提供者(FLP)。例如,FLP可以将位置确定算法、方法和/或代码进行融合或结合,以确定客户端装置200的估计位置。例如,处理器214可以运行涉及FLP的LP进程,使得其比处理器222消耗更多电量。
在一些实施例中,运行LP进程可以涉及位置批处理。在一些情况下,位置批处理可以涉及对估计位置分组或叠加。例如,位置批处理可以涉及使用具体指令,以用于在一些间隔期间对位置分组,“LocationRequest.setDeliveryInterval(longdeliveryIntervalMs)”。在一些情况下,可以确定时间段或等候时段,以用于将估计位置发送到客户端装置200。
在一些情况下,运行LP进程可以涉及回调机制。例如,LP进程可以涉及多个回调,以对位置批处理。具体说,应用程序接口(API)可以通过“侦听器”回调来实施:
Public interface LocationBatchListener{
void onLocationChanged(List<Location>locations);
}
在一些情况下,估计位置可以被整理或排序。例如,侦听器回调可以实施为按照从最新到最旧来对估计位置进行整理,还存在其他可能。在一些情况下,LP进程可以涉及使用一个或多个应用,以执行操作。例如,应用可被授权或特许,以执行操作。对于这种权利或特许,例如PendingtonIntent权,应用可以取回按照从最新到最旧排序的估计位置:
ArrayList<Location>locations=intent.getParcelableArrayListExtra(
FusedLocationProvider.KEY_LOCATION_LIST_CHANGED);
在一些实施方式中,可能地,除了在侦听器回调,运行LP进程可以涉及HAL批处理。然而,如果HAL批处理不可用,则LP进程可以涉及通过侦听器回调进行Wi-Fi批处理,以按照从最新到最旧来对估计位置进行整理,还存在其他可能。
本文所述的示例性方法可以通过客户端装置200的一个或多个部件执行,或通过客户端装置200的一个或所有部件的组合执行。在一个例子中,例如,客户端装置200的一些部分可以处理数据且在客户端装置200内部向处理器214和222提供输出。在其他情况下,客户端装置200的一些部分可以处理数据且对外向其他计算装置提供输出。
图3示出了根据示例性实施方式的另一计算装置。在图3中,例如服务器300可以采取与图1和2有关的如上所述的任何计算装置的形式。在一些例子中,图3示出的一些部件可以在多个服务器上分布。出于示例的目的,部件被显示和描述为一个示例性服务器300的一部分。服务器300可以是可以配置为执行本文所述功能的计算装置、云端装置、和/或相似实体。
服务器300可以包括通信接口302、位置模块304、处理器306、和数据存储器308。图3示出的所有部件可以通过通信链路310(例如有线或无线链路)连接在一起。服务器300还可以包括硬件,以启用服务器300中的和服务器300与另一计算装置之间的通信。硬件可以例如包括发射器、接收器和天线。
通信接口302可以允许服务器300与另一装置通信,例如针对图1和2如上所述的计算装置。由此,通信接口302可以配置为从一个或多个计算装置接收输入数据,且还可以被配置为将输出数据发送到一个或多个计算装置。在一些例子中,通信接口302还可以保持和管理通过服务器300接收和发送的数据和数据记录。在其他例子中,数据记录可以通过服务器300的其他部件保持和管理。
位置模块304可以配置为从计算装置接收数据。进一步地,位置模块304可以确定计算装置的地理位置。确定可以基于从加速计、陀螺仪和/或计算装置的其他传感器而来的数据。位置模块304可以确定和存储计算装置的传感器测量的历史。在这种情况下,位置模块304可以基于从网络而来的更新数据和/或用于确定位置的信息来重新处理这种测量。
数据存储器308可以存储程序逻辑312,其可被处理器306访问和执行。数据存储器308还可以包括位置数据库314。在一些情况下,位置数据库314可以被处理器306访问以获取关于无线接入点的信息、GPS网络中的卫星位置、建筑物的楼层和用于确定计算装置位置的任何其他类型信息,还存在其他可能。
服务器显示为具有第二处理器316,该第二处理器可以是应用处理器和/或用于输入/输出功能的特殊处理器。在一些情况下,处理器306和处理器316的功能可以组合且通过处理器中之一或两者执行。
在一些实施例中,测量结果可以从计算装置的各种传感器(例如Wi-Fi部件、GPS传感器、和/或惯性传感器)收集,还存在其他可能。在一些情况下,这种测量结果可以与从外部数据库而来的信息(例如Wi-Fi信号信息或建模信息、位置信息或Wi-Fi接入点信息、和/或建筑物信息(例如楼层信息))组合。进一步地,这种测量结果和/或信息可以用于实时估计计算装置的大致位置或运动。通过一直或以多个时间间隔记录或分析实时位置估计,该估计可以用于生产位置历史。
III.示例性方法
图4是根据示例性实施方式的流程图。方法400例如可以以针对图1到3如上所述的任何方式执行。例如,方法400和700的图块和实施方式可以通过图1的系统100、图2的计算装置200和/或图3的服务器300执行。
方法400可以包括一个或多个操作、功能、或动作,如图块402到412中的一个或多个所示。虽然图块以连续的顺序给出,但是这些图块可以并行执行,和/或以与本文所述的顺序不同的顺序执行。还有,各图块可以基于具体实施方式组合为更少的图块、分为额外的图块、和/或被去除。
此外,对于方法400、本文公开的其他进程和其他实施方式,流程图显示了本发明实施例的功能和可能的实施方式。对此,每一个图块可以代表程序代码的模块、段或一部分,其包括可通过处理器执行的一个或多个指令,以用于实施逻辑功能或步骤。程序代码可以存储在任何类型的计算机可读介质上,例如包括磁盘或硬件驱动器的存储装置。
计算机可读介质可以包括非瞬时计算机可读介质,例如短期存储数据的计算机可读介质,如寄存器、处理器高速缓存和随机访问存储器(RAM)。计算机可读介质还可以包括非瞬时介质,例如二次或长期存储器,如只读存储器(ROM)、光盘或磁盘、光盘只读存储器(CD-ROM)。计算机可读介质还可以是任何其他易失或非易失存储系统。计算机可读介质可以例如被认为是计算机可读存储介质、实体存储装置或其他制造物品。
此外,对于方法400、其他过程、和本文公开的其他方法,图4的每一个图块可以对应于硬件、芯片组、和/或电路,其被设计或连线(wired)为执行过程中的具体逻辑功能。
方法400的实施方式可以通过计算装置(或计算装置的部件,例如一个或多个处理器)执行,或可以分布于多个计算装置和/或服务器。在一些例子中,计算装置可以从计算装置的传感器接收数据或信息。进一步地,在一些情况下,计算装置可以是服务器,使得可以从收集信息的另一装置接收信息。
在图4的图块402,方法400可以包括在计算装置上在第一时间段的至少一部分中执行第一位置提供者(LP)进程和第二LP进程,其中执行第一LP进程包括使用第一处理器,且其中执行第二LP进程包括使用第二处理器。第一和第二LP进程例如可以包括针对图1到3如上所述的任何LP进程。例如,第一LP进程可以使用处理器214运行且第二LP进程可以使用第二处理器222运行。进一步地,处理器214可以比第二处理器222消耗更多电量。进一步地,执行第一LP进程可以包括运行软件进程,且执行第二LP进程可以包括运行硬件进程。此外,第一LP进程可以包括融合位置提供者(FLP),如针对图2如上所述的。
在一些实施方式中,第一LP进程可以涉及对Wi-Fi信号建模、访问Wi-Fi数据库和/或基于计算装置发射距离(wireless range)中的一个或多个已知无线接入点确定估计位置。进一步地,第二LP进程可以涉及基于访问硬件中可用的底层数据(例如GPS伪范围)确定计算装置的估计位置。进一步地,第一和/或第二LP进程可以涉及将GPS伪范围与Wi-Fi信号建模融合,还存在其他可能。
在一些实施方式中,第一和第二LP进程可以涉及从计算装置传感器接收输出,可能地将输出融合,以确定计算装置的或然性或估计位置。使用从传感器而来的一个或多个输出(例如WiFi扫描数据、温度读数、磁力计读数等),各种比较和映射可以确定计算装置的估计位置。例如,在计算装置位于两个给定建筑物之间时,计算装置可以基于Wifi扫描、温度读数、和磁力计读数确定特定的一组数据。如此,在计算装置确定该特定的一组数据时,计算装置可以确定其在两个建筑物之间以外的大致位置。
在图块404,方法400可以包括从第一LP进程获得计算装置的第一估计位置。在图块406,方法400可以包括从第二LP进程获得计算装置的第二估计位置。
估计位置例如可以以针对图1到3如上所述的任何方式确定。例如,计算装置的第一估计位置可以通过在应用处理器上运行第一LP进程而确定。进一步地,处理器214可以是应用处理器,其运行第一LP进程,以确定计算装置的第一估计位置。进一步地,计算装置的第二估计位置可以通过在第二处理器上运行第二LP进程而确定。此外,处理器222可以是第二处理器,其运行第二LP进程,以确定计算装置的第二估计位置,其中第二处理器可以消耗比应用处理器更少的电量。
在图块408,方法400可以包括从第一LP进程确定计算装置的第一电量消耗。在图块410,方法400可以包括从第二LP进程确定第二电量消耗。在一些情况下,第一电量消耗可以基于使用第一处理器以确定第一估计位置。进一步地,第二电量消耗可以基于使用第二处理器以确定第二估计位置。
在一些情况下,方法400可以包括接收落到临界水平以下的计算装置电池电量水平的指示。进一步地,基于落到临界水平以下的电池电量水平,方法400可以包括停用第一LP进程和第二LP进程中之一。
在图块412,方法可以包括至少基于第一电量消耗和第二电量消耗,选择第一LP进程和第二LP进程中之一来执行并经过第二时间段的至少一部分。例如,基于应用进程的第一电量消耗可以大于基于第二处理器的第二电量消耗。进一步地,第二LP进程可以确定运行另一时间段,可节省计算装置电池中的电量。进一步地,第二LP进程可以确定运行,以保持计算装置的电池电量水平。
在一些实施例中,可以接收落到临界水平以下的计算装置的电池电量水平的指示。进一步地,基于落到临界水平以下的电池电量水平,可以停用第一LP进程和第二LP进程中之一。例如,基于落到临界水平以下的电池电量水平,第一LP进程可以停用且第二LP进程可以继续运行在计算装置上。
在一些实施例中,方法400可以包括停用LP进程中之一。在一些情况下,停用第一LP进程和第二LP进程中之一可以涉及停止对计算装置的某些部件的供电。例如,回到图2,停用硬件进程可以涉及停止对传感器(一个或多个)210和/或GPS 208的供电。在一些情况下,停用LP进程还可以涉及停止对无线通信部件204和蜂窝无线电通信部件206的供电。进一步地,停用LP进程可以涉及结束或终止通过应用处理器执行的一个或多个过程或算法。如所述的,例如,LP进程可以通过FLP实施。对于停用这种进程来说,用于回调每一个经批处理位置的回调机制可被终止。
通常,停用第一LP进程和第二LP进程中之一可以降低计算装置消耗的电量。进一步地,第一和第二LP进程可以在一些时间段中被停用,以进一步降低计算装置消耗的电量。在一些实施方式中,在停用第一进程和第二进程中之一时,停用的LP进程可以停用一些时间段,例如一到两天,可降低或避免LP进程之间的切换。在一些情况下,第一LP进程和第二LP进程之间的切换可以输出计算装置的零星位置,可造成蓝色点的跳跃,如上所述。
图5示出了根据示例性实施方式的运动模型。运动模型可以包括数据500和多个记录或额外数据组。进一步地,数据500例如可以存储在针对图1到3如上所述的任何计算装置中。例如,数据500可以是客户端装置200的数据存储器212中存储的运动模型的一部分。进一步地,数据500可以是在服务器300的数据存储器308中存储的运动模型的一部分,还存在其他可能。
在一些实施例中,运动模型可以包括各种形式的数据。进一步地,运动模型可以包括通过运行LP进程而获得的数据。具体说,运动模型可以包括通过运行LP进程而获得的数据,其使用加速计、陀螺仪、磁力仪、步程计、光传感器、麦克风、摄像头或其他位置和/或周围情况获知传感器。进一步地,运动模型可以包括通过在一个或多个处理器上运行LP进程而获得的数据。例如,运动模型可以包括通过在处理器214上运行第一LP进程而获得的数据。
如图5所示,数据500可以包括各种类型的数据,包括活动数据502、传感器数据504、传感器数据506、航位推算数据(deadreckoningdata)508、和位置数据510,还存在其他可能类型的数据。活动数据502可以表示携带了计算装置的用户的估计活动。在一些情况下,运动模型可以基于计算装置的用户的估计活动。进一步地,在一些情况下,用户的估计活动可以基于与计算装置相关的位置数据510。
传感器数据504和506可以包括从一个或多个传感器而来的数据。例如,传感器数据504和506例如可以通过针对图2如上所述的客户端装置200的一个或多个传感器210输出。航位推算数据508可以表示计算装置的一个或多个方向。此外,航位推算数据508例如可以通过针对图2如上所述的客户端装置200的一个或多个传感器210输出。位置数据510可以表示计算装置的一个或多个期望位置。具体说,表示计算装置的一个或多个期望位置的位置数据510可以基于活动数据502、传感器数据504和506、和航位推算数据508。
在一些实施例中,活动数据502可以包括计算装置的活动辨识数据,其表示计算装置的活动和运动方向。如此,在一些情况下,计算装置的运动模型可以基于计算装置的活动和运动方向。
例如,数据输入512可以包括活动数据518、运动数据520、和位置数据526。在该例子中,考虑了活动数据518对应于驾驶车辆而同时携带计算装置的用户的情况,该用户可能在将车辆从用户的家驾驶到用户的工作地点。如此,运动数据520可以对应于计算装置的速度、加速度、和/或运动,表示将车辆从用户的家驾驶到用户的工作地点。此外,位置数据526可以对应于在家和工作地点之间的计算装置的各种位置。
进一步地,数据输入514包括活动数据528、温度数据532、和位置数据536。在该例子中,考虑了活动数据528对应于携带计算装置且离开工作地点去午餐的用户,其可能离开工作的建筑物到工作建筑物以外。如此,温度数据532可以对应于计算装置周围空气的温度。例如,回到图2,客户端装置200的传感器210可以检测室外温度或可检测从室内温度到室外温度的改变。此外,位置数据536可以对应于在工作建筑物以外的计算装置的一个或多个大致位置。
进一步地,数据输入516包括活动数据538、运动数据540、方向数据544、和位置数据546。在该例子中,考虑了活动数据538对应于在道路上携带计算装置去往自助餐厅进行午餐的用户的情况。例如,考虑了以上情况使得自助餐厅处于距工作建筑物的步行距离内。如此,运动数据540和方向数据544可以用于确定用户步行达到自助餐厅的方向和路径。如此,位置数据546可以对应于沿从工作建筑物到自助餐厅的路径的计算装置的一个或多个大致位置。
如图4所示,方法400可以包括停用LP进程中之一。例如,考虑了活动数据538对应于携带计算装置去往自助餐厅的用户的情况。在这种情况下,分别通过第一和第二LP进程示出的第一和第二估计位置可以确定靠近期望位置546的估计位置。如此,第二LP进程可以被确定,以准确地输出计算装置的估计位置。如此,第一LP进程可以被停用,可降低通过计算装置消耗的电量。
应注意,数据记录522、524、530、534和542可以是空的。然而,这些记录可以包括可能与运动模型的一个或多个机器学习过程有关的数据。进一步地,随时间,数据可以添加到运动模型和/或从运动模型移除,可根据用户的日常的活动调整。具体说,多个其他数据项可以添加到数据项512、514和516,作为运动模型一部分。此外,多个其他数据类型可以添加到活动数据502、传感器数据504和506、航位推算数据508、和位置数据510,作为计算装置的运动模型的一部分。例如,运动模型还可以包括磁力计数据、气压计数据或气压计读数的改变。此外,运动模型可以包括陀螺仪数据,其表示计算装置的旋转和/或圆形运动。进一步地,运动模型可以包括表示计算装置的位置和/或取向的数据。进一步地,数据可以表示相对于用户已经改变位置的计算装置的一个或多个位置。具体说,数据可以表示一个或多个位置已经基于表示航位推算测量不准确度的数据而改变。
在一些实施例中,可以分析运动模型中的数据。例如,可以以迭代方式分析运动模型的数据500。例如,可以分析与给定可信水平相关的数据。进一步地,可以分析与较低可信水平相关的数据,直到所有或大部分数据500都被考虑过到。如此,可以以许多方式执行用于分析数据500的优先级。在进一步例子中,通过确定出所述GPS数据表示也通过航位推算数据508表示的一个或多个估计位置,可以对数据500赋予优先级。具体说,GPS数据可以表示给定位置且航位推算数据也表示给定位置。如此,航位推算数据可以添加到运动模型。
可以在客户端装置200和服务器300之间分配方法400的步骤。例如,客户端装置200可以运行第一LP进程和第二LP进程,以确定客户端装置200的第一估计位置。进一步地,服务器300可以确定计算装置的运动模型,其提供客户端装置200的期望位置。
图6是根据示例性实施方式的流程图。如所示的,图6示出了时刻602、604、606和608。进一步地,时间段603示出了时刻602到604之间的时间。进一步地,时间段605示出了时刻604到606之间的时间。此外,时间段607示出了时刻606到608之间的时间。如此,LP进程可以在时间段603、605和607中的一个或多个的至少一部分期间运行。
在一些实施例中,LP进程612、624、630和636例如可以是针对图1到5如上所述的LP进程。在一些情况下,LP进程612、624、630和636可以涉及确定计算装置的估计位置。例如,LP进程612、624、630和636中的一个或多个可以基于访问硬件中可用的底层数据(例如GPS伪范围)而确定估计位置。进一步地,LP进程612、624、630和636中的一个或多个可以基于访问大Wi-Fi数据库和识别计算装置的无线范围中一个或多个已知无线接入点的大致位置而确定估计位置。
在一些实施例中,LP进程612、624、630和636中的一个或多个可以运行在计算装置的第一处理器上,可确定计算装置的估计位置。进一步地,LP进程612、630和636可以运行在计算装置的第二处理器上,可确定计算装置的估计位置。
如图6的步骤610中所示,LP进程612可以在计算装置上运行并经过至少一部分时间段,以确定计算装置的估计位置614。具体说,LP进程612可以在时刻602和604之间示出的时间段603的至少一部分中运行。如步骤616所示,运动模型618可以提供表示计算装置的期望位置620的数据620D。在一些情况下,数据620D例如可以采取针对图5如上所述的数据500的形式。例如,数据620D例如可以采取位置数据526、536和/或546的形式。如此,运动模型618可以计算装置的期望位置620。
进一步地,如图6的步骤622所示,LP进程624可以运行在计算装置上并经过时间段605的至少一部分,以确定计算装置的估计位置626。具体说,LP进程624可以在时刻604和606之间所示的时间段605的至少一部分中运行。在一些情况下,位置614和626可以被比较,以分别确定LP进程612和624的准确性。
进一步地,如图6的步骤628中所示,LP进程630可以在计算装置上并经过时间段605的至少一部分中运行,以确定计算装置的估计位置632。具体说,LP进程630可以在时刻604和606之间示出的时间段605的至少一部分中运行。在一些情况下,运行第一LP进程624和第二LP进程630并经过给定时间段605的至少一部分可以与图4的图块402有关。如此,在一些情况下,可以使用计算装置的第一处理器运行LP进程624。进一步地,可以使用计算装置的第二处理器运行LP进程630。如此,可以分别通过LP进程624和630确定估计位置626和632。
参见图4,方法400可以包括计算装置的运动模型618提供计算装置的期望位置620。进一步地,方法400可以包括将第一估计位置626和第二估计位置632与期望位置620比较。进一步地,方法400可以包括基于处于期望位置620周围的临界距离内的第二估计位置632而停用第一LP进程624。具体说,如果位置632更靠近期望位置620,则LP进程624可以不再于第一处理器中运行并降低计算装置的电量消耗。如此,如步骤634所示,可以使用第二处理器运行LP进程636并经过时间段607,以确定计算装置的估计位置638。具体说,LP进程636可以在时刻606和608之间所示的时间段607中运行。
进一步地,位置626可以更靠近期望位置620。例如,考虑了LP进程630涉及接收GPS信号且物体(例如建筑物或建筑物的结构)阻碍GPS信号达到计算装置的情况。如此,与位置626距期望位置620的距离相比,位置632可以距期望位置620更远。由此,LP进程630可以基于该比较而停用。在这种情况下,LP进程624运行在第一处理器上,可消耗比第二处理器更多的电量。然而,估计位置626可以比估计位置632更准确。如此,LP进程624可以继续在时间段605之后运行。
此外,方法400可以包括从计算装置的加速计接收输出。如此,方法400还可以包括使用从加速计而来的输出确定计算装置的大致位置的改变。进一步地,方法可以包括基于计算装置位置的改变而确定计算装置用户的估计活动。进一步地,方法可以包括基于用户的估计活动确定运动模型618的期望位置620。进一步地,方法400还可以包括进行估计位置638与运动模型618的期望位置620的第二比较。此外,方法400可以包括基于第二比较启用和/或停用LP进程636并经过另一时间段,还存在其他可能。
图7是根据示例性实施方式的另一流程图。在图块702,方法700包括在计算装置上执行第一位置提供者(LP)进程和第二LP进程中之一,以获得计算装置的第一估计位置,其中执行第一LP进程包括使用第一处理器,且其中执行第二LP进程包括使用第二处理器。第一LP进程和第二LP进程可以是针对图1到6如上所述的任何LP进程。
进一步地,图块702可以通过图6的步骤610示出。例如,计算装置可以运行第一LP进程612和第二LP进程630中之一。第一LP进程612可以提供计算装置的第一估计位置614。进一步地,第二LP进程630可以提供计算装置的估计位置632。进一步地,第一LP进程612可以运行在计算装置的应用处理器上,且第二LP进程630可以运行在计算装置的第二处理器上。在一些情况下,第二LP进程630可以比第一LP进程624运行更长时间段,可降低通过应用处理器消耗的电量。
在一些情况下,计算装置的一个或多个估计位置可能是不准确的。例如,在使用LP进程630和636不太理想的情况下,计算装置的估计位置632和/或638的准确性分别会降低。考虑了计算装置显示地图和表示计算装置估计位置的蓝色点在地图上跳动的一个或多个上述情况。在这种情况下,LP进程624可以运行,以提供估计位置626,所述估计位置比其他估计位置更准确,其中计算装置的应用处理器可以比第二处理器消耗更多电量。
在图块704,方法700可以包括确定计算装置的运动模型,其提供计算装置的期望位置。运动模型例如可以以针对图5如上所述的任何方式确定。具体说,回到图5,运动模型可以基于运动模型的数据500来确定,所述数据包括活动数据502、传感器数据504和506、航位推算数据508、和位置数据510,其中位置数据510可以提供计算装置的期望位置。
在一些实施例中,计算装置可以基于从计算装置加速计而来的输出确定运动模型。例如,考虑一个或多个上述情况,其中用户驾驶车辆同时携带计算装置,可能是从用户的家到用户的工作地点。进一步地,计算装置例如可以采取图2的客户端装置200的形式。如此,计算装置可以包括作为传感器202一部分的加速计。由此,运动数据520可以对应于速度、加速度、和/或表示从用户的家运动到用户的工作地点的计算装置的运动。
在一些实施例中,计算装置可以基于位置的改变来确定运动模型。例如,计算装置可以使用从加速计而来的输出确定位置的改变。例如,可以使用从加速计而来的输出确定位置数据526。进一步地,随用户从家驾驶到工作地点,位置数据526可以对应于各种位置或计算装置位置的改变。
在一些实施例中,计算装置可以以其他方式确定运动模型。例如,计算装置可以基于计算装置位置的改变确定估计活动。进一步考虑一个或多个以上情形,活动数据518可以对应于将用户具有计算装置的车辆从用户的家驾驶到用户的工作地点的估计活动。具体说,估计活动可以基于计算装置位置的改变,可能由于车辆的速度而快速改变。如此,型可以基于用户驾驶车辆的该估计活动确定运动模。
进一步地,计算机装置可以基于航位推算估计来确定运动模型。例如,回到图5,考虑了活动数据538对应于携带计算装置去往自助餐厅的用户的情况。计算装置中的传感器,例如客户端装置200中的传感器210,可以输出航位推算数据508的运动数据540和方向数据544。在一些情况下,该数据可以用于确定用户步行以达到自助餐厅的方向和路径。如此,可以基于计算装置的运动方向确定运动模型的数据500。
进一步地,图7的图块704可以通过图6的步骤616示出。例如,计算装置的运动模型618可以提供在时间段603期间的期望位置620。然而,期望位置620也可以在其他可能的时间段605和607期间提供。进一步地,运动模型618可以在时刻602之前和/或时刻608之后提供计算装置的期望位置。
在图块706,方法700可以包括将第一估计位置与来自运动模型的期望位置比较。例如,回到图5,第一估计位置可以与图5中的运动模型的期望位置526、536和546中的一个或多个相比较。
进一步地,图块706可以通过图6的步骤610和616示出。例如,可以将第一估计位置614与来自运动模型618的期望位置620进行比较。进一步地,在一些情况下,可以将估计位置626、632和638与来自运动模型618的期望位置640进行比较,还存在其他可能。
在图块708,至少基于所述比较,方法700可以包括,实施第一LP进程624和第二LP进程630,以在计算装置上同时地运行并经过时间段605的至少一部分,以重新评估第一LP进程624和第二LP进程630中哪一个表示出第二估计位置626和632分别更靠近期望位置620。例如,考虑与第一LP进程624相比第二LP进程630提供更靠近期望位置620的估计位置632的情况。在这种情况下,LP进程636可以运行为在时间段607提供估计位置638,其中可以使用第二处理器运行LP进程636。在一些实施方式中,LP进程630和636可以运行在第二处理器上,可能地降低通过计算装置消耗的电量。
在一些情况下,第二LP进程630可以提供与第一LP进程624相比更准确地表示计算装置大致位置的估计位置632。如此,第一LP进程624可以停用,可使得用于运行第一LP进程624的应用处理器汲取的电量最小化或不需要。在一些情况下,与第二LP进程630相比,第一LP进程624可以更准确地提供表示计算装置的大致位置的估计位置626。如此,第二LP进程630可以停用,可使得通过用于运行第二LP进程630的第二处理器汲取的电量最小化或不需要。
图8A示出了根据示例性实施方式的数据。例如,数据800例如可以存储在针对图1到7如上所述的任何计算装置中。在一些情况下,数据800可以是存储在客户端装置200的数据存储器212中的运动模型的一部分。进一步地,数据800可以是在服务器300的数据存储器308中存储的运动模型的一部分,还存在其他可能。
在一些情况下,数据800可以包括LP数据802、LP数据804、运动模型数据806和临界数据808。临界数据808例如可以以针对图1到7如上所述的任何方式确定。进一步地,LP数据802可以例如对应于LP进程612和624。进一步地,LP数据804可以对应于LP进程630和636。进一步地,运动模型数据806可以对应于通过运动模型618提供的数据620D。具体说,数据输入810、812和814可以包括分别表示估计位置820、828和834的数据,其对应于通过运动模型618提供的计算装置的期望位置620。
此外,数据输入810到814例如可以包括表示针对图6如上所述的计算装置估计位置的数据。具体说,数据输入810可以包括表示与估计位置614对应的估计位置816的数据。进一步地,数据输入812可以包括表示分别与估计位置626和632对应的估计位置824和826的数据。进一步地,数据输入814可以包括表示与估计位置638对应的估计位置832的数据。此外,数据输入810和814可以包括空的数据记录818和830,其可以被填充有表示计算装置估计位置的数据。
进一步地,数据输入810到814例如可以包括表示针对图6如上所述的计算装置的期望位置的数据。例如,数据输入810可以包括表示与通过运动模型618提供的期望位置对应的期望位置820的数据,可能是在时刻602之前。进一步地,数据输入812可以包括表示与期望位置620对应的期望位置828的数据。进一步地,数据输入814可以包括表示与通过运动模型618提供的期望位置对应的期望位置834的数据,可能是在时刻606之后。
此外,数据输入810、812和814可以包括临界数据808。例如,数据输入可以包括表示临界距离822的数据,数据输入812可以包括表示临界距离830的数据,且数据输入814可以包括表示临界距离836的数据。
在一些实施方式中,估计位置824和826的比较可以通过运动模型数据806的期望位置828做出。至少基于该比较,第一LP进程和第二LP进程可以被启用,以在计算装置上同时地运行并经过一时间段。具体说,第一LP进程和第二LP进程可以运行,以重新评估第一LP进程和第二LP进程中哪一个表示出更靠近期望位置834的估计位置。
图8B示出了示例性临界距离。如图8B所示,临界距离842可以对应于图8A中的临界距离822、830和836中的一个或多个。进一步地,如图8B所示,期望位置828可以对应于图8A中的期望位置820、828和834。出于展示的目的,期望位置820、828和834显示为单个圆形。由此,应注意,期望位置828可以代表计算装置的多个期望位置。
如图8B所示,在期望位置828周围的临界距离842可以建立一区域846。由此,在区域846中的任何位置可以在期望位置828周围的临界距离842中,如运动模型806示出。进一步地,期望位置828周围的距离842可以建立一区域848,其在临界距离842外部。
如在以上一个或多个情况中所述的,第一LP进程和第二LP进程可以运行,以分别提供计算装置的第一估计位置和第二估计位置。在一些情况下,第一LP进程可以基于在期望位置828周围的临界距离842中的第二估计位置而停用。进一步地,第一LP进程可以基于估计位置816和824停用,所述估计位置表示相对于期望位置828超过了临界距离822、830和836中的一个或多个的位置。然而,在一些情况下,第一LP进程可以基于计算装置中的剩余电量而停用。在这种情况下,第一估计位置可以比第二估计位置更靠近期望位置828。
在一些情况下,第二LP进程可以基于在期望位置828周围的临界距离842中的第一估计位置而停用。进一步地,第二LP进程可以基于估计位置826和832而停用,所述估计位置表示相对于期望位置828超过了临界距离822、830和836中的一个或多个的位置。
回到图7,方法700还可以包括接收表示计算装置的电池电量水平的信息。基于在临界量以下的电池电量水平,方法700可以包括停用第一LP进程和/或第二LP进程。如此,计算装置的电量水平可以被保存或节约。
在一些实施方式中,方法700可以包括从运行在计算装置上的应用接收对位置信息的请求。基于应用所需的数据质量,可以选择第一LP进程和/或第二LP进程以在计算装置上运行。例如,餐馆应用可以搜索和识别在计算装置附近的某些餐馆。具体说,餐馆应用可以要求准确的位置信息。如此,可以选择第一LP进程和/或第二LP进程以在计算装置上运行,以满足用于让应用正确运行的所需准确性。
进一步地,方法700还可以包括确定计算装置的估计位置816和824在期望位置828周围的一个或多个临界距离822、830和836以外。例如,估计位置816可能在通过运动模型806示出的期望位置828周围的临界距离842以外。响应于这种确定,第一LP进程和第二LP进程可以被启用以同时地运行在计算装置上,以重新评估第一LP进程和第二LP进程中哪一个提供了更靠近通过运动模型数据806示出的期望位置828的计算装置估计位置。
进一步地,方法700还可以包括确定运行在计算装置上的第一LP进程和第二LP进程中之一停止报告位置并经过给定时间段。如此,方法700可以包括在计算装置上同时地实施第一LP进程和第二LP进程以重新评估第一LP进程和第二LP进程中哪一个提供输出,该输出表示更靠近运动模型806示出的期望位置828的计算装置位置。
在一些情况下,方法700进一步可以包括,在给定时间段经过之后,在计算装置上运行同时地第一LP进程和第二LP进程并经过另一时间段的至少一部分,以提供计算装置的额外估计位置。进一步地,将额外估计位置与来自运动模型的期望位置进行第二比较。进一步地,第一LP进程和第二LP进程中之一可以基于所述第二比较而停用。
图9是根据示例性实施方式的另一进程图。在步骤902,进程可以被初始化。在步骤904和920,第一和第二LP进程可以在计算装置上运行并经过给定时间段的至少一部分。进一步地,第一和第二LP进程可以运行以分别确定计算装置的第一和第二估计位置。如此,图9中的进程例如可以以针对图1到8所述的任何方式实施。具体说,步骤904和920可以例如对应于图4的图块402和图7的图块702,还存在其他可能。
第一估计位置可以代替第二估计位置使用,可以是在将第一和第二估计位置与通过运动模型示出的期望位置比较之后。进一步地,在步骤906,第一LP进程例如可以最好运行大约一分钟。具体说,与第二估计位置相比,第一估计位置可以更靠近计算装置的期望位置。由此,第二LP进程可以停用。
在步骤908,第一LP进程可以运行在计算装置上以确定或刷新计算装置的第一估计位置。进一步地,在步骤910,第一LP进程例如可以运行大约24小时或一个白天。如此,回到步骤904,第一LP进程和第二LP进程可以运行在计算装置上。在步骤912,第二LP进程例如可以最好运行大约一分钟。具体说,与第一估计位置比,第二估计位置可以更靠近计算装置的期望位置。由此,第一LP进程可以停用。
在步骤914,第二LP进程可以运行在计算装置上,以确定或刷新计算装置的第二估计位置。然而,在步骤916,可以不提供计算装置的第二估计位置。运行在计算装置上的第二LP进程可以停止提供第二估计位置并经过一给定时间段。如此,回到步骤904,第一LP进程和第二LP进程可以运行在计算装置上。在步骤918,可以不提供计算装置的第一估计位置。运行在计算装置上的第一LP进程可以停止提供第一估计位置并经过一给定时间段。
如针对步骤920所述的,第一和第二LP进程可以同时地运行在计算装置上,以分别确定第一和第二估计位置。第二估计位置可以代替第一估计位置使用,可以是在将第一和第二估计位置与通过运动模型示出的期望位置比较之后。进一步地,在步骤926,第二LP进程例如可以最好运行并经过大约一分钟。具体说,与第一估计位置比,第二估计位置可以更靠近计算装置的期望位置。由此,第一LP进程可以停用。
如针对步骤914所述的,第二LP进程可以运行在计算装置上以确定计算装置的第二估计位置。进一步地,在步骤928,第二LP进程例如可以运行大约24小时或一个白天。如此,回到步骤920,第一LP进程和第二LP进程可以运行在计算装置上。进一步地,在步骤924,第一LP进程例如可以最好运行大约一分钟。具体说,与第二估计位置比,第一估计位置可以更靠近计算装置的期望位置。由此,第二LP进程可以停用。进一步地,回到步骤910,第一LP进程例如可以运行大约24小时或一个白天。如此,回到步骤904,第一LP进程和第二LP进程可以运行在计算装置上。如此,过程可以在步骤904继续,如上所述。
应注意,出于展示的目的提供上述进程900,且各种其他进程也是可能的。具体说,逻辑可以添加到进程900以确定其他进程。例如,在步骤904,取决于第一LP进程还是第二LP进程更好地运行一具体时间段,可以分别执行步骤906或912。进一步地,在步骤904,如果第一LP进程624停止提供第一估计位置并经过给定时间段,则可进行步骤918和920,还存在其他可能。
IV.额外示例性系统、方法和/或计算装置
图10示出了根据示例性实施方式的另一系统100。系统1000中的任何图块可以是模块、处理器、或其他装置,或可以采取通过处理器可执行以执行相关功能的指令的形式。在系统1000中,数据日志1002可以从计算装置接收,例如针对1到9如上所述的计算装置。数据日志可以包括从运行在计算装置上的LP进程产生的数据,例如涉及GPS数据、加速计数据、和陀螺仪数据。进一步地,数据日志可以包括从运行在计算装置上的额外LP进程产生的数据,例如可从每一个独特无线接入点接收的信号强度指示(RSSI)数据,所述独特无线接入点用于确定相对于每一个无线接入点的距离。进一步地,这种数据日志可以与通过相应计算装置收集的时间戳相关。
例如,航位推算数据和GPS数据指示相似位置的数据日志可以提供到非线性最小二乘优化程序1004。航位推算数据和GPS位置不指示相似位置的数据日志可以被作为不正确的数据或具有太多噪声的数据而被拒绝。非线性最小二乘优化程序1004可以使用GPS和航位推算来优化路径,如图块1006所示和如上所述的,例如使用连续优化程序,且随后构建最佳的Wi-Fi地图,同时保持路径恒定,如图块1008所示。非线性最小二乘优化程序1004可以进一步使用同时定位与地图创建(SLAM)优化而共同地优化路径和Wi-Fi地图,并输出Wi-Fi地图,如图块1010所示。
具有不可靠GPS数据(在图块1012)的迹线(trace)可以在分层维特比(hierarchical Viterbi)处理器1014处接收,以在迹线中执行在给定相关Wi-Fi扫描情况下对最可能路径的全局搜索,如图块1016所示。作为例子,基于从航位推算而来的一个或多个运动可能性、来自楼层平面图的转移可能性、或来自Wi-Fi模型的发射概率,可以使用维比算法确定用户迹线的路径(例如经过图的最可能路径)。非线性最小二乘优化程序604可以接收全局搜索的输出并将航位推算与维特比路径对准,如图块1018所示,且使用SLAM优化共同优化所有路径和Wi-Fi地图,如图块1020所示。
对状态和限制条件的不断出现的子集迭代地执行SLAM优化,以基于所有收集的数据确定在数据被收集时用户的位置。第一次迭代使用子集,使得被最小化的功能凸出(convex)。在这些子集上运行SLAM给出状态子组的估计。该估计用于确定要包括的接下来的子集,和确定用于下一次迭代的初始化。由此,使用前述确定作为最佳预测的时间起动点来添加更多限制条件。系统600限定能选择一些状态的进程,使用非线性最小二乘求解器优化所述状态,且运行SLAM算法以确定如何针对下一次优化迭代来对所述状态进行初始化。
虽然例子被描述为用于确定Wi-Fi信号强度地图,但是相似或相同的功能可以被执行以确定被动收集的迹线的定位,用于形成其他类型的地图,例如磁力计地图。
应理解,本文所述的构造仅用于例子的目的。如此,本领域技术人员应理解,根据期望的结果,其他构造和其他元件(例如机器、接口、功能、命令、和功能分组等)可代替地使用,且一些元件可以完全省略。进一步地,被描述为功能实体的许多元件可以组合,所述功能实体可以实施为离散的或分布式的部件或与其他部件关联,处于任何合适组合和位置,或作为独立结构的其他结构元件。
尽管已经在本文公开了各种方面和实施例,其他方面和实施例对本领域技术人员来说是明显的。公开本文的各种方面和实施例用于展示的的目的而不是限制性的,实际范围通过之后的权利要求以及这种权利要求所限定的等效形式的全部范围给出。还应理解,本文使用的术语目的仅是描述具体实施例,且不是限制性的。
Claims (19)
1.一种用于运行位置提供者LP进程的方法,包括:
在计算装置上执行第一LP进程和第二LP进程并经过第一时间段;
从第一LP进程的执行获得计算装置的至少一个第一估计位置;
从第二LP进程的执行获得计算装置的至少一个第二估计位置;
从计算装置的一个或多个传感器获得传感器数据,其中传感器数据对应于第一时间段;
至少使用传感器数据确定第一LP进程和第二LP进程每一个的相应准确性;和
至少基于第一LP进程和第二LP进程的所确定准确性,选择第一LP进程和第二LP进程中之一来执行并经过第二时间段。
2.如权利要求1所述的方法,其中进一步基于第一LP进程的第一电量消耗和第二LP进程的第二电量消耗做出所述选择。
3.如权利要求1所述的方法,其中第一LP进程包括融合位置提供者FLP。
4.如权利要求1所述的方法,其中执行第一LP进程包括执行软件进程,且其中执行第二LP进程包括执行硬件进程。
5.如权利要求1所述的方法,进一步包括:
接收计算装置的电池电量水平落到临界水平以下的指示;
其中至少所述选择是响应于接收到落入临界水平以下的电池电量水平的指示而执行的。
6.如权利要求1所述的方法,其中确定第一LP进程和第二LP进程每一个的相应准确性包括:
至少使用传感器数据确定计算装置的运动模型,其提供计算装置的期望位置;和
将第一估计位置和第二估计位置与通过运动模型示出的期望位置比较。
7.如权利要求6所述的方法,进一步包括,基于第二估计位置处于通过运动模型提供的期望位置周围的临界距离内,停用第一LP进程。
8.如权利要求6所述的方法,其中确定运动模型包括,基于传感器数据,使用航位推算确定第一时间段的一部分中的计算装置的估计路径。
9.如权利要求6所述的方法,其中确定运动模型包括:
从计算装置的加速计接收输出;
使用从加速计而来的输出确定计算装置位置的改变;
基于计算装置的位置的改变来确定计算装置的用户的估计活动;和
基于用户的估计活动来确定运动模型的期望位置。
10.一种用于运行位置提供者LP进程的系统,包括:
一个或多个处理器;
一个或多个传感器;
数据存储器,包括可被一个或多个处理器执行以执行操作的指令,所述操作包括:
执行第一LP进程和第二LP进程并经过第一时间段;
从第一LP进程的执行获得系统的至少一个第一估计位置;
从第二LP进程的执行获得系统的至少一个第二估计位置;
从计算装置的一个或多个传感器获得传感器数据,其中传感器数据对应于第一时间段;
至少使用传感器数据确定第一LP进程和第二LP进程每一个的相应准确性;和
至少基于第一LP进程和第二LP进程的所确定准确性,选择第一LP进程和第二LP进程中之一来执行并经过第二时间段。
11.如权利要求10所述的系统,其中进一步基于第一LP进程的第一电量消耗和第二LP进程的第二电量消耗做出所述选择。
12.如权利要求10所述的系统,其中第一LP进程包括融合位置提供者FLP。
13.如权利要求10所述的系统,其中确定第一LP进程和第二LP进程每一个的相应准确性包括:
至少使用传感器数据确定系统的运动模型,其提供系统的期望位置,和
将至少一个第一估计位置和至少一个第二估计位置与通过运动模型指示的期望位置比较。
14.如权利要求10所述的系统,其中所述操作进一步包括,基于第一LP进程和第二LP进程的所确定准确性,停用第一LP进程和第二LP进程中之一。
15.一种用于运行位置提供者LP进程的方法,包括:
在计算装置上执行第一LP进程和第二LP进程中之一并经过第一时间段,以获得计算装置的至少一个估计位置;
确定计算装置的运动模型并经过第一时间段,其提供计算装置的至少一个期望位置;
将至少一个估计位置与从运动模型而来的至少一个期望位置比较;和
至少基于所述比较,启用第一LP进程和第二LP进程,以在计算装置上同时地执行并经过第二时间段,以评估第一LP进程和第二LP进程中哪一个更准确。
16.如权利要求15所述的方法,其中,方法进一步包括:
从第一LP进程确定第一电量消耗,其中第一电量消耗基于使用第一处理器,
从第二LP进程确定第二电量消耗,其中第二电量消耗基于使用第二处理器,和
至少基于超过第二电量消耗的第一电量消耗而停用第一LP进程。
17.如权利要求15所述的方法,其中第一LP进程包括融合位置提供者FLP。
18.如权利要求15所述的方法,进一步包括:
在所述第二时间段期满之后,在计算装置上同时地执行第一LP进程和第二LP进程并经过第三时间段,以提供计算装置的额外估计位置;
将额外估计位置与来自运动模型的至少一个期望位置进行第二比较;和
基于第二比较停用第一LP进程和第二LP进程中之一。
19.如权利要求15所述的方法,进一步包括:
确定计算装置的至少一个估计位置在通过运动模型示出的至少一个期望位置周围的临界距离以外;和
响应于所述确定,实施第一LP进程和第二LP进程,以在计算装置上同时地执行并经过第二时间段,以评估第一LP进程和第二LP进程中哪一个更准确。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461994546P | 2014-05-16 | 2014-05-16 | |
US61/994,546 | 2014-05-16 | ||
US14/530,997 | 2014-11-03 | ||
US14/530,997 US9439043B2 (en) | 2014-05-16 | 2014-11-03 | Running location provider processes |
PCT/US2015/026730 WO2015175165A1 (en) | 2014-05-16 | 2015-04-20 | Running location provider processes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106416396A CN106416396A (zh) | 2017-02-15 |
CN106416396B true CN106416396B (zh) | 2019-11-12 |
Family
ID=54480418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580025411.9A Active CN106416396B (zh) | 2014-05-16 | 2015-04-20 | 运行位置提供者进程 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9439043B2 (zh) |
EP (1) | EP3143814B1 (zh) |
KR (1) | KR101837709B1 (zh) |
CN (1) | CN106416396B (zh) |
WO (1) | WO2015175165A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10096216B1 (en) * | 2014-12-16 | 2018-10-09 | Amazon Technologies, Inc. | Activation of security mechanisms through accelerometer-based dead reckoning |
US9432944B1 (en) * | 2015-06-13 | 2016-08-30 | KeepTrax, Inc. | Determining whether a mobile device user is substantially stationary within a geo-fence |
CN106102005A (zh) * | 2016-06-16 | 2016-11-09 | 惠州Tcl移动通信有限公司 | 一种降低定位移动设备功耗的方法及系统 |
US10650621B1 (en) | 2016-09-13 | 2020-05-12 | Iocurrents, Inc. | Interfacing with a vehicular controller area network |
KR102304260B1 (ko) | 2017-03-24 | 2021-09-23 | 삼성전자주식회사 | 위치 결정 방법, 전자 장치 및 저장 매체 |
CN108055644B (zh) * | 2017-12-13 | 2021-01-15 | Oppo广东移动通信有限公司 | 定位控制方法、装置、存储介质及终端设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1251362A2 (en) * | 2001-04-20 | 2002-10-23 | Pioneer Corporation | Mobile communication apparatus and position detection method thereof |
CN102100058A (zh) * | 2008-06-06 | 2011-06-15 | 探空气球无线公司 | 通过选择最佳wlan-ps方案使用混合卫星和wlan定位系统确定定位的方法和系统 |
JP2011209846A (ja) * | 2010-03-29 | 2011-10-20 | Panasonic Corp | マルチプロセッサシステムとそのタスク割り当て方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001086492A1 (en) * | 2000-05-05 | 2001-11-15 | Abm Industries Pty. Ltd. | End user to mobile service provider message exchange system based on proximity |
EP1516504B1 (en) * | 2002-06-14 | 2009-03-04 | Nxp B.V. | A method for handling position data in a mobile equipment, and a mobile equipment having improved position data handling capabilities |
US6975959B2 (en) * | 2002-12-03 | 2005-12-13 | Robert Bosch Gmbh | Orientation and navigation for a mobile device using inertial sensors |
JP2007172322A (ja) | 2005-12-22 | 2007-07-05 | Canon Inc | 分散処理型マルチプロセッサシステム、制御方法、マルチプロセッサ割り込み制御装置及びプログラム |
US7970575B2 (en) | 2007-04-20 | 2011-06-28 | Industrial Technology Research Institute | Method and apparatus for determining accuracy of the estimated location for a target in a wireless system |
US20090030885A1 (en) * | 2007-07-26 | 2009-01-29 | Ridecharge | Method and system for on-demand and scheduled services relating to travel and transportation |
US8131307B2 (en) * | 2008-01-03 | 2012-03-06 | Lubeck Olaf M | Method for requesting transportation services |
US8214139B2 (en) * | 2008-01-25 | 2012-07-03 | Garmin Switzerland Gmbh | Position source selection |
US20100058086A1 (en) | 2008-08-28 | 2010-03-04 | Industry Academic Cooperation Foundation, Hallym University | Energy-efficient multi-core processor |
US20100255856A1 (en) * | 2009-04-03 | 2010-10-07 | Microsoft Corporation | Location Sensing Selection for Mobile Devices |
US8495395B2 (en) | 2010-09-14 | 2013-07-23 | Advanced Micro Devices | Mechanism for controlling power consumption in a processing node |
US8810454B2 (en) * | 2011-10-13 | 2014-08-19 | Microsoft Corporation | Power-aware tiered geofencing and beacon watchlists |
US9578115B2 (en) * | 2012-06-15 | 2017-02-21 | Qualcomm Incorporated | Indoor location server provision and discovery |
KR101947652B1 (ko) * | 2012-09-28 | 2019-04-25 | 삼성전자 주식회사 | 휴대 단말기의 저전력 근거리 통신 기능 운용 방법 및 장치 |
KR20140057083A (ko) | 2012-11-02 | 2014-05-12 | 삼성전자주식회사 | 위치 기반 서비스를 제공하는 방법 및 그에 따른 무선 단말 |
US20150223015A1 (en) * | 2013-06-26 | 2015-08-06 | Intel Corporation | Optimizing distributed location managing entities in wireless devices |
US9942718B2 (en) * | 2013-07-03 | 2018-04-10 | Qualcomm Incorporated | Methods and apparatuses for use in providing location parameters to mobile applications |
US10021737B2 (en) * | 2013-09-17 | 2018-07-10 | Qualcomm Incorporated | Techniques for determining common characteristics of groups of wireless access points |
-
2014
- 2014-11-03 US US14/530,997 patent/US9439043B2/en active Active
-
2015
- 2015-04-20 KR KR1020167031998A patent/KR101837709B1/ko active IP Right Grant
- 2015-04-20 EP EP15793375.5A patent/EP3143814B1/en active Active
- 2015-04-20 WO PCT/US2015/026730 patent/WO2015175165A1/en active Application Filing
- 2015-04-20 CN CN201580025411.9A patent/CN106416396B/zh active Active
-
2016
- 2016-08-08 US US15/230,815 patent/US9794754B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1251362A2 (en) * | 2001-04-20 | 2002-10-23 | Pioneer Corporation | Mobile communication apparatus and position detection method thereof |
CN102100058A (zh) * | 2008-06-06 | 2011-06-15 | 探空气球无线公司 | 通过选择最佳wlan-ps方案使用混合卫星和wlan定位系统确定定位的方法和系统 |
JP2011209846A (ja) * | 2010-03-29 | 2011-10-20 | Panasonic Corp | マルチプロセッサシステムとそのタスク割り当て方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150334532A1 (en) | 2015-11-19 |
EP3143814A4 (en) | 2018-01-24 |
EP3143814A1 (en) | 2017-03-22 |
KR20160145159A (ko) | 2016-12-19 |
US9794754B2 (en) | 2017-10-17 |
US20160345136A1 (en) | 2016-11-24 |
CN106416396A (zh) | 2017-02-15 |
KR101837709B1 (ko) | 2018-03-13 |
WO2015175165A1 (en) | 2015-11-19 |
US9439043B2 (en) | 2016-09-06 |
EP3143814B1 (en) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106416396B (zh) | 运行位置提供者进程 | |
US10750470B2 (en) | Systems and methods for determining if a receiver is inside or outside a building or area | |
US20210058743A1 (en) | Localization in machine-to-machine systems | |
CN104798419B (zh) | 地理位置信号指纹识别 | |
JP6025790B2 (ja) | 位置データベースを用いた移動装置の位置の判定 | |
JP5722408B2 (ja) | ネットワークに基づくポジショニングシステムの位置データベースの管理 | |
CA2946667C (en) | Adaptive position determination | |
KR102103170B1 (ko) | 모바일 디바이스의 위치정보 제공 방법 및 장치 | |
CN105376854B (zh) | 用于实时追踪移动无线通信设备的位置的方法和装置 | |
CN105683778A (zh) | 用于移动装置的低电力定位技术 | |
WO2017070969A1 (zh) | 一种楼层定位方法、网络设备及移动终端 | |
WO2012094424A1 (en) | Wireless communication devices in which operating context is used to reduce operating cost and methods for operating same | |
CN102238472B (zh) | 以移动装置的目前位置更新服务器储存的位置资讯的方法 | |
EP2791695A1 (en) | System and method for multi-radio cloud computing for location sensing | |
Varma et al. | Intelligent scanning period dilation based Wi-Fi fingerprinting for energy efficient indoor positioning in IoT applications | |
Du et al. | Seamless positioning and navigation system based on GNSS, WiFi and PDR for mobile devices | |
Konstantinidis et al. | Radio map prefetching for indoor navigation in intermittently connected wi-fi networks | |
Kjærgaard et al. | Posq: Unsupervised fingerprinting and visualization of GPS positioning quality | |
Thokala et al. | Virtual GPS: a middleware for power efficient localization of smartphones using cross layer approach | |
Lee et al. | Emerging ubiquitous knowledge services: From mobile sensing to ubiquitous crowdsourcing and beyond | |
TWI426290B (zh) | 估算行動用戶位置之方法 | |
Jafari Sadeghi | A 3D Ubiquitous Multi-Platform Localization and Tracking System for Smartphone |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |