BRPI0924668B1 - método implementado por computador, método para calcular um campo de visualização de uma câmera, meio de armazenamento legível por computador, e, sistema de rastreamento - Google Patents

método implementado por computador, método para calcular um campo de visualização de uma câmera, meio de armazenamento legível por computador, e, sistema de rastreamento Download PDF

Info

Publication number
BRPI0924668B1
BRPI0924668B1 BRPI0924668-1A BRPI0924668A BRPI0924668B1 BR PI0924668 B1 BRPI0924668 B1 BR PI0924668B1 BR PI0924668 A BRPI0924668 A BR PI0924668A BR PI0924668 B1 BRPI0924668 B1 BR PI0924668B1
Authority
BR
Brazil
Prior art keywords
position sensor
tracked object
vectors
data
acceleration
Prior art date
Application number
BRPI0924668-1A
Other languages
English (en)
Inventor
Richard Lee Marks
Eric Larsen
Original Assignee
Sony Computer Entertainment Inc.
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42240585&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0924668(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Sony Computer Entertainment Inc. filed Critical Sony Computer Entertainment Inc.
Publication of BRPI0924668A2 publication Critical patent/BRPI0924668A2/pt
Publication of BRPI0924668B1 publication Critical patent/BRPI0924668B1/pt

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/22Setup operations, e.g. calibration, key configuration or button assignment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • A63F13/235Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console using a wireless connection, e.g. infrared or piconet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Image Analysis (AREA)
  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

MÉTODO IMPLEMENTADO POR COMPUTADOR, MÉTODO PARA CALCULAR UM CAMPO DE VISUALIZAÇÃO DE UMA CÂMERA, MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR, E, SISTEMA DE RASTREAMENTO Para calibrar um sensor de posição, uma pluralidade de localizações de imagem e tamanhos de imagem de um objeto rastreado são recebidas à medida que o objeto rastreado é movido através de um trajeto de movimento rico. Dados inerciais são recebidos a partir do objeto rastreado, à medida que o objeto rastreado é movido através do trajeto de movimento rico. Cada uma da pluralidade de localizações de imagem é convertida para um sistema de coordenadas tridimensional do sensor de posição, com base nos tamanhos de imagem correspondentes e em um campo de visualização do sensor de posição. Uma aceleração do objeto rastreado é computada no sistema de coordenadas tridimensional do sensor de posição. Os dados inerciais são reconciliados com a aceleração computada, calibrando o sensor de posição.

Description

MÉTODO IMPLEMENTADO POR COMPUTADOR, MÉTODO PARA CALCULAR UM CAMPO DE VISUALIZAÇÃO DE UMA CÂMERA, MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR, E, SISTEMA DE RASTREAMENTO CAMPO DA INVENÇÃO
[01] A presente invenção relaciona-se em geral a calibração de um sistema de rastreamento, e mais particularmente a calibração de um sistema de rastreamento que é usado para rastrear a localização de um objeto, com base em dados de posição do objeto e dados adicionais recebidos ou conhecidos, pertencentes ao objeto.
DESCRIÇÃO DA TÉCNTCA RELACIONADA
[02] Uma tendência crescente na indústria de jogos para computador é desenvolver jogos que aumentam a interação entre um usuário e um sistema de jogos. Um modo de obter uma experiência interativa mais rica é usar controladores de jogos cujo movimento é rastreado pelo sistema de jogos no sentido de rastrear os movimentos do jogador e usar estes movimentos como entradas para o jogo. Geralmente falando, a entrada de gestos se refere a possuir um dispositivo eletrônico tal como um sistema de computação, console de videogame, aplicação inteligente, etc., que reage a alguns gestos capturados por uma câmera de vídeo ou outro sensor de posição que rastreia um objeto.
[03] No sentido de produzir medições confiáveis da localização e movimento do usuário, o sistema de jogos necessita ser calibrado. Tal calibração é comumente necessária cada vez que o sistema de jogos é usado. Em sistemas convencionais, calibrar o sistema de jogos requer um processo controlado, preciso, no qual um usuário mede propriedades tais como a inclinação da câmera de vídeo, a distância do usuário para a câmera de vídeo, etc. Sistemas de jogos convencionais não são capazes de efetuar calibração sem tal processo controlado e preciso.
BREVE DESCRIÇÃO DOS DESENHOS
[04] A invenção pode ser melhor entendida por referência à seguinte descrição, considerada em conjunto com os desenhos que a acompanham, nos quais:
Figura 1 ilustra uma vista em perspectiva de um sistema de rastreamento, de acordo com uma modalidade da presente invenção;
Figura 2A ilustra um controlador de jogos possuindo uma seção de bola, de acordo com uma modalidade da presente invenção;
Figura 2B ilustra um outro controlador de jogos possuindo uma outra seção de bola, de acordo com uma outra modalidade da presente invenção;
Figura 2C ilustra bolas de captura de movimento múltiplas dispostas em um usuário, de acordo com uma modalidade da presente invenção;
Figura 3 ilustra um exemplo de um objeto sendo movido através de um trajeto de movimento rico, de acordo com uma modalidade da presente invenção;
Figura 4 ilustra um diagrama em blocos de um sistema de rastreamento, de acordo com uma modalidade da presente invenção;
Figura 5 mostra um diagrama esquemático de um ambiente multijogador, de acordo com uma modalidade da presente invenção;
Figura 6 ilustra um diagrama de fluxo de uma modalidade para um método para calibrar um sistema de rastreamento;
Figura 7 ilustra um diagrama de fluxo de uma outra modalidade para um método para calibrar um sistema de rastreamento;
Figura 8 ilustra uma esfera projetada sobre diferentes pontos de um plano de geração de imagem de uma câmera, de acordo com uma modalidade da presente invenção;
Figura 9 ilustra um diagrama de fluxo de uma modalidade para um método para determinar um campo de visão de uma câmera, usando uma projeção elíptica de uma esfera sobre um plano de geração de imagem de uma câmera;
Figura 10 ilustra uma esfera projetada como uma elipse sobre um plano de imagem de uma câmera, de acordo com uma modalidade da presente invenção;
Figura 11 ilustra hardware e interfaces de usuário que podem ser usadas para determinar localização de controlador, de acordo com uma modalidade da presente invenção;
Figura 12 ilustra hardware adicional que pode ser usado para processar instruções, de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DETALHADA
[05] E descrito aqui um método e aparelho para calibrar um sistema de rastreamento para uso em um sistema de jogos. Em uma modalidade, para calibrar o sistema de rastreamento, dados de posição (por exemplo, localizações de imagem e tamanhos de imagem) de um objeto rastreado são recebidos por um sensor de posição à medida que o objeto rastreado é movido através de um trajeto de movimento rico. Adicionalmente, dados inerciais são recebidos, os quais correspondem ao objeto rastreado, à medida que o objeto rastreado é movido através do trajeto de movimento rico. Os dados de posição são convertidos em um sistema de coordenadas tridimensional do sensor de posição. Em uma modalidade, localizações de imagem são convertidas para o sistema de coordenadas tridimensional, com base nos tamanhos de imagens correspondentes e um campo de visualização do sensor de posição. O campo de visualização do sensor de posição pode ou não ser conhecido. Uma aceleração do objeto rastreado é computada no sistema de coordenadas tridimensional do sistema do sensor de posição. Os dados inerciais são então novamente reconciliados com a aceleração computada, calibrando o sistema de rastreamento. Reconciliar os dados inerciais com a aceleração computada pode incluir um passo do sensor de posição e computar um giro relativo entre o sensor de posição e o objeto rastreado. Reconciliar os dados inerciais com a aceleração computada pode também incluir computar o campo de visão do sensor de posição.
[06] Na descrição a seguir, numerosos detalhes são relatados. Será aparente, entretanto, a um especialista na técnica, que a presente invenção pode ser praticada sem estes detalhes específicos. Em algumas situações, estruturas e dispositivos bem conhecidos são mostrados em forma de diagrama em blocos ao invés de detalhe, no sentido de evitar obscurecer a presente invenção.
[07] Algumas porções da descrição detalhada que se segue são apresentadas em termos de algoritmos e representações simbólicas de operações sobre bits de dados, dentro de uma memória de computador. Estas descrições algorítmicas e representações são os meios usados pelos especialistas na técnica nas técnicas de processamento de dados, para conduzir mais efetivamente a substância de seu trabalho a outros especialistas na técnica. Um algoritmo é aqui, e geralmente, concebido para ser uma sequência auto consistente de etapas conduzindo ao resultado desejado. As etapas são aquelas requerendo manipulações físicas de quantidades físicas. Usualmente, embora não necessariamente, estas quantidades tomam a forma de sinais elétricos ou magnéticos capazes de serem armazenados, transferidos, combinados, comparados e manipulados de outra forma. Tem sido provado ser conveniente, por vezes, principalmente por razões de uso comum, referir- se a estes sinais como bits, valores, elementos, símbolos, caracteres, termos, números ou similares.
[08] Deveria se ter em mente, entretanto, que todos estes e termos similares devem ser associados às quantidades físicas apropriadas e são meramente rótulos convenientes aplicados a estas quantidades. A menos que especificamente declarado em contrário, conforme aparente a partir da descrição a seguir, é verificado que através da descrição, discussões utilizando termos como “processar”, “computar”, converter”, “reconciliar”, “determinar” ou similares, referem-se às ações e processos de um sistema de computador, ou dispositivo de computação eletrônica similar, que manipula e transforma dados representados como quantidades físicas (por exemplo, eletrônicas) dentro dos registros do sistema de computador e memórias em outros dados similarmente representados como quantidades físicas dentro das memórias ou registros ou outra armazenado de informação, dispositivos de transmissão ou visualização.
[09] A presente invenção também se relaciona a um aparelho para efetuar as operações. Este aparelho pode ser especialmente construído para as finalidades requeridas, ou pode compreender um computador de finalidade geral seletivamente ativado ou reconfigurado por um programa de computador armazenado no computador. Em uma modalidade, o aparelho para executar as operações inclui aqui um console de jogos (por exemplo, um Playstation® da Sony, um Nintendo Wii®, um Microsoft Xbox®, etc.). Um programa de computador pode ser armazenado em um meio de armazenamento legível por computador, tal como, porém não limitado a qualquer tipo de disco, incluindo discos floppy, discos ópticos (por exemplo, memórias de somente leitura de discos compactos (CD-ROMs), discos de vídeo digital (DVDs), Discos Blu-Ray™, etc.) e discos magneto-ópticos, memórias de somente leitura (ROMs), memórias de acesso randômico (RAMs), EPROMs, EEPROMs, cartões magnéticos ou ópticos, ou qualquer tipo de meios adequados para armazenar instruções eletrônicas.
[010] Um meio legível por máquina inclui qualquer mecanismo para armazenar ou transmitir informação em uma forma legível por uma máquina (por exemplo, um computador). Por exemplo, um meio legível por máquina inclui um meio de armazenamento legível por máquina (por exemplo, memória de somente leitura (ROM), memória de acesso randômico (RAM), meio de armazenamento de disco magnético, meio de armazenamento óptica, dispositivos de memória flash, etc.), um meio de transmissão legível por máquina (elétrico, óptico, acústico ou outra forma de sinais propagados (por exemplo, ondas portadoras, sinais infravermelho, sinais digitais, etc.)), etc.
[011] Figura 1 ilustra uma vista em perspectiva de um sistema de rastreamento 100 de acordo com uma modalidade da presente invenção. O sistema de rastreamento 100 inclui um sensor de posição 105 e um dispositivo de computação 115 que processa dados recebidos pelo sensor de posição 105 e pelo objeto 110. Em uma modalidade, o sistema de rastreamento 100 é um componente de um sistema de jogos. Altemativamente, o sistema de rastreamento 100 pode ser um componente de um sistema de captura de movimento.
[012] O sensor de posição 105 é um sensor que mede posições do objeto 110 em espaço bidimensional ou tridimensional em relação ao sensor de posição 105. Dados de posição (por exemplo, imagens) obtidos pelo sensor de posição 105 estão em um quadro de referência 150 do sensor de posição 105 que pode ser definido por qualquer plano de imagem e um vetor normal ao plano de imagem. Um quadro de referência é definido aqui como um sistema de coordenadas dentro do qual se mede a posição de um objeto, orientação e outras propriedades. Os termos quadro de referência e sistema de coordenadas são usados intercambiavelmente através deste pedido.
[013] Conforme mostrado, o sensor de posição 105 é posicionado no topo de um conjunto de televisão 120, com uma inclinação negativa 145 em relação ao piso 150. A inclinação 150 é um ângulo entre um eixo horizontal do quadro de referência 150 do sensor de posição que está no plano de imagem do sensor de posição 105 e um plano perpendicular à gravidade 135. Enquanto a inclinação 145 for um valor não nulo, o sensor de posição 105 possui um quadro de referência 150 que é diferente de um quadro de referência mundial 140 (definido como um quadro de referência que possui um eixo (por exemplo, y 2) alinhado com a gravidade 135).
[014] Em uma modalidade, o sensor de posição 105 é uma câmera de vídeo padrão. Em tal modalidade, o sensor de posição 105 pode capturar informação de profundidade (distância 130 entre o sensor de posição 105 e o objeto 110) com base em informação pré-definidas que identifica um tamanho do objeto 110 e/ou com base em informação pré-definida que identifica um campo de visão 125 (FOV) do sensor de posição 105. O campo de visão 125 é a extensão angular de uma dada cena capturada pelo sensor de posição 105. O campo de visão define a distorção (por exemplo, quantidade de zoom) de uma imagem, causada por uma lente de câmera. À medida que o objeto 110 é movido adicionalmente a partir do sensor de posição 105 (isto é, à medida que a distância 130 é aumentada) uma imagem do objeto 110, conforme capturada pelo sensor de posição 105, torna-se menor. Portanto, a distância 130 do objeto 110 ao sensor de posição 105 pode ser determinada com base em uma relação do tamanho de imagem do objeto rastreado 110 (por exemplo, conforme medido em pixels) para um tamanho real conhecido do objeto rastreado 110 desde que um campo de visão 125 do sensor de posição 105 seja conhecido. Se tanto o campo de visão 125 como o tamanho do objeto 110 são desconhecidos, o valor desconhecido pode ser resolvido, por exemplo, conforme descrito abaixo com referência à Figura 9.
[015] Em uma outra modalidade, o sensor de posição 105 é uma câmera Z (uma câmera de vídeo de lente única capaz de capturar vídeo com informação de profundidade) ou uma câmera estéreo (câmera de vídeo com 2 ou mais lentes que pode capturar imagens tridimensionais). Em tal modalidade, o sensor de posição 105 pode capturar informação de profundidade sem ser pré configurado com informação identificando um tamanho do objeto 110.
[016] Ainda em uma outra modalidade, o sensor de posição 105 é um arranjo de sensor, tal como um arranjo de sensor ultra-sônico, ou um detector fotônico. Tal sensor de posição 105 detecta a distância entre o sensor de posição 105 e o objeto 110 usando tempo de vôo ou coerência de fase (por exemplo, da luz ou som) e detecta posições verticais e horizontais do objeto 110 usando triangulação.
[017] O objeto 110 é um dispositivo eletrônico que inclui ou está conectado a um ou mais sensores inerciais. Os sensor inerciais podem medir acelerações ao longo de um único eixo ou de eixos múltiplos, e pode medir acelerações lineares bem como angulares. Em uma modalidade, o objeto 110 é um dispositivo eletrônico portátil ou uma porção de um dispositivo eletrônico portátil tal como um controlador de jogos, conforme mostrado nas Figuras 2A e 2B. Em uma outra modalidade, objeto 110 é uma bola de captura de movimento (mocap) conforme mostrado na Figura 2C. O objeto 110 pode ter uma forma arbitrária, tal como um quadrado, esfera, triângulo ou forma mais complicada. Em uma modalidade, o objeto 110 apresenta uma forma esférica.
[018] Figura 2A ilustra um controlador de jogos 200 possuindo uma seção de bola 205 de acordo com uma modalidade da presente invenção. Figura 2B ilustra um outro controlador de jogos 210 possuindo uma seção de bola 215, de acordo com uma outra modalidade da presente invenção. Em certas realizações, as seções de bola 205 e 215 correspondem ao objeto 110 da Figura 1. As seções de bola 205, 215 podem ser de cores diferentes e, em uma modalidade, as seções de bola 205, 215 podem iluminar. Embora uma seção de bola esférica seja ilustrada, as seções de bola 205, 215 podem ter outras formas para fins de rastreamento visual tal como uma esfera parcial, uma esfera imperfeita, uma bola alongada (como aquela usada em futebol americano ou em rúgbi), uma forma tipo cubo, etc. Em uma modalidade, a seção de bola 205, 215 é de 4 cm de diâmetro. Entretanto, outros tamanhos maiores ou menores são também possíveis. Tamanhos maiores auxiliam no reconhecimento visual. Por exemplo, uma bola com 5 cm de diâmetro pode prover cerca de 55 por cento mais pixels para reconhecimento de imagem que uma bola de 4 cm.
[019] Figura 2C ilustra bolas mocap múltiplas 220 dispostas em um usuário 225, de acordo com uma modalidade da presente invenção. Bolas mocap 220 são marcadores que são usados por um usuário 225 próximo a cada junção, para habilitar um sensor de posição a capturar e identificar o movimento do usuário, com base nas posições ou ângulos entre as bolas mocap 220. Em uma modalidade, as bolas mocap 220 são fixadas a uma sequência de captura de movimento.
[020] Retomando à Figura 1, o objeto 110 e o sensor de posição 105 são conectados ao dispositivo de computação 115 através de conexões com fio e/ou sem fio. Exemplos de conexões com fio incluem conexões feitas via um cabo IEEE 1394 (firewire), um cabo Ethernet, e um cabo de barramento serial universal (USB), etc. Exemplos de conexões sem fio incluem conexões de fidelidade sem fio (WiFi™), conexões Bluetooth®, Zigbee® e assim por diante. Na modalidade ilustrada, o objeto 110 é conectado sem fio ao dispositivo de computação 115 e o sensor de posição 105 é conectado ao dispositivo de computação 115 via uma conexão com fio.
[021] O dispositivo de computação 115 pode ser um console de videogame, um computador pessoal, um quiosque de jogos, ou outro aparelho de computação. O dispositivo de computação 115 pode executar jogos ou outras aplicações que podem responder a entrada de usuário a partir do objeto 110. O objeto 110 é rastreado, e o movimento do objeto 110 provê a entrada de usuário.
[022] Antes que o sistema de rastreamento 100 possa rastrear precisamente o objeto 110, o sistema de rastreamento 100 necessita ser calibrado. Calibrar o sistema de rastreamento 100 inclui computar um passo 145 do sensor de posição 105 e computar um giro relativo entre o sensor de posição 105 e o objeto 110. O giro relativo entre o objeto 110 e o sensor de posição 105 representa as diferenças em posição entre o objeto 110 e o sensor de posição 105. Em uma modalidade, giro zero foi definido como sendo obtido quando o sensor de posição 105 e o objeto 110, quando o objeto é apontado perpendicular a um plano de geração de imagem do sensor de posição 105. Altemativamente, giro zero pode ser definido como sendo alcançado quando o objeto 110 é indicado diretamente na direção do sensor de posição 105. Se o sensor de posição 105 é uma câmera com um campo de visão 125 desconhecido, calibrar o sistema de rastreamento 100 também inclui computar o campo de visão 125 do sensor de posição 105. Se o objeto 110 tem um tamanho desconhecido, calibrar o sistema de rastreamento 100 pode também incluir determinar o tamanho do objeto 110.
[023] No sentido do sensor inercial disposto no objeto 110 coletar dados inerciais suficientes para calibração, o objeto 110 deveria ser movido por um usuário. O objeto 110 deveria ser movido dentro do quadro de visualização 125 do sensor de posição 105, para assegurar que cada medição de dados inerciais possui uma medição de dados de posição correspondentes (por exemplo, um tamanho de imagem correspondente e uma medição de localização de imagem). Uma efetividade da calibração pode ser aumentada se o objeto 110 é movido através de um trajeto de movimento rico dentro do campo de visão 125 do sensor de posição 105. Um trajeto de movimento rico é definido aqui como um movimento que excede um limite de aceleração mínimo e que ocorre em pelo menos duas dimensões (por exemplo, em um plano). Em uma modalidade, um trajeto de movimento rico inclui movimento na direção e/ou para longe do sensor de posição 105. Um trajeto de movimento rico que inclui aceleração em três dimensões em uma modalidade, é preferível a um trajeto de movimento rico que inclua aceleração apenas em duas dimensões.
[024] Dados inerciais recebidos apresentam uma incerteza que é definida por uma quantidade de ruído de sinal que acompanha os dados inerciais. À medida que a magnitude das acelerações medidas pelo objeto 110 diminui, uma relação sinal ruído (relação de uma potência de sinal para a potência de ruído corrompendo o sinal) aumenta. Uma diminuição na relação sinal ruído faz com que os dados inerciais se tomem menos precisos. Em uma modalidade, o limite de aceleração mínimo é ajustado para evitar que os dados inerciais caiam abaixo de uma relação sinal ruído mínima.
[025] Um exemplo de um objeto sendo movido através de um trajeto de movimento rico de acordo com uma modalidade da presente invenção é ilustrado na Figura 3. Conforme mostrado, o objeto é uma bola 305 fixada à extremidade de um controlador de jogos 310 e o trajeto de movimento rico 315 é um trajeto circular em relação à cabeça do usuário. Caminhos circulares são vantajosos em que o movimento em um círculo provê aceleração constante. Portanto, um trajeto circular provê dados inerciais aumentados. O trajeto de movimento rico 315 ocorre dentro de um campo de visão 320 de um sensor de posição, e inclui movimento na direção e afastando-se do sensor de posição.
[026] Figura 4 ilustra um diagrama em blocos de um sistema de rastreamento 400, de acordo com uma modalidade da presente invenção. O sistema de rastreamento 400 inclui um dispositivo de computação 415 fisicamente conectado a um sensor de posição 405 e conectado sem fio a um objeto 410 que é rastreado pelo sensor de posição 405. Deveria ser notado que o dispositivo de computação 415 pode ser conectado sem fio ao sensor de posição 405 e/ou conectado fisicamente ao objeto 410. Em uma modalidade, o sistema de rastreamento 400 corresponde ao sistema de rastreamento 100 da Figura 1.
[027] O objeto 410 inclui um ou mais sensores inerciais 420 que possuem uma posição fixa no objeto 410. Em uma modalidade, os sensores inerciais 420 incluem um ou mais giroscópios e um ou mais acelerômetros. Os giroscópios usam os princípios de momento angular para detectar modificações na orientação (por exemplo, mudanças em passo, rolarem e torção). Acelerômetros medem acelerações ao longo de um ou mais eixos. O giroscópio e o acelerômetro podem ser sensores separados, ou podem ser combinados em um único sensor. Em uma modalidade, o giroscópio e o acelerômetro são dispositivos de sistemas micro-eletromecânicos (MEMS). Àmedida que o objeto 410 é movido (por exemplo, através de um trajeto de movimento rico), os sensores inerciais 420 coletam dados inerciais e os transmitem ao dispositivo de computação 415. Dados inerciais coletados pelos sensores inerciais 420 estão em um quadro de referência do objeto 410.
[028] O sensor de posição 405 pode ser uma câmera de vídeo, uma câmera Z, uma câmera estéreo, um arranjo de sensor ultra-sônico, um detector fotônico ou outro dispositivo capaz de capturar uma imagem. À medida que o objeto 410 é movido (por exemplo, através de um trajeto de movimento rico), o sensor de posição 405 captura dados de posição (por exemplo, imagens) do objeto 410 que podem incluir informação de tamanho de imagem e localização de imagem. O sensor de posição 405 então transmite os dados de posição ao dispositivo de computação 415. Em uma modalidade, o sensor de posição 405 envia fluxos de dados de posição para o dispositivo de computação 415 em tempo real, à medida que os dados de posição são obtidos.
[029] Em uma modalidade, à medida que o objeto 410 é rastreado pelo sensor de posição 405, as mudanças de posição do objeto 410 são usadas como uma entrada para o dispositivo de computação 415 para controlar um jogo, aplicação de computador, etc. Por exemplo, as mudanças de posição do objeto 410 podem ser usadas para controlar um caractere em um jogo de perspectiva em uma primeira pessoa ou terceira pessoa, para mover um cursor de mouse sobre uma tela, e assim por diante. Em uma outra modalidade, os dados inerciais recebidos do objeto 410 são usados como uma entrada para o dispositivo de computação 415. Alternativamente, os dados inerciais podem ser usados em combinação com os dados de posição obtidos pelo sensor de posição 405, para prover uma entrada precisa e exata para o dispositivo de computação 415.
[030] O dispositivo de computação 415 pode ser um console de videogame, computador pessoal, quiosque de jogos, etc. Em uma modalidade, o dispositivo de computação 415 inclui uma lógica de calibração 432 que calibra o sistema de rastreamento 400 com base nos dados de posição obtidos do sensor de posição 405 e os dados inerciais obtidos do objeto 410. Em uma modalidade adicional, a lógica de calibração 432 inclui um componente lógico de dados inerciais 425, um componente lógico de dados de posição 430 e um componente de lógica de conciliação 432, cada um dos quais efetua diferentes operações relacionadas a calibração.
[031] O componente lógico de dados de posição 430 analisa dados de posição (por exemplo, imagens) recebidos do sensor de posição 405 (por exemplo, para encontrar o objeto 410 nas imagens). Em uma modalidade, uma localização de imagem do objeto 410 é determinada analisando um grupo de pixel que representa o objeto 410 na imagem, para encontrar o centróide do objeto. Em uma modalidade, uma distribuição Gaussiana de cada pixel pode ser calculada e usada para prover precisão de sub pixel da localização do centróide.
[032] Em uma modalidade, o componente lógico de dados de posição 430 converte a informação de localização de imagem para um sistema de coordenadas tridimensional do sensor de posição 405. As localizações de imagens podem ser convertidas para o sistema de coordenadas tridimensional usando as seguintes equações:
Figure img0001
Figure img0002
Figure img0003
onde Xw é a posição horizontal no quadro de referência mundial, Yw é a posição no quadro de referência mundial, Xi é a posição horizontal na imagem, Yi é a posição vertical na imagem, Zw é a distância entre o sensor de posição e o objeto, f é a distância focal do sensor de posição (um valor proporcional ao campo de visualização), R é o tamanho do objeto (por exemplo, raio de uma esfera em mm), e r é o tamanho de imagem do objeto (por exemplo, raio de uma projeção da esfera em pixels)
[033] Uma vez que os dados de posição (por exemplo, localizações de imagem) são convertidos no sistema de coordenadas tridimensional, o componente lógico de dados de posição 430 obtém uma segunda derivada da informação de localização com respeito ao tempo, para computar uma aceleração do objeto 410 no sistema de coordenadas tridimensional do sensor de posição 405, com base em posições variáveis do centróide ao longo do tempo. O componente lógico de dados de posição 430 então provê a aceleração computada ao componente de lógica de conciliação 435. Em uma modalidade, o componente lógico de dados de posição 430 suaviza os dados de posição (por exemplo, localizações de imagem) antes de computar a aceleração.
[034] O componente lógico de dados inerciais 425 processa os dados inerciais para colocá-los em uma condição para serem reconciliados com a aceleração computada. Em uma modalidade, o componente lógico de dados inerciais 425 remove uma aceleração causada pela gravidade a partir dos dados inerciais, e então passa os dados inerciais para o componente de lógica de conciliação 435.
[035] Em uma modalidade, as diferenças relativas entre o quadro de referência do sensor de posição e o quadro de referência usado para os dados inerciais precisam ser inalteradas. Entretanto, o quadro de referência do objeto 410 muda em relação ao quadro de referência do sensor de posição 405, à medida que o objeto 410 muda em passo e rolagem. Ainda mais, se o objeto 410 não mantém um passo e rolagem fixos, então os dados inerciais incluem medições de acelerações causadas por mudanças de passo e/ou rolagem. Tais acelerações não refletem mudanças na posição do objeto 410, e portanto, não podem prover informação útil para calibração. Tais acelerações não podem também ser calculadas com base em dados de posição, e portanto, não podem ser refletidas na aceleração computada que é determinada pelo componente lógico de dados de posição 430. Isto pode causar erros de calibração.
[036] Em uma modalidade, o componente lógico de dados inerciais 425 deixa os dados inerciais no quadro de referência do objeto 410. O componente lógico de dados inerciais 425 pode deixar os dados inerciais no quadro de referência do objeto 410, por exemplo, se o objeto mantém um passo e rolagem fixos através de um trajeto de movimento rico. Adicionalmente, um quadro de referência variável dos dados inerciais pode não causar erros de calibração significativos, se as mudanças em passo e rolagem se cancelam através do trajeto de movimento rico. Se as mudanças de passo e rolagem em média são zero, então os erros causados pelas mudanças entre os quadros de referência, e por acelerações devido a mudanças de passo e rolagem, podem se cancelar aproximadamente. Isto pode ser obtido, por exemplo, se o trajeto de movimento rico for um pequeno trajeto circular diante de um usuário, no qual o usuário gira o objeto 410 em relação a seu cotovelo, sem mover seu pulso ou ombro. Sob tais condições, o componente lógico de dados inerciais 425 pode deixar os dados inerciais em um quadro de referência do objeto 410.
[037] Em uma modalidade, o componente lógico de dados inerciais 425 processa os dados inerciais para converter os dados inerciais a partir de um quadro de referência do objeto 410 para um quadro de referência mundial (quadro de referência possuindo um eixo alinhado com a gravidade). A gravidade informa positivamente uma força constante para baixo que pode ser medida pelo sensor inercial 420. Com base na força para baixo da gravidade, detectada pelo sensor inercial 420, dados inerciais podem ser convertidos para o quadro de referência mundial, calculando um passo e rolagem do objeto 410 em relação ao quadro de referência mundial. À medida que o objeto 410 é movido, um giroscópio pode ser usado para determinar acelerações angulares, e então determinar variações de passo e rolagem do objeto 410 relativas a um passo e rolagem iniciais que foram medidos quando o objeto 410 estava em repouso. Portanto, à medida que o objeto 410 é movido, dados inerciais podem ser convertidos para o quadro de referência mundial. Isto corrige erros que ocorreriam caso contrário, se fosse introduzido pela relação variável entre os quadros de referência.
[038] Em uma modalidade, o sensor inercial 420 não está localizado em um centro do objeto 410. Portanto, uma vez que as acelerações medidas pelo sensor de posição 405 são baseadas no centróide do objeto 410, o sensor inercial 420 não mede a mesma aceleração que o componente lógico de dados de posição 430 computa com base nos dados de posição. Por exemplo, se o objeto 410 é agarrado em tomo de um arco, o sensor de posição 405 pode observar uma aceleração maior que é gravada pelo sensor inercial 420. Esta discrepância é devida ao sensor inercial 420 estar mais próximo do centro do objeto 410 para o centro do arco.
[039] A discrepância causada pelo deslocamento entre o sensor inercial 420 e o centro do objeto 410 pode ser removida se o deslocamento é conhecido. Uma taxa de rotação (medida como força centrípeta) pode ser medida por um giroscópio e usada em conjunto com o deslocamento, para calcular qual aceleração será observada por um sensor inercial 420 localizado no centro do objeto 410. Em uma modalidade, é esta aceleração que é passada para o componente de lógica de conciliação 435.
[040] O componente de lógica de conciliação 435 concilia a aceleração computada a partir do componente lógico de dados de posição 430 com os dados inerciais a partir do componente lógico de dados inerciais 425, para calibrar o sistema de rastreamento 400.
[041] Reconciliar os dados inerciais com a aceleração computada inclui calcular um passo do sensor de posição 405 e um giro relativo entre o sensor de posição 405 e o objeto 410 rastreado. Resolver para o passo do sensor de posição 405 provê um ângulo de rotação que faria com que o sensor de posição fosse alinhado perpendicular à gravidade. Com vistas ao giro, o objeto 410 inicialmente possui posição desconhecida. Portanto, uma posição inicial do objeto 410 é arbitrariamente escolhida como uma posição zero. O ângulo entre a posição zero inicial do objeto 410 e uma posição do sensor de posição 405 (giro) é calculado. A posição zero do objeto 410 pode então ser modificada de tal modo que esteja alinhada com a posição do sensor de posição 405. O sistema de rastreamento 400 pode então detectar a direção na qual o objeto 410 é apontado, monitorando o deslocamento do objeto 410 a partir da posição zero usando, por exemplo, um giroscópio disposto dentro do objeto 410.
[042] Os dados inerciais podem ser representados como um primeiro conjunto de vetores e a aceleração computada pode ser representada com um segundo conjunto de vetores. A aceleração computada e os dados inerciais representam diferentes medições do mesmo movimento de objeto. Portanto, a aceleração computada e os dados inerciais incluem um conjunto casado de vetores, no qual cada vetor do primeiro conjunto de vetores corresponde a um vetor no segundo conjunto de vetores. Vetores correspondentes apresentam a mesma origem e a mesma magnitude. A única diferença entre os dois conjuntos de vetores é o quadro de referência em que estes foram medidos. Consequentemente, os dados inerciais podem ser reconcihados com a aceleração computada, encontrando as rotações no espaço necessário para alinhar os quadros de referência. Em uma modalidade, na qual um campo de visão do sensor de posição 405 é desconhecido, uma transformação por escalamento é também efetuada para reconciliar os dados inerciais com a aceleração computada.
[043] Em uma modalidade, o passo e giro são resolvidos por vetores rotativos de um dos conjuntos de vetores por primeiros ângulos de potencial múltiplo (representando passo) e por segundos ângulos de potencial múltiplo (representando giro). Muitas combinações diferentes de primeiros ângulos potenciais e segundos ângulos potenciais podem ser tentadas. A combinação de um primeiro ângulo potencial e um segundo ângulo potencial que produz a menor diferença entre os vetores girados do primeiro conjunto de vetores e os vetores correspondentes do segundo conjunto de vetores são o primeiro e segundo ângulos corretos. Uma técnica de gradiente decrescente, técnica de quadrados mínimos, técnica de ajuste de quadrados mínimos ou outra técnica de minimização de erro podem ser usadas para minimizar o número de combinações de primeiros ângulos potenciais e segundos ângulos potenciais que são testados para encontrar o primeiro e segundo ângulo corretos.
[044] Cada vetor que compreende movimento de objeto é representado no primeiro conjunto de vetores como Vi1 e no segundo conjunto de vetores Vi2 . Para todos os vetores Vi1 no primeiro conjunto de vetores, o vetor Vi1 é transformado por uma rotação tridimensional que é baseada no primeiro e segundo ângulos potenciais, terminando com um vetor transformado Vil’. Uma diferença Dθ é então encontrada entre Vi1 e Vi2 para cada vetor . As diferenças podem então ser combinadas usando técnicas de minimização de erro. Por exemplo, as diferenças para cada par de vetor podem ser submetidas a média. Em uma modalidade, a soma submetida a média das diferenças entre os vetores girados Vi1 do primeiro conjunto de vetores e os vetores casados Vi2 do segundo conjunto de vetores é calculada. Em uma outra modalidade, a soma das diferenças quadradas pode ser computada usando, por exemplo, o seguinte algoritmo:
Figure img0004
[045] Outras técnicas de minimização de erro podem também ser usadas para combinar as diferenças de vetor.
[046] O ângulo θ que produz o mínimo é o ângulo tridimensional correto. Portanto, o primeiro ângulo potencial e o segundo ângulo potencial que formam o ângulo tridimensional θ representam o passo do sensor de posição 405 e o giro relativo entre o sensor de posição 405 e o objeto 410. Não importa qual conjunto de vetores é girado, uma vez que o ângulo entre os dois conjuntos de vetores é o mesmo, independente de qual conjunto é girado.
[047] Em uma outra modalidade, os dados inerciais são reconciliados com a aceleração computada, para computar rotação tridimensional que alinha os sistemas de coordenadas. Uma rotação tridimensional pode ser definida por um eixo e um ângulo. O eixo de rotação ê para a rotação tridimensional pode ser resolvido obtendo o produto cruzado de vetores do primeiro conjunto de vetores do primeiro conjunto de vetores Vi1 com o segundo conjunto de vetores Vi2 , conforme segue:
Figure img0005
[048] O produto escalar de Vi1 e Vi2 pode também ser obtido para
Figure img0006
encontrar um escalador s que representa a projeção Vi1 sobre Vi 2 , como segue:
Figure img0007
[049] O ângulo da rotação tridimensional θ pode então ser decomposto nos quadros de referência para determinar os ângulos de rotação em relação a cada um dos eixos daquele quadro de referência. Por exemplo, a rotação tridimensional pode ser projetada sobre o plano yz (plano ao qual o eixo x é normal) para determinar a quantidade de rotação que está ocorrendo em relação ao eixo x, e pode ser projetada sobre o plano xz (plano ao qual o eixo y é normal) para determinar a quantidade de rotação que está ocorrendo em relação ao eixo y. Se o ângulo tridimensional é projetado no quadro de referência mundial, a rotação em relação ao eixo que está alinhado com a gravidade é o giro, e a rotação em relação ao eixo que é perpendicular à gravidade e no plano de geração de imagem do sensor de posição é o passo. A rotação tridimensional pode ser decomposta em rotações em relação aos eixos dos quadros de referência usando, por exemplo, três matrizes ortogonais, uma matriz de rotação ou um quatémio.
[050] Quatémios formam uma álgebra de divisão normatizada de quatro dimensões sobre os números reais. Quatémios provêem uma representação útil de transformações de coordenadas, porque podem ser computados mais rapidamente que transformações de matriz, e jamais perdem sua ortogonalidade. Uma representação de quatémio de uma rotação é escrita como um vetor de quatro dimensões.
Figure img0008
[051] Em termos do quadro de referência mundial, os elementos do quatémio são expressos conforme segue:
Figure img0009
Figure img0010
Figure img0011
Figure img0012
[052] Onde êx, êy e êz representam os vetores unitários ao longos dos eixos x, y e z do quadro de referência mundial, respectivamente.
[053] O quatémio representa plenamente ambas rotações de giro e passo que são necessárias para alinhar os quadros de referência. Entretanto, para prover um resultado mais intuitivo, o quatémio pode ser convertido para ângulos de Euler de passo, giro e rolagem. A rolagem, passo e giro podem ser computados a partir do quatémio, de acordo com as fórmulas:
Figure img0013
Figure img0014
Figure img0015
[054] Os ângulos de giro, passo e rolagem podem ser determinados para cada par de vetor. Os ângulos de passo, giro e rolagem podem então ser combinados para determinar um passo do sensor de posição e um giro relativo entre o sensor de posição 405 e o objeto 410 rastreado. Os ângulo giro, passo e rolagem podem ser combinados usando uma média, uma média ponderada ou outra função de combinação.
[055] Em uma modalidade, o sensor de posição é suposto possuir uma rolagem de zero. Portanto, em uma modalidade, a rolagem para pares de vetores pode também ser suposta zero. Entretanto, em certas realizações, ruído pode introduzir uma diferença entre os vetores em um par de vetores que indica uma rolagem não zero. Em tais realizações, a rolagem pode não ser suposta zero, e pode ao invés disso ser calculada conforme descrito acima. Altemativamente, a rolagem pode ser suposta zero, e pares de vetores que indicam uma rolagem não zero podem ser descartados. Ao invés de descartar pares de vetores, um valor de diferença pode ser determinado para os pares de vetores, onde a diferença é causada pela rolagem zero suposta. Pares de vetores possuindo o menor valor de diferença podem então ser usados para determinar o passo do sensor de posição e um giro relativo entre o sensor de posição 405 e o objeto 410 rastreado. Outros métodos para compensar ruído podem também ser usados.
[056] Figura 5 mostra um diagrama esquemático de um ambiente multijogos 500, no qual a informação visual é usada para determinar as localizações de diferentes controladores mantidos pelos jogadores, de acordo com uma modalidade. No ambiente multijogos 500, o sensor de posição 508 obtém uma imagem de um campo de jogos 518 e a imagem é analisada para obter a localização dos controladores com bola anexada C1, C2, C4 e C5. Distâncias dz1, dz2, dz4 e dz5 são estimadas analisando a forma e tamanho das respectivas bolas na imagem capturada. Um dispositivo de computação 502 usa as coordenadas obtidas e distâncias para produzir representações dos jogadores na tela 504, avatares 512a e 512b respectivamente. Uma distância típica para bom reconhecimento de imagem é de cerca de 3 m. Uma vantagem de usar reconhecimento visual é que os melhoramentos na captura de imagem e reconhecimento de imagem podem ser incluídos no sistema, sem ter que modificar o controlador.
[057] Figura 6 ilustra um diagrama de fluxo de uma modalidade de um método 600 para calibrar um sistema de rastreamento. O método pode ser executado por lógica de processamento que pode compreender hardware (por exemplo, circuitos, lógica dedicada, lógica programável, microcódigo, etc.), software (tal como instruções executadas em um dispositivo de processamento), ou uma combinação destes. Em uma modalidade, o método 600 é executado pelo dispositivo de computação 115 da Figura 1. Em uma modalidade, o método 600 é executado cada vez que um jogo ou outra aplicação é iniciado no dispositivo de computação 115. Altemativamente, o método 600 pode ser executado cada vez que o movimento de um objeto rastreado é detectado após um período de inatividade.
[058] Referindo-se à Figura 6, no bloco 605, o dispositivo de computação recebe dados de posição (por exemplo, localizações de imagem e tamanhos de imagem) de um objeto rastreado a partir de um sensor de posição, à medida que o objeto é movido através de um trajeto de movimento rico. Em uma modalidade, o dispositivo de computação recebe imagens do objeto em um quadro de referência bidimensional do sensor de posição.
[059] No bloco 610, o dispositivo de computação recebe dados inerciais a partir do objeto rastreado, à medida que o objeto rastreado é movido através do trajeto de movimento rico. Os dados inerciais recebidos podem estar em um quadro de referência do objeto rastreado.
[060] Em uma modalidade, as diferenças relativas entre o quadro de referência do sensor de posição e o quadro de referência usado para os dados inerciais necessitam ser inalteradas. Entretanto, o quadro de referência do objeto muda em relação ao quadro de referência da câmera, à medida que o objeto varia em passo e rolagem. Portanto, no bloco 615, o sistema de rastreamento determina se o objeto rastreado mantém um passo e/ou rolagem aproximadamente fixos, à medida que o objeto é movido através do trajeto de movimento rico. Se o objeto rastreado mantém uma orientação aproximadamente fixa, então o método avança para o bloco 625. Entretanto, se o objeto rastreado varia em passo e/ou rolagem, o método continua para o bloco 620. Em uma modalidade, se as mudanças em passo e rolagem se aproximam na média para zero, então os erros causados pelas modificações entre os quadros de referência podem se cancelar aproximadamente. Sob tais condições, o método avança para o bloco 625.
[061] No bloco 620, o sensor de posição converte os dados inerciais recebidos para um quadro de referência mundial tridimensional. Esta conversão pode ser feita porque um sensor inercial disposto no objeto rastreado mede constantemente uma força para baixo da gravidade. No bloco 625, as localizações de imagem são convertidas para um sistema de coordenadas tridimensional do sensor de posição (a partir de um sistema de coordenadas bidimensional do sensor de posição).
[062] No bloco 630, uma aceleração do objeto rastreado é computada no sistema de coordenadas tridimensional do sensor de posição. Uma segunda derivada das localizações de imagem pode ser obtida com respeito ao tempo, para computar aceleração do objeto rastreado. Em uma modalidade, a aceleração é computada em tempo real à medida que os dados de posição são recebidos. Altemativamente, a aceleração pode ser computada periodicamente (por exemplo, a cada 10 milissegundos, a cada meio segundo, etc.), ou quando o movimento rico é completado.
[063] No bloco 635, os dados inerciais recebidos são reconciliados com a aceleração computada para completar a calibração do sensor de posição. Reconciliar os dados inerciais com a aceleração computada inclui determinar as rotações necessárias para alinhar os quadros de referência. Determinar rotações inclui calcular um passo do sensor de posição e um giro relativo entre o sensor de posição e o objeto rastreado. Em uma modalidade, o passo e giro são resolvidos girando vetores de um dos conjuntos de vetores por primeiros ângulos potenciais múltiplos e por segundos ângulos potenciais múltiplos, e selecionando um primeiro ângulo potencial e um segundo ângulo potencial que provêem o maior alinhamento entre os quadros de referência. Em uma outra modalidade, o passo e giro são explicitamente resolvidos. O passo e giro podem ser resolvidos usando uma matriz de rotação, três matrizes ortogonais que definem ângulos de Euler, um quatérnio unitário, etc.
[064] Figura 7 ilustra um diagrama de fluxo de uma outra modalidade de um método 700 para calibrar um sistema de rastreamento. O método pode ser executado por lógica de processamento que pode compreender hardware (por exemplo, circuitos, lógica dedicada, lógica programável, microcódigo, etc.), software (tal como instruções executadas em um dispositivo de processamento), ou uma combinação destes. Em uma modalidade, o método 700 é executado pelo dispositivo de computação 115 da Figura 1. Em uma modalidade, o método 700 é executado cada vez que um jogo ou outra aplicação é iniciado no dispositivo de computação 115. Altemativamente, o método 700 pode ser executado cada vez que o movimento de um objeto rastreado é detectado após um período de inatividade.
[065] Referindo-se à Figura 7, no bloco 705, o dispositivo de computação recebe dados de posição (por exemplo, localizações de imagem e tamanhos de imagem) de um objeto rastreado a partir de um sensor de posição, à medida que o objeto é movido através de um trajeto de movimento rico. No bloco 710, o dispositivo de computação recebe dados inerciais a partir do objeto rastreado, à medida que o objeto rastreado é movido através do trajeto de movimento rico. Os dados inerciais podem estar em um quadro de referência do objeto rastreado ou em um quadro de referência mundial.
[066] No bloco 715, os dados de posição (por exemplo, localizações de imagem) são convertidos para um sistema de coordenadas tridimensional do sensor de posição. No bloco 720, uma aceleração do objeto rastreado é computada no sistema de coordenadas tridimensional do sensor de posição. Uma segunda derivada das localizações de imagem pode ser obtida com respeito ao tempo para computar a aceleração do objeto rastreado.
[067] No bloco 725, o dispositivo de computação determina se os dados inerciais estão sincronizados com a aceleração computada. Cada vetor na aceleração computada corresponde a um vetor nos dados inerciais. Entretanto, devido a retardos no tempo de trânsito, tempo de computação, etc., uma temporização pode ser entre vetores dos dados inerciais e os correspondentes vetores da aceleração computada. Se os dados inerciais não estão sincronizados com a aceleração computada, o método continua para o bloco 730. Se os dados inerciais e a aceleração computada são sincronizados, o método continua para o bloco 735.
[068] No bloco 730, o dispositivo de computação coincide vetores do primeiro conjunto (dados inerciais) para próximo no tempo a vetores do segundo conjunto (aceleração computada) com base nas magnitudes dos vetores. Por exemplo, se um vetor no primeiro conjunto é um décimo de um segundo distante de um vetor no segundo conjunto, porém os dois vetores possuem uma magnitude aproximadamente igual, então os vetores podem ser alinhados no tempo. Alinhando todos os vetores do primeiro conjunto com vetores correspondentes do segundo conjunto, os dados inerciais e a aceleração computada tomam-se sincronizados.
[069] No bloco 735, os dados inerciais recebidos são reconciliados com a aceleração computada, para completar a calibração do sensor de posição. Reconciliar os dados inerciais com a aceleração computada inclui determinar as rotações necessárias para alinhar os quadros de referência. Reconciliar os dados inerciais com a aceleração computada inclui calcular um passo do sensor de posição e um giro relativo entre o sensor de posição e o objeto rastreado.
[070] O passo e giro podem ser computados separadamente para cada par de um vetor a partir dos dados inerciais e o vetor correspondente a partir da aceleração computada. Devido a ruído de sinal, o passo e giro computados para diferentes pares de vetores podem não coincidir. Em uma modalidade, o passo e giro são submetidos a média ao longo de pares de vetores múltiplos, para prover uma solução mais exata. Os pares de vetores podem também ser ponderados e/ou filtrados para aumentar adicionalmente a precisão do passo e giro.
[071] Em uma modalidade, no bloco 740, vetores possuindo uma magnitude menor que um limite de aceleração são filtrados da aceleração computada e dos dados inerciais. Dados inerciais recebidos possuem uma incerteza que é definida por uma quantidade de ruído de sinal que acompanha os dados inerciais. À medida que a magnitude das acelerações medida pelo objeto diminui, uma relação sinal ruído aumenta. Um decréscimo na relação sinal ruído faz com que os dados inerciais se tomem menos precisos. Portanto, um limite de aceleração mínimo pode ser ajustado para minimizar o erro.
[072] Em uma modalidade, no bloco 745, vetores são ponderados com base na magnitude. Vetores possuindo uma magnitude maior (representando acelerações maiores) são ponderados mais pesadamente que vetores com magnitudes menores. Quanto maior a magnitude de um vetor menos o vetor é influenciado pelo ruído (por exemplo, quanto maior a relação sinal ruído). Portanto, a precisão da calibração pode ser aumentada ponderando os vetores. Vetores podem ser ponderados linearmente com base na magnitude, ponderados com base no quadrado da magnitude ou ponderados de acordo com outras funções de ponderação. Para algumas técnicas de ponderação, pode ser desnecessário filtrar os vetores conforme executado no bloco 740. Por exemplo, se a função de ponderação é baseada no quadrado da magnitude do vetor, vetores possuindo uma pequena magnitude podem ser ponderados para aproximadamente zero.
[073] Métodos 600 e 700 calibram um sistema de rastreamento para encontrar uma orientação do sensor de posição relativa a um quadro de referência de um objeto e/ou relativa a um quadro de referência mundial de uma maneira que é conveniente e fácil para execução por um usuário. Ambos os métodos habilitam um dispositivo de computação para calibrar precisamente um sistema de rastreamento, com base na entrada de usuário mínima.
[074] Em alguns sistemas de rastreamento que incluem uma câmera, um campo de visão (FOV) da câmera já podem ser conhecidos. Entretanto, alguns sistemas de rastreamento podem não incluir informação que identifica o campo de visão da câmera. Por exemplo, uma câmera com um campo de visão fixo desconhecido pode ser incluída no sistema de rastreamento. Altemativamente, ajustes de uma câmera com campo de visão conhecido múltiplo podem ser incluídos no sistema de rastreamento, mas pode não ser prontamente aparente qual ajuste de campo de visão foi selecionado. Em tais realizações, nas quais o campo de visão de câmera é desconhecido, diferentes campos de visão podem ser previstos até um campo de visão real seja determinado, ou o campo de visão pode ser resolvido.
[075] Em uma modalidade, na qual o campo de visão da câmera é desconhecido, campos de visão diferentes múltiplos são supostos. Os métodos 600 e 700 podem ser executados independentemente para cada campo de visão suposto. O campo de visão suposto que provê a menor diferença entre o quadro de referência girado (por exemplo, do sensor de posição) e o quadro de referência não girado (por exemplo, o quadro de referência mundial) é então determinado para ser o campo de visão correto.
[076] Em alguns sistemas de rastreamento, um tamanho do objeto rastreado pode não ser conhecido. Em tais realizações, diferentes tamanhos de objetos podem ser previstos até que um tamanho de objeto real seja determinado ou o tamanho do objeto possa ser resolvido. Em uma modalidade, na qual o tamanho de objeto é desconhecido, são supostos tamanhos de objetos diferentes múltiplos. Métodos 600 e 700 podem ser executados independentemente para cada tamanho de objeto suposto. O tamanho de objeto suposto que prove a menor diferença entre o quadro girado (por exemplo, do sensor de posição) e o quadro de referência não girado (por exemplo, o quadro de referência mundial) é então determinado como sendo o tamanho de objeto correto.
[077] Um método para resolver um campo de visão desconhecido é baseado na projeção elíptica de uma esfera rastreada de tamanho conhecido sobre um plano de imagem da câmera. Um método similar pode também ser usado para resolver um tamanho de esfera desconhecido, desde que o campo de visão seja conhecido. Se uma esfera permanece no plano que não é perpendicular a uma linha de visão, então esta se projetará como uma elipse. Este fenômeno pode ser observado na Figura 8, que ilustra uma esfera projetada sobre um plano de geração de imagem de uma câmera em pontos diferentes no plano de imagem da câmera 815, de acordo com uma modalidade da presente invenção. Conforme mostrado, um círculo perfeito 805 é projetado sobre o plano de geração de imagem da câmera, quando a esfera é posicionada em um centro 810 do plano de imagem 815. À medida que a esfera se move para longe do centro 810 do plano de imagem 815, a esfera se projeta como uma elipse. Cada elipse pode ser representada por um eixo maior 825 e um eixo menor 820. Conforme mostrado, o eixo menor 820 da elipse sempre aponta na direção do centro 810 do campo de visão 815. Quanto mais a esfera se move a partir do centro 810 do plano de imagem 815, menor se toma o eixo menor 820 da elipse.
[078] Figura 9 ilustra um diagrama de fluxo de uma modalidade de um método 900 para determinar um campo de visão de uma câmera usando uma projeção elíptica de uma esfera sobre um plano de geração de imagem da câmera. O método 900 pode também ser usado para determinar um tamanho de objeto desconhecido, desde que o campo de visão da câmera seja conhecido. O método pode ser executado por lógica de processamento que pode compreender hardware (por exemplo, circuitos, lógica dedicada, lógica programável, micro código, etc.), software (tal como instruções executadas em um dispositivo de processamento), ou uma combinação destes. Em uma modalidade, o método 900 é executado pelo dispositivo de computação 115 da Figura 1.
[079] Referindo-se à Figura 9, no bloco 905 um dispositivo de computação recebe dados de imagem de uma esfera. Os dados de imagem da esfera são projetados sobre um plano de geração de imagem de uma câmera como uma elipse, cujo eixo menor aponta para um centro da imagem. No bloco 910, o dispositivo de computação determina uma posição da esfera no plano de imagem da câmera. O centro da elipse é localizado, e representado como uma distância a partir do centro da imagem. No bloco 915, um eixo maior a e um eixo menor b da elipse são computados de acordo com as seguintes equações:
Figure img0016
Figure img0017
[080] Onde ix representa o tamanho horizontal da imagem (por exemplo, em pixels), iy representa o tamanho vertical da imagem (por exemplo, em pixels), Z é a distância entre a câmera e a esfera, r é o raio da esfera e f é a distância do centro da projeção elíptica para um centro da imagem (por exemplo, em pixels).
[081] Equações 16 e 17 podem ser melhor entendidas com referência à Figura 10, que ilustra uma esfera 1005 projetada como uma elipse 1010 sobre um plano de imagem 1015 de uma câmera, de acordo com uma modalidade da presente invenção.
[082] Retomando à Figura 9, no bloco 920, o dispositivo de computação computa o campo de visão da câmera baseado em uma posição da projeção na imagem e uma relação entre o eixo maior e o eixo menor da elipse. A relação do eixo maior para o eixo menor é dependente da posição do centro da elipse na imagem. Consequentemente, a relação pode ser determinada com base na posição da elipse na imagem. Ainda mais, pode ser suposto que a distância entre a esfera e a câmera é muito maior que o raio da esfera. Fazendo tal suposição, (Z2 - r2) é aproximadamente igual a Z 2. Consequentemente, a relação entre o eixo maior e o eixo menor pode ser representada como:
Figure img0018
[083] A distância f pode então ser expressa como:
Figure img0019
[084] A distância f pode ser convertida para o campo de visão. A distância f pode então ser usada para computar um campo de visão horizontal FOVx e um campo de visão vertical FOVy usando funções trigonométricas padrão, conforme segue:
Figure img0020
Figure img0021
[085] Onde w é a largura da imagem em pixels e h é a altura da imagem em pixels.
[086] No bloco 925, o campo de visão computado é comparado com possíveis ajustes de campo de visão. O campo de visão real é então determinado como sendo um campo de visão do ajuste do campo de visão mais próximo do campo de visão computado. Em uma modalidade, na qual uma distorção elíptica da esfera na imagem projetada é leve (por exemplo, há somente uma ligeira diferença entre o eixo maior e o eixo menor da elipse), um erro no campo de visão computado é grande. Em tal modalidade, o campo de visão computado é uma faixa de campo de visão. O campo de visão real pode cair em qualquer lugar dentro da faixa de campo de visão. A faixa do campo de visão é comparada aos ajustes do campo de visão e o campo de visão é determinado como sendo o ajuste do campo de visão que cai dentro da faixa de campo de visão computada.
[087] No bloco 930, o campo de visão é usado para rastrear uma esfera no espaço tridimensional usando uma câmera. O método então termina.
[088] Figura 11 ilustra hardware e interfaces de usuário que podem ser usados para determinar localização de controlador, de acordo com uma modalidade da presente invenção. Figura 11 ilustra esquematicamente a arquitetura global do sistema do dispositivo de entretenimento Playstation 3 da Sony®, um console que pode ser compatível para implementar um sistema de localização de controlador tridimensional de acordo com uma modalidade da presente invenção. Uma unidade de sistema 1400 é provida, com vários dispositivos periféricos conectáveis à unidade de sistema 1400. A unidade de sistema 1400 compreende: um Processador de Célula 1428; uma unidade de memória de acesso randômico dinâmica (XDRAM) 1426 Rambus®; uma unidade gráfica 1430 de Sintetizador de Realidade com uma unidade de memória de acesso randômico de vídeo dedicada (VRAM) 1432; e uma ponte I/O 1434. A unidade de sistema 1400 também compreende um leitor de disco óptico de Disco BD-ROM® Blu Ray® 1440 para leitura a partir de um disco 1440a e um acionador de disco rígido encaixável removível (HDD) 1436, acessível através da ponte I/O 1434. Opcionalmente, a unidade de sistema 1400 também compreende um leitor de cartão de memória 1438 para ler cartões de memória flash compacta, cartões de memória Memory Stick® e similares, que é similarmente acessível através da ponte I/O 1434.
[089] A ponte I/O 1434 também se conecta a portas de Barramento Serial Universal (USB) 2.0 1424; uma porta Ethernet de gigabits 1422; uma porta de rede sem fio (WiFi) IEEE 802.11b/g; e uma porta de enlace sem fio Bluetooth® 1418 capaz de suportar até sete conexões Bluetooth.
[090] Em operação, a ponte I/O 1434 processa todos os dados USB e Ethernet, incluindo dados de um ou mais controladores de jogos 1402-1403. Por exemplo, quando um usuário está jogando um jogo, a ponte I/O 1434 recebe dados do controlador de jogos 1402-1403 via um enlace Bluetooth e os direciona ao Processador de Célula 1428, que atualiza o estado atual do jogo de acordo.
[091] As portas USB e Ethernet sem fio também provêem conectividade para outros dispositivos periféricos, em adição a controladores de jogos 1402-1403, tais como: um controle remoto 1404; um teclado 1406; um mouse 1408; um dispositivo de entretenimento portátil 1410 tal como um dispositivo de entretenimento Sony Playstation Portable®; uma câmera de vídeo tal como uma câmera de vídeo 1412 Eye Toy®; um conjunto de microfone de cabeça 1414; e um microfone 1415. Tais dispositivos periféricos podem portanto, em princípio, ser conectados à unidade de sistema 1400 sem fio; por exemplo, o dispositivo de entretenimento portátil 1410 pode se comunicar via uma conexão WiFi ad-hoc, enquanto o conjunto de microfone de cabeça 1414 pode se comunicar via um enlace Bluetooth.
[092] A provisão destas interfaces significa que o dispositivo Playstation 3 é também potencialmente compatível com outros dispositivos periféricos, tais como gravadores de vídeo digital (DVRs), conversor set-top box, câmeras digitais, reprodutores de mídia portáteis, telefones de Voz Sobre IP, telefones móveis, impressoras e digitalizadores.
[093] Em adição, um leitor de cartão de memória legada 1416 pode ser conectado à unidade de sistema via uma porta USB 1424, habilitando a leitura de cartões de memória 1448 do tipo usado pelos dispositivos Playstation® ou Playstation 2®.
[094] Os controladores de jogos 1402-1403 são operáveis para se comunicar sem fio com a unidade de sistema 1400 via enlace Bluetooth, ou serem conectados a uma porta USB, deste modo provendo também potência para carregar a bateria dos controladores de jogos 1402-1403. Os controladores de jogos 1402-1403 podem também incluir memória, um processador, um leitor de cartão de memória, memória permanente tal como uma memória flash, emissores de luz tais como LEDs ou luzes de infravermelho, microfone e alto-falante para comunicações de ultra-som, uma câmara acústica, uma câmera digital, um relógio interno, uma forma reconhecível tal como uma seção esférica faceando o console de jogos e comunicações sem fio usando protocolos tais como Bluetooth®, WiFi™, etc.
[095] O controlador de jogos 1402 é um controlador projetado para ser usado com duas mãos, e o controlador de jogos 1403 é um controlador para uma única mão com a fixação de uma bola, conforme previamente descrito nas Figuras 2A, 2B. Em adição a um ou mais joysticks analógicos e teclas de controle convencionais, o controlador de jogos é suscetível a determinação de localização tridimensional. Consequentemente, gestos e movimentos pelo usuário do controlador de jogos podem ser traduzidos como entradas para um jogo, em adição ou ao invés de comandos convencionais de tecla ou joysticks. Opcionalmente, outros dispositivos periféricos habilitados sem fio tais como o dispositivo Playstation™ Portátil podem ser usados como um controlador. No caso do dispositivo Playstation™ Portátil, informação adicional de jogo ou controle (por exemplo, instruções de controle ou número de vidas) pode ser provida na tela do dispositivo. Outros dispositivos de controle alternativos ou suplementares podem também ser usados, tal como tapete de dança (não mostrado), uma arma luminosa (não mostrada), uma roda de direção, e pedais (não mostrados) ou controladores sob medida, tais como um único ou vários botões grandes para um jogo de perguntas de resposta rápida (também não mostrado).
[096] O controle remoto 1404 é também operável para se comunicar sem fio com a unidade de sistema 1400 via um enlace Bluetooth. O controle remoto 1404 compreende controles adequados para operação do leitor de Disco BD-ROM Blu Ray™ 1440 e para a navegação do conteúdo de disco.
[097] O leitor de Disco BD-ROM Blu-Ray™ 1440 é operável para ler CD-ROMs compatíveis com os dispositivos Playstation e Playstation 2, em adição a CDs convencionais pré-gravados e graváveis e assim chamados CDs de Super Audio. O leitor 1440 é também operável para ler DVD-ROMs compatíveis com os dispositivos Playstation 2 e Playstation 3, em adição a DVDs convencionais pré-gravados e graváveis. O leitor 1440 é adicionalmente operável para ler BD-ROMs compatíveis com o dispositivo Playstation 3, bem como Discos Blu-Ray convencionais pré-gravados e graváveis.
[098] A unidade de sistema 1400 é operável para fornecer áudio e vídeo, seja gerado ou decodificado pelo dispositivo Playstation 3, via unidade gráfica 1430 de Sintetizador de Realidade, através de conectores de áudio e vídeo até um dispositivo de saída de visualização e som 1442, tal como um monitor ou conjunto de televisão possuindo um visor 1444 e um ou mais alto- falantes 1446. Os conectores de áudio 1450 podem incluir saídas convencionais analógicas e digitais, enquanto os conectores de vídeo 1452 podem variavelmente incluir componente de vídeo, S-vídeo, vídeo composto e uma ou mais saídas HDMI (Interface Multimídia de Alta Definição). Consequentemente, a saída de vídeo pode ser em formatos tais como PAL ou NTSC, ou em 720p, 1080i ou 1080p de alta definição.
[099] O processamento de áudio (geração, decodificação e assim por diante) é executado pelo Processador de Célula 1428. O sistema de operação do dispositivo Playstation 3 suporta som surround Dolby® 5.1, Dolby® Theatre Surround (DTS) e a decodificação de som surround 7.1 a partir de discos Blu-Ray®.
[0100] Na presente modalidade, a câmera de vídeo 1412 compreende um dispositivo acoplado de carga única (CCD), um indicador de LED e aparelho de compressão e codificação de dados em tempo real baseado em hardware, de tal modo que dados de vídeo comprimidos podem ser transmitidos em um formato apropriado como padrão MPEG (Grupo de Especialistas de Imagem Móvel) baseado em intra-imagem para decodificação pela unidade de sistema 1400. O indicador de LED de câmera é arranjado para iluminar em resposta a dados de controle apropriados a partir da unidade de sistema 1400, por exemplo, para significar condições de iluminação adversas. Realizações da câmera de vídeo 1412 podem se conectar variavelmente à unidade de sistema 1400 via uma porta de comunicação USB, Bluetooth ou WiFi. Realizações da câmera de vídeo podem incluir um ou mais microfones associados e também capazes de transmitir dados de áudio. Em realizações da câmera de vídeo, o CCD pode ter uma solução adequada para captura de vídeo de alta definição. Em uso, imagens capturadas pela câmera de vídeo podem, por exemplo, ser incorporadas dentro de um jogo ou interpretadas como entradas de controle de jogo. Em uma outra modalidade, a câmera é uma câmera de infravermelho adequada para detectar luz de infravermelho.
[0101] Em geral, no sentido de ocorrerem comunicações de dados bem-sucedidas com um dispositivo periférico tal como uma câmera de vídeo ou controle remoto via uma das portas de comunicação da unidade de sistema 1400, uma peça apropriada de software tal como um controlador de dispositivo deveria ser provida. A tecnologia de controladores de dispositivo é bem conhecida e não será descrita em detalhe aqui, exceto para dizer que o especialista na técnica estará ciente de que um controlador de dispositivo ou interface de software similar pode ser requerido na presente modalidade descrita.
[0102] Figura 12 ilustra hardware adicional que pode ser usado para processar instruções, de acordo com uma modalidade da presente invenção. O Processador de Célula 1428 da Figura 11 possui uma arquitetura compreendendo quatro componente básicos: estruturas externas de entrada e saída compreendendo um controlador de memória 1560 e um controlador de interface de barramento dual 1570A, B; um processador principal referido como o Elemento de Processamento de Potência 1550; oito co-processadores referidos como Elementos de Processamento Sinergético (SPEs) 1510A-H; e o barramento de dados circular conectando os componentes acima referidos ao Barramento de Interconexão de Elemento 1580. O desempenho de ponto flutuante total do Processador de Célula é 218 GFLOPs, comparado com o GFLOPs do dispositivo da Máquina de Emoção Playstation 2.
[0103] O Elemento de Processamento de Potência (PPE) 1550 é baseado em um núcleo de PowerPC (PPU) 1555 conforme a Power 1470, arquitetura de computadores simultânea de duas vias executada com um relógio interno de 3,2 GHz. Este compreende cache de 512 kB nível 2 (L2) e cache de 32 kB nível 1 (L1). O PPE 1550 é capaz de oito operações de posições simples por ciclo de relógio, traduzindo para 25,6 GFLOPs a 3,2 GHz. O papel primário do PPE 1550 é atuar como um controlador para os Elementos de Processamento Sinergético 1510 A-H, que processam a maioria da carga de trabalho computacional. Em operação, o PPE 1550 mantém uma fila de tarefas, programando tarefas para os Elementos de Processamento Sinergético 1510 A-H e monitorando seu progresso. Consequentemente, cada Elemento de Processamento Sinergético 1510 A-H executa um kernel cujo papel é extrair uma tarefa, executá-la e sincronizá-la com o PPE 1550.
[0104] Cada Elemento de Processamento Sinergético (SPE) 1510 A-H compreende uma respectiva Unidade de Processamento Sinergético (SPU) 1520 A-H e um respectivo Controlador de Fluxo de Memória (MFC) 1540 AH compreendendo por sua vez um respectivo Controlador de Acesso de Memória Dinâmica (DMAC) 1542 A-H, uma respectiva Unidade de Gerenciamento de Memória (MMU) 1544 A-H e uma Interface de Barramento (não mostrada). Cada SPU 1520 A-H é um processador RISC com relógio em 3,2 GHz e compreendendo RAM local de 256 kB 1530 A-H expandível em princípio até 4 GB. Cada SPE fornece 25,6 GFLOPS teóricos de desempenho de precisão simples. Um SPU pode operar em 4 elementos de ponto flutuante de precisão simples, 4 números de 32 bits, 8 inteiros de 16 bits ou 16 inteiros de 8 bits em um único ciclo de relógio. No mesmo ciclo de relógio este pode também efetuar uma operação de memória. O SPU 1520 AH não acessa diretamente a memória de sistema XDRAM 1540 A-H; os endereços de 64 bits formados pelo SPU 1520 A-H são passados para o MFC 1540 A-H que instrui seu controlador DMA 1542 A-H para acessar memória via Barramento de Interconexão de Elemento 1580 e controlador de memória 1560.
[0105] O Barramento de Interconexão de Elemento (EIB) 1580 é um barramento de comunicação logicamente circular interno ao Processador de Célula 1428 que conecta os elementos de processador acima, a saber o PPE 1550, o controlador de memória 1560, a interface de barramento dual 1570 A, B e os 8 SPEs 1510 A-H, totalizando 12 participantes. Os participantes podem simultaneamente ler e escrever no barramento a uma taxa de 8 bytes por ciclo de relógio. Conforme notado previamente, cada SPE 1510 A-H compreende um DMAC 1542 A-H para programar sequências de leitura ou escrita mais longas. O EIB compreende quatro canais, dois de cada em direções horária e anti-horária. Consequentemente, para doze participantes o fluxo de dados mais longo por etapas entre quaisquer dos participantes é de seis etapas na direção apropriada. A largura de faixa EIB instantânea de pico teórica para 12 módulos é portanto, 96B por relógio, no caso de plena utilização através de arbítrio entre participantes. Isto equaciona para uma largura de faixa de pico teórica de 307,2 GB/s (gigabytes por segundo) a uma taxa de relógio de 3,2 GHz.
[0106] O controlador de memória 1560 compreende uma interface XDRAM 1562, desenvolvida por Rambus Incorporated. O controlador de memória interfaceia com a XDRAM 1426 da Rambus com a largura de faixa de pico teórica de 25,6 GB/s.
[0107] A interface de barramento dual 1570 A, B compreende uma interface de sistema Rambus FlexIO® 1572 A, B. A interface é organizada em 12 canais, cada um sendo de 8 bits de largura, com cinco trajetos sendo vinculados intemamente e sete vinculados extemamente. Isto provê uma largura de faixa de pico teórica de 62,4 GB/s (36,4 GB/s de saída, 26 GB/s de entrada) entre o Processador de Célula e a Ponte I/O 700 via controlador 170A e a unidade gráfica de Simulador de Realidade 200, via controlador 170B.
[0108] Dados enviados pelo Processador de Célula 1428 para a unidade gráfica de Simulador de Realidade 1430 compreenderão tipicamente listas de visualização, sendo uma sequência de comandos para desenhar vértices, aplicar texturas a polígonos, especificar condições de iluminação e assim por diante.
[0109] Deve ser entendido que a descrição acima é destinada a ser ilustrativa e não restritiva. Muitas outras realizações serão aparentes aos especialistas na técnica pela leitura e entendimento da descrição acima. Embora a presente invenção tenha sido descrita com referência a realizações típicas específicas, será reconhecido que a invenção não está limitada às realizações descritas, mas pode ser praticada com modificação e alteração dentro do espírito e escopo das reivindicações anexas. Consequentemente, a especificação e desenhos devem ser vistos em um sentido ilustrativo ao invés de um sentido restritivo. O escopo de invenção deveria, portanto, ser determinado com referência às reivindicações anexas, juntamente com o escopo pleno de equivalentes aos quais tais reivindicações têm direito.

Claims (5)

  1. Método implementado por computador para calibrar um sistema de rastreamento, caracterizado pelo fato de compreender:
    receber dados de posição de um objeto rastreado a partir de um sensor de posição, por um console de videogame à medida que o objeto rastreado é movido através de um trajeto de movimento rico, em pelo menos duas dimensões, em que o objeto rastreado excede um limite de aceleração mínimo;
    receber dados inerciais das acelerações medidas ao longo de um único eixo ou múltiplos eixos ou acelerações angulares medidas, correspondendo ao objeto rastreado pelo console de videogame, à medida que o objeto rastreado é movido através do trajeto de movimento rico;
    converter os dados de posição para um sistema de coordenadas tridimensional do sensor de posição;
    computar uma aceleração do objeto rastreado no sistema de coordenadas tridimensional do sensor de posição com base nos dados de posição convertidos; e
    reconciliar os dados inerciais com a aceleração computada.
  2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que os dados inerciais incluem um primeiro conjunto de vetores e aceleração computada inclui um segundo conjunto de vetores, e onde reconciliar os dados inerciais com a aceleração computada compreender:
    determinar um primeiro ângulo entre o primeiro conjunto de vetores e o segundo conjunto de vetores que é representativo de um passo do sensor de posição; e
    determinar um segundo ângulo entre o primeiro conjunto de vetores e o segundo conjunto de vetores que é representativo de um giro relativo entre o sensor de posição e o objeto rastreado.
  3. Método de acordo com a reivindicação 2, caracterizado pelo fato de que reconciliar os dados inerciais com a aceleração computada compreende adicionalmente:
    selecionar uma pluralidade de primeiros ângulos em potencial e uma pluralidade de segundos ângulos em potencial;
    girar o primeiro conjunto de vetores por cada combinação de uma de uma pluralidade de primeiros ângulos potenciais e uma da pluralidade segundos ângulos potenciais;
    encontrar uma diferença entre o primeiro conjunto de vetores girado e o segundo conjunto de vetores para cada combinação de uma pluralidade de primeiros ângulos em potencial e uma da pluralidade de segundos ângulos em potencial; e
    identificar uma combinação de um primeiro ângulo em potencial e um segundo ângulo em potencial que causa a menor diferença entre o primeiro conjunto de vetores girado e o segundo conjunto de vetores, como o primeiro ângulo e o segundo ângulo.
  4. Meio de armazenamento legível por computador caracterizado pelo fato de que inclui instruções que, quando executadas por um sistema de processamento, fazem com que o sistema de processamento execute um método compreendendo:
    receber dados de posição de um objeto rastreado a partir do dispositivo de sensor de posição, à medida que o objeto rastreado é movido através de um trajeto de movimento rico, em pelo menos duas dimensões, em que o objeto rastreado excede um limite de aceleração mínimo;
    receber dados inerciais das acelerações medidas ao longo de um único eixo ou múltiplos eixos ou acelerações angulares medidas, correspondentes ao objeto rastreado como se o objeto rastreado fosse movido através do trajeto de movimento rico;
    converter os dados de posição para um sistema de coordenadas tridimensional do sensor de posição;
    computar uma aceleração do objeto rastreado no sistema de coordenadas tridimensional do sensor de posição com base nos dados de posição convertidos; e
    reconciliar os dados inerciais com a aceleração computada.
  5. Sistema de rastreamento caracterizado pelo fato de compreender:
    objeto rastreado que inclui um ou mais sensores inerciais, o objeto rastreado destinado a coletar dados inerciais das acelerações medidas ao longo de um único eixo ou múltiplos eixos ou acelerações angulares medidas, à medida que o objeto rastreado é movido através de um trajeto de movimento rico em pelo menos duas dimensões, em que o objeto rastreado excede um limite de aceleração mínimo, e para transmitir os dados inerciais para um dispositivo de computação;
    sensor de dispositivo de posição para coletar dados de posição do objeto rastreado à medida que o objeto rastreado é movido através do trajeto de movimento rico, e para transmitir os dados de posição ao dispositivo de computação; e
    dispositivo de computação para receber os dados inerciais e os dados de posição, para converter os dados de posição para um sistema de coordenadas tridimensional do sensor de posição, para computar uma aceleração do objeto rastreado no sistema de coordenadas tridimensional do sensor de posição com base nos dados de posição convertidos, e para reconciliar os dados inerciais com a aceleração computada.
BRPI0924668-1A 2008-12-17 2009-09-02 método implementado por computador, método para calcular um campo de visualização de uma câmera, meio de armazenamento legível por computador, e, sistema de rastreamento BRPI0924668B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13849908P 2008-12-17 2008-12-17
US61/138499 2008-12-17
US12/435,386 US8761434B2 (en) 2008-12-17 2009-05-04 Tracking system calibration by reconciling inertial data with computed acceleration of a tracked object in the three-dimensional coordinate system
US12/435386 2009-05-04
PCT/US2009/055779 WO2010071699A1 (en) 2008-12-17 2009-09-02 Tracking system calibration with minimal user input

Publications (2)

Publication Number Publication Date
BRPI0924668A2 BRPI0924668A2 (pt) 2016-01-26
BRPI0924668B1 true BRPI0924668B1 (pt) 2020-06-30

Family

ID=42240585

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0924668-1A BRPI0924668B1 (pt) 2008-12-17 2009-09-02 método implementado por computador, método para calcular um campo de visualização de uma câmera, meio de armazenamento legível por computador, e, sistema de rastreamento

Country Status (7)

Country Link
US (1) US8761434B2 (pt)
EP (1) EP2359606B1 (pt)
JP (1) JP5469179B2 (pt)
KR (1) KR101489236B1 (pt)
CN (1) CN102257830B (pt)
BR (1) BRPI0924668B1 (pt)
WO (1) WO2010071699A1 (pt)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8576169B2 (en) 2008-10-20 2013-11-05 Sensor Platforms, Inc. System and method for determining an attitude of a device undergoing dynamic acceleration
US8761434B2 (en) 2008-12-17 2014-06-24 Sony Computer Entertainment Inc. Tracking system calibration by reconciling inertial data with computed acceleration of a tracked object in the three-dimensional coordinate system
US8253801B2 (en) * 2008-12-17 2012-08-28 Sony Computer Entertainment Inc. Correcting angle error in a tracking system
US8587519B2 (en) 2009-01-07 2013-11-19 Sensor Platforms, Inc. Rolling gesture detection using a multi-dimensional pointing device
JP5368118B2 (ja) * 2009-01-16 2013-12-18 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム、および通信方法
US8009022B2 (en) * 2009-05-29 2011-08-30 Microsoft Corporation Systems and methods for immersive interaction with virtual objects
US9058063B2 (en) 2009-05-30 2015-06-16 Sony Computer Entertainment Inc. Tracking system calibration using object position and orientation
JPWO2011068184A1 (ja) * 2009-12-03 2013-04-18 独立行政法人産業技術総合研究所 移動体の測位装置
US9411037B2 (en) 2010-08-18 2016-08-09 RetailNext, Inc. Calibration of Wi-Fi localization from video localization
US8615254B2 (en) 2010-08-18 2013-12-24 Nearbuy Systems, Inc. Target localization utilizing wireless and camera sensor fusion
US8957909B2 (en) * 2010-10-07 2015-02-17 Sensor Platforms, Inc. System and method for compensating for drift in a display of a user interface state
US20130159857A1 (en) * 2010-10-11 2013-06-20 Telefonaktiebolaget L M Ericsson (Publ) Electronic device and method for selecting a media rendering unit
KR20120039256A (ko) * 2010-10-15 2012-04-25 (주) 중산기업 욕실 용품 설치 보관대
US8866889B2 (en) * 2010-11-03 2014-10-21 Microsoft Corporation In-home depth camera calibration
JP5195885B2 (ja) 2010-12-07 2013-05-15 カシオ計算機株式会社 情報表示システム、情報表示装置、および、プログラム
JP5170223B2 (ja) * 2010-12-07 2013-03-27 カシオ計算機株式会社 情報表示システム、情報表示装置、情報提供装置、および、プログラム
US8791901B2 (en) * 2011-04-12 2014-07-29 Sony Computer Entertainment, Inc. Object tracking with projected reference patterns
CN102289820B (zh) * 2011-08-16 2014-04-02 杭州海康威视数字技术股份有限公司 智能跟踪球机及其跟踪方法
US9939888B2 (en) * 2011-09-15 2018-04-10 Microsoft Technology Licensing Llc Correlating movement information received from different sources
US9459276B2 (en) 2012-01-06 2016-10-04 Sensor Platforms, Inc. System and method for device self-calibration
WO2013104006A2 (en) 2012-01-08 2013-07-11 Sensor Platforms, Inc. System and method for calibrating sensors for different operating environments
US8736664B1 (en) 2012-01-15 2014-05-27 James W. Gruenig Moving frame display
CN103257724B (zh) * 2012-02-21 2016-03-30 联想(北京)有限公司 一种非接触式鼠标及其操作方法
CN103294431B (zh) * 2012-03-02 2016-03-30 瑞昱半导体股份有限公司 过滤互动指令的多媒体互动系统及相关的装置和方法
US9258380B2 (en) 2012-03-02 2016-02-09 Realtek Semiconductor Corp. Cross-platform multimedia interaction system with multiple displays and dynamically-configured hierarchical servers and related method, electronic device and computer program product
TWI499935B (zh) * 2012-08-30 2015-09-11 Realtek Semiconductor Corp 可避免非預期性互動行為發生的多媒體互動系統及相關的電腦程式產品
US9052802B2 (en) * 2012-03-02 2015-06-09 Realtek Semiconductor Corp. Multimedia interaction system and related computer program product capable of filtering multimedia interaction commands
US9620087B2 (en) 2012-03-02 2017-04-11 Realtek Semiconductor Corp. Multimedia interaction system and related computer program product capable of avoiding unexpected interaction behavior
US9105221B2 (en) * 2012-03-02 2015-08-11 Realtek Semiconductor Corp. Multimedia interaction system and related computer program product capable of blocking multimedia interaction commands that against interactive rules
US9104367B2 (en) * 2012-03-02 2015-08-11 Realtek Semiconductor Corp. Multimedia interaction system and related computer program product capable of avoiding unexpected interaction behavior
US9228842B2 (en) 2012-03-25 2016-01-05 Sensor Platforms, Inc. System and method for determining a uniform external magnetic field
CN103425270B (zh) * 2012-05-17 2016-08-03 瑞轩科技股份有限公司 光标控制系统
US9361730B2 (en) 2012-07-26 2016-06-07 Qualcomm Incorporated Interactions of tangible and augmented reality objects
TWI444645B (zh) * 2012-09-17 2014-07-11 Quanta Comp Inc 定位方法和定位裝置
BR122020016757B1 (pt) 2012-10-15 2022-07-12 Sony Computer Entertainment Inc Dispositivo operacional
AU2013333266B2 (en) * 2012-10-15 2019-09-12 Sony Interactive Entertainment Inc. Control device
JP6178066B2 (ja) * 2012-11-06 2017-08-09 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理方法、プログラム及び情報記憶媒体
TWI581127B (zh) * 2012-12-03 2017-05-01 廣達電腦股份有限公司 輸入裝置以及電子裝置
US9733729B2 (en) * 2012-12-26 2017-08-15 Movea Method and device for sensing orientation of an object in space in a fixed frame of reference
US10038895B2 (en) * 2013-01-15 2018-07-31 Disney Enterprises, Inc. Image capture device calibration
US9953213B2 (en) 2013-03-27 2018-04-24 Microsoft Technology Licensing, Llc Self discovery of autonomous NUI devices
US20140297485A1 (en) * 2013-03-29 2014-10-02 Lexmark International, Inc. Initial Calibration of Asset To-Be-Tracked
CN104766291B (zh) * 2014-01-02 2018-04-10 株式会社理光 多台摄像机标定方法和系统
US10064687B2 (en) 2014-01-13 2018-09-04 Brainlab Ag Estimation and compensation of tracking inaccuracies
FR3021784B1 (fr) * 2014-05-27 2017-10-13 European Aeronautic Defence & Space Co Eads France Procede de projection de donnees virtuelles et dispositif permettant cette projection
US9752991B2 (en) 2014-06-13 2017-09-05 Canon Kabushiki Kaisha Devices, systems, and methods for acquisition of an angular-dependent material feature
US20170220133A1 (en) * 2014-07-31 2017-08-03 Hewlett-Packard Development Company, L.P. Accurately positioning instruments
CN104197987A (zh) * 2014-09-01 2014-12-10 北京诺亦腾科技有限公司 一种组合式运动捕捉系统
CN104461009B (zh) * 2014-12-22 2018-01-09 百度在线网络技术(北京)有限公司 物体的测量方法和智能设备
CN104615282B (zh) * 2015-01-23 2017-09-12 广州视睿电子科技有限公司 一种适用于多屏幕切换的鼠标移动控制方法与系统
US9489045B2 (en) 2015-03-26 2016-11-08 Honeywell International Inc. Methods and apparatus for providing a snapshot truthing system for a tracker
KR102336879B1 (ko) * 2015-05-20 2021-12-08 삼성전자주식회사 화면을 표시하는 전자 장치, 그 제어 방법
IL239113A (en) * 2015-06-01 2016-12-29 Elbit Systems Land & C4I Ltd A system and method for determining audio characteristics from a body
IN2015CH03866A (pt) 2015-07-28 2015-08-14 Wipro Ltd
US9535423B1 (en) * 2016-03-29 2017-01-03 Adasworks Kft. Autonomous vehicle with improved visual detection ability
US10388027B2 (en) * 2016-06-01 2019-08-20 Kyocera Corporation Detection method, display apparatus, and detection system
EP3494447B1 (en) 2016-08-04 2021-05-19 Reification Inc. Methods for simultaneous localization and mapping (slam) and related apparatus and systems
DE102017205732A1 (de) * 2017-04-04 2018-10-04 Siemens Aktiengesellschaft Kalibrierkörper mit einem Sensor
US10304207B2 (en) * 2017-07-07 2019-05-28 Samsung Electronics Co., Ltd. System and method for optical tracking
JP6771435B2 (ja) 2017-07-20 2020-10-21 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および位置情報取得方法
DE112018004507T5 (de) * 2017-10-12 2020-06-10 Sony Corporation Informationsverarbeitungseinrichtung, bewegungseinrichtung und verfahren und programm
SG11202006100QA (en) 2018-02-23 2020-07-29 Ericsson Telefon Ab L M Coordinating alignment of coordinate systems used for a computer generated reality device and a haptic device
GB2571337B (en) 2018-02-26 2021-03-10 Sony Interactive Entertainment Inc Controlling data processing
CN109395382A (zh) * 2018-09-12 2019-03-01 苏州蜗牛数字科技股份有限公司 一种针对摇杆的线性优化方法
EP3875898A4 (en) * 2018-10-31 2022-07-06 Sony Interactive Entertainment Inc. CALIBRATION DEVICE FOR A TRACKER, CALIBRATION METHOD FOR A TRACKER, AND PROGRAM
US10539644B1 (en) * 2019-02-27 2020-01-21 Northern Digital Inc. Tracking an object in an electromagnetic field
WO2020192895A1 (en) * 2019-03-26 2020-10-01 Telefonaktiebolaget Lm Ericsson (Publ) Determining a transformation between coordinate systems in an ultrasonic haptic device and a visual sensor device
GB2586059B (en) * 2019-08-01 2023-06-07 Sony Interactive Entertainment Inc System and method for generating user inputs for a video game
US11585949B2 (en) * 2020-10-15 2023-02-21 Skydio, Inc. Low-light and no-light aerial navigation
FR3118493B1 (fr) * 2020-12-28 2023-01-13 Thales Sa Procede et dispositif de contrôle de determination de positionnement d'un dispositif de visualisation d'informations porte
ES2939020A1 (es) * 2021-10-13 2023-04-18 Vina Bordel Andres Dispositivo para el análisis del golpeo en pádel, procedimiento de operación de dicho dispositivo y procedimiento de operación de un teléfono inteligente en comunicación con dicho dispositivo

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843568A (en) 1986-04-11 1989-06-27 Krueger Myron W Real time perception of and response to the actions of an unencumbered participant/user
US4787051A (en) 1986-05-16 1988-11-22 Tektronix, Inc. Inertial mouse system
US5128671A (en) 1990-04-12 1992-07-07 Ltv Aerospace And Defense Company Control device having multiple degrees of freedom
JP3244798B2 (ja) 1992-09-08 2002-01-07 株式会社東芝 動画像処理装置
US5297061A (en) 1993-05-19 1994-03-22 University Of Maryland Three dimensional pointing device monitored by computer vision
US5764786A (en) * 1993-06-10 1998-06-09 Kuwashima; Shigesumi Moving object measurement device employing a three-dimensional analysis to obtain characteristics of the moving object
US5454043A (en) 1993-07-30 1995-09-26 Mitsubishi Electric Research Laboratories, Inc. Dynamic and static hand gesture recognition through low-level image analysis
US6407817B1 (en) 1993-12-20 2002-06-18 Minolta Co., Ltd. Measuring system with improved method of reading image data of an object
JP2552427B2 (ja) 1993-12-28 1996-11-13 コナミ株式会社 テレビ遊戯システム
US5528265A (en) 1994-07-18 1996-06-18 Harrison; Simon J. Orientation-operated cursor control device
SE504846C2 (sv) 1994-09-28 1997-05-12 Jan G Faeger Styrutrustning med ett rörligt styrorgan
US6195122B1 (en) * 1995-01-31 2001-02-27 Robert Vincent Spatial referenced photography
US5912700A (en) * 1996-01-10 1999-06-15 Fox Sports Productions, Inc. System for enhancing the television presentation of an object at a sporting event
US5850469A (en) 1996-07-09 1998-12-15 General Electric Company Real time tracking of camera pose
US20020036617A1 (en) 1998-08-21 2002-03-28 Timothy R. Pryor Novel man machine interfaces and applications
GB2345538B (en) 1998-11-06 2003-12-17 David James Optical tracker
WO2008033338A2 (en) * 2006-09-11 2008-03-20 Aman James A System and methods for translating sports tracking data into statistics and performance measurements
US20030158699A1 (en) * 1998-12-09 2003-08-21 Christopher P. Townsend Orientation sensor
JP4493113B2 (ja) 1999-01-29 2010-06-30 株式会社リコー プロジェクタおよび投影画像補正装置
US6737591B1 (en) 1999-05-25 2004-05-18 Silverbrook Research Pty Ltd Orientation sensing device
US6286104B1 (en) 1999-08-04 2001-09-04 Oracle Corporation Authentication and authorization in a multi-tier relational database management system
US6375572B1 (en) 1999-10-04 2002-04-23 Nintendo Co., Ltd. Portable game apparatus with acceleration sensor and information storage medium storing a game progam
EP1252480A1 (en) 1999-11-12 2002-10-30 Go Sensors, L.L.C. Image metrology methods and apparatus
JP4268308B2 (ja) 2000-03-22 2009-05-27 株式会社キーエンス 光電スイッチ
JP4032603B2 (ja) 2000-03-31 2008-01-16 コニカミノルタセンシング株式会社 3次元計測装置
US6474159B1 (en) * 2000-04-21 2002-11-05 Intersense, Inc. Motion-tracking
AU2001287940A1 (en) 2000-09-26 2002-04-08 Eugenio Bustamante Providing input signals
US6836560B2 (en) 2000-11-13 2004-12-28 Kla - Tencor Technologies Corporation Advanced phase shift inspection method
US6831263B2 (en) 2002-06-04 2004-12-14 Intel Corporation Very high speed photodetector system using a PIN photodiode array for position sensing
US20020085097A1 (en) 2000-12-22 2002-07-04 Colmenarez Antonio J. Computer vision-based wireless pointing system
GB2372656A (en) 2001-02-23 2002-08-28 Ind Control Systems Ltd Optical position determination
US7006707B2 (en) 2001-05-03 2006-02-28 Adobe Systems Incorporated Projecting images onto a surface
US20030233870A1 (en) 2001-07-18 2003-12-25 Xidex Corporation Multidimensional sensing system for atomic force microscopy
GB2388418A (en) 2002-03-28 2003-11-12 Marcus James Eales Input or pointing device with a camera
US6710713B1 (en) * 2002-05-17 2004-03-23 Tom Russo Method and apparatus for evaluating athletes in competition
US7352359B2 (en) * 2002-07-27 2008-04-01 Sony Computer Entertainment America Inc. Method and system for applying gearing effects to inertial tracking
US8686939B2 (en) * 2002-07-27 2014-04-01 Sony Computer Entertainment Inc. System, method, and apparatus for three-dimensional input control
US10086282B2 (en) 2002-07-27 2018-10-02 Sony Interactive Entertainment Inc. Tracking device for use in obtaining information for controlling game program execution
US9682319B2 (en) 2002-07-31 2017-06-20 Sony Interactive Entertainment Inc. Combiner method for altering game gearing
US7002551B2 (en) 2002-09-25 2006-02-21 Hrl Laboratories, Llc Optical see-through augmented reality modified-scale display
US7071970B2 (en) 2003-03-10 2006-07-04 Charles Benton Video augmented orientation sensor
US7688381B2 (en) 2003-04-08 2010-03-30 Vanbree Ken System for accurately repositioning imaging devices
US20040212589A1 (en) 2003-04-24 2004-10-28 Hall Deirdre M. System and method for fusing and displaying multiple degree of freedom positional input data from multiple input sources
US7038661B2 (en) 2003-06-13 2006-05-02 Microsoft Corporation Pointing device and cursor for use in intelligent computing environments
US7606665B2 (en) * 2003-08-29 2009-10-20 Honeywell International Inc. System and method for employing an aided-alignment mode to align an inertial reference system
US10279254B2 (en) 2005-10-26 2019-05-07 Sony Interactive Entertainment Inc. Controller having visually trackable object for interfacing with a gaming system
US7489299B2 (en) 2003-10-23 2009-02-10 Hillcrest Laboratories, Inc. User interface devices and methods employing accelerometers
US7961909B2 (en) 2006-03-08 2011-06-14 Electronic Scripting Products, Inc. Computer interface employing a manipulated object with absolute pose detection component and a display
US7729515B2 (en) 2006-03-08 2010-06-01 Electronic Scripting Products, Inc. Optical navigation apparatus using fixed beacons and a centroid sensing device
US20050261073A1 (en) 2004-03-26 2005-11-24 Smartswing, Inc. Method and system for accurately measuring and modeling a sports instrument swinging motion
JP2007530978A (ja) 2004-03-29 2007-11-01 エヴォリューション ロボティクス インコーポレイテッド 反射光源を使用する位置推定方法および装置
TWI376520B (en) 2004-04-30 2012-11-11 Hillcrest Lab Inc Free space pointing devices and methods
US7158118B2 (en) 2004-04-30 2007-01-02 Hillcrest Laboratories, Inc. 3D pointing devices with orientation compensation and improved usability
CA2578653A1 (en) 2004-07-29 2006-02-09 Kevin Ferguson A human movement measurement system
KR20070032062A (ko) 2004-08-10 2007-03-20 모토로라 인코포레이티드 휴대용 전자 장치용 사용자 인터페이스 제어기 방법 및장치
US20060036947A1 (en) 2004-08-10 2006-02-16 Jelley Kevin W User interface controller method and apparatus for a handheld electronic device
JP4615287B2 (ja) 2004-11-01 2011-01-19 東京計器株式会社 方位姿勢検出装置
US7191089B2 (en) * 2004-12-01 2007-03-13 Freescale Semiconductor, Inc. System and method for fall detection
US7216053B2 (en) * 2004-12-30 2007-05-08 Nokia Corporation Low power motion detector
KR100643304B1 (ko) 2005-02-15 2006-11-10 삼성전자주식회사 관성 센서 보정 장치 및 방법, 그리고, 상기 방법을 기록한기록 매체
ATE370862T1 (de) * 2005-03-10 2007-09-15 Delphi Tech Inc Verfahren zur steuerung einer fahrzeugsicherheitseinrichtung
US20080002031A1 (en) * 2005-05-06 2008-01-03 John-Paul P. Cana Multi-axis control of a fixed or moving device based on a wireless tracking location of one or many target devices
JP5028751B2 (ja) * 2005-06-09 2012-09-19 ソニー株式会社 行動認識装置
US7647175B2 (en) * 2005-09-09 2010-01-12 Rembrandt Technologies, Lp Discrete inertial display navigation
US8224024B2 (en) 2005-10-04 2012-07-17 InterSense, LLC Tracking objects with markers
US7653214B2 (en) * 2006-01-17 2010-01-26 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Accelerometer utilizing image-based movement tracking
JP4530419B2 (ja) 2006-03-09 2010-08-25 任天堂株式会社 座標算出装置および座標算出プログラム
WO2007130833A2 (en) * 2006-05-04 2007-11-15 Sony Computer Entertainment America Inc. Scheme for detecting and tracking user manipulation of a game controller body and for translating movements thereof into inputs and game commands
US7728868B2 (en) 2006-08-02 2010-06-01 Inneroptic Technology, Inc. System and method of providing real-time dynamic imagery of a medical procedure site using multiple modalities
US8781151B2 (en) 2006-09-28 2014-07-15 Sony Computer Entertainment Inc. Object detection using video input combined with tilt angle information
GB0622451D0 (en) 2006-11-10 2006-12-20 Intelligent Earth Ltd Object position and orientation detection device
TWI330802B (en) 2006-12-13 2010-09-21 Ind Tech Res Inst Inertial sensing method and system
US8335345B2 (en) * 2007-03-05 2012-12-18 Sportvision, Inc. Tracking an object with multiple asynchronous cameras
JP5259965B2 (ja) * 2007-03-22 2013-08-07 任天堂株式会社 情報処理プログラム、および、情報処理装置
JP4325707B2 (ja) 2007-07-04 2009-09-02 ソニー株式会社 入力装置、制御装置、制御システム及び制御方法
US8761434B2 (en) 2008-12-17 2014-06-24 Sony Computer Entertainment Inc. Tracking system calibration by reconciling inertial data with computed acceleration of a tracked object in the three-dimensional coordinate system
US8253801B2 (en) 2008-12-17 2012-08-28 Sony Computer Entertainment Inc. Correcting angle error in a tracking system
US8441438B2 (en) * 2010-01-06 2013-05-14 Cywee Group Limited 3D pointing device and method for compensating movement thereof
CN102498456B (zh) 2009-07-23 2016-02-10 惠普发展公司,有限责任合伙企业 具有光学传感器的显示器

Also Published As

Publication number Publication date
CN102257830B (zh) 2016-04-13
JP5469179B2 (ja) 2014-04-09
WO2010071699A1 (en) 2010-06-24
US8761434B2 (en) 2014-06-24
CN102257830A (zh) 2011-11-23
BRPI0924668A2 (pt) 2016-01-26
KR101489236B1 (ko) 2015-02-11
EP2359606B1 (en) 2016-02-10
JP2012512485A (ja) 2012-05-31
US20100150404A1 (en) 2010-06-17
EP2359606A4 (en) 2012-10-31
KR20110105832A (ko) 2011-09-27
EP2359606A1 (en) 2011-08-24

Similar Documents

Publication Publication Date Title
BRPI0924668B1 (pt) método implementado por computador, método para calcular um campo de visualização de uma câmera, meio de armazenamento legível por computador, e, sistema de rastreamento
US8253801B2 (en) Correcting angle error in a tracking system
JP5512804B2 (ja) オブジェクトの位置及び向きを用いた追跡システムの較正
US8761412B2 (en) Microphone array steering with image-based source location
US10150032B2 (en) Device for interfacing with a computing program using a projected pattern
KR101308642B1 (ko) 영상 분석 및 초음파 통신을 사용하여 컨트롤러의 3 차원 위치 판단
US8180295B2 (en) Bluetooth enabled computing system and associated methods
CN102576257B (zh) 基站移动检测和补偿
US8393964B2 (en) Base station for position location
EP2359312B1 (en) Compensating for blooming of a shape in an image

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 30/06/2020, OBSERVADAS AS CONDICOES LEGAIS.