KR102230566B1 - 상태 기반 위치 모니터링 - Google Patents

상태 기반 위치 모니터링 Download PDF

Info

Publication number
KR102230566B1
KR102230566B1 KR1020197035040A KR20197035040A KR102230566B1 KR 102230566 B1 KR102230566 B1 KR 102230566B1 KR 1020197035040 A KR1020197035040 A KR 1020197035040A KR 20197035040 A KR20197035040 A KR 20197035040A KR 102230566 B1 KR102230566 B1 KR 102230566B1
Authority
KR
South Korea
Prior art keywords
mobile device
application processor
state
motion
coprocessor
Prior art date
Application number
KR1020197035040A
Other languages
English (en)
Other versions
KR20200003040A (ko
Inventor
브래들리 제이. 젠슨
마이클 피. 달 산토
스티븐 제이. 리
다닐 와이. 즈비아긴체프
Original Assignee
애플 인크.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20200003040A publication Critical patent/KR20200003040A/ko
Application granted granted Critical
Publication of KR102230566B1 publication Critical patent/KR102230566B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/34Power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3231Monitoring the presence, absence or movement of users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0225Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0251Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0251Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
    • H04W52/0254Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity detecting a user operation or a tactile contact or a motion of the device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)

Abstract

상태 기반 위치 모니터링 및 모바일 디바이스의 위치를 결정하기 위한 기술들이 개시되어 있다. 애플리케이션 프로세서가 바람직한 이동 상태를 식별한다. 애플리케이션 프로세서는 코프로세서에 바람직한 상태를 통지하고 저전력 모드로 들어간다. 코프로세서는 이동 데이터를 모니터링하여 바람직한 상태가 발생했는지 여부를 결정한다. 바람직한 상태가 발생한 경우에, 코프로세서는 애플리케이션 프로세서에 통지할 것이다. 이어서 애플리케이션 프로세서는 그것이 고전력 모드로 전환되어야 하는지 여부를 결정할 수 있다.

Description

상태 기반 위치 모니터링
관련 출원의 상호 참조
본 출원은 2017년 6월 2일자로 출원된 미국 가특허 출원 제62/514,671호에 대한 우선권을 주장하며, 이것의 개시내용은 전체적으로 본 명세서에 참조로서 포함된다.
모바일 디바이스의 중앙 처리 유닛(CPU)은 사용되고 있지 않을 때 "슬립"될 수 있다. 모바일 디바이스의 위치 확인이 필요하면, CPU는 위치 정보를 획득하기 위하여 "웨이크 업"될 수 있다.
모바일 디바이스의 위치 정보는 모바일 디바이스 상에서 실행되는 애플리케이션에 의해 필요할 수 있다. 위치 정보는 모바일 디바이스의 CPU를 통해 애플리케이션에 제공된다. CPU는 주기적으로 모바일 디바이스의 위치 정보를 획득할 수 있다. 예를 들어, CPU는 위치 정보를 15분마다 획득할 수 있다. 위치 정보는 글로벌 포지셔닝 시스템(GPS)과 같은 위치확인 회로부를 이용하여 획득될 수 있다.
그러나, 주기적으로 위치 정보를 획득하는 것은 CPU 및 모바일 디바이스의 리소스 상의 낭비이다. 구체적으로, 위치 정보를 획득하기 위하여 주기적으로 CPU를 웨이크 업하는 것은 애플리케이션 프로세서의 리소스 상의 낭비이고 비용이 많이 들 수 있다. 또한, 위치 정보를 획득하기 위하여 CPU가 웨이크 업되면, 모바일 디바이스의 다른 컴포넌트들도 또한 CPU의 리소스들을 이용할 수 있다. 예를 들어, 모바일 디바이스 내의 대몬(daemon)은 대몬들에 대응하는 동작들이 수행될 수 있도록 CPU가 웨이크 업하는 것을 기다리고 있을 수 있다.
따라서, 주기적으로 애플리케이션 프로세서를 웨이크 업하는 것은 비효율적이고, 비용이 많이 들고, 모바일 디바이스의 많은 리소스들(예컨대, 배터리 수명)을 요구할 수 있다.
예시 실시예들은 모바일 디바이스의 위치를 획득하기 위한 기술들(방법, 시스템, 디바이스들, 컴퓨터-판독가능 비일시적 메모리 상에 저장되고 하나 이상의 프로세서들에 의해 실행가능한 명령어들을 포함하는 코드 또는 컴퓨터 프로그램 포함)을 제공한다.
애플리케이션 프로세서(AP)는 모바일 폰 또는 스마트 워치와 같은 모바일 디바이스의 메인 프로세서이고, 모바일 디바이스의 현재 위치(예컨대, GPS 좌표)를 식별할 수 있다.
일부 예시 실시예들에 따라, 애플리케이션 프로세서는 모바일 디바이스의 코프로세서에 의해 결정되는 바와 같이 디바이스의 상태의 변화에 기초하여 웨이크 업될 수 있으며, 이는 계속 이어질 수 있다. 애플리케이션 프로세서가 위치 정보를 획득하기 위하여 웨이크 업되어야 하는 시기를 코프로세서가 결정하기 때문에, 애플리케이션 프로세서가 웨이크 업되는 횟수가 줄어들 수 있다. 예를 들어, 코프로세서는 모션 코프로세서(예컨대 자이로스코프 및 가속도계) 또는 네트워크 칩(예컨대, WiFi 칩)일 수 있다. 코프로세서는 더 적은 리소스들을 소모하고, 애플리케이션 프로세서보다 실행하는 데 더 저렴하기 때문에, 전력을 절약할 수 있다.
일부 예시 실시예들에 따라, 애플리케이션 프로세서는 모션 코프로세서에게 그것이 "슬립"으로 되는 것을 알리고 상태 변화의 이벤트 시, 예컨대, 코프로세서에 의해 검출되는 특정 상태 변화 시, 웨이크 업되도록 요청할 수 있다. 예를 들어, 애플리케이션 프로세서는 모바일 디바이스의 위치 정보가 요구될 수 있는 상태로 모바일 디바이스가 이행되는 경우, 예컨대, 모션 상태에서 정지 상태로 이행되는 경우 웨이크 업되도록 요청할 수 있다.
예를 들어, 애플리케이션 프로세서에 의해 식별되는 상태들은 안정 상태, 불안정 상태, 및 미지의 상태를 포함할 수 있다. 디바이스의 상태의 예시 변화들 또는 이행들은 미지에서 안정, 미지에서 불안정, 안정에서 불안정, 또는 불안정에서 안정을 포함할 수 있다. 안정 상태는 디바이스 센서들이 디바이스가 정지해 있음(예컨대, 움직임 없음)을 나타내는 상태 또는 WiFi 액세스 포인트가 일관성있게 이용가능한 상태일 수 있다. 불안정 상태는 디바이스의 모션 센서들이 디바이스가 움직이는 상태(예컨대, 운전, 걷기, 달리기 등)에 있음을 나타내는 상태, 또는 WiFi 풋프린트가 일관성있게 이용가능하지 않은 상태일 수 있다. 미지의 상태는 디바이스의 상태가 현재 알려지지 않은 상태일 수 있다. 디바이스는 초기에 다른 상태가 결정될 때까지 미지의 상태일 수 있다.
코프로세서가 바람직한 상태 변화에 대응하는 모션 분류를 검출한 후, 코프로세서는 애플리케이션 프로세서를 웨이크 업시킬 수 있고, 애플리케이션 프로세서는 모바일 디바이스에 대한 위치 정보(예컨대, GPS 위치 정보)를 요청할 수 있다.
소정 실시예들은 본 명세서에 기술된 방법들과 연관된 시스템들, 휴대용 소비자 디바이스들, 및 컴퓨터 판독가능 매체들에 관련된다.
예시 실시예들의 본질 및 이점들의 더 나은 이해가 하기의 상세한 설명 및 첨부 도면들을 참조함으로써 얻어질 수 있다.
개시내용은 첨부된 도면들과 함께 다음의 상세한 설명에 의해 용이하게 이해될 것이며, 도면에서, 유사한 참조 부호들은 유사한 요소들을 가리킨다.
도 1은 일부 예시 실시예들에 따라 모바일 디바이스의 위치를 결정하는 방법의 흐름도를 도시한다.
도 2는 일부 예시 실시예들에 따라 모바일 디바이스의 예시 시스템을 도시하는 블록도이다.
도 3은 일부 예시 실시예들에 따라 모바일 디바이스의 위치를 결정하기 위한 방법의 흐름도를 도시한다.
도 4는 일부 예시 실시예들에 따라 바람직한 이행 상태를 등록하는 애플리케이션 프로세서의 방법의 흐름도를 도시한다.
도 5는 일부 예시 실시예들에 따라 모바일 디바이스 이동 정보의 모션 분류를 결정하는 방법의 흐름도를 도시한다.
도 6a 및 도 6b는 일부 실시예들에 따라 모션 코프로세서에 의한 이동 정보의 분류를 도시한다.
도 7은 일부 예시 실시예들에 따라 예시 디바이스를 도시하는 블록도이다.
도 8은 일부 예시 실시예들에 따라 안정 상태를 검출하는 예시를 도시한다.
본 개시내용은 일반적으로 모바일 디바이스의 상태에 기초하여 모바일 디바이스(예컨대, 전화기, 스마트 워치)의 위치를 결정하고 모바일 디바이스 위치를 식별하는 데 있어서 모바일 디바이스의 애플리케이션 프로세서에 의해 소비되는 리소스들의 양을 줄이는 것에 관한 것이다.
상이한 유형의 애플리케이션들이 모바일 디바이스 상에 설치될 수 있거나 또는 모바일 디바이스와 통신할 수 있다. 모바일 디바이스는, 예를 들어, 모바일 폰, 스마트 워치, 또는 임의의 휴대용 전자 디바이스를 포함할 수 있다. 일부 애플리케이션들은 모바일 디바이스의 위치 정보(예컨대 현재 위치 좌표)를 요청할 수 있다. 구체적으로, 애플리케이션들은, 예컨대, 시스템 서비스를 통해 위치 정보를 등록할 수 있다. 다수의 애플리케이션들이 모바일 디바이스 상에서 실행될 수 있고, 따라서, 모바일 디바이스는 모바일 디바이스 상에서 동작하는 다수의 애플리케이션들을 위하여 위치 정보를 획득하도록 요구될 수 있다.
예시 실시예에 따라, 애플리케이션 프로세서는 위치 정보를 획득하기 위하여 자주(예컨대, 매 몇 분마다) 웨이크 업되지 않는다. 대신, 코프로세서가 바람직한 상태가 발생했다고 결정하면 애플리케이션 프로세서는 웨이크 업될 수 있거나 또는 애플리케이션 프로세서가 웨이크 업되어야 하는지에 관한 결정이 촉발될 수 있다. 애플리케이션 프로세서는 슬립 상태(또는 기타 저전력 모드)로 들어갈 수 있고 바람직한 상태가 발생하면 웨이크 업될 수 있다. 바람직한 상태는 애플리케이션 프로세서에 의해 특정될 수 있고, 코프로세서에 전달될 수 있다. 애플리케이션 프로세서를 웨이크 업하기 전에, 적어도 특정된 길이의 시간 동안 바람직한 상태가 일어났는지 여부를 결정함으로써, 상태 결정의 정확도를 높이고 불필요하게 애플리케이션 프로세서를 웨이크 업시키는 것을 줄일 수 있다.
이것들은 단지 예시일 뿐이며, 예시 실시예들은 애플리케이션 프로세서의 리소스들을 보존하고 위치 및 위치 변화를 결정하는 데 있어서 비용을 줄이는 것이 바람직한 다른 상황들에 적용될 수 있다.
I. 모바일 디바이스 위치 결정의 개요
예시 실시예에 따라, 애플리케이션 프로세서는 바람직한 상태의 발생에 응답하여 모바일 디바이스의 위치를 획득하며, 이는 모바일 디바이스의 코프로세서에 의해 결정될 수 있는 바와 같다.
도 1은 일부 예시 실시예들에 따라 모바일 디바이스의 위치를 결정하는 방법(100)을 도시한다. 방법(100)은 모바일 디바이스의 애플리케이션 프로세서가 슬립 모드로부터 웨이크 업하는 시기를 제어하도록 함으로써 에너지 절약을 제공할 수 있다. 예를 들어, 애플리케이션 프로세서는 애플리케이션 프로세서가 웨이크 업하기 위하여 모바일 디바이스가 어떤 이동 상태가 되어야 하는지 특정할 수 있다.
도 1에 도시된 바와 같이, 단계(110)에서, 애플리케이션 프로세서는 어웨이크 모드이거나 또는 저전력 상태가 아니다. 애플리케이션 프로세서가 어웨이크 모드에 있으면, 애플리케이션 프로세서는 고전력 모드에 있을 수 있다. 기술된 예들에서, 애플리케이션 프로세서는 저전력 모드와 고전력 모드 사이에서 전환된다. 그러나, 애플리케이션 프로세서는 저전력 모드와 저전력 모드 이외의 모드 사이에서 전환될 수 있다. 애플리케이션 프로세서는 모바일 디바이스의 위치 정보를 획득한다. 애플리케이션 프로세서는 하나 이상의 코프로세서들에게 그것이 곧 슬립으로 되며 바람직한 상태가 발생하면 애플리케이션 프로세서를 웨이크 업하도록 통지한다. 바람직한 상태는, 예를 들어, 안정 상태 또는 불안정 상태에 대응할 수 있고, 이는 아래 추가적으로 기술된다. 바람직한 이동 상태를 하나 이상의 코프로세서들에 등록한 후, 애플리케이션 프로세서는 고전력 모드에서 저전력 모드로 변경되는, 예컨대, 슬립 상태가 된다. 고전력 모드는 저전력 모드보다 더 많은 전력을 사용한다는 의미에서만 높을 수 있다.
단계(120)에서, 애플리케이션 프로세서가 저전력 모드에 있는 동안, 하나 이상의 코프로세서들은 바람직한 상태가 발생했는지 여부를 결정하기 위하여 모바일 디바이스의 이동 정보를 모니터링할 수 있다. 예를 들어, 코프로세서들은 이동 정보가 정지, 이동, 보행 또는 차량 이동 분류에 대응하는지 여부를 결정할 수 있다.
단계(130)에서, 하나 이상의 코프로세서들이 바람직한 상태가 발생했다고 결정하는 것에 응답하여, 하나 이상의 코프로세서들은 애플리케이션 프로세서에게 바람직한 상태의 발생에 관하여 통지한다. 하나 이상의 코프로세서들은 모바일 디바이스의 이동 정보를 모니터링하고 이동 정보를 분류함으로써 바람직한 상태가 발생했다고 결정할 수 있다. 하나 이상의 코프로세서들은 이동 정보의 모션 분류가 바람직한 상태에 대응하는지 여부를 결정할 수 있다. 이동 정보는 가속도계 또는 자이로스코프와 같은 센서들에 의해 측정될 수 있다.
단계(140)에서, 하나 이상의 코프로세서들로부터 통지를 수신하는 것에 응답하여, 애플리케이션 프로세서는 위치 정보가 필요한지 결정할 수 있다. 위치 정보가 필요한 경우, 애플리케이션 프로세서는 웨이크 업하여 저전력 모드에서 고전력 모드로 변경될 수 있고 모바일 디바이스의 위치 정보를 획득할 수 있다. 애플리케이션 프로세서는 위치 회로부, 예컨대, 글로벌 포지셔닝 시스템(GPS), WiFi, 비콘 등을 이용하여 위치 정보를 획득할 수 있다.
위에서 기재된 방법은 모바일 디바이스에 대한 위치 정보를 획득하는 일반적 예시 실시예이고 단계들은 아래 더 상세하게 기술될 것이다.
II. 시스템
모바일 디바이스의 애플리케이션 프로세서는 위치 정보가 획득되어야 하는지 여부를 결정하기 위하여 모바일 디바이스의 하나 이상의 코프로세서들을 통신할 수 있다.
도 2는 일부 예시 실시예들에 따라 모바일 디바이스의 예시 시스템(200)을 도시한다. 모바일 디바이스(200)는 애플리케이션 프로세서(210), 하나 이상의 코프로세서들(250), 타이머(260) 및 센서들(270)을 포함할 수 있다. 애플리케이션 프로세서(210)는 상태 엔진(211) 및 위치 스택(212)을 포함할 수 있다. 위치 스택(212)은 위치 인식 엔진(213)을 포함할 수 있다. 코프로세서들(250)은 모션 코프로세서(220), 네트워크 칩(230), 및 전원 장치(240)를 포함할 수 있다. 모션 코프로세서(220)는 모션 분류기(221)를 포함할 수 있다. 모션 분류기(221)는 또한 상태 분류기로 불릴 수 있다.
모션 코프로세서(220), 네트워크 칩(230), 및 전원 장치(240)는 코프로세서들로 식별되는데, 그 이유는 특정 모션 상태가 발생했는지 여부를 결정하는 데 사용되기 때문이다. 모션 코프로세서(220), 네트워크 칩(230), 및 전원 장치(240)가 코프로세서들로 식별되지만, 다른 센서들이 모바일 디바이스(200)의 이동을 식별하고 결정하는 데 사용될 수 있다. 또한, 코프로세서들은 개별적으로 또는 조합하여 사용될 수 있다. 예를 들어, 코프로세서들(250)(모션 코프로세서(220), 네트워크 칩(230), 또는 전원 장치(240)) 중 하나만이 모바일 디바이스의 모션 상태를 식별하는 데 사용될 수 있거나 또는 복수의 코프로세서들(250)이 모바일 디바이스의 모션 상태를 식별하는 데 사용될 수 있다.
A. 애플리케이션 프로세서
애플리케이션 프로세서(210)는 모바일 디바이스(200)의 메인 프로세서 또는 중앙 처리 유닛(CPU)일 수 있다. 애플리케이션 프로세서(210)는 모바일 디바이스(200)의 컴포넌트들의 동작들을 제어하도록 동작할 수 있다. 따라서, 애플리케이션 프로세서(210)를 연속적으로 동작시키는 것은 많은 리소스들을 소모할 수 있다.
도 2에 도시된 바와 같이, 애플리케이션 프로세서는 상태 엔진(211) 및 위치 스택(212)을 포함할 수 있다.
1. 상태 엔진
상태 엔진(211)은 하나 이상의 코프로세서들(250)로부터 수신된 모션 분류들에 기초하여 모바일 디바이스의 현재 이동 상태를 결정한다. 모션 분류가 하나 이상의 코프로세서들(250)로부터 수신되는 경우, 모바일 디바이스의 상태는 미지의 상태, 안정 상태, 또는 불안정 상태에 대응할 수 있다.
a) 미지의 상태
미지의 상태는 디바이스의 현재 상태가 알려지지 않음을 나타낸다. 모바일 디바이스는 초기에 그것의 상태가 결정될 때까지 미지의 상태일 수 있다. 또한, 상태 데이터가 불분명한 경우, 모바일 디바이스는 추가적인 정보가 획득될 때까지 미지의 상태에 있을 수 있다. 예를 들어, 더 긴 기간동안 모션 데이터가 획득될 수 있다.
b) 안정 상태
안정 상태에서는, 모바일 디바이스(200)가 이동하지 않는다고 판단된다. 모바일 디바이스(200)의 지리적 위치 좌표에 변화가 없다거나 또는 임계값 내의 변화가 없음을 의미할 수 있다. 예를 들어, 사용자가 영화관에 앉아있는 경우, 모바일 디바이스의 이동이 없을 것이다. 안정 상태는 모바일 디바이스의 지리적 좌표의 변화가 없는 경우에도 또한 모바일 디바이스의 약간의 이동을 포함할 수 있다. 따라서, 이동이 있더라도, 지리적 좌표에 변화가 없을 수 있고 그러한 이동은 노이즈로 해석될 수 있다. 사용자가 식료품을 집에 내려놓고 있거나 또는 체육관에서 트레드밀 위에서 달리고 있는 것들은 모바일 디바이스의 지리적 좌표에 변화가 없는 이동의 예들이다. 모바일 디바이스가 안정 상태에 있다는 결정은 모션 분류들의 신뢰 점수에 기초할 수 있다. 일정 기간에 더 자주 나타나는 모션 분류는 일정 기간에 덜 자주 나타나는 모션 분류보다 더 높은 신뢰 점수를 가질 수 있다.
도 8은 일부 예시 실시예들에 따라 안정 상태를 검출하는 예시를 도시한다.
모바일 디바이스(802)는 가상 울타리 환경(804)에 들어가면 작동을 수행하도록 구성된 디바이스일 수 있다. 작동은 모바일 디바이스(802)의 시스템 기능을 수행하거나 또는 모바일 디바이스(802)의 애플리케이션 프로그램을 실행하는 것일 수 있다. 도시된 예에서, 모바일 디바이스(802)는 가상 울타리 환경(804)에 들어가면 "Please review"라는 경고를 디스플레이하도록 구성된다.
가상 울타리 환경(804)은 "가상" 울타리에 의해 둘러싸인 지리적 영역(예컨대, 사무실 건물(805))일 수 있다. 모바일 디바이스(802)는 모바일 디바이스(802)가 다양한 센서들 및 위치설정 기술들, 예를 들어, 글로벌 내비게이션 위성 시스템(GNSS), 무선 액세스 포인트들(예컨대, Wi-Fi.TM. 액세스 포인트들) 또는 둘 모두로부터의 신호들을 이용하여 가상 울타리 환경(104)을 횡단했음을 결정할 수 있다.
도시된 예에서, 모바일 디바이스(802)는 사용자(812)에 의해 가상 울타리 환경(804) 안으로 운반된다. 모바일 디바이스(802)는 무선 액세스 포인트들(806, 808, 810)로부터 신호들을 검출함으로써 모바일 디바이스(802)가 가상 울타리 환경(804)에 들어왔음을 결정할 수 있다. 가상 울타리 환경(804)에 들어오면 통지(예컨대, 경고)를 즉각적으로 디스플레이하는 대신에, 모바일 디바이스(802)는 사용자(812)가 안정 상태에 있는지 여부를 결정할 수 있다.
사용자(812)의 활동이 환경 변수들의 측정치들에 의해 결정된 바대로 통계적 의미에서 사용자(812)가 그 작동을 수행하는 모바일 디바이스(802)와 상호작용할 준비가 되어 있음을 나타낼 때 사용자(812)는 안정되었다. 도시된 예에서, 사용자(812)는 사무실 건물(805)의 로비를 지나 사용자(812)의 사무실로 들어가는 경로(813)를 따라 걷는 동안 모바일 디바이스(802)를 운반한다. 경로(813)를 따라 걷는 것은 (모션 센서들 및 건물 평면도에 표시된 바와 같이) 불안정 상태로서 검출된다. 이어서 사용자(812)는 자신의 사무실 의자에 앉는다. 자신의 사무실 의자에 앉는 것은 (모션 센서들 및 건물 평면도에 의해 표시된 바와 같이) 안정 상태로서 검출된다. 모바일 디바이스(802)는 모바일 디바이스(802) 자체가 움직이고 있는 경우에도 사용자(812)가 자신의 의자에 앉은 후에 사용자(812)가 안정되었다고 결정할 수 있다. 예를 들어, 모바일 디바이스(802)는 사용자(812)가, 의자에 앉은 후에도, 주머니에서 모바일 디바이스(802)를 꺼내어 모바일 디바이스(802)를 흔들거나 또는 다른 방식으로 모바일 디바이스(802)를 움직이는 경우에도 사용자(812)는 안정되었다고 결정할 수 있다.
사용자(812)가 안정되었다고 결정하면, 모바일 디바이스(802)는, 예컨대, 모바일 디바이스(802)의 스크린(816) 상에 경고를 디스플레이함으로써 그 작동을 수행할 수 있다. 따라서, 모바일 디바이스(802)는 가상울타리를 넘는 시간부터 사용자(812)가 안정되어 안정 상태에 들 때까지 그 작동의 수행을 연기한다.
사용자(812)는 또한 가상 울타리 환경(804)의 밖에서 이동할 수 있다(예컨대, 이동(817)). 모바일 디바이스(802)가 가상 울타리 환경(804)의 밖에서 정지한 경우 일정한 풋프린트가 있을 수 있다. 풋프린트가 일정하면, 모바일 디바이스는 안정 상태에 있을 수 있다.
c) 불안정 상태
불안정 상태에서는, 모바일 디바이스가 이동한다고 결정된다. 이러한 이동은 모바일 디바이스(200)의 지리적 위치 좌표의 변화를 야기할 수 있다. 불안정 상태는 임의의 보행 상태들(예컨대, 걷기, 달리기 등) 또는 차량 상태들(예컨대, 운전, 자전거 등)을 포함할 수 있다. 따라서, 애플리케이션 프로세서는 위치 정보에 대한 어떠한 업데이트도 요구하지 않을 모바일 디바이스(200)의 약간의 이동에는 관여하지 않을 수 있다. 모바일 디바이스(200)의 약간의 이동은 업데이트된 위치 정보를 요구하지 않을 것이다. 따라서, 불안정 상태에서, 모바일 디바이스의 지리적 위치 좌표의 변화가 있을 수 있다. 모바일 디바이스가 불안정 상태에 있다는 결정은 모션 분류들의 신뢰 점수에 기초할 수 있다. 일정 기간에 더 자주 나타나는 모션 분류는 일정 기간에 덜 자주 나타나는 모션 분류보다 더 높은 신뢰 점수를 가질 수 있다.
2. 위치 스택
위치 스택(212)은 모바일 디바이스(200)의 위치 정보를 저장하는 데 사용될 수 있다. 위치 스택은 위치 인식 엔진(213)을 포함할 수 있다. 위치 인식 엔진(213)은 모바일 디바이스의 위치 상태들을 인식할 수 있다. 위치 스택(212)은 모바일 디바이스가 있었던 곳의 로그를 생성할 수 있다. 로그는 모바일 디바이스의 위치들의 이력을 유지한다. 로그는 모바일 디바이스의 메모리에 저장될 수 있다. 바람직한 상태가 획득된 경우, 위치 스택(212)은 위치 정보를 획득하기 위하여 웨이크 업될 것이다.
애플리케이션 프로세서(210)는 하나 이상의 코프로세서들(250)과 통신할 수 있고, 모션 코프로세서(220)에 바람직한 이동 분류들에 관하여 통지되도록 하기 위한 요청(214), 예컨대, 모바일 디바이스가 특정 이동 상태로 변경되었음을 전송할 수 있다.
B. 모바일 디바이스 코프로세서들
모바일 디바이스 코프로세서는 이동 정보를 획득하고 이동 정보를 분류한다. 모바일 디바이스 코프로세서들은 모션 코프로세서, 네트워크 칩, 및 전원 장치를 포함할 수 있다.
1. 모션 코프로세서
모션 코프로세서(220)는 모션 분류기(221)를 포함할 수 있다. 모션 코프로세서(220)는 모바일 디바이스(200)의 이동 정보를 획득할 수 있다. 예를 들어, 모션 코프로세서(220)는 하나 이상의 모션 센서들(270), 예컨대, 가속도계 또는 자이로미터로부터의 측정치들을 포함하는 이동 정보를 수신할 수 있다. 하나 이상의 모션 센서들로부터 이동 정보(271)를 수신한 후에, 모션 코프로세서는 모션 분류기(221)를 이용하여 이동 정보를 분류할 수 있다.
센서들(270)은 이동 정보를 결정하는 데 사용될 수 있는 올웨이즈-온(always-on) 프로세서를 포함할 수 있다. 예를 들어, 모션 코프로세서(220)는 애플리케이션 프로세서보다 낮은 비용의 에너지에서 이동 정보를 연속적으로 모니터할 수 있는 가속도계 또는 자이로미터와 통신할 수 있다.
모션 분류기(221) 또는 상태 분류기는 이동 정보를 분류하는 데 사용될 수 있다. 예를 들어, 모션 분류기는 보행 상태들(예컨대, 걷기, 달리기 등) 또는 차량 상태들(예컨대, 운전, 자전거 등)에 대응하는 대로 수신된 이동 정보를 분류할 수 있다. 모션 코프로세서(220)는 이동 분류를 애플리케이션 프로세서(210)에 전달할 수 있다.
모션 코프로세서(220)의 모션 분류기(221)는 임의의 하나 이상의 센서들(270)로부터 이동 정보를 수신할 수 있다. 모션 분류기(221)는 이동 정보를 이용하여 하나 이상의 분류들에 대한 확률을 결정할 수 있다. 분류들은 정지,이동, 보행 또는 차량을 포함할 수 있다. 보행 분류는 걷기, 달리기, 또는 기타 보행 이동의 하위-분류를 포함할 수 있다. 차량 하위-분류는 자동차, 자전거, 또는 기타 차량의 운전을 포함할 수 있다. 모션 분류기(221)는 모션 분류기(221)에 제공된 이동 정보에 기초하여 각각의 보행 분류에 대하여 확률 또는 신뢰 점수를 배정할 수 있다. 모션 분류기(221)는 모든 분류들 및 하위-분류를 연관된 확률들 및/또는 신뢰 점수와 함께 애플리케이션 프로세서(210)의 상태 엔진(211)에 전송할 수 있다.
도시된 예에서, 모션 분류기(221)는 하나 이상의 센서들(270)로부터 이동 정보를 수신하고, 이는 가속도계 또는 자이로스코프일 수 있다. 이어서 모션 분류기(221)는 모바일 디바이스의 모션 분류를 결정할 수 있다. 가속도계는 가속도를 측정할 수 있다. 자이로미터(또는 자이로스코프)는 각운동을 결정하는 데 사용될 수 있으며, 이는 회전 또는 기계화된 운동의 유형을 나타낼 수 있다.
2. 네트워크(예컨대 WiFi) 칩
네트워크 칩(230)은 모바일 디바이스(200)에 의해 사용중인 무선 영역 네트워크(예컨대, WiFi 풋프린트)를 식별하는 데 사용될 수 있다. 예를 들어, 모바일 디바이스(200)가 제1 WiFi 네트워크에서 제2 WiFi 네트워크로 전환되는 경우, WiFi 네트워크를 전환했기 때문에 모바일 디바이스가 이동중이라고 결정될 수 있다. WiFi 환경이 정적인 경우, 모바일 디바이스가 이동중일 가능성이 없다.
사용자가 새로운 WiFi 네트워크를 선택할 때 또는 WiFi 칩이 이전 WiFi 네트워크가 더 이상 이용가능하지 않음을 검출하고 현재 위치에서 이용가능한 새로운 WiFi 네트워크가 선택되어야 하는 경우, WiFi 칩은 네트워크를 식별할 수 있다.
무선 액세스 포인트들은 모바일 디바이스(200)가 안정되어 있는지 여부를 결정하는 데 사용될 수 있다. 모바일 디바이스(200)는 무선 액세스 포인트들로부터 신호들을 검출할 수 있는 라디오 주파수(RF) 신호 수신기를 포함할 수 있다. 모바일 디바이스(200)는 RF 수신기의 판독치를 기록할 수 있다. 판독치는 RF 신호들의 측정치를 포함할 수 있다. 판독치에 기초하여, 모션 분류들 및 그것들의 대응하는 이동 상태가 식별될 수 있다.
3. 전원 장치
전원 장치(240)는 이동 분류가 필요한지 여부를 결정하는 데 사용될 수 있다. 모바일 디바이스(200)에 의해 사용되고 있는 전력량은 모바일 디바이스가 이동중인지 여부를 나타낼 수 있다. 예를 들어, 모바일 디바이스(200)의 전력 공급이 낮은 경우, 이는 모바일 디바이스(200)가 사용중이 아니며, 따라서, 위치 정보는 획득될 필요가 없음을 나타낼 수 있다. 그러나, 모바일 디바이스(200)의 전력 공급이 높다고 결정된 경우, 모바일 디바이스(200)가 턴온되었고, 따라서, 업데이트된 위치 정보가 획득되어야 함을 나타낼 수 있다. 모바일 디바이스는, 예를 들어, 디스플레이가 활성이거나 또는 애플리케이션 프로세서가 활성일 때 전력 공급될 수 있다. 예를 들어, 모바일 디바이스는 비행기로 이동 중에 턴오프되었을 수 있고 다른 도시 또는 다른 나라에 도착하면 다시 켜진다. 따라서, 업데이트된 위치 정보가 획득되어야 한다.
모션 코프로세서(220), 네트워크 칩(230), 및 전원 장치(240)는 코프로세서들(250)의 예들로서 기술되지만, 다른 유형들의 센서들도 코프로세서들로 사용될 수 있다. 구체적으로, 모바일 디바이스(200)의 이동을 결정하는 데 사용될 수 있는 임의의 종류의 센서가 코프로세서로 사용될 수 있다. 또한, 코프로세서들(250)은 개별적으로 또는 조합하여 사용될 수 있다. 즉, 둘 이상의 코프로세서들(250)이 모바일 디바이스(200)의 이동을 결정하는 데 사용될 수 있다. 예를 들어, 둘 이상의 코프로세서들로부터의 모션 분류들은 모바일 디바이스의 현재 모션 분류의 신뢰 점수를 증가시키는 데 사용될 수 있다.
모바일 디바이스의 시스템은, 애플리케이션 프로세서가 웨이크 업되어야 하는지 여부를 결정하기 위하여 모션 분류들뿐만 아니라 시간 정보를 사용할 수 있다.
C. 타이머
애플리케이션 프로세서(210)는 하나 이상의 코프로세서들(250)로부터의 신호에 기초하여 웨이크 업(예컨대, 저전력 모드에서 고전력 모드로 이동)될 수 있지만, 이는 긴 시간동안 발생하지 않을 수 있다. 모바일 디바이스의 위치의 결정들 사이의 간격이 너무 길지 않게 하는 것이 바람직할 수 있다. 타이머(260)는 폴 백 타이머(fall back timer) 또는 디폴트 타이머로서, 위치 결정들 사이의 최대 길이의 시간을 제공하도록 할 수 있다.
따라서, 타이머(260)는 애플리케이션 프로세서가 웨이크 업되어야 하는지 추가로 검증하는 데 사용될 수 있다. 타이머는 이동 상태들의 각각에 대하여 타이머 값들을 저장할 수 있다. 예를 들어, 안정 상태에 대하여 저장된 상태 타이머 값은 60분일 수 있고, 불안정 상태에 대하여 저장된 상태 타이머 값은 5분일 수 있다. 각각의 상태들에 대한 상태 타이머 값은 사전결정될 수 있거나 또는 사용자에 따라 조정될 수 있다. 이 최대 지연 시간이 트리거되면, 타이머(260)는 애플리케이션 프로세서(210)로 하여금 웨이크 업하도록 할 수 있다.
타이머(260)는 또한 애플리케이션 프로세서가 마지막으로 웨이크 업된 시기 또는 애플리케이션 프로세서가 마지막으로 슬립 상태가 된 시기를 나타내는 시간들의 로그를 저장할 수 있다. 예를 들어, 애플리케이션 프로세서가 마지막으로 웨이크 업되거나 또는 마지막으로 슬립 상태가 된 시간에 기초하여, 애플리케이션 프로세서가 웨이크 업되어야 하는지 여부가 결정될 수 있다. 따라서, 애플리케이션 프로세서가 슬립 상태가 되는 것과 웨이크 업되는 사이의 최소 지연 시간이 요구될 수 있다. 예를 들어, 모바일 디바이스들이 불안정 상태에 대응하는 모션 분류로 전환되었지만, 모바일 디바이스가 불안정 상태로 전환되었다고 마지막 결정된 때로부터 2분이 지난 경우, 애플리케이션 프로세서는 웨이크 업되지 않을 것이다. 2분은 불안정 상태에 대한 5분의 상태 타이머 값 미만이기 때문에 애플리케이션 프로세서는 웨이크 업되지 않는다. 따라서, 사용자가 새로운 위치에 들어갔거나 또는 위치 정보가 획득되어야 할 가능성이 없다.
하나 이상의 코프로세서들(250)이 애플리케이션 프로세서가 웨이크 업되어야 한다고 결정하는 경우, 애플리케이션 프로세서가 웨이크 업되어야 하는지 여부를 추가로 확인하기 위하여 타이머 값(예컨대, 타이머에 저장된 대로)이 참조될 수 있다. 타이머(260) 내의 정보에 기초하여 위치 정보가 최근 획득되지 않은 경우, 위치 정보가 비로소 획득될 수 있다. 또한, 타이머 값이 아직 만료되지 않은 경우, 타이머 값은 위치가 마지막으로 획득된 시간으로부터 앞으로 이동될 수 있다. 타이머(260)는 코프로세서들(250)과 조합하여 사용될 수 있다. 그러나, 코프로세서들(250)은 애플리케이션 프로세서(210)가 타이머(260)를 참조하지 않고 웨이크 업되어야 한다고 결정할 수 있다.
따라서, 예시 실시예들에 따라, 모바일 디바이스의 이동 분류들이 획득될 수 있고, 이동 분류가 애플리케이션 프로세서에 의해 바라는 상태를 충족하는 경우, 애플리케이션 프로세서는 웨이크 업될 수 있다. 애플리케이션 프로세서는 애플리케이션 프로세서를 웨이크 업해야 하는지 여부를 결정하는 데 있어서 사전결정된 시간 값들 또는 디폴트 타이머들과 이동 분류의 조합을 이용할 수 있다. 애플리케이션 프로세서의 총 동작 시간은 감소되고, 따라서 사용되는 리소스들의 양을 감소시킨다. 또한, 동작시키기에 비용이 들 수 있는 애플리케이션 프로세서가 덜 빈번하고 더 효율적으로 사용된다.
III. 모바일 디바이스 위치를 결정하는 방법
도 3은 일부 예시 실시예들에 따라 모바일 디바이스의 위치를 결정하기 위한 방법(300)을 도시한다. 방법(300)은 도 1의 방법(100)에 대응할 수 있다. 그러나, 방법(300)은 도 1의 방법을 기술하여 더 상세하게 제공한다. 또한, 도 3에 기술된 모바일 디바이스는 도 2에 기술된 모바일 디바이스(200)에 대응할 수 있다. 예를 들어, 애플리케이션 프로세서(210), 상태 엔진(211), 위치 스택(212), 모션 코프로세서(220), 모션 분류기(221), 네트워크 칩(230) 및 전원 장치(240)는 도 1, 도 3, 도 4 및 도 5의 방법을 구현하는 데 사용될 수 있다.
아래 방법들의 단계는 특정 순서로 기술되어 있지만, 단계들의 순서는 변경될 수 있거나 또는 하나 이상의 단계들이 생략될 수 있다.
단계(310)에서, 애플리케이션 프로세서는 하나 이상의 코프로세서들로부터 수신된 모션 분류들에 기초하여 모바일 디바이스의 현재 이동 상태를 식별한다. 예를 들어, 애플리케이션 프로세서는 모바일 디바이스의 제1 이동 상태(예컨대, 미지, 안정, 불안정)를 현재 이동 상태로서 식별할 수 있다. 애플리케이션 프로세서는 코프로세서로부터 수신된 모션 분류들의 스트림에 기초하여 이동 상태를 식별할 수 있다. 코프로세서들은 모션 코프로세서, 네트워크 칩, 및/또는 전원 장치를 포함할 수 있다. 예를 들어, 애플리케이션 프로세서는 모션 코프로세서로부터 이동 분류들을 수신할 수 있고, 애플리케이션 프로세서는 미지의 상태에 있는 것으로 식별할 수 있다. 예를 들어, 모션 분류는 잠정적일 수 있고 대응하는 상태를 나타내기에 불명확한 점이 있다.
단계(320)에서, 애플리케이션 프로세서는 모바일 디바이스의 제1 이동 상태에서 제2 이동 상태로의 변화를 식별하기 위한 요청을 하나 이상의 코프로세서들에 송신한다. 또한, 애플리케이션 프로세서는 모바일 디바이스의 이동 상태의 특정 변화(전환)에 관하여 통지되도록 요청할 수 있다. 예를 들어, 애플리케이션 프로세서는 상태가 미지의 상태에서 불안정 상태로 전환될 때 모션 코프로세서에 요청을 송신하고 통지되도록 요청할 수 있다.
단계(330)에서, 애플리케이션 프로세서가 코프로세서에 요청을 송신한 후에, 애플리케이션 프로세서는 그것의 전력 레벨을 감소시킬 것이다. 예를 들어, 애플리케이션 프로세서는 슬립 상태로 갈 수 있거나 또는 저전력 모드에 들어갈 것이다.
단계(340)에서, 코프로세서는 모바일 디바이스의 모션 분류를 결정하기 위하여 하나 이상의 센서들로부터 수신된 이동 정보를 모니터링한다. 센서들은 코프로세서에 이동 정보를 제공할 수 있는 가속도계 또는 자이로미터를 포함할 수 있다. 코프로세서는 모바일 디바이스의 현재 모션 분류를 결정하기 위하여 소정 기간 동안 이동 정보를 수신하고 이동 정보를 모션 분류로 분류할 수 있다. 예를 들어, WiFi 칩은 네트워크 ID를 모니터링하여 모바일 디바이스의 이동 정보를 결정할 수 있다.
단계(350)에서, 코프로세서는 단계(340)에서 결정된 현재 모션 분류가 제2 이동 상태에 대응한다고 결정할 수 있다. 즉, 현재 이동 상태는 그것의 이전 이동 상태와 상이하다. 또한, 제2 이동 상태는 애플리케이션 프로세서에 의해 바람직한 상태이고, 따라서, 애플리케이션 프로세서에는 모바일 디바이스가 애플리케이션 프로세서에 의해 바람직한 상태로 들어갔음을 알려야 한다.
단계(360)에서, 애플리케이션 프로세서에 통지를 송신하기 이전에, 애플리케이션 프로세서에 의해 요청된 대로 이동 상태의 바람직한 변경이 디폴트 기간 내에 일어나는지 여부가 추가적으로 결정될 수 있다. 디폴트 기간은 또한 레이턴시 기간으로 불릴 수 있다. 애플리케이션 프로세서의 요청에 명시된 대로 상태의 바람직한 변경이 디폴트 기간 내에 일어나지 않는 경우, 애플리케이션 프로세서에 통지가 송신될 수 있다. 디폴트 기간은 위치가 결정되어야 하는 시간의 길이이다. 디폴트 기간은 위치가 결정되었던 마지막 시간에 기초할 수 있다. 예를 들어, 디폴트 기간은 60분에 대응하여 위치가 적어도 60분마다 획득되도록 할 수 있다.
따라서, 위치가 디폴트 기간 내에 있는 경우, 애플리케이션 프로세서를 웨이크 업할 필요가 없다고 결정될 수 있고 코프로세서는 애플리케이션 프로세서를 웨이크 업하지 않을 것이다. 또한, 만료되지 않은 디폴트 기간은 업데이트될 수 있다. 예를 들어, 디폴트 기간은 애플리케이션 프로세서를 웨이크 업할 필요가 없다는 결정이 내려진 후 다시 시작될 수 있다(예컨대, 60분 레이턴시 기간 재시작).
통지가 애플리케이션 프로세서에 송신되지 않아야 한다고 결정되는 경우 방법(300)은 단계(360)에서 멈출 수 있다. 그러나, 디폴트 기간이 충족되면(예컨대, 디폴트 기간이 충족되거나 또는 통과됨), 애플리케이션 프로세서에는 그것의 바람직한 이동 상태가 발생했음을 통지되어야 한다고 결정될 수 있다. 대안적으로, 단계(360)는 생략될 수 있고, 애플리케이션 프로세서에는 디폴트 기간을 사용하지 않고 모션 코프로세서로부터 수신된 이동 분류에 기초하여 애플리케이션 프로세서에 의해 바람직한 이동 상태가 발생했음이 통지될 수 있다.
단계(370)에서, 코프로세서는 애플리케이션 프로세서에 바람직한 제2 이동 상태에 대응하는 모바일 디바이스의 모션 분류에 관한 통지를 송신한다. 통지는 코프로세서에 의해 결정된 대로 모션 분류를 포함할 수 있다. 통지는 또한 애플리케이션 프로세서가 그것이 웨이크 업해야 하는지 결정하기 위한 모션 분류에 대한 신뢰 점수 및 기타 정보를 포함할 수 있다.
단계(380)에서, 애플리케이션 프로세서는 코프로세서로부터 통지를 수신하고 위치 정보가 필요한지 여부를 결정할 수 있다. 위치 정보가 획득되어야 하는 경우, 애플리케이션 프로세서는 모바일 디바이스의 위치 정보를 획득한다. 애플리케이션 프로세서는 모바일 디바이스의 지리적 위치 좌표를 획득한다. 애플리케이션 프로세서는 모바일 디바이스의 현재 위치를 결정하기 위하여 GPS 또는 기타 위치확인 회로부를 사용할 수 있다.
단계(390)에서, 위치 정보가 획득되어야 하는 경우, 애플리케이션 프로세서는 저전력 모드 또는 슬립 모드에서 고전력 모드 또는 어웨이크 모드로 전환되어, 모바일 디바이스의 위치 정보를 획득한다. 위치 정보는 모바일 디바이스의 지리적 위치 좌표일 수 있다. 애플리케이션 프로세서는 모바일 디바이스의 현재 위치를 결정하기 위하여 GPS 또는 기타 위치확인 회로부를 사용할 수 있다.
IV. 전이 상태를 등록하는 방법
도 4는 일부 예시 실시예들에 따라 애플리케이션 프로세서가 모션 코프로세서를 이용하여 바람직한 이행 상태를 등록하는 방법(400)의 흐름도를 도시한다. 도 4의 방법(400)은 도 1의 방법(100) 및 도 3의 방법(400)의 단계들에 대응할 수 있다.
단계(410)에서, 애플리케이션 프로세서는 모바일 디바이스의 초기 상태를 결정한다. 도 4의 예에서, 애플리케이션 프로세서는 모바일 디바이스가 초기에 미지의 상태에 있다고 결정할 수 있다. 모바일 디바이스는 추가적인 이동 분류가 모션 코프로세서로부터 획득될 때까지 미지의 상태에 있을 수 있다.
단계(420)에서, 모바일 디바이스의 현재 상태가 결정된다. 애플리케이션 프로세서는 현재 상태를 결정하기 위하여 모션 코프로세서로부터 모션 분류들을 포함하는 이동 정보의 스트림을 수신할 수 있다. 예를 들어, 수신된 이동 정보에 기초하여, 애플리케이션 프로세서는 그것이 현재는 안정 상태에 있다고 결정할 수 있다. 그러나, 이는 단지 예시일 뿐이다. 모션 분류들의 스트림에 기초하여, 애플리케이션 프로세서가 불안정 상태에 있거나 또는 상태가 미지의 상태를 유지할 수 있다고 결정될 수 있다.
단계(430)에서, 애플리케이션 프로세서는 애플리케이션 프로세서가 발생하기를 바라는 특정 이동 상태를 등록한다. 예를 들어, 애플리케이션 프로세서는 코프로세서에 요청을 송신함으로써 안정 상태가 발생하면 통지되도록 등록할 수 있다. 애플리케이션 프로세서는 제1 상태에서 제2 상태로, 예컨대, 모바일 디바이스가 불안정 상태에서 안정 상태로, 또는 안정 상태에서 불안정 상태로 전이했을 때 일어나는 특정 전이를 특정할 수 있다. 코프로세서는 애플리케이션으로부터 수신된 이동 상태를 대응하는 모션 분류로 번역할 수 있다. 대안적으로, 애플리케이션 프로세서는 바람직한 이동 상태를 대응하는 모션 분류로 번역할 수 있다.
단계(420)에서 애플리케이션 프로세서가 미지의 상태에 있는 경우, 애플리케이션 프로세서는 안정 또는 불안정 상태가 발생하는 경우에도 통지되도록 등록할 수 있다. 도 4에 도시된 예에서, 애플리케이션 프로세서는 안정 상태에 있는 것으로 결정되기 때문에, 단계(430)에서, 애플리케이션 프로세서는 모션 상태가 불안정 상태로 되면 통지되도록 등록할 수 있다.
단계(440)에서, 애플리케이션 프로세서는 모션 코프로세서에게 더 이상 모션 코프로세서에 의해 분류되는 모션 분류들을 수신할 필요가 없다고 통지할 수 있다. 예를 들어, 애플리케이션 프로세서는 그것이 모바일 디바이스의 현재 상태를 결정하는 데 충분한 정보를 갖고 있다고 결정하면, 애플리케이션 프로세서는 모션 분류들의 스트림을 수신하는 것을 멈출 수 있다. 이러한 통지는 단계(430)의 요청에서 이루어질 수 있다. 대안적으로, 통지는 요청 전 또는 후에 발생할 수 있다. 모션 분류들이 더 이상 필요없다는 그러한 결정은 애플리케이션 프로세서가 저전력 모드로 들어갈 것이라고 결정할 때 이루어 질 수 있다.
단계(450)에서, 애플리케이션 프로세서가 등록한 후, 애플리케이션 프로세서는 슬립 상태로 되거나 또는 저전력 모드로 들어간다.
단계(460)에서, 애플리케이션 프로세서가 등록한 상태가 발생한 경우에, 애플리케이션 프로세서는 모션 코프로세서로부터 통지를 수신하고 그것이 웨이크 업해야 하는지 결정할 수 있다. 통지는 애플리케이션 프로세서의 일부에 의해 수신될 수 있고, 따라서 통지의 분석은 전체 애플리케이션 프로세서를 웨이크 업할 필요가 없다. 예컨대, 통지가 현재 모션 분류를 포함하면, 분석은 통지가 적절히 생성되었다고 확인할 수 있다. 예를 들어, 모션 분류가 바람직한 이동 상태에 대응하는 경우, 애플리케이션 프로세서는 웨이크 업할 수 있다. 도 4에 도시된 예에서, 모바일 디바이스가 불안정 상태로 전이된 경우에는, 애플리케이션 프로세서는 웨이크 업할 것이다.
단계(470)에서, 애플리케이션 프로세서는 현재 위치 정보를 획득할 것이다. 예를 들어, 애플리케이션 프로세서는 GPS로부터 모바일 디바이스의 현재 위치를 요청할 수 있다.
V. 모션 분류를 결정하는 방법
도 5는 일부 예시 실시예들에 따라 모바일 디바이스 이동 정보의 모션 분류를 결정하는 방법을 도시한다. 코프로세서는 이동 정보를 분류하기 위하여 이동 정보를 해석한다. 코프로세서는 분류가 애플리케이션 프로세서에 의해 바람직한 이동 상태에 대응하는지 여부를 결정할 수 있다.
단계(510)에서, 모션 코프로세서는 모션 정보의 버퍼를 저장한다. 모션 정보는 가속도계 또는 자이로스코프와 같은 하나 이상의 센서들로부터 획득될 수 있다. 모션 프로세서는 시간 경과에 따른 이동 정보를 수집한다.
단계(520)에서, 모션 코프로세서는 모바일 디바이스의 현재 분류를 안정 상태 또는 불안정 상태 중 어느 하나로 번역한다. 예를 들어, 모션 코프로세서는 애플리케이션 프로세서로부터의 이동 상태들을 대응하는 모션 분류로 번역하는 번역 테이블을 사용할 수 있다.
단계(520)에서, 모션 코프로세서는 애플리케이션 프로세서에 의해 생성된 등록 요청을 수신한다. 요청은 애플리케이션 프로세서에 의해 바람직한 이동 상태를 포함한다. 요청은 이동 상태(예컨대, 안정 또는 불안정)를 포함할 수 있고, 구체적인 전이는 명시되지 않는다. 대안적으로, 요청은 애플리케이션 프로세서가 웨이크 업하도록 트리거하는 데 필요한 전이(예컨대, 안정에서 불안정, 불안정에서 안정 등)를 특정할 수 있다. 도 4에 대하여 위에서 기재된 예에서, 애플리케이션 프로세서는 모바일 디바이스의 상태가 안정 상태에서 불안정 상태로 전이되었음이 통지되도록 요청한다.
(애플리케이션 프로세서에 의해 결정된 바와 같이) 이동 상태들과 (코프로세서에 의해 결정된 바와 같이) 모션 분류들 사이에 1-1 대응이 없는 실시예들에서, 예컨대, 애플리케이션 프로세서 또는 코프로세서에 의해 번역이 수행될 수 있다. 예를 들어, 등록 요청을 모션 코프로세서에 송신하기 이전에, 등록 요청의 이동 상태는 애플리케이션 프로세서에 의해 하나 이상의 대응하는 모션 분류들로 번역될 수 있다. 대안적으로, 애플리케이션 프로세서에 의해 송신된 요청은 바람직한 이동 상태를 포함할 수 있고, 모션 코프로세서는 이동 상태를 모션 분류로 번역할 수 있다.
단계(530)에서, 모션 코프로세서는 모바일 디바이스의 이동 정보를 분류한다. 도 6a 및 도 6b는 일부 실시예들에 따라 모션 코프로세서에 의한 이동 정보의 분류를 도시한다.
도면(600)에 도시된 바와 같이, 시간은 x-축에 나타나고 분류들 "정지", "이동", 및 "보행/차량"은 y-축에 나타난다. 모션 센서들로부터 수신된 이동 정보는, 예를 들어, 정지, 이동, 또는 보행/차량으로 분류될 수 있다. 그러나, 이것들은 단지 예시일 뿐이며 다른 분류들이 사용될 수 있다.
정지는 애플리케이션 프로세서의 안정 상태에 대응할 수 있다. 보행/차량 분류는 애플리케이션 프로세서의 불안정 상태에 대응할 수 있다. 이동은 이동 값들이 x-축 상에서 더 높거나 또는 더 낮은지에 기초하여 안정 또는 불안정 상태 중 어느 하나에 대응할 수 있다. 또한, 정지는 모바일 디바이스가 이동하지 않는 상태일 수 있다. 이동은 모바일 디바이스가 정지가 아닌 상태일 수 있지만, 그러나, 모바일 디바이스는 보행 또는 차량 상태에 있지 않다. 움직이는 상태에 있는 경우, 모바일 디바이스는 정지와 보행/차량 상태 사이에 있다. 보행/차량 분류는 보행 상태 또는 차량 상태에 대응하고 걷기, 달리기, 및 운전을 포함할 수 있다.
도표(600)에 도시된 바와 같이, 상이한 분류들에 대한 이동 정보는 시간 창 t에 걸쳐 연속적으로 분석된다. 도면(600)에 도시된 바와 같이, 시간 창 t 동안 모바일 디바이스의 이동 정보는 정지, 이동, 보행/차량으로 분류되고, 이어서 다시 이동 그리고 이어서 다시 보행 차량으로 분류된다. 따라서, 시간 창 t에 걸쳐, 모바일 디바이스의 이동 정보는 정지, 이동, 또는 보행/차량 중 하나로 분류되었다. 즉, 모션 분류는 시간 창 t 중 각각의 시점에 할당될 수 있다.
히스토그램(610)은 도면(600)에서 분류된 이동 정보를 요약한다. 히스토그램(610)에 도시된 바와 같이, 보행/차량 분류는 주어진 시간 창 동안 가장 자주 나타난다. 따라서, 모바일 디바이스 이동 정보는 보행/차량으로 분류되며, 이는 애플리케이션 프로세서의 불안정 상태에 대응한다. 사전결정된 기간에 걸쳐 가장 많이 발생하는 분류는 현재 분류로 식별될 수 있다. 예를 들어, 정지 분류가 시간 창 동안 가장 자주 발생하는 경우, 모바일 디바이스는 안정 상태에 있다고 결정될 수 있다. 걷기 분류가 가장 많이 발생하는 경우, 모바일 디바이스는 불안정 상태에 있는 것으로 결정될 수 있다. 그 분류가 발생하는 횟수가 많을수록, 분류가 시간 창 동안 최종 모션 분류인 것으로 결정하는 데 있어서 더 많은 신뢰가 쌓인다. 기술된 예에서 보행/차량 분류는 가장 자주 나타지만, 분류는 명확하지 않을 수 있고 분류들은 평균화되어 적절한 분류를 식별할 수 있다.
그리드(600) 및 히스토그램(610)에 도시된 모션 분류들의 스트림에 기초하여, 모션 코프로세서는 모바일 디바이스가 보행/차량으로 분류되어야 한다고 결정할 수 있고, 이는 애플리케이션 프로세서의 불안정 상태에 대응한다. 모션 코프로세서는 히스토그램(610)에 기초하여, 가장 높은 신뢰 점수를 갖는 모션 분류를 애플리케이션 프로세서에 제공할 수 있다. 따라서, 애플리케이션 프로세서가 현재 모션 분류를 결정하기 위하여 모션 코프로세서는 모션 분류들의 계층구조를 애플리케이션 프로세서에 제공할 수 있다. 히스토그램(610)의 사용은 특정 분류가 단지 잠시 발생하는 경우에 코프로세서가 애플리케이션 프로세서를 웨이크 업시키는 것을 방지한다.
대안적으로, 모션 코프로세서는 복수의 모션 분류들 및 그것들의 대응하는 신뢰 점수들을 애플리케이션 프로세서에 제공할 수 있고, 애플리케이션 프로세서는 모션 분류들을 이용하여 현재 이동 상태를 식별할 수 있다. 이러한 기술은 애플리케이션 프로세서가 특정 이동 상태 또는 하나 이상의 모션 분류들에 대하여 웨이크 업되는 요청을 송신하고 저전력 상태에 가기 전에 현재 이동 상태의 결정을 위하여 애플리케이션 프로세서에 의해 사용될 수 있다.
따라서, 모션 코프로세서는 히스토그램(610)을 생성한다. 그러나, 다른 예시 실시예에서, 애플리케이션 프로세서는, 그리드(600)에 도시된 바와 같이, 모션 코프로세서로부터 수신될 수 있는 모션 분류들에 기초하여 히스토그램(610)을 생성할 수 있다.
또한, 애플리케이션 프로세서는 모바일 디바이스의 제1 이동 상태(예컨대, 도 3의 단계(310))를 결정할 수 있다. 즉, 제1 이동 상태를 결정하는 데 있어서, 모션 코프로세서는 가장 높은 신뢰 점수를 갖는 모션 분류, 또는 복수의 모션 분류들 및 그것들의 대응하는 신뢰 점수들을, 애플리케이션 프로세서에 제공할 수 있고; 애플리케이션 프로세서는 제1 이동 상태를 결정할 수 있다. 대안적으로, 애플리케이션 프로세서는 모바일 디바이스의 제1 이동 상태를 결정하기 위하여 모션 코프로세서로부터 모션 분류들의 스트림을 수신하고 모션 분류들의 스트림 중에서 가장 가능성 있는 현재 모션 분류를 식별할 수 있다.
단계(540)에서, 모션 코프로세서는 분류가 등록 요청의 상태와 매칭되는지 결정한다. 도 4의 예에서, 애플리케이션 프로세서는 모바일 디바이스의 상태가 안정 상태에서 불안정 상태로 전이되었음이 통지되도록 요청한다. 따라서, 모션 코프로세서는 보행/차량 분류를 나타내는 모션 분류 히스토그램들에 기초하여, 모바일 디바이스가 등록 요청의 상태와 매칭된다고 결정한다.
단계(550)에서, 모션 코프로세서가 단계(540)에서 분류가 등록 요청과 매칭된다고 결정하는 경우, 모션 코프로세서는 애플리케이션 프로세서에 통지하거나 또는 그것을 웨이크 업시킨다. 모션 코프로세서는 애플리케이션 프로세서에 바람직한 상태가 발생했다고 알린다. 모션 코프로세서는 경고 메시지를 통해 애플리케이션 프로세서에 통지할 수 있다. 이와 같은 경고 메시지는 애플리케이션 프로세서를 웨이크 업하는 것이 가능하도록 특정 비트 또는 플래그 세트를 갖는다.
센서 측정치들에 기초하여 모션 분류를 결정하는 것에 대한 추가적인 상세사항들은 발명의 제목이 "SENDING SMART ALERTS ON A DEVICE AT OPPORTUNE MOMENTS USING SENSORS"인, 잭슨(Jackson) 등의 USP 제9,603,123호에서 발견할 수 있다.
예시 실시예는 모션 코프로세서에 대해 기재되었지만, 다른 코프로세서들이 사용될 수 있다. 예를 들어, WiFi 칩이 네트워크 분류들을 결정할 수 있고, 이는 모션 분류들에 대응할 수 있다. 그리고, 전원 장치가 전력 분류들을 결정할 수 있다.
따라서, 예시 실시예들에 따라, 모바일 디바이스 위치를 결정하는 것은 상태의 변화 또는 모바일 디바이스에 관련된 이벤트들의 변화에 기초할 수 있다.
VI. 모바일 디바이스
도 7은 일부 예시 실시예들에 따른, 예시 디바이스(700)의 블록도이다. 예시 디바이스는 모바일 디바이스일 수 있다. 디바이스(700)는 일반적으로 컴퓨터 판독가능 매체(702), 프로세싱 시스템(704), 입/출력(I/O) 서브시스템(706), 무선 회로부(708), 및 스피커(750) 및 마이크로폰(752)을 포함하는 오디오 회로부(710)를 포함한다. 이 컴포넌트들은 하나 이상의 통신 버스들 또는 신호 라인들(703)에 의해 결합될 수 있다. 디바이스(700)는, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 모바일 폰, 랩톱 컴퓨터, 태블릿 디바이스, 미디어 플레이어, 개인 휴대 정보 단말기(PDA), 키 포브, 차량 열쇠, 액세스 카드, 다기능 디바이스, 모바일 폰, 휴대용 게이밍 디바이스 등을, 이 아이템들 중 2개 이상의 아이템들의 조합을 포함하여, 포함하는 임의의 휴대용 전자 디바이스일 수 있다.
도 7에 도시된 아키텍처는 디바이스(700)에 대한 아키텍처의 일례일 뿐이고, 디바이스(700)는 도시된 것보다 더 많거나 더 적은 컴포넌트들을 가질 수 있거나, 또는 컴포넌트들의 상이한 구성을 가질 수 있다는 것이 명백할 것이다. 도 7에 도시된 다양한 컴포넌트들은 하나 이상의 신호 프로세싱 및/또는 주문형 집적 회로(application specific integrated circuit)들을 비롯한, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어 양쪽 모두의 조합으로 구현될 수 있다.
무선 회로부(708)는 정보를 무선 링크 또는 네트워크를 통해 안테나 시스템, RF 송수신기, 하나 이상의 증폭기들, 튜너, 하나 이상의 발진기들, 디지털 신호 프로세서, CODEC 칩셋, 메모리 등과 같은 하나 이상의 다른 디바이스들의 종래의 회로부로 전송 및 수신하기 위해 사용된다. 무선 회로부(708)는, 예를 들어, 본 명세서에 기술된 것과 같은 다양한 프로토콜들을 사용할 수 있다.
무선 회로부(708)는 주변기기 인터페이스(716)를 통해 프로세싱 시스템(704)에 결합된다. 인터페이스(716)는 주변기기들과 프로세싱 시스템(704) 사이의 통신을 확립하고 유지하기 위한 종래의 컴포넌트들을 포함할 수 있다. (예를 들어, 음성 인식 또는 음성 커맨드 애플리케이션들에서) 무선 회로부(708)에 의해 수신된 음성 및 데이터 정보는 주변기기 인터페이스(716)를 통해 하나 이상의 프로세서들(718)로 전송된다. 하나 이상의 프로세서들(718)은 매체(702) 상에 저장된 하나 이상의 애플리케이션 프로그램들(734)에 대한 다양한 데이터 포맷들을 프로세싱하도록 구성가능하다.
주변기기 인터페이스(716)는 디바이스의 입력 및 출력 주변기기들을 프로세서(718) 및 컴퓨터 판독가능 매체(702)에 결합한다. 하나 이상의 프로세서들(718)은 제어기(720)를 통해 컴퓨터 판독가능 매체(702)와 통신한다. 컴퓨터 판독가능 매체(702)는 하나 이상의 프로세서들(718)에 의한 사용을 위해 코드 및/또는 데이터를 저장할 수 있는 임의의 디바이스 또는 매체일 수 있다. 매체(702)는 캐시, 메인 메모리 및 2차 메모리를 포함하는 메모리 계층을 포함할 수 있다.
디바이스(700)는 또한 다양한 하드웨어 컴포넌트들에 전력공급하기 위한 전력 시스템(742)을 포함한다. 전력 시스템(742)은 전력 관리 시스템, 하나 이상의 전원들(예를 들어, 배터리, 교류 전류(AC)), 재충전 시스템, 전력 고장 검출 회로, 전력 변환기 또는 인버터, 전력 상태 표시자(예를 들어, 발광 다이오드(LED)) 및 모바일 디바이스들 내에서의 전력의 생성, 관리 및 분산과 전형적으로 연관된 임의의 다른 컴포넌트들을 포함할 수 있다.
일부 실시예들에서, 디바이스(700)는 카메라(744)를 포함한다. 일부 실시예들에서, 디바이스(700)는 센서들(746)을 포함한다. 센서들은 가속도계들, 나침반, 자이로미터, 압력 센서들, 오디오 센서들, 광 센서들, 기압계들 등을 포함할 수 있다. 센서들(746)은 위치의 청각 또는 광 시그니처들과 같은 위치 양태들을 감지하기 위해 사용될 수 있다.
일부 실시예들에서, 디바이스(700)는 때때로 GPS 유닛(748)이라고 지칭되는 GPS 수신기를 포함할 수 있다. 모바일 디바이스는 GPS와 같은 인공위성 내비게이션 시스템을 사용하여 포지션 정보, 타이밍 정보, 고도, 또는 다른 내비게이션 정보를 획득할 수 있다. 동작 동안, GPS 유닛은 지구 궤도를 선회하는 GPS 인공위성들로부터 신호들을 수신할 수 있다. GPS 유닛은 신호들을 분석하여 주행 시간 및 거리 추정을 행한다. GPS 유닛은 모바일 디바이스의 현재 포지션(현재 위치)을 결정할 수 있다. 이러한 추정들에 기초하여, 모바일 디바이스는 위치 픽스, 고도, 및/또는 현재 속력을 결정할 수 있다. 위치 픽스는 위도 및 경도 정보와 같은 지리적 좌표들일 수 있다.
하나 이상의 프로세서들(718)은 디바이스(700)를 위한 다양한 기능들을 수행하기 위해 매체(702)에 저장된 다양한 소프트웨어 컴포넌트들을 실행한다. 일부 실시예들에서, 소프트웨어 컴포넌트들은 운영 체제(722), 통신 모듈(또는 명령어들의 세트)(724), 위치 모듈(또는 명령어들의 세트)(726), 경고 모듈(728), 및 다른 애플리케이션들(또는 명령어들의 세트)(734), 예컨대 차량 로케이터 앱 및 내비게이션 앱을 포함한다.
운영 체제(722)는 iOS, 맥 OS(Mac OS), 다윈(Darwin), RTXC, 리눅스(LINUX), 유닉스(UNIX), OS X, 윈도우즈(WINDOWS), 또는 임베디드 운영 체제, 예컨대 VxWorks를 포함하는 임의의 적합한 운영 체제일 수 있다. 운영 체제는 다양한 절차들, 명령어들의 세트들, 일반적인 시스템 태스크들(예를 들어, 메모리 관리, 저장 디바이스 제어, 전력 관리 등)을 제어 및 관리하기 위한 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함할 수 있고, 다양한 하드웨어 및 소프트웨어 컴포넌트들 간의 통신을 용이하게 한다.
통신 모듈(724)은 하나 이상의 외부 포트들(736)을 통해 또는 무선 회로부(708)를 통해 다른 디바이스들과의 통신을 용이하게 하고, 무선 회로부(708) 및/또는 외부 포트(736)로부터 수신되는 데이터를 처리하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 외부 포트(736)(예를 들어, USB, 파이어와이어(FireWire), 라이트닝 커넥터(Lightning connector), 60-핀 커넥터 등)는 다른 디바이스들에 직접적으로 또는 네트워크(예를 들어, 인터넷, 무선 LAN 등)를 통해 간접적으로 결합하도록 구성된다.
위치/모션 모듈(726)은 디바이스(700)의 현재 포지션(예를 들어, 좌표들 또는 다른 지리적 위치 식별자) 및 모션을 결정하는 데 도움을 줄 수 있다. 현대의 포지셔닝 시스템들은 인공위성 기반 포지셔닝 시스템들, 예컨대 GPS, "셀 ID들"에 기초한 셀룰러 네트워크 포지셔닝, 및 Wi-Fi 네트워크들에 기초한 Wi-Fi 포지셔닝 기술을 포함한다. GPS는 또한 실내 또는 "도시 협곡(urban canyon)들"에서는 보이지 않을 수 있는(또는 약한 신호들을 가질 수 있는) 포지션 추정치를 결정하기 위해 다수의 인공위성들의 가시성에 의존한다. 일부 실시예들에서, 위치/모션 모듈(726)은 GPS 유닛(748)으로부터 데이터를 수신하고 신호들을 분석하여 모바일 디바이스의 현재 포지션을 결정한다. 일부 실시예들에서, 위치/모션 모듈(726)은 Wi-Fi 또는 셀룰러 위치 기술을 이용하여 현재 위치를 결정할 수 있다. 예를 들어, 모바일 디바이스의 위치는 이들의 위치 또한 알고 있는 인근의 셀 사이트들 및/또는 Wi-Fi 액세스 포인트들의 지식을 사용하여 추정될 수 있다. Wi-Fi 또는 셀룰러 송신기를 식별하는 정보는 무선 회로부(708)에서 수신되고 위치/모션 모듈(726)로 전달된다. 일부 실시예들에서, 위치 모듈은 하나 이상의 송신기 ID들을 수신한다. 일부 실시예들에서, 송신기 ID들의 시퀀스는, 송신기 ID들을 대응하는 송신기들의 포지션 좌표들과 맵핑 또는 상관시키고 대응하는 송신기들의 포지션 좌표들에 기초하여 디바이스(700)에 대한 추정된 포지션 좌표들을 컴퓨팅하는 참조 데이터베이스(예를 들어, 셀 ID 데이터베이스, Wi-Fi 참조 데이터베이스)와 비교될 수 있다. 이용되는 특정 위치 기술에 관계없이, 위치/모션 모듈(726)은 위치 픽스가 유도될 수 있는 정보를 수신하고, 그 정보를 해석하고, 지리적 좌표들, 위도/경도, 또는 다른 위치 픽스 데이터와 같은 위치 정보를 반환한다.
경고 모듈(728)(또는 경고 시스템)은 다양한 하위-모듈들 또는 시스템들을 포함할 수 있다.
모바일 디바이스 상의 하나 이상의 애플리케이션들(734)은 브라우저, 주소록, 연락처 리스트, 이메일, 인스턴트 메시징, 워드 프로세싱, 키보드 에뮬레이션, 위젯들, JAVA 기반 애플리케이션들, 암호화, 디지털 저작권 관리, 음성 인식, 음성 복제, 음악 플레이어(MP3 또는 AAC 파일들과 같은 하나 이상의 파일들에 저장된 녹음된 음악을 재생함) 등을 제한 없이 포함하는, 디바이스(700) 상에 설치된 임의의 애플리케이션들을 포함할 수 있다.
그래픽 모듈, 시간 모듈 등과 같은 다른 모듈들 또는 명령어들의 세트들(도시되지 않음)이 존재할 수 있다. 예를 들어, 그래픽 모듈은 그래픽 객체들(텍스트, 웹 페이지들, 아이콘들, 디지털 이미지들, 애니메이션들 등을 제한 없이 포함함)을 디스플레이 표면 상에 렌더링, 애니메이팅 및 디스플레이하기 위한 다양한 종래의 소프트웨어 컴포넌트들을 포함할 수 있다. 다른 예에서, 타이머 모듈은 소프트웨어 타이머일 수 있다. 타이머 모듈은 또한 하드웨어로 구현될 수 있다. 시간 모듈은 임의의 수의 이벤트들에 대한 다양한 타이머들을 유지할 수 있다.
I/O 서브시스템(706)은 터치 감응형 디스플레이일 수 있는 디스플레이 시스템(도시되지 않음)에 결합될 수 있다. 디스플레이는 GUI에서 사용자에게 시각적 출력을 디스플레이한다. 시각적 출력은 텍스트, 그래픽, 비디오, 및 이들의 임의의 조합을 포함할 수 있다. 시각적 출력 중 일부 또는 전부는 사용자 인터페이스 객체들에 대응할 수 있다. 디스플레이는 LED(발광 다이오드), LCD(액정 디스플레이) 기술, 또는 LPD(발광 폴리머 디스플레이) 기술을 이용할 수 있지만, 다른 실시예들에서는 다른 디스플레이 기술들이 이용될 수 있다.
일부 실시예들에서, I/O 서브시스템(706)은 키보드, 마우스, 및/또는 트랙 패드와 같은 사용자 입력 디바이스들 및 디스플레이를 포함할 수 있다. 일부 실시예들에서, I/O 서브시스템(706)은 터치 감응형 디스플레이를 포함할 수 있다. 터치 감응형 디스플레이는 또한 햅틱 및/또는 촉각적 접촉에 기초하여 사용자로부터의 입력을 수용할 수 있다. 일부 실시예들에서, 터치 감응형 디스플레이는 사용자 입력을 수용하는 터치 감응형 표면을 형성한다. 터치 감응형 디스플레이/표면은 (매체(702) 내의 임의의 연관된 모듈들 및/또는 명령어들의 세트들과 함께) 터치 감응형 디스플레이 상의 접촉(및 접촉의 임의의 이동 또는 해제)을 검출하고, 검출된 접촉을, 접촉이 발생할 때 터치 스크린 상에 디스플레이되는 하나 이상의 소프트 키들과 같은 사용자 인터페이스 객체들과의 상호작용으로 변환한다. 일부 실시예들에서, 터치 감응형 디스플레이와 사용자 사이의 접촉 지점은 사용자의 하나 이상의 손가락들에 대응한다. 사용자는 스타일러스, 펜, 손가락 등과 같은 임의의 적합한 객체 또는 부속물을 사용하여 터치 감응형 디스플레이와 접촉할 수 있다. 터치 감응형 디스플레이 표면은 용량성, 저항성, 적외선, 및 표면 탄성파 기술들뿐만 아니라, 다른 근접 센서 어레이들 또는 터치 감응형 디스플레이와의 하나 이상의 접촉 지점들을 결정하기 위한 다른 요소들을 포함하는, 임의의 적합한 터치 감응 기술들을 이용하여 접촉 및 그의 임의의 이동 또는 해제를 검출할 수 있다.
또한, I/O 서브시스템은 전력 제어, 스피커 볼륨 제어, 신호음 음량, 키보드 입력, 스크롤링, 홀드, 메뉴, 화면 잠금, 통신들의 클리어링 및 종료 등과 같은 다양한 기능들을 제어 또는 수행하기 위해, 푸시버튼들, 키들, 스위치들, 로커 버튼들, 다이얼들, 슬라이더 스위치들, 스틱들, LED들 등과 같은 하나 이상의 다른 물리적 제어 디바이스들(도시되지 않음)에 결합될 수 있다. 일부 실시예들에서, 터치 스크린 이외에, 디바이스(700)는 특정 기능들을 활성화 또는 비활성화하기 위한 터치패드(도시되지 않음)를 포함할 수 있다. 일부 실시예들에서, 터치패드는, 터치 스크린과는 달리, 시각적 출력을 디스플레이하지 않는 디바이스의 터치 감응형 영역이다. 터치패드는 터치 감응형 디스플레이와는 별개인 터치 감응형 표면 또는 터치 감응형 디스플레이에 의해 형성되는 터치 감응형 표면의 연장부일 수 있다.
일부 실시예들에서, 본 명세서에 기술된 동작들의 일부 또는 전부는 사용자의 디바이스 상에서 실행되는 애플리케이션을 사용하여 수행될 수 있다. 회로들, 로직 모듈들, 프로세서들, 및/또는 다른 컴포넌트들은 본 명세서에 기술된 다양한 동작들을 수행하도록 구성될 수 있다. 당업자는, 구현예에 따라, 이러한 구성이 특정 컴포넌트들의 설계, 셋업, 상호연결, 및/또는 프로그래밍을 통해 달성될 수 있고, 다시 구현예에 따라, 구성된 컴포넌트가 상이한 동작을 위해 재구성가능할 수 있거나 또는 재구성가능하지 않을 수 있다는 것을 이해할 것이다. 예를 들어, 프로그래밍가능 프로세서는 적합한 실행가능 코드를 제공함으로써 구성될 수 있고; 전용 로직 회로는 로직 게이트들 및 다른 회로 요소들을 적절히 연결시킴으로써 구성될 수 있는 등이다.
본 출원에 설명된 소프트웨어 컴포넌트들 또는 기능들 중 임의의 것은, 예를 들어, 종래의 또는 객체-지향형 기술들을 사용하여, 예를 들어, 자바, C, C++, C#, 오브젝티브-C, 스위프트(Swift), 또는 스크립팅 언어(scripting language), 예컨대 펄(Perl) 또는 파이썬(Python)과 같은 임의의 적합한 컴퓨터 언어를 사용하여 프로세서에 의해 실행될 소프트웨어 코드로서 구현될 수 있다. 소프트웨어 코드는 저장 및/또는 송신을 위한 컴퓨터 판독가능 매체 상의 일련의 명령어들 또는 커맨드들로서 저장될 수 있다. 적합한 비일시적 컴퓨터 판독가능 매체는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 하드 드라이브 또는 플로피 디스크와 같은 자기 매체, 또는 콤팩트 디스크(CD) 또는 DVD(digital versatile disk)와 같은 광학 매체, 플래시 메모리 등을 포함할 수 있다. 컴퓨터 판독가능 매체는 그러한 저장 또는 송신 디바이스들의 임의의 조합일 수 있다.
본 예시 실시예들의 다양한 특징들을 통합한 컴퓨터 프로그램들이 다양한 컴퓨터 판독가능 저장 매체 상에 인코딩될 수 있으며; 적합한 매체는 자기 디스크 또는 테이프, 콤팩트 디스크(CD) 또는 DVD(digital versatile disk)와 같은 광 저장 매체, 플래시 메모리 등을 포함한다. 프로그램 코드로 인코딩된 컴퓨터 판독가능 저장 매체들은 호환가능한 디바이스와 패키징되거나 또는 다른 디바이스들과는 별개로 제공될 수 있다. 또한, 프로그램 코드는 인터넷을 포함하는 다양한 프로토콜들을 따르는 무선 네트워크들, 및/또는 유선 광 네트워크들을 통해 인코딩 및 송신됨으로써, 예를 들어, 인터넷 다운로드를 통해 배포가 가능해질 수 있다. 임의의 그러한 컴퓨터 판독가능 매체는 단일 컴퓨터 제품(예컨대, 하드 드라이브, CD, 또는 전체 컴퓨터 시스템) 상에 또는 그 내에 존재할 수 있고, 시스템 또는 네트워크 내의 상이한 컴퓨터 제품들 상에 또는 그 내에 존재할 수 있다. 컴퓨터 시스템은 모니터, 프린터, 또는 본 명세서에 언급된 결과들 중 임의의 것을 사용자에게 제공하기 위한 다른 적합한 디스플레이를 포함할 수 있다.
구체적인 실시예들이 기재되었지만, 다양한 변형, 변경, 대안적인 구성, 및 등가물들이 또한 예시 실시예들의 범주 내에 포함된다. 예시 실시예들이 소정의 구체적인 데이터 처리 환경 내에서의 동작으로 제한되지 않고, 복수의 데이터 처리 환경들 내에서 자유롭게 동작한다. 추가적으로, 예시 실시예들은 특정 일련의 트랜잭션 및 단계들을 이용하는 것으로 기재되었지만, 통상의 기술자들에게는 예시 실시예들의 범주가 기재된 일련의 트랜잭션들 및 단계들에 제한되지 않음이 명백할 것이다. 전술된 실시예들의 다양한 특징부들 및 양태들은 개별적으로 또는 조합하여 사용될 수 있다.
또한, 예시 실시예들은 하드웨어 및 소프트웨어의 특정 조합을 이용하는 것으로 기재되었지만, 하드웨어 및 소프트웨어의 다른 조합들도 또한 예시 실시예들의 범주 내에 있음이 인식되어야 한다. 예시 실시예들은 하드웨어로만, 또는 소프트웨어로만, 또는 그 조합들을 사용하여 구현될 수 있다. 본 명세서에 기술된 다양한 프로세스들은 동일한 프로세서 또는 임의의 조합의 상이한 프로세서들 상에서 구현될 수 있다. 그에 따라, 컴포넌트들 또는 모듈들이 소정 동작들을 수행하도록 구성되어 있는 것으로 기술되어 있는 경우, 이러한 구성은, 예컨대, 전자 회로들을 그 동작을 수행하도록 설계하는 것에 의해, (마이크로프로세서들과 같은) 프로그램가능 전자 회로들을 그 동작을 수행하도록 프로그래밍하는 것에 의해, 또는 이들의 임의의 조합에 의해 달성될 수 있다. 프로세스들은 프로세스간 통신을 위한 종래의 기술들을 포함하지만 이로 한정되지 않는 다양한 기술들을 사용하여 통신할 수 있으며, 상이한 쌍들의 프로세스들이 상이한 기술들을 사용할 수 있거나, 동일한 쌍의 프로세스들이 상이한 시간들에서 상이한 기술들을 사용할 수 있다.
따라서, 명세서 및 도면은 제한적인 의미보다는 예시적인 의미로 간주되어야 한다. 그러나, 청구범위에 기재된 바와 같은 광의의 사상 및 범주를 벗어나지 않으면서 그것에 대한 추가, 삭감, 삭제, 및 기타 변형 및 변경이 이루어질 수 있다는 것이 명백할 것이다. 따라서, 특정 실시예들이 기재되었지만, 이들은 제한적으로 의도되지 않는다. 다양한 수정들 및 등가물들이 이하의 특허청구범위의 범주 내에 속한다.

Claims (20)

  1. 모바일 디바이스의 위치를 결정하기 위한 방법으로서,
    상기 모바일 디바이스의 애플리케이션 프로세서에 의해, 상기 모바일 디바이스가 현재 제1 이동 상태에 있음을 식별하는 단계;
    상기 애플리케이션 프로세서에 의해 상기 모바일 디바이스의 코프로세서로, 상기 모바일 디바이스의 현재 이동 상태에서 제2 이동 상태로의 변경을 식별하고 상기 모바일 디바이스의 상기 현재 이동 상태의 상기 변경에 관해 상기 애플리케이션 프로세서에 통지하기 위한 요청을 송신하는 단계;
    상기 요청을 송신한 후에, 상기 애플리케이션 프로세서에 의해, 상기 애플리케이션 프로세서의 전력 레벨을 감소시키는 단계;
    상기 코프로세서에 의해, 소정 시간에 걸쳐 이동 정보를 모니터링하여 상기 모바일 디바이스의 모션 분류를 결정하는 단계;
    상기 코프로세서에 의해, 상기 모션 분류가 상기 제2 이동 상태에 대응한다고 결정하는 단계;
    상기 코프로세서에 의해 상기 애플리케이션 프로세서로, 상기 제2 이동 상태에 대응하는 상기 모바일 디바이스의 상기 모션 분류에 관한 통지를 송신하는 단계;
    디폴트 기간이 만료되었는지 결정하는 단계; 및
    상기 디폴트 기간 만료에 응답하여:
    상기 애플리케이션 프로세서에 의해, 상기 통지에 기초하여, 위치 정보를 획득하는지 여부를 결정하는 단계;
    상기 위치 정보가 획득되어야 한다고 결정하는 것에 응답하여, 상기 애플리케이션 프로세서에 의해, 상기 통지를 수신하는 것에 응답하여 상기 애플리케이션 프로세서의 상기 전력 레벨을 증가시키는 단계; 및
    상기 애플리케이션 프로세서에 의해, 상기 애플리케이션 프로세서의 상기 전력 레벨을 증가시킨 후에 상기 모바일 디바이스의 위치 정보를 획득하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 애플리케이션 프로세서에 의해, 상기 통지에 기초하여, 위치 정보를 획득하는지 여부를 결정하는 단계;
    상기 위치 정보가 획득되어야 한다고 결정하는 것에 응답하여, 상기 애플리케이션 프로세서에 의해, 상기 통지를 수신하는 것에 응답하여 상기 애플리케이션 프로세서의 상기 전력 레벨을 증가시키는 단계; 및
    상기 애플리케이션 프로세서에 의해, 상기 애플리케이션 프로세서의 상기 전력 레벨을 증가시킨 후에 상기 모바일 디바이스의 상기 위치 정보를 획득하는 단계를 추가로 포함하는, 방법.
  3. 제1항에 있어서,
    상기 이동 정보는 소정 기간에 걸쳐 상기 코프로세서에 의해 모니터링되고,
    상기 모바일 디바이스의 모션 분류를 결정하는 단계는,
    상기 소정 기간에 걸쳐 모니터링되는 상기 이동 정보에서 복수의 상이한 모션 유형들을 식별하는 단계;
    상기 복수의 상이한 모션 유형들 각각의 빈도를 결정하는 단계; 및
    상기 복수의 상이한 모션 유형들에 기초하여 상기 소정 기간 동안 가장 높은 빈도의 이동 정보를 갖는 상기 모바일 디바이스의 모션 분류를 식별하는 단계
    를 포함하는, 방법.
  4. 제2항에 있어서, 상기 코프로세서는 상기 모션 분류를 상기 애플리케이션 프로세서의 대응하는 이동 상태로 번역하는, 방법.
  5. 제1항에 있어서, 상기 애플리케이션 프로세서는 상기 코프로세서로부터 수신된 이동 정보의 스트림에 기초하여 상기 모바일 디바이스가 현재 상기 제1 이동 상태에 있다고 결정하는, 방법.
  6. 제1항에 있어서, 상기 애플리케이션 프로세서는 이동 상태를 식별하고, 상기 코프로세서에 대한 상기 요청의 상기 이동 상태를 식별하는, 방법.
  7. 제1항에 있어서, 상기 코프로세서는 상기 이동 정보를 분석하여 상기 모바일 디바이스의 상기 이동 정보를 분류하는, 방법.
  8. 제7항에 있어서, 상기 모바일 디바이스의 상기 이동 정보는 정지, 이동, 및 보행 또는 차량 상태 중 하나로서 분류되는, 방법.
  9. 제7항에 있어서, 상기 이동 정보는 가속도계 및 자이로스코프 중 하나로부터 수신되는, 방법.
  10. 제1항에 있어서, 상기 애플리케이션 프로세서는 상기 모바일 디바이스의 중앙 처리 유닛인, 방법.
  11. 제1항에 있어서, 상기 코프로세서는 모션 코프로세서 및 네트워크 칩 중 하나를 포함하는, 방법.
  12. 제1항에 있어서, 상기 제1 이동 상태는 미지의 상태, 안정 상태, 및 불안정 상태 중 하나를 포함하고,
    상기 안정 상태는, 상기 모바일 디바이스가 정지해 있음을 상기 모바일 디바이스의 하나 이상의 센서들이 나타내는 상태 및 무선 영역 네트워크의 액세스 포인트가 일관성있게 이용가능한 상태 중 적어도 하나를 포함하고,
    상기 불안정 상태는, 상기 모바일 디바이스가 움직이는 상태에 있음을 상기 모바일 디바이스의 하나 이상의 센서들이 나타내는 상태 및 상기 모바일 디바이스에 의해 사용되고 있는 무선 영역 네트워크의 식별이 일관성있게 이용가능하지 않은 상태 중 적어도 하나를 포함하고,
    상기 미지의 상태는, 상기 모바일 디바이스의 상태가 현재 알려지지 않은 상태를 포함하는, 방법.
  13. 제12항에 있어서, 상기 불안정 상태는 상기 모바일 디바이스의 위치 좌표에 대한 변화를 포함하는, 방법.
  14. 제2항에 있어서, 상기 위치 정보는 지리적 좌표 정보를 포함하는, 방법.
  15. 실행될 때 하나 이상의 프로세서들을 포함하는 디바이스를 제어하는 복수의 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 제1항 내지 제14항 중 어느 한 항의 방법을 수행하는, 비일시적 컴퓨터 판독가능 매체.
  16. 디바이스로서,
    하나 이상의 센서들; 및
    제1항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는, 디바이스.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020197035040A 2017-06-02 2018-05-24 상태 기반 위치 모니터링 KR102230566B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762514671P 2017-06-02 2017-06-02
US62/514,671 2017-06-02
US15/842,494 2017-12-14
US15/842,494 US10602313B2 (en) 2017-06-02 2017-12-14 State-based location monitoring
PCT/US2018/034427 WO2018222496A1 (en) 2017-06-02 2018-05-24 State-based location monitoring

Publications (2)

Publication Number Publication Date
KR20200003040A KR20200003040A (ko) 2020-01-08
KR102230566B1 true KR102230566B1 (ko) 2021-03-19

Family

ID=62598066

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197035040A KR102230566B1 (ko) 2017-06-02 2018-05-24 상태 기반 위치 모니터링

Country Status (5)

Country Link
US (1) US10602313B2 (ko)
EP (2) EP3612862B1 (ko)
KR (1) KR102230566B1 (ko)
CN (3) CN209248468U (ko)
WO (1) WO2018222496A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180115866A1 (en) * 2016-10-21 2018-04-26 Microsoft Technology Licensing, Llc Low power geographical visit detection
US20200210813A1 (en) * 2018-12-30 2020-07-02 Robert Bosch Gmbh Distributed neural networks for edge devices
US20210297885A1 (en) * 2020-03-19 2021-09-23 Apple Inc. Intelligent Measurement Handling
CN114650594A (zh) * 2020-12-21 2022-06-21 Oppo广东移动通信有限公司 设备定位方法、移动终端和存储介质
US11606756B2 (en) * 2021-03-29 2023-03-14 Snap Inc. Scheduling requests for location data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004320576A (ja) 2003-04-18 2004-11-11 Mitsubishi Electric Corp 携帯端末およびその電力制御方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1366712A4 (en) * 2001-03-06 2006-05-31 Microstone Co Ltd DETECTOR APPLICABLE TO THE MOVEMENT OF A BODY
WO2007099471A1 (en) 2006-02-28 2007-09-07 Koninklijke Philips Electronics N.V. Method and apparatus for locating a portable device
US8996332B2 (en) 2008-06-24 2015-03-31 Dp Technologies, Inc. Program setting adjustments based on activity identification
US7873849B2 (en) * 2009-09-02 2011-01-18 Apple Inc. Motion sensor data processing using various power management modes
US9078766B2 (en) 2012-07-06 2015-07-14 Intel Corporation Device and method with power efficient location notification function by periodically deactivating signal-based location service during travel until a wake trigger condition is met
US8948781B2 (en) 2011-10-21 2015-02-03 Alohar Mobile Inc. Controlling operational states of a location sensing system of a mobile device
KR101925412B1 (ko) * 2012-07-03 2018-12-05 삼성전자주식회사 휴대 단말기의 슬립 모드 제어 방법 및 장치
WO2014014961A1 (en) 2012-07-17 2014-01-23 Intertrust Technologies Corporation Portable resource management systems and methods
EP2923250B1 (en) 2012-11-21 2019-02-27 Google Technology Holdings LLC Low power management of multiple sensor integrated chip architecture
US20140370909A1 (en) 2013-06-14 2014-12-18 Microsoft Corporation Reduced power location determinations for detecting geo-fences
KR102159537B1 (ko) * 2013-10-08 2020-09-24 삼성전자 주식회사 전자 기기의 위치 기반 서비스 제공 방법 및 시스템
US9037199B1 (en) 2014-02-13 2015-05-19 Google Inc. Detecting transitions between physical activity
US9009516B1 (en) * 2014-02-19 2015-04-14 Google Inc. Adjusting a power mode of a wearable computing device based on motion data
EP3525524B1 (en) * 2014-05-30 2021-03-10 Apple Inc. Determination of device body location
KR102390876B1 (ko) 2015-03-27 2022-04-26 삼성전자주식회사 가속도 센서를 이용하여 사용자의 활동을 인식하는 방법 및 장치
US9603123B1 (en) 2015-06-04 2017-03-21 Apple Inc. Sending smart alerts on a device at opportune moments using sensors
US10235863B2 (en) 2015-06-05 2019-03-19 Apple Inc. Smart location-based reminders
US9807561B2 (en) 2015-06-05 2017-10-31 Apple Inc. User settlement detection
US9432944B1 (en) 2015-06-13 2016-08-30 KeepTrax, Inc. Determining whether a mobile device user is substantially stationary within a geo-fence
US9622177B2 (en) 2015-08-06 2017-04-11 Qualcomm Incorporated Context aware system with multiple power consumption modes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004320576A (ja) 2003-04-18 2004-11-11 Mitsubishi Electric Corp 携帯端末およびその電力制御方法

Also Published As

Publication number Publication date
US10602313B2 (en) 2020-03-24
CN113873438A (zh) 2021-12-31
CN209248468U (zh) 2019-08-13
KR20200003040A (ko) 2020-01-08
EP4092448A1 (en) 2022-11-23
US20180352381A1 (en) 2018-12-06
WO2018222496A1 (en) 2018-12-06
EP3612862A1 (en) 2020-02-26
EP3612862B1 (en) 2022-07-13
CN108983944B (zh) 2021-11-09
CN108983944A (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
KR102230566B1 (ko) 상태 기반 위치 모니터링
EP3137849B1 (en) Automated detection of vehicle parking and location
US8532670B2 (en) Apparatus, method, and system for sensing suppression for location-based applications
US9354722B2 (en) Low power management of multiple sensor integrated chip architecture
US10416740B2 (en) Upsampling sensors to auto-detect a fitness activity
US20190306302A1 (en) Sending smart alerts on a device at opportune moments using sensors
US9402161B2 (en) Providing personalized content based on historical interaction with a mobile device
US8948781B2 (en) Controlling operational states of a location sensing system of a mobile device
US9128180B2 (en) Efficient power usage in position tracking operations
EP3005015B1 (en) Motion fencing
JP2015529987A (ja) 電力効率の良い位置情報通知
US10045155B2 (en) User terminal apparatus and controlling method thereof
EP2923250B1 (en) Low power management of multiple sensor integrated chip architecture
WO2014081949A2 (en) Low power management of multiple sensor integrated chip architecture
WO2014081956A2 (en) Low power management of multiple sensor integrated chip architecture
US20230358557A1 (en) Capturing Location Data For Waypoint
NL1041613B1 (en) Upsampling sensors to auto-detect a fitness activity.
WO2014081952A2 (en) Low power management of multiple sensor integrated chip architecture

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant