KR20160117526A - 전자 디바이스를 위한 관성 측정 유닛 - Google Patents

전자 디바이스를 위한 관성 측정 유닛 Download PDF

Info

Publication number
KR20160117526A
KR20160117526A KR1020167023847A KR20167023847A KR20160117526A KR 20160117526 A KR20160117526 A KR 20160117526A KR 1020167023847 A KR1020167023847 A KR 1020167023847A KR 20167023847 A KR20167023847 A KR 20167023847A KR 20160117526 A KR20160117526 A KR 20160117526A
Authority
KR
South Korea
Prior art keywords
sensor
measurement unit
inertial measurement
module
accelerometer
Prior art date
Application number
KR1020167023847A
Other languages
English (en)
Other versions
KR101948242B1 (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 KR20160117526A publication Critical patent/KR20160117526A/ko
Application granted granted Critical
Publication of KR101948242B1 publication Critical patent/KR101948242B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/183Compensation of inertial measurements, e.g. for temperature effects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1654Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with electromagnetic compass
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/18Stabilised platforms, e.g. by gyroscope
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/183Compensation of inertial measurements, e.g. for temperature effects
    • G01C21/188Compensation of inertial measurements, e.g. for temperature effects for accumulated errors, e.g. by coupling inertial systems with absolute positioning systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • G01C25/005Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass initial alignment, calibration or starting-up of inertial devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D21/00Measuring or testing not otherwise provided for
    • G01D21/02Measuring two or more variables by means not covered by a single other subclass

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Electromagnetism (AREA)
  • Gyroscopes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

하나의 예에서 관성 측정 유닛은 복수의 센서로부터 수신된 데이터로부터 공분산 행렬을 계산하는 자동보정 모듈과, 자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 상태 기초 피드백 파라미터를 결정하는 적응적 가중치 제어 모듈과, 적응적 가중치 제어 모듈로부터의 입력에 기초하여 수정된 공분산 행렬을 결정하는 센서 특성 조절 모듈을 포함한다. 다른 예가 기술될 수 있다.

Description

전자 디바이스를 위한 관성 측정 유닛{INERTIAL MEASUREMENT UNIT FOR ELECTRONIC DEVICES}
관련 출원
없음.
본 문서 내에 기술된 청구대상(subject matter)은 일반적으로 전자 디바이스 분야에 관련되고 더욱 구체적으로는 전자 디바이스를 위한 관성 측정 유닛(inertial measurement unit)에 관련된다.
랩톱 컴퓨터(laptop computer), 태블릿 컴퓨팅 디바이스(tablet computing device), 전자 판독기(electronic reader), 모바일 전화(mobile phone) 및 유사한 것과 같은 전자 디바이스는 전자 디바이스의 위치를 결정할 수 있는 글로벌 포지셔닝 센서(global positioning sensor)와 같은 위치 센서를 포함할 수 있다. 또한, 그러한 전자 디바이스는 포지셔닝(positioning), 배향(orientation) 및 움직임 검출(motion detection)을 위한 센서, 가령 가속도계(accelerometer), 자이로스코프(gyroscope) 등등을 포함할 수 있다. 전자 디바이스로 하여금 전자 디바이스의 포지션(position) 및/또는 배향(즉, 자세)을 근사화하기(approximate) 위해 그러한 센서로부터의 입력을 처리할 수 있게 하는 기법은 유용성을 얻을 수 있다.
상세한 설명은 첨부된 도면을 참조하여 기술된다.
도 1은 몇몇 예에 따른 관성 측정 유닛을 구현하도록 적응될(adapted) 수 있는 전자 디바이스의 도식적 예시이다.
도 2는 몇몇 예에 따른 관성 측정 유닛을 구현하기 위한 예시적인 아키텍처의 하이레벨의 도식적 예시이다.
도 3은 몇몇 예에 따른 관성 측정 유닛의 컴포넌트들의 도식적 예시이다.
도 4a 내지 도 4b는 몇몇 예에 따른 관성 측정 유닛을 구현하는 방법 내의 동작을 보여주는 흐름도이다.
도 5a는 몇몇 예에 따른 관성 측정 유닛과 종래의 관성 측정 유닛 간의 수렴 속도(convergence rate)에서의 비교를 보여주는 그래프를 포함한다.
도 5b는 몇몇 예에 따른 관성 측정 유닛과 종래의 관성 측정 유닛 간의 드리프트 속도(drift rate)에서의 비교를 보여주는 그래프를 포함한다.
도 6 내지 도 10은 몇몇 실시예에 따른 스마트 프레임 토글링(smart frame toggling)을 구현하도록 적응될 수 있는 전자 디바이스의 도식적 예시이다.
전자 디바이스 내에 관성 측정 유닛을 구현하는 예시적인 시스템 및 방법이 본 문서 내에 기술된다. 이하의 설명에서, 다양한 예의 철저한 이해를 제공하기 위해 다수의 특정 세부사항이 개진된다. 그러나, 다양한 예는 특정 세부사항 없이 실시될 수 있음이 당업자에 의해 이해될 것이다. 다른 사례에서, 잘 알려진 방법, 절차, 컴포넌트 및 회로는 특정한 예를 모호하게 하지 않기 위해 상세히 예시되거나 기술되지 않았다.
전술된 바와 같이, 가속도계, 자력계(magnetometer) 및/또는 자이로스코프와 같은 센서로부터의 입력에 기초하여 전자 디바이스의 위치를 결정하는 기법을 구현하는 관성 측정 유닛(Inertial Measurement Unit: IMU)을 전자 디바이스에 제공하는 것은 유용할 수 있다. 본 문서 내에 기술된 청구대상은 전자 디바이스의 하나 이상의 제어기 상의 로직(logic) 내에 구현될 수 있는 관성 측정 유닛을 제공함으로써 이들 문제점 및 다른 문제점을 다룬다. 몇몇 예에서, 관성 측정 유닛은 가속도계 센서 및 자력계로부터의 입력에 응답하여 적응적으로 조절되는(adaptively adjusted) 피드백 파라미터를 활용한다. 피드백 파라미터는 가속도계의 출력이 증가함에 따라 관성 측정 유닛으로의 가속도계 입력의 가중치(weight)가 감소하도록 센서 특성을 조절하는 것일 수 있다. 유사하게, 자력계의 출력이 증가함에 따라 관성 측정 유닛으로의 자력계 입력의 가중치가 감소한다. 몇몇 예에서는 일단 관성 측정 유닛에 의해 구현된 위치파악 알고리즘(location algorithm)이 수렴하였음에 따라 관성 측정 유닛으로의 자이로스코프 입력의 가중치가 감소한다.
도 1 내지 도 10을 참조하여 관성 측정 유닛의 그리고 전자 디바이스의 추가적인 특징 및 동작 특성이 아래에서 기술된다.
도 1은 몇몇 예에 따른 관성 측정 유닛을 구현하도록 적응될 수 있는 전자 디바이스(100)의 도식적 예시이다. 다양한 예에서, 전자 디바이스(100)는 디스플레이, 하나 이상의 스피커, 키보드, 하나 이상의 다른 I/O 디바이스(들), 마우스, 카메라, 또는 유사한 것을 포함하는 하나 이상의 동반 입력/출력 디바이스를 포함하거나 이에 커플링될(coupled) 수 있다. 다른 예시적인 I/O 디바이스(들)는 터치 스크린, 음성 활성화 입력 디바이스(voice-activated input device), 트랙 볼(track ball), 지오로케이션 디바이스(geolocation device), 가속도계/자이로스코프, 생체측정 특징 입력 디바이스(biometric feature input device), 그리고 전자 디바이스(100)로 하여금 사용자로부터 입력을 수신할 수 있게 하는 임의의 다른 디바이스를 포함할 수 있다.
전자 디바이스(100)는 시스템 하드웨어(120)와, 메모리(140)(랜덤 액세스 메모리(random access memory) 및/또는 판독 전용 메모리(read-only memory)로서 구현될 수 있음)를 포함한다. 파일 스토어(file store)가 전자 디바이스(100)에 통신가능하게 커플링될(communicatively coupled) 수 있다. 파일 스토어는, 가령 eMMC, SSD, 하나 이상의 하드 드라이브 또는 다른 유형의 저장 디바이스와 같이, 전자 디바이스(100)의 내부에 있을 수 있다. 대안적으로, 파일 스토어는 또한, 가령 하나 이상의 외부 하드 드라이브, 네트워크 부착 스토리지(network attached storage) 또는 별개의 저장 네트워크와 같이, 전자 디바이스(100)의 외부에 있을 수 있다.
시스템 하드웨어(120)는 하나 이상의 프로세서(122)와, 그래픽 프로세서(124)와, 네트워크 인터페이스(126)와, 버스 구조(128)를 포함할 수 있다. 하나의 실시예에서, 프로세서(122)는 미국 캘리포니아주(California) 산타클라라(Santa Clara)의 인텔 사(Intel Corporation)로부터 입수 가능한 인텔 아톰(Intel® Atom™) 프로세서, 인텔 아톰 기초 시스템 온 칩(System-on-a-Chip: SOC) 또는 인텔 코어2 듀오(Intel ® Core2 Duo®) 또는 i3/i5/i7 시리즈 프로세서로서 실체화될(embodied) 수 있다. 본 문서에서 사용되는 바와 같이, 용어 "프로세서"(processor)는, 예를 들어 마이크로프로세서(microprocessor), 마이크로제어기(microcontroller), 복합 명령어 세트 컴퓨팅(Complex Instruction Set Computing: CISC) 마이크로프로세서, 축소 명령어 세트(Reduced Instruction Set: RISC) 마이크로프로세서, 블류(Very Long Instruction Word: VLIW) 마이크로프로세서, 또는 임의의 다른 유형의 프로세서 또는 처리 회로와 같지만 이에 한정되지 않는 임의의 유형의 계산 요소(computational element)를 의미한다.
그래픽 프로세서(들)(124)는 그래픽 및/또는 비디오 동작을 관리하는 부속 프로세서로서 기능할 수 있다. 그래픽 프로세서(들)(124)는 전자 디바이스(100)의 마더보드(motherboard) 상에 집적될(integrated) 수 있거나 마더보드 상의 확장 슬롯(expansion slot)을 통하여 커플링될 수 있거나 동일한 다이(die) 또는 동일한 패키지(package) 상에 처리 유닛(Processing Unit)으로서 위치될 수 있다.
하나의 실시예에서, 네트워크 인터페이스(126)는 이더넷(Ethernet) 인터페이스(가령, 전기 전자 엔지니어 협회(Institute of Electrical and Electronics Engineers/IEEE) 802.3-2002) 참조)와 같은 유선 인터페이스 또는 IEEE 802.11a, b 또는 g 준수 인터페이스(가령, IEEE Standard for IT-Telecommunications and information exchange between systems LAN/MAN--Part II: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications Amendment 4: Further Higher Data Rate Extension in the 2.4 GHz Band, 802.11G-2003 참조)와 같은 무선 인터페이스일 수 있다. 무선 인터페이스의 다른 예는 일반 패킷 무선 서비스(General Packet Radio Service: GPRS) 인터페이스(가령, Guidelines on GPRS Handset Requirements, Global System for Mobile Communications/GSM Association, Ver. 3.0.1, December 2002 참조)일 것이다.
버스 구조(128)는 시스템 하드웨어(128)의 다양한 컴포넌트를 연결한다. 하나의 실시예에서, 버스 구조(128)는, 11비트 버스(11-bit bus), 산업 표준 아키텍처(Industrial Standard Architecture: ISA), 마이크로 채널 아키텍처(Micro-Channel Architecture: MSA), 확장된 ISA(Extended ISA: EISA), 지능적 드라이브 전자기기(Intelligent Drive Electronics: IDE), VESA 로컬 버스(VESA Local Bus: VLB), 주변 컴포넌트 상호연결(Peripheral Component Interconnect: PCI), 범용 직렬 버스(Universal Serial Bus: USB), 고급 그래픽 포트(Advanced Graphics Port: AGP), 개인용 컴퓨터 메모리 카드 국제 연합 버스(Personal Computer Memory Card International Association bus: PCMCIA), 그리고 소형 컴퓨터 시스템 인터페이스(Small Computer Systems Interface: SCSI), 고속 동기식 직렬 인터페이스(High Speed Synchronous Serial Interface: HSI), 직렬 저전력 칩간 매체 버스(Serial Low-power Inter-chip Media Bus: SLIMbus®), 또는 유사한 것을 포함하나 이에 한정되지 않는 임의의 다양한 이용가능한 버스 아키텍처를 사용하는 메모리 버스(memory bus), 주변기기 버스(peripheral bus) 혹은 외부 버스(external bus), 그리고/또는 로컬 버스(local bus)를 포함하는 몇 개의 유형의 버스 구조(들) 중 하나 이상일 수 있다.
전자 디바이스(100)는 RF 신호를 송수신하는 RF 송수신기(130)와, 근접장 통신(Near Field Communication: NFC) 무선기기(134)와, RF 송수신기(130)에 의해 수신된 신호를 처리하는 신호 처리 모듈(132)을 포함할 수 있다. RF 송수신기는, 가령, 블루투스(Bluetooth) 또는 802.11X. IEEE 802.11a, b 또는 g 준수 인터페이스(가령, IEEE Standard for IT-Telecommunications and information exchange between systems LAN/MAN--Part II: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications Amendment 4: Further Higher Data Rate Extension in the 2.4 GHz Band, 802.11G-2003 참조)와 같은 프로토콜을 통하여 로컬 무선 연결을 구현할 수 있다. 무선 인터페이스의 다른 예는 WCDMA, LTE, 일반 패킷 무선 서비스(General Packet Radio Service: GPRS) 인터페이스(가령, Guidelines on GPRS Handset Requirements, Global System for Mobile Communications/GSM Association, Ver. 3.0.1, December 2002 참조)일 것이다.
전자 디바이스(100)는, 가령, 키패드(136) 및 디스플레이(138)와 같은 하나 이상의 입력/출력 인터페이스를 더 포함할 수 있다. 몇몇 예에서 전자 디바이스(100)는 키패드를 갖지 않고 입력을 위해 터치 패널을 사용할 수 있다.
메모리(140)는 전자 디바이스(100)의 동작을 관리하기 위한 운영 체제(operating system)(142)를 포함할 수 있다. 하나의 실시예에서, 운영 체제(142)는 시스템 하드웨어(120)에 대한 인터페이스를 제공하는 하드웨어 인터페이스 모듈(154)을 포함한다. 추가로, 운영 체제(140)는 전자 디바이스(100)의 동작에서 사용되는 파일을 관리하는 파일 시스템(150)과, 전자 디바이스(100) 상에서 실행되는 프로세스를 관리하는 프로세스 제어 서브시스템(152)을 포함할 수 있다.
운영 체제(142)는 원격 소스(remote source)로부터 데이터 패킷 및/또는 데이터 스트림을 송수신하기 위해 시스템 하드웨어(120)와 함께 동작할 수 있는 하나 이상의 통신 인터페이스(146)를 포함(하거나 관리)할 수 있다. 운영 체제(142)는 메모리(130) 내에 상주하는 하나 이상의 애플리케이션 모듈 및 운영 체제(142) 간의 인터페이스를 제공하는 시스템 호출 인터페이스 모듈(system call interface module)(144)을 더 포함할 수 있다. 운영 체제(142)는 유닉스(UNIX) 운영 체제 또는 이의 임의의 파생물(가령, 리눅스(Linux), 안드로이드(Android) 등등)로서 또는 윈도우즈(Windows®) 브랜드 운영 체제, 또는 다른 운영 체제로서 실체화될 수 있다.
몇몇 예에서 전자 디바이스는 제어기(170)를 포함할 수 있는데, 이는 일차적 실행 환경(primary execution environment)과는 분리된 하나 이상의 제어기를 포함할 수 있다. 이 분리는 제어기가 주 프로세서(main processor)와는 물리적으로 별개인 제어기 내에 구현될 수 있다는 의미에서 물리적일 수 있다. 대안적으로, 신뢰 실행 환경(trusted execution environment)은 주 프로세서를 호스팅하는(host) 동일한 칩 또는 칩셋 상에서 제어기가 호스팅될 수 있다는 의미에서 논리적일 수 있다.
예로서, 몇몇 예에서 제어기(170)는 전자 디바이스(100)의 마더보드 상에 위치된 독립적인 집적 회로(integrated circuit)로서, 가령 동일한 SOC 다이 상의 전용 프로세서 블록으로서 구현될 수 있다. 다른 예에서 신뢰 실행 엔진(trusted execution engine)은 하드웨어 강제 메커니즘(hardware enforced mechanism)을 사용하여 프로세서(들) 중 나머지와 구분된 프로세서(들)(122)의 일부분 상에 구현될 수 있다.
도 1에 묘사된 실시예에서 제어기(170)는 프로세서(172)와, 메모리 모듈(174)과, 관성 측정 유닛(176)과, I/O 인터페이스(178)를 포함한다. 몇몇 예에서 메모리 모듈(174)은 지속적인(persistent) 플래시 메모리 모듈을 포함할 수 있고 다양한 기능적 모듈은 지속적인 메모리 모듈 내에 인코드된(encoded) 로직 명령어, 가령 펌웨어 또는 소프트웨어로서 구현될 수 있다. I/O 모듈(178)은 직렬 I/O 모듈 또는 병렬 I/O 모듈을 포함할 수 있다. 제어기(170)는 주 프로세서(들)(122) 및 운영 체제(142)와는 별개이기 때문에, 제어기(170)는 안전하게(즉, 보통 호스트 프로세서(122)로부터 소프트웨어 공격을 마운트하는(mount) 해커가 액세스할 수 없게) 될 수 있다. 몇몇 예에서 관성 측정 유닛(176)은 전자 디바이스(100)의 메모리(140) 내에 상주할 수 있고 프로세서(122) 중 하나 이상의 프로세서 상에서 실행가능할 수 있다.
몇몇 예에서 관성 측정 유닛(176)은 전자 디바이스의 포지션을 근사화하기 위해 전자 디바이스(100)의 하나 이상의 다른 컴포넌트와 상호작용한다. 도 2는 전자 디바이스 내에 스마트 프레임 토글링을 구현하기 위한 예시적인 아키텍처(200)의 하이레벨의 도식적 예시이다. 도 2를 참조하면, 제어기(220)는 일반 목적 프로세서(122)로서 또는 제어기(170)와 같은 저전력 제어기로서 실체화될 수 있다. 제어기(220)는 로컬 메모리(240) 및 스마트 프레임 동작을 관리하는 관성 측정 유닛(230)을 포함할 수 있다. 위에서 기술된 바와 같이, 몇몇 예에서 관성 측정 유닛(230)은 제어기(220) 상에서 실행가능한 로직 명령어로서, 가령 소프트웨어 또는 펌웨어로서 구현될 수 있거나, 고정배선된(hardwired) 로직 회로로 될 수 있다. 로컬 메모리(240)는 휘발성(volatile) 및/또는 비휘발성(non-volatile) 메모리를 사용하여 구현될 수 있다.
제어기(220)는 전자 디바이스가 움직이고 있는지 또는 다른 환경적 조건 내에 있는지를 나타내는 신호를 제공하는 하나 이상의 로컬 디바이스 입력/출력(Input/Output: I/O) 디바이스(250)에 통신가능하게 커플링될 수 있다. 예컨대, 로컬 I/O 디바이스(250)는 가속도계(252), 자력계(254) 및 자이로스코프 센서(256)를 포함할 수 있다.
제어기(220)는 GNSS 디바이스(272), 와이파이(WiFi) 디바이스(274) 및 셀룰러 네트워크 디바이스(cellular network device)(276)를 포함할 수 있는 하나 이상의 위치 측정 디바이스(270)에 또한 통신가능하게 커플링될 수 있다. GNSS 디바이스(272)는 글로벌 포지셔닝 시스템(Global Positioning System: GPS) 또는 유사한 것과 같은 위성 네트워크를 사용하여 위치 측정을 생성할 수 있다. WiFi 디바이스(274)는 WiFi 네트워크 액세스 포인트(access point)의 위치에 기초하여 위치 측정을 생성할 수 있다. 유사하게, 셀 ID(Cell ID) 디바이스는 셀룰러 네트워크 액세스 포인트의 위치에 기초하여 위치 측정을 생성할 수 있다.
도 3은 몇몇 예에 따른 관성 측정 유닛(230)과 같은 관성 측정 유닛의 컴포넌트들의 도식적 예시이다. 도 3을 참조하면, 몇몇 예에서 관성 측정 유닛(230)은 가속도계(252), 자력계(254) 및 자이로스코프(256)로부터의 출력에 기초하여 관성 측정 유닛(230)의 위치를 근사화하기 위해 확장된 칼만 필터(Extended Kalman Filter: EKF)와 같은 예측/교정 모델(prediction/correction model)을 적용한다. 예측 유닛(320) 및 교정 유닛(322)은 관성 측정 유닛(230)의 코어(core)를 형성한다. 본 문서 내에 기술된 예에 따르면, EKF 예측/교정 모델은 자동보정 모듈(auto-calibration module)(310), 적응적 가중치 제어 모듈(adaptive weight control module)(312) 및 센서 특성 조절 모듈(sensor characteristic adjustment module)(314)을 포함하도록 수정된다. 관성 측정 모듈(230)은 초기 자세 계산 유닛(initial attitude calculation unit)(316)을 더 포함한다.
가속도계(252) 및 자력계(254)로부터의 출력은 자동 보정 유닛(310)으로 그리고 초기 자세 계산 모듈(316)로 입력된다.
전자 디바이스 내에 관성 측정 유닛을 구현하는 시스템의 다양한 구조를 기술하였는바, 몇몇 예에 따른 관성 측정 유닛을 구현하는 방법 내의 동작을 보여주는 흐름도인 도 4a 내지 도 4b를 참조하여 시스템의 동작 양상이 설명될 것이다. 도 4a 내지 도 4b의 흐름도 내에 묘사된 동작은 관성 측정 유닛(230)에 의해, 단독으로 또는 전자 디바이스(100)의 다른 컴포넌트와의 조합으로, 구현될 수 있다.
몇몇 예에서 관성 측정 유닛(230)이 사전결정된 기간(predetermined period of time) 동안 정지된 채로 있는 경우 관성 측정 유닛(230)의 자동보정 유닛(310)은 주기적으로 자동보정 프로세스를 구현한다. 도 4a를 참조하면, 동작(410)에서 자동보정 유닛(320)은 가속도계(252)의 출력을 모니터링한다. 만약, 동작(415)에서, 가속도계 출력이 관성 측정 유닛(230)이 사전결정된 기간 동안 정지된 채로 있지 않았음을 나타내면 제어가 동작(410)으로 도로 넘어가고 자동보정 모듈은 계속해서 가속도계(252)의 출력을 모니터링한다. 몇몇 예에서 사전결정된 기간은 고정된 기간(가령, 1 내지 2 밀리초)일 수 있는 반면, 다른 예에서 그 기간은 가변적일 수 있다.
대조적으로, 만약 동작에서 사전결정된 기간 동안 정지된 채로 있으면 제어는 동작(420)으로 넘어가고 자동보정 유닛(310)은 공분산 행렬(covariance matrix)을 계산한다. 예컨대, 자동보정 유닛(310)은 어떤 기간에 대한 샘플들을 수집하고 공분산 행렬 Ε, Εα, Εω 및 Ε을 계산할 수 있는데, 여기서
Ε은 자기 측정 잡음 공분산 행렬(magnetic measurement noise covariance matrix)이다.
Εα은 가속도계 측정 잡음 공분산 행렬(accelerometer measurement noise covariance matrix)이다.
Εω은 자이로스코프 측정 잡음 공분산 행렬(gyroscope measurement noise covariance matrix)이다.
Ε은 자이로스코프 바이어스 드리프트 측정 잡음 공분산 행렬(gyroscope bias drift measurement noise covariance matrix)이다.
동작(425)에서 동작(410)에서 계산된 공분산 행렬은 메모리, 가령 로컬 메모리(240) 내에 저장된다.
공분산 행렬이 메모리(240) 내에 저장되면, 관성 측정 유닛(230)은 가속도계(252), 자력계(254) 및 자이로스코프(256)로부터의 출력에 기초하여 관성 측정 유닛(230)의 위치를 근사화하기 위해 예측-교정 알고리즘을 구현할 수 있다. 먼저 도 3을 참조하면, 동작 중에 가속도계(252) 및 자력계(254)의 출력은 초기 자세 계산 유닛(316), 자동보정 유닛(310), 적응적 가중치 제어 유닛(312) 및 교정 유닛(322)에 입력으로서 제공된다. 자이로스코프(256)의 출력은 자동보정 유닛(310)에 그리고 예측 유닛(320)에 입력으로서 제공된다. 초기 자세 계산 유닛(316)의 출력은 예측 유닛(320)에 제공된다.
예측 유닛(320)의 출력은 교정 유닛(322)에 그리고 합산기(summer)(324)에 제공된다. 교정 유닛(322)의 출력은 합산기(324)에 제공되는데, 여기서 그것은 예측 유닛(320)의 출력과 조합되고 출력(326)으로서 제공된다.
본 문서 내에 기술된 예에 따라, EKF 예측/교정 모델은 자동보정 모듈(310), 적응적 가중치 제어 모듈(312) 및 센서 특성 조절 모듈(314)을 포함하도록 수정된다. 이 모듈들은 관성 측정 유닛(230)으로 하여금 상태 기초 피드백 파라미터를 생성 결정할 수 있게 하는데, 이후에 이는 교정 유닛(322)에 입력되는 센서 특성을 조절하는 데에 사용될 수 있다.
도 4b를 참조하면, 동작(440)에서 적응적 가중치 제어 모듈(312)은 3개의 피드백 파라미터 K, Kα 및 Kω을 결정하는데, 여기서
은 자력계(254)를 위한 피드백 파라미터이다.
α은 가속도계(252)를 위한 피드백 파라미터이다.
ω은 자이로스코프(256)를 위한 피드백 파라미터이다.
몇몇 예에서 피드백 파라미터 Kα, K, Kω은 관성 측정 유닛(230)의 상태에 기초하여 결정된 상태 기초 파라미터이다. 관성 측정 유닛(230)의 상태는 표 1에 기술된 바와 같이, 가속도계(252) 및 자력계(254)의 출력의 함수로서 상태 값을 할당하는 룩업 테이블(lookup table)을 사용하여 결정될 수 있다.
Figure pct00001
표 1에서,
g는 지구의 중력을 나타내고,
M은 지구의 자기장을 나타낸다.
일단 가속도계 상태(A1, A2 또는 A3) 및 자력계 상태(M1, M2 또는 M3)가 할당되면 제어가 동작(445)으로 넘어가고 적응적 가중치 제어 유닛(312)은 가속도계 상태 및 자력계 상태에 기초하여 피드백 파라미터 Kα, K, Kω를 결정한다. 몇몇 예에서 피드백 파라미터 Kα, K, Kω는 도 2에 예시된 바와 같이, 가속도계 상태 및 자력계 상태에 의해 색인화된(indexed) 룩업 테이블을 사용하여 할당될 수 있다.
Figure pct00002
일단 상태 기초 파라미터가 할당되면 제어가 동작(450)으로 넘어가고 교정 모듈(322)에 입력된 센서 특성은 상태 기초 피드백 파라미터를 사용하여 조절된다. 하나의 예에서 센서 특성 조절 모듈(314)은 Ε/K, Εα/Kα, Εω/Kω 및 Ε을 포함하는 수정된 공분산 행렬을 결정한다. 그러므로, 적응적 가중치 제어 모듈은 가속도계 센서의 출력의 증가에 응답하여 가속도계의 상태 기초 피드백의 가중치를 감소시킨다. 유사하게, 적응적 가중치 제어 모듈은 자력계 센서의 출력의 증가에 응답하여 자력계의 상태 기초 피드백의 가중치를 감소시키고, 예측/교정 알고리즘(prediction/correction algorithm) 내의 수렴(convergence)에 응답하여 자이로스코프로의 상태 기초 피드백의 가중치를 증가시킨다.
수정된 공분산 행렬은 이후 센서 교정 유닛(322)에 입력된다.
도 5a는 몇몇 예에 따른 관성 측정 유닛과 종래의 관성 측정 유닛 간의 수렴 속도에서의 비교를 보여주는 그래프를 포함한다. 도 5a를 참조하면, 제1 그래프(510)는 종래의 관성 측정 유닛에 대해 수렴 속도와 에러를 보여주고 제2 그래프(520)는 본 문서 내에 기술된 예에 따라 적응적 파라미터를 활용하는 관성 측정 유닛에 대해 수렴 속도와 에러를 보여준다. 도 5a 내에 예시된 바와 같이, 적응적 파라미터를 활용하는 관성 측정 유닛이 종래의 관성 측정 유닛보다 더 신속히 그리고 더 작은 에러로써 수렴한다.
도 5b는 몇몇 예에 따른 관성 측정 유닛과 종래의 관성 측정 유닛 간의 드리프트 속도에서의 비교를 보여주는 그래프를 포함한다. 도 5b를 참조하면, 제1 그래프(530)는 종래의 관성 측정 유닛에 대해 드리프트 속도를 보여주고 제2 그래프(540)는 본 문서 내에 기술된 예에 따라 적응적 파라미터를 활용하는 관성 측정 유닛에 대해 드리프트 속도를 보여준다. 도 5b 내에 예시된 바와 같이, 적응적 파라미터를 활용하는 관성 측정 유닛은 종래의 관성 측정 유닛보다 더 낮은 드리프트 속도를 보인다.
위에서 기술된 바와 같이, 몇몇 예에서 전자 디바이스는 컴퓨터 시스템으로서 실체화될 수 있다. 도 6은 몇몇 예에 따른 컴퓨팅 시스템(600)의 블록도를 보여준다. 컴퓨팅 시스템(600)은 상호연결 네트워크(또는 버스)(604)를 통하여 통신하는 하나 이상의 중앙 처리 유닛(들)(602) 또는 프로세서를 포함할 수 있다. 프로세서(602)는 일반 목적 프로세서, (컴퓨터 네트워크(603) 상에서 통신되는 데이터를 처리하는) 네트워크 프로세서, 또는 (축소 명령어 세트 컴퓨터(Reduced Instruction Set Computer: RISC) 프로세서 또는 복합 명령어 세트 컴퓨터(Complex Instruction Set Computer: CISC)를 포함하는) 다른 유형의 프로세서를 포함할 수 있다. 더욱이, 프로세서(602)는 단일 또는 다중 코어 설계를 가질 수 있다. 다중 코어 설계를 구비한 프로세서(602)는 동일한 집적 회로(Integrated Circuit: IC) 다이 상에 상이한 유형의 프로세서 코어를 집적할 수 있다. 또한, 다중 코어 설계를 구비한 프로세서(602)는 대칭적 또는 비대칭적 다중프로세서로서 구현될 수 있다. 일례에서, 프로세서(602) 중 하나 이상은 도 1의 프로세서(102)와 동일하거나 유사할 수 있다. 예컨대, 프로세서(602) 중 하나 이상은 도 1 내지 도 3을 참조하여 논의된 제어 유닛(120)을 포함할 수 있다. 또한, 도 3 내지 도 5를 참조하여 논의된 동작은 시스템(600)의 하나 이상의 컴포넌트에 의해 수행될 수 있다.
칩셋(606)은 상호연결 네트워크(604)와 또한 통신할 수 있다. 칩셋(606)은 메모리 제어 허브(Memory Control Hub: MCH)(608)를 포함할 수 있다. MCH(608)는 (도 1의 메모리(130)와 동일하거나 유사할 수 있는) 메모리(612)와 통신하는 메모리 제어기(610)를 포함할 수 있다. 메모리(412)는 프로세서(602), 또는 컴퓨팅 시스템(600) 내에 포함된 임의의 다른 디바이스에 의해 실행될 수 있는, 명령어의 시퀀스를 포함하여, 데이터를 저장할 수 있다. 하나의 예에서, 메모리(612)는 랜덤 액세스 메모리(Random Access Memory: RAM), 동적 RAM(Dynamic RAM: DRAM), 동기식 DRAM(Synchronous DRAM: SDRAM), 정적 RAM(Static RAM: SRAM), 또는 다른 유형의 저장 디바이스와 같은 하나 이상의 휘발성 저장(또는 메모리) 디바이스를 포함할 수 있다. 하드 디스크(hard disk)와 같은 비휘발성 메모리가 또한 활용될 수 있다. 추가적인 디바이스들이 상호연결 네트워크(604)를 통하여 통신할 수 있는데, 예를 들어 여러 프로세서(들) 및/또는 여러 시스템 메모리들이다.
MCH(608)는 디스플레이 디바이스(616)와 통신하는 그래픽 인터페이스(614)를 또한 포함할 수 있다. 하나의 예에서, 그래픽 인터페이스(614)는 가속된 그래픽 포트(Accelerated Graphics Port: AGP)를 통하여 디스플레이 디바이스(616)와 통신할 수 있다. 일례에서, (평판 디스플레이(flat panel display)와 같은) 디스플레이(616)는, 예컨대 비디오 메모리 또는 시스템 메모리와 같은 저장 디바이스 내에 저장된 이미지의 디지털 표현을 디스플레이(616)에 의해 해석되고 디스플레이되는 디스플레이 신호로 변환하는 신호 컨버터(signal converter)를 통하여, 그래픽 인터페이스(614)와 통신할 수 있다. 디스플레이 디바이스에 의해 산출된 디스플레이 신호는 디스플레이(616)에 의해 해석되고 나서 디스플레이(616) 상에 디스플레이되기 전에 다양한 제어 디바이스를 거쳐 갈 수 있다.
허브 인터페이스(618)는 MCH(608) 및 입력/출력 제어 허브(Input/output Control Hub: ICH)(620)가 통신할 수 있게 할 수 있다. ICH(620)는 컴퓨팅 시스템(600)과 통신하는 I/O 디바이스(들)에 대해 인터페이스를 제공할 수 있다. ICH(620)는 주변기기 브리지(peripheral bridge)(또는 제어기)(624), 예를 들어 주변 컴포넌트 상호연결(Peripheral Component Interconnect: PCI) 브리지, 범용 직렬 버스(Universal Serial Bus: USB) 제어기, 또는 다른 유형의 주변기기 브리지 또는 제어기를 통해 버스(622)와 통신할 수 있다. 브리지(624)는 프로세서(602) 및 주변 디바이스 간의 데이터 경로를 제공할 수 있다. 다른 유형의 토폴로지(topology)가 활용될 수 있다. 또한, 가령 여러 브리지 또는 제어기를 통해, 여러 버스가 ICH(620)와 통신할 수 있다. 더욱이, ICH(620)와 통신이 되는 다른 주변기기는, 다양한 예에서, 통합된 드라이브 전자기기(Integrated Drive Electronics: IDE) 또는 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface: SCSI) 하드 드라이브(들), USB 포트(들), 키보드, 마우스, 병렬 포트(들), 직렬 포트(들), 플로피 디스크 드라이브(들), 디지털 출력 지원(가령, 디지털 비디오 인터페이스(Digital Video Interface: DVI)), 또는 다른 디바이스를 포함할 수 있다.
버스(622)는 오디오 디바이스(626), 하나 이상의 디스크 드라이브(들)(628) 및 (컴퓨터 네트워크(603)와의 통신이 되는) 네트워크 인터페이스 디바이스(630)와 통신할 수 있다. 다른 디바이스가 버스(622)를 통하여 통신할 수 있다. 또한, (네트워크 인터페이스 디바이스(630)와 같은) 다양한 컴포넌트가 몇몇 예에서 MCH(608)와 통신할 수 있다. 추가로, 본 문서 내에서 논의된 프로세서(602) 및 하나 이상의 다른 컴포넌트는 (가령, 시스템 온 칩(System on Chip: SOC)을 제공하기 위해) 단일 칩을 형성하도록 조합될 수 있다. 나아가, 다른 예에서 그래픽 가속기(graphics accelerator)(616)는 MCH(608) 내에 포함될 수 있다.
나아가, 컴퓨팅 시스템(600)은 휘발성 및/또는 비휘발성 메모리(또는 스토리지(storage))를 포함할 수 있다. 예컨대, 비휘발성 메모리는 다음 중 하나 이상을 포함할 수 있다: 판독 전용 메모리(Read-Only Memory: ROM), 프로그램가능 ROM(Programmable ROM: PROM), 소거가능 PROM(Erasable PROM: EPROM), 전기적 EPROM(Electrically EPROM: EEPROM), 디스크 드라이브(disk drive)(가령, 628), 플로피 디스크(floppy disk), 콤팩트 디스크 ROM(Compact Disk ROM: CD-ROM), 디지털 다기능 디스크(Digital Versatile Disk: DVD), 플래시 메모리(flash memory), 자기-광학 디스크(magneto-optical disk), 또는 (가령, 명령어를 포함하는) 전자 데이터를 저장하는 것이 가능한 다른 유형의 비휘발성 머신 판독가능(machine-readable) 매체.
도 7은 일례에 따라, 컴퓨팅 시스템(700)의 블록도를 보여준다. 시스템(700)은 하나 이상의 프로세서(702-1 내지 702-N)(본 문서 내에서 "프로세서들(702)" 또는 "프로세서(702)"로 일반적으로 지칭됨)를 포함할 수 있다. 프로세서(702)는 상호연결 네트워크 또는 버스(704)를 통하여 통신할 수 있다. 각각의 프로세서는 다양한 컴포넌트를 포함할 수 있는데 명료성을 위해 이들 중 몇몇이 단지 프로세서(702-1)를 참조하여 논의된다. 따라서, 나머지 프로세서(702-2 내지 702-N) 각각은 프로세서(702-1)를 참조하여 논의된 바와 동일하거나 유사한 컴포넌트를 포함할 수 있다.
일례에서, 프로세서(702-1)는 하나 이상의 프로세서 코어(706-1 내지 706-M)(본 문서 내에서 "코어들(706)"로 또는 더욱 일반적으로는 "코어(706)"로 지칭됨), 공유 캐시(shared cache)(708), 라우터(router)(710) 및/또는 프로세서 제어 로직 또는 유닛(720)을 포함할 수 있다. 프로세서 코어(706)는 단일 집적 회로(Integrated Circuit: IC) 칩 상에 구현될 수 있다. 더욱이, 칩은 하나 이상의 공유 및/또는 비공개(private) 캐시(예를 들어 캐시(708)), 버스 또는 상호연결(예를 들어 버스 또는 상호연결 네트워크(712)), 메모리 제어기, 또는 다른 컴포넌트를 포함할 수 있다.
하나의 예에서, 라우터(710)는 프로세서(702-1) 및/또는 시스템(700)의 다양한 컴포넌트 간에 통신하는 데에 사용될 수 있다. 더욱이, 프로세서(702-1)는 하나보다 많은 라우터(710)를 포함할 수 있다. 나아가, 다수의 라우터(710)는 프로세서(702-1)의 내부의 또는 외부의 다양한 컴포넌트 간의 데이터 라우팅(data routing)을 가능하게 하기 위해 통신이 될 수 있다.
공유 캐시(708)는 프로세서(702-1)의 하나 이상의 컴포넌트, 예를 들어 코어(706)에 의해 활용되는 (가령, 명령어를 포함하는) 데이터를 저장할 수 있다. 예컨대, 공유 캐시(708)는 프로세서(702)의 컴포넌트에 의한 더 빠른 액세스를 위해 메모리(714) 내에 저장된 데이터를 로컬로 캐싱할(locally cache) 수 있다. 일례에서, 캐시(708)는 (레벨 2(L2), 레벨 3(L3), 레벨 4(L4), 또는 다른 레벨의 캐시와 같은) 중간 레벨 캐시(mid-level cache), 최종 레벨 캐시(Last Level Cache: LLC) 및/또는 이들의 조합을 포함할 수 있다. 더욱이, 프로세서(702-1)의 다양한 컴포넌트는 직접적으로, 버스(가령, 버스(712)), 그리고/또는 메모리 제어기 또는 허브를 통해, 공유 캐시(708)와 통신할 수 있다. 도 7에 도시된 바와 같이, 몇몇 예에서, 코어(706) 중 하나 이상은 레벨 1(L1) 캐시(716-1)(본 문서 내에서 "L1 캐시(716)"로 일반적으로 지칭됨)를 포함할 수 있다. 하나의 예에서, 제어 유닛(720)은 도 2 내의 메모리 제어기(122)를 참조하여 위에서 기술된 동작을 구현하기 위한 로직을 포함할 수 있다.
도 8은 일례에 따라, 컴퓨팅 시스템의 프로세서 코어(706) 및 다른 컴포넌트의 부분의 블록도를 보여준다. 하나의 예에서, 도 8 내에 도시된 화살표는 코어(706)를 거치는 명령어의 흐름 방향을 보여준다. (프로세서 코어(706)와 같은) 하나 이상의 프로세서 코어는 도 7을 참조하여 논의된 바와 같이 단일 집적 회로 칩(또는 다이) 상에 구현될 수 있다. 더욱이, 그 칩은 하나 이상의 공유 및/또는 비공개 캐시(가령, 도 7의 캐시(708)), 상호연결(가령, 도 7의 상호연결(704 및/또는 112)), 제어 유닛, 메모리 제어기, 또는 다른 컴포넌트를 포함할 수 있다.
도 8에 예시된 바와 같이, 프로세서 코어(706)는 코어(706)에 의한 실행을 위한 명령어(조건부 분기가 있는 명령어를 포함함)를 페치하는(fetch) 페치 유닛(802)을 포함할 수 있다. 명령어는 메모리(714)와 같은 임의의 저장 디바이스로부터 페치될 수 있다. 코어(706)는 페치된 명령어를 디코드하는(decode) 디코드 유닛(804)을 또한 포함할 수 있다. 예를 들면, 디코드 유닛(804)은 페치된 명령어를 복수의 uop(마이크로 동작(micro-operation))들로 디코드할 수 있다.
추가적으로, 코어(706)는 스케줄 유닛(schedule unit)(806)을 포함할 수 있다. 스케줄 유닛(806)은 (가령, 디코드 유닛(804)으로부터 수신된) 디코드된 명령어를, 그 명령어가 디스패치(dispatch)를 위한 준비가 될 때까지, 가령, 디코드된 명령어의 모든 소스 값이 이용가능하게 될 때까지 저장하는 것과 연관된 다양한 동작을 수행할 수 있다. 하나의 예에서, 스케줄 유닛(806)은 실행을 위해 실행 유닛(808)에 디코드된 명령어를 스케줄링하고/하거나 발행(또는 디스패치)할 수 있다. 실행 유닛(808)은 디스패치된 명령어를 그것이 (가령, 디코드 유닛(804)에 의해) 디코드되고 (가령, 스케줄 유닛(806)에 의해) 디스패치된 후에 실행할 수 있다. 일례에서, 실행 유닛(808)은 하나보다 많은 실행 유닛을 포함할 수 있다. 실행 유닛(808)은 덧셈, 뺄셈, 곱셈 및/또는 나눗셈과 같은 다양한 산술 동작을 또한 수행할 수 있고, 하나 이상의 산술 로직 유닛(Arithmetic Logic Unit: ALU)을 포함할 수 있다. 일례에서, 코프로세서(co-processor)(도시되지 않음)는 실행 유닛(808)과 함께 다양한 산술 동작을 수행할 수 있다.
또한, 실행 유닛(808)은 비순차적으로(out-of-order) 명령어를 실행할 수 있다. 따라서, 프로세서 코어(706)는 하나의 예에서 비순차적 프로세서 코어일 수 있다. 코어(706)는 퇴진 유닛(retirement unit)(810)을 또한 포함할 수 있다. 퇴진 유닛(810)은 실행된 명령어를 그것이 커밋된(committed) 후에 퇴진시킬(retire) 수 있다. 일례에서, 실행된 명령어의 퇴진은 프로세서 상태가 명령어의 실행으로부터 커밋됨, 명령어에 의해 사용된 물리적 레지스터가 할당해제됨(deallocated) 등등을 초래할 수 있다.
코어(706)는 하나 이상의 버스(가령, 버스(804 및/또는 812)를 통한 프로세서 코어(706)의 컴포넌트 및 (도 8을 참조하여 논의된 컴포넌트와 같은) 다른 컴포넌트 간의 통신을 가능하게 하는 버스 유닛(714)을 또한 포함할 수 있다. 코어(706)는 (전력 소모 상태 설정에 관련된 값과 같은) 코어(706)의 다양한 컴포넌트에 의해 액세스되는 데이터를 저장하는 하나 이상의 레지스터(register)(816)를 또한 포함할 수 있다.
나아가, 설령 도 7이 상호연결(812)을 통하여 코어(706)에 커플링되도록 제어 유닛(720)을 예시하더라도, 다양한 예에서 제어 유닛(720)은 다른 곳에, 예를 들어 코어(706) 내부에 위치됨, 버스(704)를 통하여 코어에 커플링됨 등등일 수 있다.
몇몇 예에서, 본 문서 내에 논의된 컴포넌트 중 하나 이상은 시스템 온 칩(System On Chip: SOC) 디바이스로서 실체화될 수 있다. 도 9는 일례에 따른 SOC 패키지의 블록도를 보여준다. 도 9에 예시된 바와 같이, SOC(902)는 하나 이상의 프로세서 코어(920), 하나 이상의 그래픽 프로세서 코어(930), 입력/출력(Input/Output: I/O) 인터페이스(940) 및 메모리 제어기(942)를 포함한다. SOC 패키지(902)의 다양한 컴포넌트는 다른 도면을 참조하여 본 문서 내에 논의된 바와 같은 상호연결 또는 버스에 커플링될 수 있다. 또한, SOC 패키지(902)는 다른 도면을 참조하여 본 문서 내에 논의된 것들과 같은 컴포넌트를 더 많이 또는 더 적게 포함할 수 있다. 또한, SOC 패키지(902)의 각각의 컴포넌트는 하나 이상의 다른 컴포넌트, 가령 본 문서 내의 다른 도면을 참조하여 논의된 바와 같은 것을 포함할 수 있다. 하나의 예에서, SOC 패키지(902)(그리고 그것의 컴포넌트)는 하나 이상의 집적 회로(Integrated Circuit: IC) 다이 상에 제공되는데, 가령, 이는 단일 반도체 디바이스 내에 패키징된다(packaged).
도 9에 예시된 바와 같이, SOC 패키지(902)는 메모리 제어기(942)를 통하여 (다른 도면을 참조하여 본 문서 내에 논의된 메모리와 유사하거나 동일할 수 있는) 메모리(960)에 커플링된다. 일례에서, 메모리(960)(또는 그것의 일부분)는 SOC 패키지(902) 상에 집적될 수 있다.
I/O 인터페이스(940)는, 가령 다른 도면을 참조하여 본 문서 내에 논의된 바와 같은 상호연결 및/또는 버스를 통하여, 하나 이상의 I/O 디바이스(970)에 커플링될 수 있다. I/O 디바이스(들)(970)는 키보드, 마우스, 터치패드, 디스플레이, (카메라 또는 캠코더/비디오 레코더와 같은) 이미지/비디오 포착 디바이스(image/video capture device), 터치 표면(touch surface), 스피커, 또는 유사한 것 중 하나 이상을 포함할 수 있다.
도 10은 일례에 따라, 점대점(Point-to-Point: PtP) 구성 내에 배열된(arranged) 컴퓨팅 시스템(1000)을 보여준다. 특히, 도 10은 프로세서, 메모리 및 입력/출력 디바이스가 다수의 점대점 인터페이스에 의해 상호연결된 시스템을 도시한다. 도 2를 참조하여 논의된 동작은 시스템(1000)의 하나 이상의 컴포넌트에 의해 수행될 수 있다.
도 10에 예시된 바와 같이, 시스템(1000)은 몇 개의 프로세스를 포함할 수 있는데, 명료성을 위해 이 중 오직 두 개의 프로세서(1002 및 1004)가 도시된다. 프로세서(1002 및 1004)는 메모리(1010 및 1012)와의 통신을 가능하게 하는 로컬 메모리 제어기 허브(Memory Controller Hub: MCH)(1006 및 1008)를 각각 포함할 수 있다. MCH(1006 및 1008)는 몇몇 예에서 도 1의 메모리 제어기(120) 및/또는 로직(125)을 포함할 수 있다.
일례에서, 프로세서(1002 및 1004)는 도 7을 참조하여 논의된 프로세서(702) 중 하나일 수 있다. 프로세서(1002 및 1004)는 각각 점대점(Point-to-Point: PtP) 인터페이스 회로(1016 및 1018)를 사용하여 PtP 인터페이스(1014)를 통하여 데이터를 교환할 수 있다. 또한, 프로세서(1002 및 1004)는 점대점 인터페이스 회로(1026, 1028, 1030 및 1032)를 사용하여 개별 PtP 인터페이스(1022 및 1024)를 통하여 칩셋(1020)과 데이터를 각각 교환할 수 있다. 칩셋(1020)은 또한 데이터를, 가령 PtP 인터페이스 회로(1037)를 사용하여, 고성능 그래픽 인터페이스(1036)를 통하여 고성능 그래픽 회로(1034)와 교환할 수 있다.
도 10에 도시된 바와 같이, 도 1의 코어(106) 및/또는 캐시(108) 중 하나 이상이 프로세서(1004) 내에 위치될 수 있다. 그러나, 도 10의 시스템(1000) 내의 다른 회로, 로직 유닛 또는 디바이스 내에 다른 예가 존재할 수 있다. 나아가, 도 10에 예시된 몇 개의 회로, 로직 유닛 또는 디바이스 도처에 다른 예가 분산될(distributed) 수 있다.
칩셋(1020)은 PtP 인터페이스 회로(1041)를 사용하여 버스(1040)와 통신할 수 있다. 버스(1040)는 그것과 통신하는 하나 이상의 디바이스, 예를 들어 버스 브리지(bus bridge)(1042) 및 I/O 디바이스(1043)를 가질 수 있다. 버스(1044)를 통하여, 버스 브리지(1043)는 키보드/마우스(1045), (컴퓨터 네트워크(1003)와 통신할 수 있는 모뎀, 네트워크 인터페이스 디바이스 또는 다른 통신 디바이스와 같은) 통신 디바이스(1046), 오디오 I/O 디바이스, 그리고/또는 데이터 저장 디바이스(1048)와 같은 다른 디바이스와 통신할 수 있다. (하드 디스크 드라이브 또는 NAND 플래시 기초 솔리드 스테이트 드라이브(solid state drive)일 수 있는) 데이터 저장 디바이스(1048)는 프로세서(1004)에 의해 실행될 수 있는 코드(1049)를 저장할 수 있다.
이하의 예는 추가의 예와 관련된다.
예 1은, 복수의 센서로부터 수신된 데이터로부터 공분산 행렬을 계산하는 자동보정 모듈과, 자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 상태 기초 피드백 파라미터를 결정하는 적응적 가중치 제어 모듈과, 위 적응적 가중치 제어 모듈로부터의 입력에 기초하여 수정된 공분산 행렬을 결정하는 센서 특성 조절 모듈을 포함하는 관성 측정 유닛이다.
예 2에서, 예 1의 청구대상은, 위 복수의 센서는 자이로스코프 센서, 가속도계 센서 및 자력계 센서 중 적어도 하나를 포함하는 배열(arrangement)을 선택적으로 포함할 수 있다.
예 3에서, 예 1 내지 예 2 중 어느 하나의 청구대상은, 예측 모듈과 교정 모듈을 선택적으로 포함할 수 있다.
예 4에서, 예 1 내지 예 3 중 어느 하나의 청구대상은, 위 수정된 공분산 행렬은 위 교정 모듈에 입력되는 배열을 선택적으로 포함할 수 있다.
예 5에서, 예 1 내지 예 4 중 어느 하나의 청구대상은, 위 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 위 로직은, 위 가속도계 센서의 출력을 모니터링하고, 위 관성 측정 유닛이 사전결정된 기간 동안 정지된 채로 있었다는 결정에 응답하여, 위 공분상 행렬을 계산하도록 구성되는 배열을 선택적으로 포함할 수 있다.
예 6에서, 예 1 내지 예 5 중 어느 하나의 청구대상은, 위 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 위 로직은, 위 가속도계 센서 및 위 자력계 센서로부터의 입력에 기초하여 상태를 결정하고, 위 상태에 기초하여 위 자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 위 상태 기초 피드백 파라미터를 결정하도록 구성되는 배열을 선택적으로 포함할 수 있다.
예 7에서, 예 1 내지 예 6 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 위 가속도계 센서의 출력의 증가에 응답하여 가속도계의 상태 기초 피드백의 가중치를 감소시키는 배열을 선택적으로 포함할 수 있다.
예 8에서, 예 1 내지 예 7 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 위 자력계 센서의 출력의 증가에 응답하여 자력계의 상태 기초 피드백의 가중치를 감소시키는 배열을 선택적으로 포함할 수 있다.
예 9에서, 예 1 내지 예 8 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 예측/교정 알고리즘에서의 수렴에 응답하여 자이로스코프의 상태 기초 피드백의 가중치를 증가시키는 배열을 선택적으로 포함할 수 있다.
예 10은, 적어도 하나의 프로세서 및 관성 측정 유닛을 포함하는 전자 디바이스인데, 위 관성 측정 유닛은 복수의 센서로부터 수신된 데이터로부터 공분산 행렬을 계산하는 자동보정 모듈과, 자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 상태 기초 피드백 파라미터를 결정하는 적응적 가중치 제어 모듈과, 위 적응적 가중치 제어 모듈로부터의 입력에 기초하여 수정된 공분산 행렬을 결정하는 센서 특성 조절 모듈을 포함한다.
예 11에서, 예 10의 청구대상은, 위 복수의 센서는 자이로스코프 센서, 가속도계 센서 및 자력계 센서 중 적어도 하나를 포함하는 배열을 선택적으로 포함할 수 있다.
예 12에서, 예 10 내지 예 11 중 어느 하나의 청구대상은, 예측 모듈과 교정 모듈을 선택적으로 포함할 수 있다.
예 13에서, 예 10 내지 예 12 중 어느 하나의 청구대상은, 위 수정된 공분산 행렬은 위 교정 모듈에 입력되는 배열을 선택적으로 포함할 수 있다.
예 14에서, 예 10 내지 예 13 중 어느 하나의 청구대상은, 위 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 위 로직은, 위 가속도계 센서의 출력을 모니터링하고, 위 관성 측정 유닛이 사전결정된 기간 동안 정지된 채로 있었다는 결정에 응답하여, 위 공분상 행렬을 계산하도록 구성되는 배열을 선택적으로 포함할 수 있다.
예 15에서, 예 10 내지 예 14 중 어느 하나의 청구대상은, 위 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 위 로직은, 위 가속도계 센서 및 위 자력계 센서로부터의 입력에 기초하여 상태를 결정하고, 위 상태에 기초하여 위 자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 위 상태 기초 피드백 파라미터를 결정하도록 구성되는 배열을 선택적으로 포함할 수 있다.
예 16에서, 예 10 내지 예 15 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 위 가속도계 센서의 출력의 증가에 응답하여 가속도계의 상태 기초 피드백의 가중치를 감소시키는 배열을 선택적으로 포함할 수 있다.
예 17에서, 예 10 내지 예 16 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 위 자력계 센서의 출력의 증가에 응답하여 자력계의 상태 기초 피드백의 가중치를 감소시키는 배열을 선택적으로 포함할 수 있다.
예 18에서, 예 10 내지 예 17 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 예측/교정 알고리즘에서의 수렴에 응답하여 자이로스코프의 상태 기초 피드백의 가중치를 증가시키는 배열을 선택적으로 포함할 수 있다.
예 19는, 제어기에 의해 실행되는 경우 위 제어기를, 복수의 센서로부터 수신된 데이터로부터 공분산 행렬을 계산하는 자동보정 모듈과, 자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 상태 기초 피드백 파라미터를 결정하는 적응적 가중치 제어 모듈과, 위 적응적 가중치 제어 모듈로부터의 입력에 기초하여 수정된 공분산 행렬을 결정하는 센서 특성 조절 모듈을 구현하도록 구성하는 비일시적 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 프로그램 제품이다.
예 20에서, 예 19의 청구대상은, 위 복수의 센서는 자이로스코프 센서, 가속도계 센서 및 자력계 센서 중 적어도 하나를 포함하는 배열을 선택적으로 포함할 수 있다.
예 21에서, 예 19 내지 예 20 중 어느 하나의 청구대상은, 예측 모듈과 교정 모듈을 선택적으로 포함할 수 있다.
예 22에서, 예 19 내지 예 21 중 어느 하나의 청구대상은, 위 수정된 공분산 행렬은 위 교정 모듈에 입력되는 배열을 선택적으로 포함할 수 있다.
예 23에서, 예 19 내지 예 22 중 어느 하나의 청구대상은, 위 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 위 로직은, 위 가속도계 센서의 출력을 모니터링하고, 위 관성 측정 유닛이 사전결정된 기간 동안 정지된 채로 있었다는 결정에 응답하여, 위 공분상 행렬을 계산하도록 구성되는 배열을 선택적으로 포함할 수 있다.
예 24에서, 예 19 내지 예 23 중 어느 하나의 청구대상은, 위 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 위 로직은, 위 가속도계 센서 및 위 자력계 센서로부터의 입력에 기초하여 상태를 결정하고, 위 상태에 기초하여 위 자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 위 상태 기초 피드백 파라미터를 결정하도록 구성되는 배열을 선택적으로 포함할 수 있다.
예 25에서, 예 19 내지 예 24 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 위 가속도계 센서의 출력의 증가에 응답하여 가속도계의 상태 기초 피드백의 가중치를 감소시키는 배열을 선택적으로 포함할 수 있다.
예 26에서, 예 19 내지 예 25 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 위 자력계 센서의 출력의 증가에 응답하여 자력계의 상태 기초 피드백의 가중치를 감소시키는 배열을 선택적으로 포함할 수 있다.
예 27에서, 예 19 내지 예 26 중 어느 하나의 청구대상은, 위 적응적 가중치 제어 모듈은 예측/교정 알고리즘에서의 수렴에 응답하여 자이로스코프의 상태 기초 피드백의 가중치를 증가시키는 배열을 선택적으로 포함할 수 있다.
본 문서에서 지칭되는 바와 같은 용어 "로직 명령어"는 하나 이상의 논리적 동작(logical operation)을 수행하기 위해 하나 이상의 머신(machine)에 의해 이해될 수 있는 표현에 관련된다. 예컨대, 로직 명령어는 하나 이상의 데이터 객체(data object)에 대해 하나 이상의 동작을 실행하기 위해 프로세서 컴파일러(processor compiler)에 의해 해석가능한 명령어를 포함할 수 있다. 그러나, 이것은 단지 머신 판독가능(machine-readable) 명령어의 일례이고 예들은 이 점에 한정되지 않는다.
본 문서에서 지칭되는 바와 같은 용어 "컴퓨터 판독가능 매체"(computer readable medium)는 하나 이상의 머신에 의해 인식가능한 표현을 유지하는 것이 가능한 매체에 관련된다. 예컨대, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 명령어 또는 데이터를 저장하기 위한 하나 이상의 저장 디바이스를 포함할 수 있다. 그러한 저장 디바이스는, 예컨대 광학적, 자기적 또는 반도체 저장 매체와 같은 저장 매체를 포함할 수 있다. 그러나, 이것은 단지 컴퓨터 판독가능 매체의 일례이고 예들은 이 점에 한정되지 않는다.
본 문서에서 지칭되는 바와 같은 용어 "로직"(logic)은 하나 이상의 논리적 동작을 수행하기 위한 구조에 관련된다. 예컨대, 로직은 하나 이상의 입력 신호에 기초하여 하나 이상의 출력 신호를 제공하는 회로를 포함할 수 있다. 그러한 회로는 디지털 입력을 수신하고 디지털 출력을 제공하는 유한 상태 머신(finite state machine), 또는 하나 이상의 아날로그 입력 신호에 응답하여 아날로그 출력 신호를 제공하는 회로를 포함할 수 있다. 그러한 회로는 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC) 또는 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array: FPGA) 내에 제공될 수 있다. 또한, 로직은 머신 판독가능 명령어를 실행하는 처리 회로와 조합이 된 메모리 내에 저장된 그러한 머신 판독가능 명령어를 포함할 수 있다. 그러나, 이것들은 단지 로직을 제공할 수 있는 구조들의 예들이고 예들은 이 점에 한정되지 않는다.
본 문서 내에 기술된 방법 중 몇몇은 컴퓨터 판독가능 매체 상의 로직 명령어로서 실체화될 수 있다. 프로세서 상에서 실행되는 경우, 로직 명령어는 프로세서로 하여금 기술된 방법을 구현하는 특수 목적 머신으로서 프로그래밍되게 한다. 프로세서는, 본 문서 내에 기술된 방법을 실행하기 위해 로직 명령어에 의해 구성된 경우, 기술된 방법을 수행하기 위한 구조를 구성한다. 대안적으로, 본 문서 내에 기술된 방법은, 가령 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array: FPGA), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC) 또는 유사한 것 상의 로직으로 될 수 있다.
설명 및 청구항에서, 용어 커플링됨(coupled) 및 연결됨(connected)이, 그것들의 파생물들과 더불어, 사용될 수 있다. 특정한 예에서, 연결됨은 둘 이상의 구성요소가 서로와의 직접적인 물리적 또는 전기적 접촉이 됨을 나타내는 데에 사용될 수 있다. 커플링됨은 둘 이상의 구성요소가 직접적인 물리적 또는 전기적 접촉이 됨을 의미할 수 있다. 그러나, 커플링됨은 둘 이상의 구성요소가 서로와의 직접적인 접촉이 되지 않을 수 있으나, 그래도 여전히 서로 협동하거나 상호작용할 수 있음을 또한 의미할 수 있다.
명세서 내에서의 "하나의 예" 또는 "몇몇 예"에 대한 언급은 그 예와 관련하여 기술된 특정한 특징, 구조 또는 특성이 적어도 한 구현 내에 포함됨을 의미한다. 명세서 내의 다양한 곳에서의 문구 "하나의 예에서"의 출현은 모두 동일한 예를 나타내고 있을 수 있거나 그렇지 않을 수 있다.
구조적 특징 및/또는 방법론적 행위에 특정적인 말로 예들이 기술되었으나, 청구된 청구대상은 기술된 특정 특징 또는 행위에 한정되지 않을 수 있음이 이해되어야 한다. 오히려, 특정 특징 및 행위는 청구된 청구대상을 구현하는 견본 형태로서 개시된다.

Claims (18)

  1. 복수의 센서로부터 수신된 데이터로부터 공분산 행렬(covariance matrix)을 계산하는 자동보정 모듈(autocalibration module)과,
    자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 상태 기초 피드백 파라미터를 결정하는 적응적 가중치 제어 모듈(adaptive weight control module)과,
    상기 적응적 가중치 제어 모듈로부터의 입력에 기초하여 수정된 공분산 행렬을 결정하는 센서 특성 조절 모듈(sensor characteristic adjustment module)을 포함하는
    관성 측정 유닛.
  2. 제1항에 있어서,
    상기 복수의 센서는 자이로스코프 센서, 가속도계 센서 및 자력계 센서 중 적어도 하나를 포함하는
    관성 측정 유닛.
  3. 제1항에 있어서,
    예측 모듈(prediction module)과,
    교정 모듈(correction module)을 더 포함하는
    관성 측정 유닛.
  4. 제3항에 있어서,
    상기 수정된 공분산 행렬은 상기 교정 모듈에 입력되는
    관성 측정 유닛.
  5. 제2항에 있어서,
    상기 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 상기 로직은,
    상기 가속도계 센서의 출력을 모니터링하고,
    상기 관성 측정 유닛이 사전결정된 기간 동안 정지된 채로 있었다는 결정에 응답하여, 상기 공분상 행렬을 계산하도록 구성된
    관성 측정 유닛.
  6. 제2항에 있어서,
    상기 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 상기 로직은,
    상기 가속도계 센서 및 상기 자력계 센서로부터의 입력에 기초하여 상태를 결정하고,
    상기 상태에 기초하여 상기 자이로스코프 센서, 상기 가속도계 센서 및 상기 자력계 센서를 위한 상기 상태 기초 피드백 파라미터를 결정하도록 구성된
    관성 측정 유닛.
  7. 제6항에 있어서,
    상기 적응적 가중치 제어 모듈은 상기 가속도계 센서의 출력의 증가에 응답하여 가속도계의 상태 기초 피드백의 가중치를 감소시키는
    관성 측정 유닛.
  8. 제6항에 있어서,
    상기 적응적 가중치 제어 모듈은 상기 자력계 센서의 출력의 증가에 응답하여 자력계의 상태 기초 피드백의 가중치를 감소시키는
    관성 측정 유닛.
  9. 제6항에 있어서,
    상기 적응적 가중치 제어 모듈은 예측/교정 알고리즘(prediction/correction algorithm)에서의 수렴(convergence)에 응답하여 자이로스코프의 상태 기초 피드백의 가중치를 증가시키는
    관성 측정 유닛.
  10. 적어도 하나의 프로세서와,
    관성 측정 유닛을 포함하되, 상기 관성 측정 유닛은
    복수의 센서로부터 수신된 데이터로부터 공분산 행렬을 계산하는 자동보정 모듈과,
    자이로스코프 센서, 가속도계 센서 및 자력계 센서를 위한 상태 기초 피드백 파라미터를 결정하는 적응적 가중치 제어 모듈과,
    상기 적응적 가중치 제어 모듈로부터의 입력에 기초하여 수정된 공분산 행렬을 결정하는 센서 특성 조절 모듈을 포함하는
    전자 디바이스.
  11. 제10항에 있어서,
    상기 복수의 센서는 자이로스코프 센서, 가속도계 센서 및 자력계 센서 중 적어도 하나를 포함하는
    전자 디바이스.
  12. 제10항에 있어서,
    예측 모듈과,
    교정 모듈을 더 포함하는
    전자 디바이스.
  13. 제11항에 있어서,
    상기 수정된 공분산 행렬은 상기 교정 모듈에 입력되는
    전자 디바이스.
  14. 제10항에 있어서,
    상기 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 상기 로직은,
    상기 가속도계 센서의 출력을 모니터링하고,
    상기 관성 측정 유닛이 사전결정된 기간 동안 정지된 채로 있었다는 결정에 응답하여, 상기 공분상 행렬을 계산하도록 구성된
    전자 디바이스.
  15. 제10항에 있어서,
    상기 자동보정 모듈은 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하되, 상기 로직은,
    상기 가속도계 센서 및 상기 자력계 센서로부터의 입력에 기초하여 상태를 결정하고,
    상기 상태에 기초하여 상기 자이로스코프 센서, 상기 가속도계 센서 및 상기 자력계 센서를 위한 상기 상태 기초 피드백 파라미터를 결정하도록 구성된
    전자 디바이스.
  16. 제15항에 있어서,
    상기 적응적 가중치 제어 모듈은 상기 가속도계 센서의 출력의 증가에 응답하여 가속도계의 상태 기초 피드백의 가중치를 감소시키는
    전자 디바이스.
  17. 제15항에 있어서,
    상기 적응적 가중치 제어 모듈은 상기 자력계 센서의 출력의 증가에 응답하여 자력계의 상태 기초 피드백의 가중치를 감소시키는
    전자 디바이스.
  18. 제15항에 있어서,
    상기 적응적 가중치 제어 모듈은 예측/교정 알고리즘에서의 수렴에 응답하여 자이로스코프의 상태 기초 피드백의 가중치를 증가시키는
    전자 디바이스.
KR1020167023847A 2014-03-31 2014-03-31 전자 디바이스를 위한 관성 측정 유닛 KR101948242B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/074342 WO2015149203A1 (en) 2014-03-31 2014-03-31 Inertial measurement unit for electronic devices

Publications (2)

Publication Number Publication Date
KR20160117526A true KR20160117526A (ko) 2016-10-10
KR101948242B1 KR101948242B1 (ko) 2019-05-10

Family

ID=54239197

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167023847A KR101948242B1 (ko) 2014-03-31 2014-03-31 전자 디바이스를 위한 관성 측정 유닛

Country Status (6)

Country Link
US (1) US20170010126A1 (ko)
EP (1) EP3126780A4 (ko)
KR (1) KR101948242B1 (ko)
CN (1) CN106662448B (ko)
TW (1) TWI551845B (ko)
WO (1) WO2015149203A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10444030B1 (en) * 2014-05-12 2019-10-15 Inertial Labs, Inc. Automatic calibration of magnetic sensors based on optical image tracking
ES2589124B1 (es) * 2016-04-18 2017-08-04 Adria PLANAS ROLDAN Sistema de generación y gestión de datos vinculado con un aparato de desplazamiento personal
CN109001787B (zh) * 2018-05-25 2022-10-21 北京大学深圳研究生院 一种姿态角解算与定位的方法及其融合传感器
CN111433756B (zh) * 2018-07-24 2022-01-28 荣耀终端有限公司 一种终端及Type C接口防腐蚀方法
CN113242527B (zh) * 2021-05-17 2023-06-16 张衡 一种基于无线体感惯性测量模块的通信系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240347A1 (en) * 2004-04-23 2005-10-27 Yun-Chun Yang Method and apparatus for adaptive filter based attitude updating
KR100815152B1 (ko) * 2006-11-07 2008-03-19 한국전자통신연구원 다중 필터 융합을 이용한 복합 항법 장치 및 이를 이용한항법 정보 제공 방법
CN101726295A (zh) * 2008-10-24 2010-06-09 中国科学院自动化研究所 考虑加速度补偿和基于无迹卡尔曼滤波的惯性位姿跟踪方法
US8065074B1 (en) * 2007-10-01 2011-11-22 Memsic Transducer Systems Co., Ltd. Configurable inertial navigation system with dual extended kalman filter modes
CN103226022A (zh) * 2013-03-27 2013-07-31 清华大学 用于组合导航系统的动基座对准方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8374775B2 (en) * 2009-11-05 2013-02-12 Apple Inc. Adaptive sensor-based activity classification
US20130057394A1 (en) * 2010-05-13 2013-03-07 Nokia Corporation Method and Apparatus for Providing Context Sensing and Fusion
US9341720B2 (en) * 2011-01-11 2016-05-17 Qualcomm Incorporated Camera-based position location and navigation based on image processing
CN102519450B (zh) * 2011-12-12 2014-07-02 东南大学 一种用于水下滑翔器的组合导航装置及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240347A1 (en) * 2004-04-23 2005-10-27 Yun-Chun Yang Method and apparatus for adaptive filter based attitude updating
KR100815152B1 (ko) * 2006-11-07 2008-03-19 한국전자통신연구원 다중 필터 융합을 이용한 복합 항법 장치 및 이를 이용한항법 정보 제공 방법
US8065074B1 (en) * 2007-10-01 2011-11-22 Memsic Transducer Systems Co., Ltd. Configurable inertial navigation system with dual extended kalman filter modes
CN101726295A (zh) * 2008-10-24 2010-06-09 中国科学院自动化研究所 考虑加速度补偿和基于无迹卡尔曼滤波的惯性位姿跟踪方法
CN103226022A (zh) * 2013-03-27 2013-07-31 清华大学 用于组合导航系统的动基座对准方法及系统

Also Published As

Publication number Publication date
EP3126780A1 (en) 2017-02-08
EP3126780A4 (en) 2017-12-27
TWI551845B (zh) 2016-10-01
TW201602520A (zh) 2016-01-16
US20170010126A1 (en) 2017-01-12
WO2015149203A1 (en) 2015-10-08
CN106662448A (zh) 2017-05-10
KR101948242B1 (ko) 2019-05-10
CN106662448B (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
KR101948242B1 (ko) 전자 디바이스를 위한 관성 측정 유닛
EP3161583A1 (en) Belt driven hinge assembly for electronic devices
US10007589B2 (en) System and method for universal serial bus (USB) protocol debugging
US20170102787A1 (en) Virtual sensor fusion hub for electronic devices
KR101852980B1 (ko) 전자 디바이스를 위한 자력계 유닛
KR102225249B1 (ko) 전자 디바이스용 센서 버스 인터페이스
CN106796113B (zh) 使用电子设备的双磁强计的虚拟陀螺仪
US9575551B2 (en) GNSS services on low power hub
US10799118B2 (en) Motion tracking using electronic devices
US20160378137A1 (en) Electronic device with combinable image input devices
US20150253984A1 (en) Smart frame toggling
US20160091963A1 (en) Remote wearable input sources for electronic devices

Legal Events

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