IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7713535レーダアプリケーションプログラミングインターフェース
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-16
(45)【発行日】2025-07-25
(54)【発明の名称】レーダアプリケーションプログラミングインターフェース
(51)【国際特許分類】
   G06F 3/01 20060101AFI20250717BHJP
   G01S 13/89 20060101ALI20250717BHJP
   G06V 40/20 20220101ALI20250717BHJP
   G06T 7/70 20170101ALI20250717BHJP
   G06T 7/20 20170101ALI20250717BHJP
【FI】
G06F3/01 570
G01S13/89
G06V40/20
G06T7/70 A
G06T7/20 300A
【請求項の数】 17
(21)【出願番号】P 2023568039
(86)(22)【出願日】2022-05-24
(65)【公表番号】
(43)【公表日】2024-05-24
(86)【国際出願番号】 US2022072525
(87)【国際公開番号】W WO2022251825
(87)【国際公開日】2022-12-01
【審査請求日】2024-01-18
(31)【優先権主張番号】63/192,500
(32)【優先日】2021-05-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】フェルチ,アンドリュー・シィ
(72)【発明者】
【氏名】シー,シャン
【審査官】亀澤 智博
(56)【参考文献】
【文献】米国特許出願公開第2018/0157330(US,A1)
【文献】国際公開第2019/241877(WO,A1)
【文献】特表2021-507326(JP,A)
【文献】特表2017-524170(JP,A)
【文献】特表2017-517062(JP,A)
【文献】特開2015-195020(JP,A)
【文献】特表2014-501415(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048 - 3/04895
G01S 13/00 -13/64
A61B 5/103 - 5/113
(57)【特許請求の範囲】
【請求項1】
スマートデバイスのレーダシステムによって実行される方法であって、
前記スマートデバイスのレーダアプリケーションプログラミングインターフェースの複数の層のうちの第1の層を介して、前記スマートデバイスのアプリケーションからの第1の要求を受け付けることを含み、
前記第1の要求は、ジェスチャと関連付けられている状態のシーケンスを指定するパターン認識シーケンスを含み、前記レーダアプリケーションプログラミングインターフェースの前記複数の層は、前記レーダシステムの異なる動作レベルと関連付けられており、
前記方法は、
前記レーダアプリケーションプログラミングインターフェースの前記複数の層のうちの第2の層を介して、前記スマートデバイスの前記アプリケーションからの第2の要求を受け付けることをさらに含み、
前記第2の要求は、前記ジェスチャを検出するための前記レーダシステムの検出範囲を含み、
前記方法は、
前記レーダシステムのハードウェア構成を前記検出範囲に基づいて修正することと、
前記ハードウェア構成を使用してレーダ信号を送信および受信することとをさらに含み、
前記レーダ信号の少なくとも一部分は、前記ジェスチャを行う物体に反射し、
前記方法は、
前記パターン認識シーケンスおよび受信される前記レーダ信号に基づいて前記アプリケーションが前記第1の要求に含まれるパターン認識シーケンスを用いて指定した前記ジェスチャを認識することと、
前記認識に応答して、前記レーダアプリケーションプログラミングインターフェースを介して、前記ジェスチャの発生を示す応答を、前記アプリケーションに送信することと
をさらに含む、方法。
【請求項2】
前記レーダシステムの前記異なる動作レベルは、
前記レーダシステムのレーダデータ処理モジュールと関連付けられている第1の動作レベルと、
前記レーダシステムのトランシーバと関連付けられている第2の動作レベルとを含み、
前記レーダアプリケーションプログラミングインターフェースの前記複数の層のうちの前記第1の層は、前記第1の動作レベルと関連付けられており、
前記レーダアプリケーションプログラミングインターフェースの前記複数の層のうちの前記第2の層は、前記第2の動作レベルと関連付けられている、
請求項1に記載の方法。
【請求項3】
前記方法は、前記レーダアプリケーションプログラミングインターフェースの前記複数の層のうちの第3の層を介して、前記スマートデバイスの前記アプリケーションからの第3の要求を受け付けることをさらに含み、
前記第3の要求は、デジタル信号処理またはデータ処理と関連付けられているモジュールのシーケンスを指定する実施チェーンを含み、
前記方法は、
前記レーダシステムのソフトウェア構成を前記実施チェーンに基づいて修正することをさらに含む、請求項1に記載の方法。
【請求項4】
前記状態のシーケンスは、少なくとも2つの状態を含み、前記少なくとも2つの状態は、
前記ジェスチャの少なくとも1つの開始特徴を記述する開始状態と、
前記ジェスチャの少なくとも1つの終了特徴を記述する終了状態とを含み、
前記少なくとも1つの開始特徴および前記少なくとも1つの終了特徴は、各々が、レーダ感知を使用して判定され得る前記ジェスチャを実行する前記物体の特性を記述する、請求項1に記載の方法。
【請求項5】
前記状態のシーケンス内の各状態は、前記ジェスチャと関連付けられている少なくとも1つの基準を含み、
前記状態のシーケンスは、第1の状態を含み、
前記第1の状態は、第1の基準を含み、
前記第1の基準は、
前記第1の状態に進入するための進入基準、または
前記第1の状態から退出するための退出基準のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項6】
前記進入基準または前記退出基準は、
位置基準、
動き基準、
信号特性基準、または
持続時間基準のうちの少なくとも1つを含む、
請求項5に記載の方法。
【請求項7】
前記ジェスチャを認識することは、
受信される前記レーダ信号に基づいて前記物体のレーダタイムラインをコンパイルすることを含み、前記レーダタイムラインは、時間経過に伴う前記物体の挙動を記述し、
前記レーダタイムライン内の前記パターン認識シーケンスを検出することを含む、請求項1に記載の方法。
【請求項8】
前記レーダタイムラインは、複数の事象を含み、各事象は、
タイムスタンプ、
前記物体に関する位置情報、
前記物体に関する動き情報、または
前記物体に関する物理的特性情報のうちの少なくとも1つを含む、
請求項7に記載の方法。
【請求項9】
前記ジェスチャは、往復運動ジェスチャを含み、
前記パターン認識シーケンスを検出することは、
前記状態のシーケンスのうちの第1の状態に従って、第1の持続時間のための第1の閾値を上回る範囲レートの絶対値にて、ある角度に沿って前記レーダシステムに向かって移動する前記物体を検出することと、
前記状態のシーケンスのうちの第2の状態に従って、前記レーダシステムに向かう移動から前記レーダシステムから離れる移動へと方向を変更する前記物体を検出することと、
前記状態のシーケンスのうちの第3の状態に従って、第2の持続時間のための第2の閾値を上回っている前記範囲レートの前記絶対値にて、前記ある角度に沿って前記レーダシステムから離れて移動する前記物体を検出することと
を含む、
請求項7記載の方法。
【請求項10】
前記ジェスチャは、スワイプジェスチャを含み、
前記パターン認識シーケンスを検出することは、
前記状態のシーケンスのうちの第1の状態に従って、第1の持続時間のための閾値を上回る速度にて角度を変更する前記物体を検出することと、
前記状態のシーケンスのうちの第2の状態に従って、第2の持続時間のための前記閾値を上回る前記速度にて前記第1の状態と同じ方向に沿って前記角度を変更する前記物体を検出することと
を含む、
請求項7記載の方法。
【請求項11】
前記スワイプジェスチャは、指向性スワイプジェスチャを含み、
前記角度を変更する前記物体を検出することは、前記指向性スワイプジェスチャと関連付けられている方向に沿って前記角度を変更する前記物体を検出することをさらに含む、請求項10に記載の方法。
【請求項12】
前記ジェスチャは、手を伸ばすジェスチャを含み、
前記パターン認識シーケンスを検出することは、
前記状態のシーケンスのうちの第1の状態に従って、前記レーダシステムに向かって移動し、かつ第1の持続時間のための第1の閾値未満の範囲を有する前記物体を検出することと、
前記状態のシーケンスのうちの第2の状態に従って、前記レーダシステムに向かって移動し、かつ第2の持続時間のための第2の閾値未満の前記範囲を有する前記物体を検出することと
を含む、
請求項7に記載の方法。
【請求項13】
前記物体は、前記ジェスチャに加えて他の動きを行い、
前記方法は、前記パターン認識シーケンスに基づいて、前記他の動きは前記ジェスチャに関連付けられていないことを判定することを含む、請求項1に記載の方法。
【請求項14】
前記他の動きは、
掃除機がけをしている人物、
前記スマートデバイスと共に歩行している前記人物、
前記スマートデバイスの隣で犬を散歩している前記人物、
前記スマートデバイスの隣で衣服を畳んでいる前記人物、
前記スマートデバイスの隣でベッドを整えている前記人物、または
前記スマートデバイスに近接している物体を再配置している前記人物
のうちの少なくとも1つと関連付けられている、
請求項13に記載の方法。
【請求項15】
前記ハードウェア構成を修正することは、指定された前記検出範囲を実現するために、伝送電力を調節すること、パルス数を調節すること、アンテナアレイ内のアクティブなアンテナ素子数を調節すること、および/または前記レーダシステムのビーム形成パターンを調節することを含む、請求項1に記載の方法。
【請求項16】
請求項1~請求項15のいずれか方法のうちのいずれか1つの方法を実行するように構成されているレーダシステムを備える装置。
【請求項17】
プロセッサによる実行に応答して、前記レーダシステムに、請求項1~請求項15の方法のうちのいずれか1つの方法を実行させるための、プログラム。
【発明の詳細な説明】
【背景技術】
【0001】
背景
レーダは、物体を検出できる有用なデバイスである。カメラなどの他の種類のセンサと比較して、レーダは低照明および霧、または移動する物体もしくは重なった物体など多くの異なる環境条件において性能の改善を提供できる。レーダはまた、ハンドバッグもしくはポケットなど、1つまたは複数の遮蔽されている状態を通しても物体を検出できる。
【0002】
レーダは、目標性能を実現するためになされる特定のトレードオフ上の考慮事項を有する複雑な技術であり得る。例示的なトレードオフ上の考慮事項は、検出範囲と、範囲、ドップラーおよび角度分解能と、範囲およびドップラー周波数の曖昧さと、感度と、誤検出率と、反応時間と、サイズと、消費電力と、費用とを含む。その複雑な設計および動作上の考慮事項に起因して、レーダは、特定の用途のためにカスタマイズされることが多い。例えば、いくつかのレーダは、航法援助を提供し、他のレーダは環境の図表を作成でき、さらに他のレーダは、電子デバイスと相互作用するユーザを支援し得る。
【0003】
レーダは多くの利点を有するが、レーダによる目標性能の実現を可能にする複雑性を意識していない場合がある他の外部実体によってブラックボックスとして見られる場合がある。その結果、電子デバイス内のアプリケーションが、レーダが提供する特徴を利用するのは困難となり得る。結果的に、レーダは、いくつかの特定の用途をサポートすることに限定される場合がある。
【発明の概要】
【0004】
概要
レーダアプリケーションプログラミングインターフェース(API)を実施する技術および装置が説明される。レーダアプリケーションプログラミングインターフェースは、スマートデバイスのアプリケーションなどの外部実体が、レーダシステムによって用いられる設計および動作上の複雑性を理解する必要なくレーダシステムと通信するための標準化されている言語を提供する。このレーダアプリケーションプログラミングインターフェースを用いると、第三者がレーダシステムと容易に相互作用し、多種多様な異なるアプリケーションのためにレーダシステムの使用をカスタマイズできる。このように、このレーダアプリケーションプログラミングインターフェースは、他の実体がレーダシステムの利用を拡張できるようにすることができ、それにより、ユーザエクスペリエンスを向上させるさらなる機能を提供する。
【0005】
以下で説明する態様は、スマートデバイスのレーダシステムによって実行される方法を含む。この方法は、スマートデバイスのレーダアプリケーションプログラミングインターフェースの複数の層のうちの第1の層を介して、スマートデバイスのアプリケーションからの第1の要求を受け付けることを含む。第1の要求は、ジェスチャと関連付けられている状態のシーケンスを指定するパターン認識シーケンスを含む。レーダアプリケーションプログラミングインターフェースの複数の層は、レーダシステムの異なる動作レベルと関連付けられている。この方法はまた、レーダアプリケーションプログラミングインターフェースの複数の層のうちの第2の層を介して、スマートデバイスのアプリケーションからの第2の要求を受け付けることを含む。第2の要求は、ジェスチャを検出するためのレーダシステムの検出範囲を含む。方法は、検出範囲に基づいてレーダシステムのハードウェア構成を修正することを追加で含む。方法は、ハードウェア構成を使用してレーダ信号を送信および受信することをさらに含む。レーダ信号の少なくとも一部分は、ジェスチャを行う物体に反射する。方法はまた、パターン認識シーケンスおよび受信されているレーダ信号に基づいてジェスチャを認識することを含む。その認識に応答して、方法は、レーダアプリケーションプログラミングインターフェースを介して、ジェスチャの発生を示す応答をアプリケーションに送信することを含む。
【0006】
以下で説明する態様はまた、説明した方法のうちのいずれかを実行するように構成されているレーダシステムを備える装置を含む。
【0007】
以下で説明する態様は、プロセッサによる実行に応答して、レーダシステムに、説明した方法のうちのいずれか1つを実行させるコンピュータ実行可能命令を備えるコンピュータ可読記憶媒体を含む。
【0008】
以下で説明する態様はまた、レーダアプリケーションプログラミングインターフェースを提供するための手段を有するシステムを含む。
【0009】
レーダアプリケーションプログラミングインターフェースを実施するための装置およびそれを実施する技術が、以下の図面を参照して説明される。同一の番号は、同様の特徴および構成要素を参照するために、図面全体を通して使用される。
【図面の簡単な説明】
【0010】
図1】スマートデバイスベースのレーダシステムが実施可能である例示的な環境を示す図である。
図2-1】スマートデバイスの一部としてのレーダシステムの例示的な実施態様を示す図である。
図2-2】レーダシステムの例示的なシステム媒体を示す図である。
図3-1】例示的なレーダアプリケーションプログラミングインターフェースを示す図である。
図3-2】レーダアプリケーションプログラミングインターフェースの複数の層とレーダシステムの動作レベルとの間の例示的な関係を示す図である。
図4】ジェスチャ認識のために、アプリケーションによって、レーダアプリケーションプログラミングインターフェースに対して提供される例示的な要求を示す図である。
図5-1】往復運動ジェスチャと関連付けられている例示的なパターン認識シーケンスを示す図である。
図5-2】往復運動ジェスチャと関連付けられている例示的な物体の挙動を示す図である。
図6-1】スワイプジェスチャと関連付けられている例示的なパターン認識シーケンスを示す図である。
図6-2】スワイプジェスチャと関連付けられている例示的な物体の挙動を示す図である。
図7-1】手を伸ばすジェスチャと関連付けられている例示的なパターン認識シーケンスを示す図である。
図7-2】手を伸ばすジェスチャと関連付けられている例示的な物体の挙動を示す図である。
図8】レーダシステムの例示的なアンテナアレイおよび例示的なトランシーバを示す図である。
図9】ハードウェアアブストラクションモジュール、物体トラッカ、検出モジュール、レーダアプリケーションプログラミングエンジン、およびレーダアプリケーションプログラミングインターフェースの例示的な動作を示す図である。
図10】検出モジュールによって実施される例示的なスキームを示す図である。
図11】レーダアプリケーションプログラミングインターフェースを使用してレーダシステムによって実行される例示的な方法を示す図である。
図12】レーダアプリケーションプログラミングインターフェースを具現化する、またはその使用を可能にする技術が実施され得る例示的なコンピューティングシステムを示す図である。
【発明を実施するための形態】
【0011】
詳細な説明
レーダは、物体を検出できる有用なデバイスである。カメラなどの他の種類のセンサと比較して、レーダは低照明および霧、または移動する物体もしくは重なった物体など多くの異なる環境条件において性能の改善を提供できる。レーダはまた、ハンドバッグもしくはポケットなど、1つまたは複数の遮蔽されている状態を通しても物体を検出できる。
【0012】
レーダは、目標性能を実現するためになされる特定のトレードオフ上の考慮事項を有する複雑な技術であり得る。例示的なトレードオフ上の考慮事項は、検出範囲と、範囲、ドップラーおよび角度分解能と、範囲およびドップラー周波数の曖昧さと、感度と、誤検出率と、反応時間と、サイズと、消費電力と、費用とを含む。その複雑な設計および動作上の考慮事項に起因して、レーダは、特定の用途のためにカスタマイズされることが多い。例えば、いくつかのレーダは、航法援助を提供し、他のレーダは環境の図表を作成でき、さらに他のレーダは、電子デバイスと相互作用するユーザを支援し得る。
【0013】
レーダは多くの利点を有するが、レーダによる目標性能の実現を可能にする複雑性を意識していない場合がある他の外部実体によってブラックボックスとして見られる場合がある。その結果、電子デバイス内のアプリケーションが、レーダが提供する特徴を利用するのは困難となり得る。結果的に、レーダは、いくつかの特定の用途をサポートすることに限定される場合がある。
【0014】
この問題に対処するために、レーダアプリケーションプログラミングインターフェース(API)を実施する技術が説明される。レーダアプリケーションプログラミングインターフェースは、スマートデバイスのアプリケーションなどの外部実体が、レーダシステムによって用いられる設計および動作上の複雑性を理解する必要なくレーダシステムと通信するための標準化されている言語を提供する。このレーダアプリケーションプログラミングインターフェースを用いると、第三者がレーダシステムと容易に相互作用し、多種多様な異なるアプリケーションのためにレーダシステムの使用をカスタマイズできる。このように、このレーダアプリケーションプログラミングインターフェースは、他の実体がレーダシステムの利用を拡張できるようにすることができ、それにより、ユーザエクスペリエンスを向上させるさらなる機能を提供する。
【0015】
動作環境
図1は、レーダシステムを使用する技術およびレーダシステムを含む装置が具現化され得る例示的な環境100-1~100-6の図である。図示されている環境100-1~100-6においてスマートデバイス104は、(図2-1の)レーダアプリケーションプログラミングインターフェースを介してスマートデバイス104の多種多様な異なるアプリケーションとインターフェース接続できるレーダシステム102を含む。スマートデバイス104は、環境100-1~100-5におけるスマートフォンおよび環境100-6におけるスマート車両であるとして示される。
【0016】
環境100-1~100-4において、ユーザは異なる種類のジェスチャを行い、それらのジェスチャは、レーダシステム102によって検出される。いくつかの場合では、ユーザは、付属装置または身体部位を使用してジェスチャを行う。代替的に、ユーザはまた、スタイラス、手持ち式の物体、リング、もしくはレーダ信号を反射する任意の種類の材料を使用してジェスチャを行うことができる。レーダアプリケーションプログラミングインターフェースの使用によって、レーダシステム102の動作は、レーダシステム102が認識することを要求されているジェスチャの種類に基づいて動的に調整され得る。
【0017】
環境100-1において、ユーザは、横寸法(例えば、スマートデバイス104の左側からスマートデバイス104の右側)に沿ってスマートデバイス104の上方で手を動かすことによってスクロールジェスチャを行う。環境100-2において、ユーザは、スマートデバイス104とユーザの手との間の距離を減少させる手を伸ばすジェスチャを行う。環境100-3のユーザは、スマートデバイス104上でゲームをするための手のジェスチャを行う。一例では、ユーザは、縦寸法(例えば、スマートデバイス104の下側からスマートデバイス104の上側)に沿ってスマートデバイス104の上方で手を動かすことによって押すジェスチャを行う。レーダアプリケーションプログラミングインターフェースによって渡される情報を使用すると、レーダシステム102は、ユーザによって行われているジェスチャを認識できる。環境100-4において、スマートデバイス104はハンドバッグに収納され、レーダシステム102は、ハンドバッグによって遮蔽されているジェスチャを検出することによって遮蔽ジェスチャ認識を実現する。
【0018】
レーダシステム102はまた、図1では図示していない他の種類のジェスチャまたは動きも認識できる。例示的な種類のジェスチャは、ユーザが架空のドアノブを握るために自分の指を丸め、架空のドアノブを回すアクションを模倣するために指および手を時計回りもしくは半時計回りに回転させるノブ回転ジェスチャを含む。別の例示的な種類のジェスチャは、ユーザが親指および少なくとも1本の他の指を共にこすり合わせることによって行う回転軸をひねるジェスチャを含む。これらのジェスチャは、タッチセンシティブディスプレイを用いて使用されるようなジェスチャ(例えば、2本の指ではさむこと、2本の指で広げる、またはタップ)など、2次元であり得る。このジェスチャはまた、多くの手話のジェスチャ、例えば、アメリカ手話(ASL)および世界の他の手話のジェスチャのように3次元でもよい。それらのジェスチャの各々を検出すると、スマートデバイス104は、新しいコンテンツの表示、カーソル移動、1つまたは複数のセンサの活性化、アプリケーションを開くなどのアクションを実行できる。このようにして、レーダシステム102は、スマートデバイス104の非接触制御を提供する。
【0019】
環境100-5において、レーダシステム102は、状況認識のための周囲環境の3次元マップを生成する。レーダシステム102はまた、複数のユーザを検出および追跡して、両方のユーザがスマートデバイス104と相互作用できるようにする。レーダシステム102はまた、生体信号検出も実行できる。環境100-6において、レーダシステム102は、車両を運転するユーザの生体信号を監視する。生体信号の例は、心拍数および呼吸数を含む。例えば運転手が寝入っていることを、レーダシステム102が判定すると、レーダシステム102は、スマートデバイス104にユーザに対して警報を発生させ得る。代替的に、レーダシステム102が、心臓発作などの生命にかかわる緊急事態を検出した場合、レーダシステム102は、スマートデバイス104に、医療専門家または救急サービスに対して警報を発生させ得る。いくつかの実施態様では、環境100-6におけるレーダシステム102は、自律運転および/または航法支援のための衝突回避をサポートできる。概して、レーダシステムは、非接触ジェスチャ制御、健康管理(例えば、睡眠追跡または生体信号監視)、フィットネス追跡、近接度検知、空間マッピング、および人間活動認識(例えば、転倒検知、注目、座位、または立位)を含む多種多様な異なるアプリケーションをサポートできる。
【0020】
レーダシステム102のいくつかの実施態様は、問題の収束が存在するスマートデバイス104の文脈において適用されるときに特に有益である。これは、レーダシステム102の間隔設定およびレイアウトにおける制限と、低電力との必要性を含み得る。スマートデバイス104の例示的な全体的な横寸法は、例えば、およそ8センチメートル×およそ15センチメートルであり得る。レーダシステム102の例示的な占有面積は、アンテナを含むと、例えばおよそ4ミリメートル×6ミリメートルなどにさらに制限され得る。レーダシステム102の例示的な消費電力は、数ミリワット~数十ミリワット(例えば、およそ2ミリワット~20ミリワット)程度であり得る。レーダシステム102のそのような制限されている占有面積および消費電力の要件によって、スマートデバイス104は、他の望ましい特徴を、空間的に制限されているパッケージ(例えば、カメラセンサ、指紋センサ、ディスプレイなど)に含めることを可能にする。スマートデバイス104およびレーダシステム102は、図2-1に関してさらに説明される。
【0021】
図2-1は、スマートデバイス104の一部としてレーダシステム102を示す。スマートデバイス104は、デスクトップコンピュータ104-1、タブレット104-2、ラップトップ104-3、テレビ104-4、コンピューティング時計104-5、コンピューティング眼鏡104-6、ゲーミングシステム104-7、電子レンジ104-8、および車両104-9を含む様々な非限定的な例示のデバイスと共に示されている。ホームサービスデバイス、スマートスピーカ、スマートサーモスタット、セキュリティカメラ、ベビーモニタ、Wi-Fi(登録商標)ルータ、ドローン、トラックパッド、ドローイングパッド、ネットブック、電子ブックリーダー、ホームオートメーションおよび制御システム、壁面ディスプレイ、ならびに他の家電製品など、他のデバイスもまた使用され得る。スマートデバイス104は、ウェアラブル、非ウェアラブルであるが携帯可能、または相対的に固定(例えば、デスクトップおよび機器)であり得る。レーダシステム102は、自動車内で内部機能(例えば、ボリューム、クルーズコントロール、さらには車の運転)を制御するため、またはラップトップ上のコンピューティングアプリケーションを制御するためのラップトップコンピュータの付属製品として、スタンドアロンのレーダシステムとしての使用、または家電製品およびシステムを制御するコントロールパネルなどの多くの異なるスマートデバイス104もしくは周辺機器と共に使用可能か、またはそれに内蔵可能である。
【0022】
スマートデバイス104は、1つまたは複数のコンピュータプロセッサ202と、メモリ媒体および記憶媒体を含む少なくとも1つのコンピュータ可読媒体204とを含む。コンピュータ可読媒体204上でコンピュータ可読命令として具現化されるアプリケーションおよび/またはオペレーティングシステム(図示せず)は、本明細書に記載の機能のいくつかを提供するために、コンピュータプロセッサ202によって実行され得る。コンピュータ可読媒体204はまた、アプリケーション206を含み、アプリケーション206は、存在検出、ジェスチャベースの非接触制御、自律運転のための衝突回避、健康管理、フィットネス追跡、空間マッピング、人間活動認識などの機能を行うためにレーダシステム102によって生成されているレーダデータを使用する。
【0023】
スマートデバイス104はまた、有線、無線、または光ネットワークを介してデータを通信するためのネットワークインターフェース208を含み得る。例えば、ネットワークインターフェース208は、ローカルエリアネットワーク(LAN)、無線ローカルエリアネットワーク(WLAN)、パーソナルエリアネットワーク(PAN)、ワイヤエリアネットワーク(WAN)、イントラネット、インターネット、ピアツーピアネットワーク、二地点間ネットワーク、メッシュネットワークなどを介してデータを通信し得る。スマートデバイス104はまた、ディスプレイ(図示せず)を含み得る。
【0024】
スマートデバイス104は、レーダアプリケーションプログラミングインターフェース210(例えば、レーダAPI210)を含む。レーダアプリケーションプログラミングインターフェース210は、アプリケーション206もしくは別のレーダシステムなどの外部実体とレーダシステム102との間のインターフェースを提供する。概して、レーダアプリケーションプログラミングインターフェース210は、外部実体(例えば、アプリケーション206)およびレーダシステム102が相互通信のために使用できる標準化されている言語を提供する。いくつかの態様において、レーダアプリケーションプログラミングインターフェース210は、1つまたは複数の外部実体(例えば、1つまたは複数のアプリケーション206)によって提供されている様々な要求をレーダシステム102が実行可能な動作構成に変換する。
【0025】
レーダアプリケーションプログラミングインターフェース210を通して、アプリケーション206は、どのようにレーダシステム102が機能するかを理解する必要なく、レーダシステム102の動作を制御でき、および/またはレーダシステム102から情報を受信できる。レーダアプリケーションプログラミングインターフェース210は、要求の種類および利用可能な応答、要求または応答の送信方法、データ形式、ならびに他の表記方法を含む、アプリケーション206とレーダシステム102との間の相互作用を定義する。また、レーダアプリケーションプログラミングインターフェース210は、米国連邦通信委員会(FCC)などの機関によって提供されるものを含む他の規則およびガイドラインの準拠を確実にできる。場合によっては、この情報は、第三者がそれに応じてアプリケーション206をプログラムできるようにする、標準文書において取得される。例えば、レーダアプリケーションプログラミングインターフェース210は、多種多様な異なる種類のレーダシステム102にわたって共通である機能ブロックのセットを定義でき、非レーダ技術者(例えば、開発者、愛好家、および研究者)が異なる目標を達成する独自の方法でそれらの機能ブロックを適用可能とし得る。レーダアプリケーションプログラミングインターフェース210はまた、多種多様な異なるアプリケーションまたは外部実体を、多種多様な異なる種類のレーダシステム102(例えば、異なるハードウェア設計、動作構成、および/またはパフォーマンスケイパビリティを有するレーダシステム)と通信可能にし得る。
【0026】
レーダアプリケーションプログラミングインターフェース210は、ソフトウェア、プログラマブルハードウェア、またはそれらのいくつかの組合せにおいて実施可能である。レーダアプリケーションプログラミングインターフェース210は、レーダシステム102の内部または外部に存在し得る。いくつかの実施態様では、レーダアプリケーションプログラミングインターフェース210は、CRM204内に記憶され、かつコンピュータプロセッサ202によって実行可能な命令を含む。他の実施態様では、レーダアプリケーションプログラミングインターフェース210を実施するための命令は、レーダシステム102のCRM(例えば、システム媒体220)内に記憶され、かつプロセッサ(例えば、システムプロセッサ218)によって実行可能である。
【0027】
レーダシステム102は、周波数変調連続波(FMCW)レーダ、パルスドップラーレーダ、連続波(CW)レーダ、位相変調スペクトラム拡散レーダ、インパルスレーダ、Zadoff-Chuシーケンスもしくは一定振幅ゼロ自己相関(CASAC)シーケンスを使用するレーダ、または多重入力多重出力(MIMO)レーダなどの1つまたは複数の異なる種類のレーダを実施し得る。レーダシステム102は、レーダデータをリモートデバイスに伝送するための通信インターフェース212を含むが、レーダシステム102がスマートデバイス104内に一体化されている場合、このインターフェースが使用される必要はない。概して、通信インターフェース212によって提供されるレーダデータは、レーダアプリケーションプログラミングインターフェース210およびアプリケーション206によって使用可能な形式である。
【0028】
レーダシステム102はまた、レーダ信号を送信および受信するために少なくとも1つのアンテナアレイ214および少なくとも1つのトランシーバ216を含む。アンテナアレイ214は、少なくとも1つの送信アンテナ素子および少なくとも1つの受信アンテナ素子を含む。状況によっては、アンテナアレイ214は、複数の送信アンテナ素子および/または複数の受信アンテナ素子を含む。複数の送信アンテナ素子および複数の受信アンテナ素子を用いて、レーダシステム102は、所与の時間に複数の別個の波形(例えば、送信アンテナ素子ごとに異なる波形)を送信できる多重入力多重出力レーダを実施できる。アンテナ素子は、円偏波、水平偏波、垂直偏波、またはそれらの組合せであり得る。
【0029】
アンテナアレイ214の複数の受信アンテナ素子は、3つ以上の受信アンテナ素子を含む実施態様のために、1次元形状(例えば、線)または2次元形状(例えば、矩形配置、三角形配置、または「L」形配置)で位置付けられ得る。1次元形状によって、レーダシステム102は、1つの角度寸法(例えば、方位もしくは仰角)を測定できるようになる一方、2次元形状によって、レーダシステム102は、(例えば、物体の方位角および仰角の両方を判定するために)2つの角度寸法を測定できるようになる。受信アンテナ素子と関連する素子間隔は、レーダ信号の中心波長の半分より小さい、それより大きい、またはそれと等しいことが可能である。
【0030】
トランシーバ216は、アンテナアレイ214を介してレーダ信号を送信および受信するための回路および論理を含む。トランシーバ216の構成要素は、増幅器、位相調整器、ミキサ、スイッチ、アナログ-デジタルコンバータ、もしくはレーダ信号を調整するためのフィルタを含み得る。トランシーバ216はまた、変調または復調など、同相/直角位相(I/Q)動作において実行する論理を含む。線形周波数変調、三角周波数変調、ステップ周波数変調、または位相変調を含む、多種多様な変調が使用可能である。代替的に、トランシーバ216は、相対的に一定の周波数または単音を有するレーダ信号を生成できる。トランシーバ216は、連続波またはパルスレーダ動作をサポートするように構成され得る。
【0031】
トランシーバ216がレーダ信号を生成するために使用する振動数スペクトル(例えば、周波数の範囲)は、1~400ギガヘルツ(GHz)の間、4~100GHzの間、1~24GHzの間、2~4GHzの間、30~80GHzの間、57~64GHzの間、またはおよそ2.4GHzの周波数を包含できる。場合によっては、振動数スペクトルは、類似または異なる帯域幅を有する複数のサブスペクトルに分割され得る。帯域幅は、500メガヘルツ(MHz)、1GHz、2GHzなど程度であり得る。場合によっては、帯域幅は、超広帯域幅(UWB)レーダを実施するために中心周波数のおよそ20%以上である。
【0032】
異なる周波数サブスペクトルは、例えば、およそ57~59GHz、59~61GHz、または61~63GHzの間の周波数を含み得る。上記で説明した例示的な周波数サブスペクトルは連続しているが、他の周波数サブスペクトルは連続していなくてもよい。コヒーレンスを達成するために、同じ帯域幅を有する複数の周波数サブスペクトル(連続、不連続にかかわらず)は、複数のレーダ信号を生成するためにトランシーバ216によって使用されてもよく、生成されるレーダ信号は、時間的に同時または分離して送信される。状況によっては、複数の連続した周波数サブスペクトルが単一のレーダ信号を送信するために使用されてもよく、それにより、レーダ信号は広帯域幅を有することが可能になる。
【0033】
レーダシステム102はまた、1つまたは複数のシステムプロセッサ218と、少なくとも1つのシステム媒体220(例えば、1つまたは複数のコンピュータ可読記憶媒体)とを含む。システム媒体220は、図2-2に関してさらに説明される。
【0034】
図2-2は、レーダシステム102の例示的なシステム媒体220を示す図である。システム媒体220は、少なくとも1つのデジタル信号処理(DSP)モジュール222と、少なくとも1つのレーダデータ処理モジュール224と、少なくとも1つのアプリケーションプログラミングインターフェース(API)エンジン226とを含む。デジタル信号処理モジュール222、レーダデータ処理モジュール224、および/またはアプリケーションプログラミングインターフェースエンジン226は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを使用して実施され得る。この例において、システムプロセッサ218が、デジタル信号処理モジュール222、データ処理モジュール224、およびアプリケーションプログラミングインターフェースエンジン226を実施する。代替的な実施態様(図示せず)において、デジタル信号処理モジュール222、レーダデータ処理モジュール224、またはアプリケーションプログラミングインターフェースエンジン226のうちの少なくとも1つは、コンピュータ可読媒体204内に含まれており、コンピュータプロセッサ202によって実施される。例えば、デジタル信号処理モジュール222は、システム媒体220内に含まれ、かつシステムプロセッサ218によって実行され得る一方、レーダデータ処理モジュール224およびアプリケーションプログラミングインターフェースエンジン226は、コンピュータ可読媒体204内に含まれ、かつコンピュータプロセッサ202によって実行され得る。この場合、コンピュータプロセッサ202がレーダデータを処理できるように、レーダシステム102は、通信インターフェース212を介してスマートデバイス104のレーダデータを提供できる。
【0035】
デジタル信号処理モジュール222は、リアルタイムの信号処理を実現するために、受信したレーダ信号のアナログおよび/またはデジタルサンプルに対して低レベル処理を行う。例示的な種類の信号処理は、非コヒーレント統合、クラッタ除去、検出閾値処理、雑音消去、ドップラーフィルタリング、インターフェロメトリ、および/またはデジタルビーム形成を含み得る。デジタル信号処理モジュール222のいくつかの関数は、加算、減算、および乗算などの反復的な数学演算を伴い得る。これらの反復的数学演算は、フーリエ変換(例えば、高速フーリエ変換)を実施するために行われ得る。一実施例では、デジタル信号処理モジュール222は、ハードウェアアブストラクションモジュール228を含む。概して、デジタル信号処理モジュール222は、トランシーバ216によって提供される生データを処理し、レーダデータ処理モジュール224によって使用可能な形式の前処理済みデータを生成する。
【0036】
レーダデータ処理(RDP)モジュール224は、リアルタイムのデータ処理を実現するために、デジタル信号処理モジュール222から受信した前処理済みデータに対して中レベルおよび/または高レベルの処理を行う。レーダデータ処理モジュール224は、物体追跡、クラッタ追跡、ジェスチャ認識、存在検出、生体認識、航法援助、および/または健康管理などの機能を行い得る。これらの機能は、発見的アルゴリズムおよび/または機械学習アルゴリズムを使用して実施可能である。例示的な実施態様では、レーダデータ処理モジュール224は、物体トラッカ230と、検出モジュール232とを含む。
【0037】
デジタル信号処理モジュール222およびレーダデータ処理モジュール224は、異なる種類のハードウェア、異なるハードウェア構成、および/または異なる動作構成(例えば、FMCWレーダ、パルスドップラーレーダ、またはインパルスレーダ)を有するレーダシステム102を含む、多種多様な異なる種類のレーダシステム102にわたる互換性のために設計され得る。換言すれば、デジタル信号処理モジュール222および/またはレーダデータ処理モジュール224は、レーダシステム102のハードウェア実施および動作に対して、少なくともある程度、非依存性であり得る。
【0038】
デジタル信号処理モジュール222および/またはレーダデータ処理モジュール224によって生成されているデータは、自己記述的であり得る。いくつかの場合では、データ自体の構造が、そのデータの形式および意味を記述する。他の場合では、デジタル信号処理モジュール222および/またはレーダデータ処理モジュール224は、レーダアプリケーションプログラミングインターフェース210を介したクエリによってデータの形式および意味に関する情報を提供し得る。例示的なデータ形式は、パックもしくは圧縮データ形式(例えば、特定量の13ビット整数)、アンパックされているデータ形式(例えば、32ビットのフロート配列)、または行インターリーブもしくは行単位の多次元データの次元を含む。
【0039】
デジタル信号処理モジュール222および/またはレーダデータ処理モジュール224内に実施されている各モジュール(または機能)は、定義されている入力および/または出力を有し得る。これらの入力および/または出力のいくつかは、レーダアプリケーションプログラミングインターフェース210を使用する外部実体(例えば、アプリケーション206)が、異なるユースケース、および様々なレーダ種類のために、デジタル信号処理モジュール222および/またはレーダデータ処理モジュール224の動作を容易にカスタマイズできるように標準化され得る。特に、外部実体は、レーダアプリケーションプログラミングインターフェース210を利用して、アプリケーション206のために、受信されているレーダ信号のサンプルを処理し、レーダデータを出力する実施のチェーン(または実施シーケンス)を指定できる。この実施チェーンは、特定の順序で実行されるデジタル信号処理モジュール222および/またはレーダデータ処理モジュール224のセットを表し得る。この実施チェーンを指定することによって、外部実体は、どのモジュールを有効にするか、または無効にするか、ならびにどの順序でそれらのモジュールが動作するかをカスタマイズできる。
【0040】
入力および/または出力は、1つまたは複数の標準的な描画プレーンと関連付けられ得る。いくつかの場合では、モジュールの入力および出力は、同じ標準の描画プレーンを参照できる。この場合、モジュールは、入力データの形式を変更せずに、入力データに対して動作する。したがって、出力データは、入力データと同じ形式を有する(または同じ標準の描画プレーンと関連付けられている)。他の場合では、モジュールの入力および出力は、異なる標準の描画プレーンを参照できる。特定の種類と関連付けられているモジュールは、特定の入力および出力をサポートできる。この場合、モジュールは、その入力データに対して動作し、入力データの形式は、出力データを生成するように変換される。したがって、出力データは、入力データとは異なる形式を有する(または異なる標準の描画プレーンと関連付けられている)。
【0041】
モジュールと関連付けられている標準の描画プレーンを知ることによって、技術者は、異なるモジュールを容易にスワップインまたはスワップアウトして、所望の計算コスト、メモリ費用、設定可能性、堅牢性、または性能を実現するようにレーダシステム102を動作させることができる。例示的な標準描画プレーンは、1つまたは複数のチャネルのための受信されているレーダ信号の生デジタルサンプル、範囲-ドップラーマップを表す情報、範囲-ドップラー-方位-仰角マップを表す情報、インタフェログラムを表す情報、物体データ(例えば、1つまたは複数の物体に関する位置情報、動き情報、および/または物理的情報)、ジェスチャデータ、生体データ、健康データ、衝突回避データなどを含み得る。いくつかの描画プレーンは、モジュールの不確実性を表す情報を含み得る。この不確実性情報は、エラーまたは不良な感知状態を認識するために他のモジュールによって使用され得る。
【0042】
いくつかのモジュールは、複数の標準描画プレーンをサポートし得る(例えば、代替の表現を有するデータをサポートし得る)。一例として、物体トラッカ230は、「密」表現と考えられ得るグリッド表現を出力し得る。そのグリッド表現において、各グリッド素子(またはセル)は、物体がその位置に存在するか否かを識別する。したがって、グリッド表現は、物体を含まない位置に関する追加情報を含み得る。代替的に、物体トラッカ230は、「疎」表現と考えられ得る物体のリストを出力し得る。物体のリストにおいて、各々の列挙されている物体は、そのグリッド位置に関する情報を含み得る。この物体リストが物体を包含しないグリッド素子に関する情報を含まなくてもよいため、物体リストは、グリッド表現よりも小さいメモリサイズを有し得る。この場合、外部実体は、レーダアプリケーションプログラミングインターフェース210を使用して、下流のモジュールがグリッド表現によって提供されるさらなる情報を利用できるか否かに応じて、適切な標準描画プレーンを指定することができる。
【0043】
アプリケーションプログラミングインターフェースエンジン226は、レーダアプリケーションプログラミングインターフェース210とレーダシステム102のコンポーネント(例えば、アンテナアレイ214、トランシーバ216、および/またはシステムプロセッサ218)との間のインターフェースとして機能できる。いくつかの場合では、アプリケーションプログラミングインターフェースエンジン226は、レーダアプリケーションプログラミングインターフェース210によって受信されている要求に従ってレーダシステム102の動作を修正する。例えば、アプリケーションプログラミングインターフェースエンジン226は、アンテナアレイ214内の特定数のアンテナ素子を活性化するか、またはトランシーバ216に、レーダアプリケーションプログラミングインターフェース210によって指定されている特定の種類のレーダ信号を生成させることができる。別の例として、アプリケーションプログラミングインターフェースエンジン226は、システムプロセッサ218に、レーダアプリケーションプログラミングインターフェース210によって指定されている実施チェーンを実行させる、および/または実施チェーン内のモジュールに、レーダアプリケーションプログラミングインターフェース210によって提供されている1つまたは複数のパラメータで動作させることができる。
【0044】
アプリケーションプログラミングインターフェースエンジン226はまた、情報をレーダアプリケーションプログラミングインターフェース210に提供でき、レーダアプリケーションプログラミングインターフェース210は、その情報をアプリケーション206に渡すことができる。任意選択的に、アプリケーションプログラミングインターフェースエンジン226は、レーダアプリケーションプログラミングインターフェース210から受信されているデータ、またはレーダアプリケーションプログラミングインターフェース210に提供されているデータを再フォーマットできる。ハードウェアアブストラクションモジュール228、物体トラッカ230、および検出モジュール232の動作が、以下でさらに説明される。
【0045】
ハードウェアアブストラクションモジュール228は、トランシーバ216によって提供されている生データをハードウェア非依存性データに変換する。このハードウェア非依存性データは、物体トラッカ230および/または検出モジュール232によって処理できる。特に、ハードウェアアブストラクションモジュール228は、多種多様な異なる種類のレーダ信号からの複素数データを期待される入力に一致させる。これによって、物体トラッカ230または検出モジュール232は、周波数変調連続波レーダ、位相変調スペクトラム拡散レーダ、またはインパルスレーダのための異なる変調スキームを利用するものを含む、レーダシステム102によって受信されている異なる種類のレーダ信号を処理できるようになる。ハードウェアアブストラクションモジュール228はまた、異なる中心周波数、帯域幅、伝送電力レベル、またはパルス幅を有するレーダ信号からの複素数データを正規化できる。
【0046】
加えて、ハードウェアアブストラクションモジュール228は、異なるハードウェアアーキテクチャを使用して生成されている複素数データを一致させる。異なるハードウェアアーキテクチャは、スマートデバイス104の異なる表面上に位置付けられている異なるアンテナアレイ214、またはアンテナアレイ214内のアンテナ素子の異なるセットを含み得る。ハードウェアアブストラクションモジュール228を使用することによって、下流のモジュールは、異なるゲインを有するアンテナ素子の異なるセット、様々な個数のアンテナ素子の異なるセット、または異なるアンテナ素子間隔を有するアンテナ素子の異なるセットによって生成されている複素数データを処理できる。さらに、ハードウェアアブストラクションモジュール228によって、それらの下流のモジュールが、利用可能なレーダ変調スキーム、伝送パラメータ、またはハードウェアアーキテクチャの種類に影響する異なる制限を伴ってレーダシステム102で動作可能になる。
【0047】
物体トラッカ230は、外部環境内の物体を識別し、各物体の挙動の履歴をコンパイルする。特に、物体トラッカ230は、物体の位置(例えば、距離および/もしくは角度)、動き(例えば、範囲レートおよび/もしくは速度)、物理的特性(例えば、サイズ、レーダ断面、および/もしくは材料組成)、またはそれらの組合せに関する情報をコンパイルできる。物体トラッカ230は、アルファ-ベータトラッカ、カルマンフィルタ、また多重仮説トラッカ(MHT)と関連付けられているものを含む、多種多様な異なる追跡アルゴリズムを使用して実施され得る。
【0048】
検出モジュール232は、ジェスチャ認識、存在検出、衝突回避、健康管理などの1つまたは複数のユースケースのために、物体トラッカ230によって提供されているデータを分析し得る。ジェスチャ認識の場合、検出モジュール232は、ジェスチャを認識し、ジェスチャおよび非ジェスチャと関連付けられている動きを区別できる。検出モジュール232は、図10に関してさらに説明される。いくつかの実施態様では、検出モジュール232は、状態機械として実施される。
【0049】
明示していないが、システム媒体220またはコンピュータ可読媒体204はまた、センサ融合モジュール、レーダ通信モジュール、データ収集モジュール、データ可視化ツール、および/またはレーダシミュレータを含み得る。センサ融合モジュールは、レーダシステム102からのデータを、別のレーダシステムまたは別の種類のセンサ(例えば、カメラ)などの外部センサによって提供されるデータと組み合わせることができる。
【0050】
レーダ通信モジュールによって、レーダシステム102は、スマートデバイス104の外部にある別の実体と、別のスマートデバイス104のレーダシステムを用いるなどして通信可能になる。直接通信を用いる場合、それらのレーダシステムは、バイスタティックレーダ感知をサポートするように相互に構成し、三角測量などの技術を利用し、関心物体のより高速な取得を可能にし、および/または一時的に隠されるようになるが他のレーダシステムによって検出される関心物体に関する追跡を維持することを可能にする。レーダ通信モジュールを用いた場合、レーダシステムは、情報を共有し、多種多様な異なる環境および状況における性能を改善できる。
【0051】
データ収集モジュールは、システム開発および統合のためにシステムプロセッサ218が利用可能なデータを記録できる。例示的なデータは、トランシーバ216によって提供されているデータ、またはデジタル信号処理モジュール222、レーダデータ処理モジュール224、および/またはアプリケーションプログラミングインターフェースエンジン226によって生成されているデータを含み得る。いくつかの場合では、データ収集モジュールは、トランシーバ216によって提供されている生データを取得し、計算費用を低減するために追加機能を実行しない。
【0052】
データ可視化ツールは、データ収集モジュールを使用して収集されているデータの視覚的な図を提供できる。このようにして、データ可視化ツールは、アプリケーション206の開発者が、レーダシステム102によって生成されているデータの閲覧および理解を容易にできる。例示的実施態様では、データ可視化ツールは、データが含む環境または活動を説明するラベルでデータにタグ付けする。別の例示的実施態様では、データ可視化ツールが、範囲-ドップラーマップを表す情報または物体の移動を表す情報など、レーダシステム102によって生成されているデータの一部をグラフィックで示す。他のデータ可視化ツールは、レーダシステム102によって用いられている視野、レーダシステム102によって生成されているレーダ送信信号、またはレーダシステム102のアンテナパターンなど、レーダシステム102の動作的な態様を図示することができる。
【0053】
レーダシミュレータは、デジタル信号処理モジュール222、レーダデータ処理モジュール224、および/またはアプリケーションプログラミングインターフェースエンジン226に仮想データを投入できる。この仮想データは、外部ソースによって提供されているデータ、またはレーダシミュレータによって生成されているシミュレーションデータを含み得る。いくつかの実施態様では、レーダシミュレータは、物体および/またはクラッタを有する仮想環境を描画し、その仮想環境内で仮想レーダ波の相互作用を分析することによってシミュレーションデータを生成できる。レーダシミュレータはまた、アルゴリズム開発者および統合テスト技術者が、レーダシステム102の性能に対して雑音源が及ぼし得る影響の理解を助けるように、雑音を投入することができる。レーダシミュレータを用いることによって、アプリケーション206の開発者は、特定のユースケースのためのレーダシステム102の利用の実現可能性を判定できる。レーダアプリケーションプログラミングインターフェース210は、図3-1に関してさらに説明される。
【0054】
図3-1は、例示的なレーダアプリケーションプログラミングインターフェース210を示す図である。場合によっては、レーダアプリケーションプログラミングインターフェース210は、アプリケーション206がレーダシステム102の異なる動作レベルと通信できるようにする複数のアプリケーションプログラミングインターフェースを含み得る。複数のアプリケーションプログラミングインターフェースは、レーダアプリケーションプログラミングインターフェース210の複数の層またはレベルを表し得る。一例として、レーダアプリケーションプログラミングインターフェース210は、ユースケースアプリケーションプログラミングインターフェース302(ユースケースAPI302)、機械学習(ML)およびアルゴリズムアプリケーションプログラミングインターフェース304(MLおよびアルゴリズムAPI304)、デジタル信号処理(DSP)アプリケーションプログラミングインターフェース306(DSP API306)、ハードウェアアブストラクションアプリケーションプログラミングインターフェース308(ハードウェアアブストラクションAPI308)、またはそれらのいくつかの組合せを含み得る。
【0055】
レーダアプリケーションプログラミングインターフェース210は、複数の層310に関して説明されることができ、各層は、図3-2に関してさらに説明されるように、レーダシステム102の特定の動作レベルと関連付けられている。概して、レーダアプリケーションプログラミングインターフェース210の上部層は、レーダ経験および知識が少ない技術者が、レーダシステム102のより高い動作レベルと容易に相互作用可能になるように設計されている。レーダアプリケーションプログラミングインターフェース210の下部層は、レーダ経験および知識が多い技術者が、レーダシステム102のより低い動作レベルを制御可能になるように設計されている。
【0056】
ユースケースアプリケーションプログラミングインターフェース302は、レーダアプリケーションプログラミングインターフェース210の第1の層310-1(または上部層)を表す。ユースケースアプリケーションプログラミングインターフェース302は、ハードウェアまたはソフトウェアの観点からレーダシステム102の動作および/またはレーダシステム102の能力に関する低レベルの詳細を知ることなく、非レーダ技術者がレーダシステム102とインターフェース接続可能にし得る。ユースケースアプリケーションプログラミングインターフェース320は、ジェスチャ認識、存在検出、生体認識、航法援助および/または健康管理を含む多種多様なユースケースのための、アプリケーション206とレーダシステム102との間の相互作用を標準化できる。
【0057】
機械学習およびアルゴリズムアプリケーションプログラミングインターフェース304は、レーダアプリケーションプログラミングインターフェース210の第2の層310-2(または上部中間層)を表す。機械学習およびアルゴリズムアプリケーションプログラミングインターフェース304を使用すると、何らかのレーダ知識を有する技術者は、レーダシステム102内に機械学習モデルを構築し、訓練できる。加えて、機械学習およびアルゴリズムアプリケーションプログラミングインターフェース304は、それらの技術者が、レーダシステム102が高レベルのレーダデータ(例えば、前処理済みレーダデータ)を分析可能にするコアアルゴリズムをカスタマイズ可能にし得る。
【0058】
デジタル信号処理アプリケーションプログラミングインターフェース306は、レーダアプリケーションプログラミングインターフェース210の第3の層310-3(例えば、下部中間層)を表す。デジタル信号処理アプリケーションプログラミングインターフェース306は、レーダシステム102が生データを処理するように実行することができる関数のライブラリを定義できる。これらの関数は、スペクトログラムの生成、ドップラーの計算、デジタルビーム形成の実行などを行い得る。デジタル信号処理アプリケーションプログラミングインターフェース306を使用すると、何らかのレーダ知識を有する技術者は、レーダシステム102によって実行されるデジタル信号処理をカスタマイズできる。
【0059】
ハードウェアアブストラクションアプリケーションプログラミングインターフェース308は、レーダアプリケーションプログラミングインターフェース308の第4の層310-4(例えば、下部層)を表す。ハードウェアアブストラクションアプリケーションプログラミングインターフェース308は、レーダシステム102のハードウェア実施態様の詳細を要約し、レーダシステム102のハードウェアから独立した標準化出力を可能にすることができる。ハードウェアアブストラクションアプリケーションプログラミングインターフェース308を使用すると、レーダの知識を有する技術者が、アンテナアレイ214および/またはトランシーバ216を含む、レーダシステム102内のハードウェアの動作および構成をカスタマイズできる。
【0060】
場合によっては、レーダシステム102は、多種多様な1つまたは複数の利用可能な構成312に従って動作できる。いくつかの場合では、これらの構成312は、レーダシステム102の限界および/またはスマートデバイス104の限界から導出される。いくつかの限界は、経時的に変化する可能性が低い固定の限界と考えられる。例えば、固定の限界は、レーダシステム102と関連付けられている(例えば、アンテナアレイ214、トランシーバ216、および/またはシステムプロセッサ218と関連付けられている)ハードウェアの限界に基づき得る。例示的な固定の限界は、レーダシステム102の利用可能な周波数帯域、帯域幅、伝送電力レベル、アンテナ構成、および/または二重構成を含む。他の限界は、経時的に変化し得る動的な限界と考えられる。例示的な動的な限界は、利用可能な電力量(例えば、スマートデバイス104のバッテリレベル)、利用可能なメモリ量(例えば、システム媒体220またはコンピュータ可読媒体204のサイズ)、および/または処理能力(例えば、システムプロセッサ218またはコンピュータプロセッサ202の処理能力)の量を含む。
【0061】
利用可能な構成312は、レーダ信号の生成、レーダ信号の送信、反射レーダ信号の受信、および/または反射レーダ信号の処理のためのレーダシステム102の動作構成を表す。いくつかの場合では、利用可能な構成312は、搬送周波数、帯域幅、レーダ波形(例えば、変調の種類)、および/または伝送電力レベルなど、レーダ信号の調節可能な特性を指定する。利用可能な構成312はまた、レーダシステム102のハードウェア構成、レーダシステム102のソフトウェア構成、レーダシステム102のレーダ感知性能メトリクス、レーダシステム102および/もしくはスマートデバイス104の利用可能なリソース、またはそれらのいくつかの組合せを含み得る。利用可能な構成312は、少なくとも1つのデフォルト構成を含み得る。
【0062】
例示的なハードウェア構成は、送信および受信のための単一のアンテナ、送信および/もしくは受信、またはMIMO動作のためのフェーズドアレイなどのアンテナ構成を含む。別の例示的なハードウェア構成は、パルスドップラーレーダを実施するための半二重構成、または周波数変調連続波レーダを実施するための全二重構成などの二重構成を含む。
【0063】
例示的なソフトウェア構成は、レーダ信号処理構成を含み得る。このレーダ信号処理構成は、物体に関する明確な情報を説明するために、レーダシステム102が用いることができる信号処理技術を指定する。いくつかのレーダ信号処理構成は、複雑性が低減するように、かつメモリの利用量が少なくなるように調整され得る。例えば、第1のレーダ信号処理構成は、フーリエ変換(例えば、高速フーリエ変換(FFT))を実行し、検出閾値アルゴリズムを使用する。これらの技術を用いると、第1のレーダ信号処理構成は、物体を検出し、物体までの距離を測定できる。他のレーダ信号処理構成は、誤検出を減らし、精度を改善するために、より複雑なものとすることができ、より多くのメモリを利用する可能性がある。例えば、第2のレーダ信号処理構成は、クラッタを監視するためのクラッタトラッカ、物体検出の尤度を改善し、測定精度を改善するための追跡アルゴリズム、および/または物体に対する1つまたは複数の角度を測定するためのデジタルビームフォーマを含み得る。
【0064】
一態様において、レーダアプリケーションプログラミングインターフェース210によって、技術者が、利用可能な構成312のうちの1つに従ってレーダシステム102を構成することを可能にし得る。別の態様では、レーダアプリケーションプログラミングインターフェース210によって、技術者が、利用可能な構成312を参照し、利用可能な構成312に基づいて新しいカスタムの構成を作成することを可能にし得る。
【0065】
動作中に、アプリケーション206は、要求314を、レーダアプリケーションプログラミングインターフェース210に送信する。要求314は、レーダシステム102の特定の動作構成を指定でき、またはレーダシステム102から特定の情報を要求できる。例示的な種類の情報は、利用可能な構成312、レーダシステム102のパフォーマンスケイパビリティ、レーダシステム102によって収集されている特定の種類のデータ、またはエラー報告のリストを含むことができる。要求314は、ユースケースアプリケーションプログラミングインターフェース302に対して、機械学習およびアルゴリズムアプリケーションプログラミングインターフェース304、デジタル信号処理アプリケーションプログラミングインターフェース306、および/またはハードウェアアブストラクションアプリケーションプログラミングインターフェース308を適用できる。いくつかの要求314は、レーダシステム102をリセットまたは再起動できる。
【0066】
レーダアプリケーションプログラミングインターフェース210は、要求314を、レーダシステム102の構成316(例えば、利用可能な構成312のうちの1つ)にマッピングし得る。場合によっては、レーダアプリケーションプログラミングインターフェース210は、アプリケーション206または多種多様な異なるアプリケーションから複数の要求314を受信できる。レーダシステム102は、それらの要求314を一緒に処理でき、その複数の要求314を満たす、レーダシステム102の適切な構成316を決定できる。このように、レーダアプリケーションプログラミングインターフェース210によって、レーダシステム102は、多種多様な異なるアプリケーション206またはユースケースのためにレーダ感知を効率的に提供可能になる。レーダシステム102は、この構成316を受信し、それに応じて動作する。
【0067】
レーダシステム102は、レーダデータ318を、レーダアプリケーションプログラミングインターフェース210に送信する。レーダデータ318は、特定のジェスチャが検出されているかどうか、またはレーダシステム102によって収集されているデータ(例えば、受信信号の生のデジタルサンプル、またはレンジ-ドップラーマップを表すデータ)を含むかどうかを示し得る。レーダデータ318の受信に応答して、レーダアプリケーションプログラミングインターフェース210は、レーダデータ318をフォーマットして、応答320をアプリケーション206に提供できる。いくつかの場合において、応答320は、レーダデータ318を含み得る。応答320はまた、フォールスポジティブと関連付けられているエラー報告を含み得る。この情報を用いて、アプリケーション206は、フォールスポジティブを減少させるために、要求314に対して適切な調整を行い得る。様々なアプリケーションプログラミングインターフェースは、図3-2に関してさらに説明するように、レーダシステム102の異なる動作レベルと関連付けられ得る。
【0068】
図3-2は、レーダアプリケーションプログラミングインターフェース210の複数の層310-1~310-4とレーダシステム102の動作レベル322-1~322-4との間の例示的な関係を示す。図示されている構成では、レーダシステム102は、複数のレベル322(または動作レベル)と関連付けられる。概して、上位レベル322は、より高レベルのレーダデータ(例えば、前処理済みデータ)上で動作するモジュールを含む。受信中に、これらのモジュールは、アプリケーション206によって要求されているレーダデータ318を生成するために、受信プロセスの終了に向かって実行され得る。下位レベル322は、下位レベルのレーダデータ(例えば、生レーダデータ)に対して動作するモジュールを含み得る。受信中に、これらのモジュールは、受信プロセスの開始(または少なくとも、上位レベル322と関連付けられているモジュールの前)に向かって実行され得る。下位レベル322はまた、レーダシステム102のハードウェア構成を伴い得る。
【0069】
図3-2に示すように、レーダデータ処理モジュール224は、レーダシステム102の第1のレベル322-1(例えば、第1の動作レベル)および第2のレベル322-2(例えば、第2の動作レベル)と関連付けられている。特に、検出モジュール232は、第1のレベル322-1と関連付けられており、物体トラッカ230は、第2のレベル322-2と関連付けられている。デジタル信号処理モジュール222は、レーダシステム102の第3のレベル322-3(例えば、第3の動作レベル)と関連付けられている。アンテナアレイ214およびトランシーバ216を含む、レーダシステム102のハードウェア324は、第4のレベル322-4と関連付けられている。
【0070】
レーダアプリケーションプログラミングインターフェース210の各層310は、レーダシステム102の1つまたは複数のレベル322と関連付けられ得る。特に、レーダアプリケーションプログラミングインターフェース210の各層310は、直接的、またはアプリケーションプログラミングインターフェースエンジン226を介して間接的のいずれかで、レーダシステム102の対応レベル322と通信し得る。これらの通信を通して、レーダアプリケーションプログラミングインターフェース210の各層310は、レーダシステム102の対応レベル322と関連付けられている動作パラメータおよび/またはモジュールを管理できる。レーダアプリケーションプログラミングインターフェース210はまた、レーダシステム102の対応レベル322から情報を抽出でき、ならびに/または対応レベル322と関連付けられているモジュールの入力および/もしくは出力をカスタマイズできる。
【0071】
この例において、ユースケースアプリケーションプログラミングインターフェース302は、検出モジュール232と関連付けられている。この関係を用いて、ユーザケースアプリケーションプログラミングインターフェース302は、ジェスチャ認識、存在検出、生体認識、衝突回避、健康管理などのためのレーダシステム102の動作をカスタマイズできる。特に、ユースケースアプリケーションプログラミングインターフェース302は、図10に関してさらに説明するように、検出モジュール232の異なる状態を指定できる。
【0072】
機械学習およびアルゴリズムアプリケーションプログラミングインターフェース304は、物体トラッカ230と関連付けられている。この関係を用いて、機械学習およびアルゴリズムアプリケーションプログラミングインターフェース304は、物体トラッカ230の動作をカスタマイズでき、物体トラッカ230の出力形式を指定できる。
【0073】
デジタル信号処理アプリケーションプログラミングインターフェース306は、デジタル信号処理モジュール222(またはハードウェアアブストラクションモジュール228)と関連付けられている。この関係を用いて、デジタル信号処理アプリケーションプログラミングインターフェース306は、クラッタ除去、雑音消去、検出閾値処理、ドップラーフィルタリング、インターフェロメトリ、および/またはデジタルビーム形成を含み得る、レーダシステム102のデジタル信号処理動作をカスタマイズできる。デジタル信号処理アプリケーションプログラミングインターフェース306はまた、積分時間などの特徴を指定して、レートを更新できる。
【0074】
ハードウェアアブストラクションアプリケーションプログラミングインターフェース308は、ハードウェア324と関連付けられている。この関係を用いて、ハードウェアアブストラクションアプリケーションプログラミングインターフェース308は、アンテナアレイ214および/またはトランシーバ216の動作を調整できる。例えば、ハードウェアアブストラクションアプリケーションプログラミングインターフェース308は、伝送電力、周波数、帯域幅、変調の種類(例えば、周波数または位相変調)などの送信レーダ信号の波形パラメータを指定できる。ハードウェアアブストラクションアプリケーションプログラミングインターフェース308はまた、放射パターン(例えば、主ローブの方向および/またはビーム幅)、パルス幅、パルス繰り返し周波数(PRF)(例えば、インターパルス期間(IPP))、パルス数、デューティサイクル、または偏波(例えば、水平偏波、垂直偏波、および/もしくは円偏波)などを指定できる。
【0075】
いくつかの場合では、ハードウェアアブストラクションアプリケーションプログラミングインターフェース308によって、外部当事者が、検出範囲など、レーダシステム102のより高いレベルの動作態様を指定可能になり、それを伝送電力などの1つまたは複数の動作パラメータにマッピングできる。別の例として、ハードウェアアブストラクションアプリケーションプログラミングインターフェース308によって、ユーザは、分解能(例えば、範囲、ドップラー、および/または角度)を指定可能になり、それを1つまたは複数の動作パラメータ(例えば、帯域幅、積分時間、またはアクティブなアンテナ素子数)にマッピングできる。ジェスチャ認識をサポートするためのレーダアプリケーションプログラミングインターフェース120およびレーダシステム102の動作が、図4図10に関してさらに説明される。
【0076】
図4は、ジェスチャ認識のためにアプリケーション206によって生成され、かつレーダアプリケーションプログラミングインターフェース210に対して提供される例示的な要求314を示す。この例において、レーダアプリケーションプログラミングインターフェース210は、ユースケースアプリケーションプログラミングインターフェース302を表し得る。レーダアプリケーションプログラミングインターフェース210によって、アプリケーション206は、ジェスチャ認識のためにレーダシステム102の動作をカスタマイズ可能になる。このように、アプリケーション206は、レーダシステム102が検出できるジェスチャの種類、およびレーダシステム102のフォールスポジティブ率(例えば、レーダシステム102が誤って他の動きをジェスチャであると認識する比率)を制御できる。
【0077】
ジェスチャ認識の場合、アプリケーション206は、要求314をレーダアプリケーションプログラミングインターフェース210に送信する。要求314は、物体がジェスチャを行ったときの物体の挙動状態のシーケンスを指定するパターン認識シーケンス402を含む。ジェスチャは、少なくとも2つの状態を通して進行する。各状態は、レーダ感知を使用して測定または判定され得るジェスチャを行っている物体の1つまたは複数の特性(または特徴)を記述できる。例えば、各状態は、ジェスチャを行っている物体の相対的または絶対的位置、ジェスチャを行っている物体に関連する動き(例えば、範囲レート、速度、加速度、またはそれらの任意の派生物)、ジェスチャを行っている物体の配向またはレーダ断面、ジェスチャを行っている物体の組成、および/またはそれらのいくつかの組合せを記述し得る。
【0078】
各パターン認識シーケンス402は、少なくとも、ジェスチャの開始挙動または開始特徴を記述する開始状態と、ジェスチャの終了挙動または終了特徴を記述する終了状態とを含む。ジェスチャの複雑性に応じて、いくつかのパターン認識シーケンス402はまた、開始状態と終了状態との間で発生するジェスチャの1つまたは複数の挙動または特徴を記述する1つまたは複数の中間状態を含み得る。パターン認識シーケンス402を使用して、アプリケーション206は、それを他の種類の動きまたはジェスチャから差別化するやり方でジェスチャを定義できる。このようにして、アプリケーション206は、特定のジェスチャを検出するためのレーダシステム102の感度と、そのジェスチャと関連付けられていない他の動きを無視するレーダシステム102の能力とを制御できる。
【0079】
感度を高めることによって、レーダシステム102は、異なる変形を有する、多種多様な異なるユーザによって行われるジェスチャを検出可能になる。例えば、一部のユーザは、異なる速度を使用して、または異なる微妙さの程度または誇張の程度を使用してジェスチャを行う場合がある。感度を高めることにはまた、身体障害者がジェスチャを行うための利用しやすさを向上させることができる。ただし、感度を高めることはまた、レーダシステム102に、フォールスポジティブを生成させ得る。例えば、レーダシステム102は、掃除機をかける、スマートデバイス104を所持して歩く、スマートデバイス104に隣接して犬を散歩する、スマートデバイス104に隣接して衣服を畳む、スマートデバイス104に隣接してベッドを整える、スマートデバイス104に隣接して皿洗いをする、スマートデバイス104に近接した物体を再配置するなどの、ジェスチャに関係ない他の動きをユーザが行うことに基づいて、ジェスチャを偶発的に検出する場合がある。パターン認識シーケンス402を定義することによって、アプリケーション206は、レーダシステム102の感度レベルを制御し、レーダシステム102のフォールスポジティブ率を管理できる。
【0080】
パターン認識シーケンス402は、状態404-1、404-2、・・・404-Pを含み、ここでPは、正の整数を表す。各状態404-1~404-Pは、ジェスチャの一部分の間における物体の挙動を定義する。個別の状態404-1~404-Pは、少なくとも1つの基準406を含むことができ、任意選択的に1つまたは複数の出力408を渡すことができる。基準406は、1つまたは複数の進入基準、1つまたは複数の退出基準、またはそれらのいくつかの組合せを含み得る。進入基準は、状態404-1~404-Pに入るための基準を表し、退出基準は、状態404-1~404-Pから出るための基準を表す。各基準406は、閾値、条件比較(例えば、~より大きい、~より小さい、もしくは~と等しい)、論理演算(例えば、AND、OR、もしくはNOT)、有効値の範囲、またはデルタ変化(例えば、変位)を指定できる。
【0081】
例示的な基準406は、位置基準410、動き基準412、物理的特性基準414、および持続時間基準416を含む。位置基準410は、ジェスチャを実行する物体の位置と関連付けられている基準を含む。例えば、位置基準410は、範囲基準418(例えば、距離基準もしくは直距離基準)または角度基準420(例えば、方位基準および/もしくは仰角基準)を含み得る。
【0082】
動き基準412は、ジェスチャを実行する物体の動きと関連付けられている基準を含む。例えば、動き基準412は、範囲レート基準422もしくは速度基準424を含み得る。別の例として、動き基準412は、加速またはジャーク基準(図示せず)を含み得る。範囲レート基準422は、ドップラー決定されている範囲レートまたは範囲決定されている範囲レートに基づき得る。
【0083】
物理的特性基準414は、ジェスチャを実行する物体の物理的特性と関連付けられている基準を含む。例えば、物理的特性基準414は、物体のレーダ断面の挙動を記述するレーダ断面(RCS)基準426(RCS基準426)を含み得る。追加的または代替的に、物理的特性基準414は、物体の組成(例えば、ヒト組織、金属、木材、または布)を記述する材料組成基準428を含み得る。図示していないが、この物理的特性基準414はまた、物体のサイズまたは寸法と関連付けられている基準も含み得る。
【0084】
持続時間基準416は、少なくとも1つの他の基準が満たされる持続時間を指定する。この持続時間は、物体がレーダシステム102によって検出される時間間隔またはレーダフレーム(例えばインスタンス)の数に関して指定され得る。
【0085】
出力408によって、現在の状態404が、パターン認識シーケンス402内で次の状態404に情報を渡すことが可能となる。例示的な出力408は、位置情報(例えば、範囲もしくは角度)、動き情報(例えば、ドップラー周波数、範囲レート、もしくは速度)、または物理的情報(例えば、サイズ、レーダ断面、材料組成)を含み得る。出力408を受信することによって、次の状態404は、物体の挙動が前の状態と相対的に類似のままであるか、またはジェスチャ全体を通して変化しているか否かを評価できる。
【0086】
概して、パターン認識シーケンス402は、状態404-1~404-Pの任意の数量を含み得、それによって、パターン認識シーケンス402が単純または複雑なジェスチャを定義可能になる。手を伸ばすジェスチャなどの単純なジェスチャは、往復運動ジェスチャまたは手話などのより複雑なジェスチャと比較して少ない数の状態404を有する場合がある。各状態404-1~404-Pの基準406は、厳しいまたは緩い許容範囲を可能にし、この許容範囲は、ジェスチャを検出するためのレーダシステム102の感度およびフォールスポジティブ率に影響し得る。例示的なパターン認識シーケンス402は、図5-1~図7-2における様々なジェスチャに関してさらに説明される。
【0087】
図5-1は、往復運動ジェスチャ502を実行する物体500と関連付けられている例示的なパターン認識シーケンス402-1を示す図である。この往復運動ジェスチャ502を行うために、物体500は、レーダシステム102に対してほぼ一定の角度で、スマートデバイス104に向かって移動する、およびスマートデバイス104から離れる方向に移動する。図5-1において、物体500は人の手であるように示されている。ただし、無生の物体を含む他の種類の物体も代替的に使用され得る。
【0088】
この例において、パターン認識シーケンス402-1は、状態404-1、404-2、および404-3を含む。状態404-1は、物体500がスマートデバイス104に接近するときの物体500の挙動を特徴付ける、角度基準420、範囲レート基準422-1、および持続時間基準416-1を含む。状態404-2は、スマートデバイス104から短距離の位置で低速化したときの物体500の挙動を特徴付ける、角度基準420および範囲レート基準422-2を含む。状態404-3は、物体500がスマートデバイス104から離れる方向に移動したときの物体500の挙動を特徴付ける、角度基準420、範囲レート基準422-3、および持続時間基準416-2を含む。
【0089】
状態404-1~404-3にわたる基準は、角度基準420の場合などに同様であり得、範囲レート基準422-1、422-2、および422-3の場合などに異なり得る。フォールスポジティブを減少させるために、状態404-1~404-3は、他の基準を含み得る。例えば状態404-1~404-3は、手の動きに対して垂直な方向を指している指によって行われている往復運動ジェスチャ502か、または拳に指を曲げた状態で行う別の往復運動ジェスチャ502かを区別するためのレーダ断面基準426を含み得る。別の例として、状態404-1~404-3は、手を用いて行われている往復運動ジェスチャ502と、スタイラスを用いて行われている往復運動ジェスチャ502とを区別するための材料組成基準428を含み得る。状態404-1~404-3と関連付けられている基準406は、図5-2に関してさらに説明される。
【0090】
図5-2は、往復運動ジェスチャ502を実行する物体500の例示的な挙動を示す図である。グラフ504は、往復運動ジェスチャ502の持続時間にわたる物体500の範囲レートを図示する。範囲レートは、物体500の測定されているドップラー周波数、または測定されている範囲(例えば、距離)における変化に基づいて判定され得る。この場合、範囲レートは、負の値から正の値へと変化する。グラフ506は、往復運動ジェスチャ502の持続時間にわたる物体500の角度を図示する。この場合、角度は、往復運動ジェスチャ502の特性である、相対的に一定のままである。この例について、状態404-1~404-3の基準406は退出基準を表すと考える。
【0091】
時刻T0において、物体500は、状態404-1の範囲レート基準422-1より小さい範囲レートを有する。物体500はまた、状態404-1の角度基準420によって指定されているマージン内に留まる角度を有する。この場合、物体500は、角度が顕著に変化しない限り(例えば、指定されているマージンよりも大きく変化しない限り)任意の角度にあり得る。物体500は、持続時間基準416-1によって指定されている持続時間の間範囲レート基準422-1および角度基準420を満たす。それによって、往復運動ジェスチャ502の第1の部分は、状態404-1によって特徴付けられる。
【0092】
時刻T1とT2との間において、物体500の範囲レートは、状態404-2の範囲レート基準422-2によって指定されている閾値間である。これらの閾値によって、範囲レート基準422-2は、範囲レートの変化の兆候(例えば、負から正に向かう)をとらえることが可能になる。これは、物体500がスマートデバイス104に向かって進行する方向からスマートデバイス104から離れて進行する方向へ変化することを示す。また、物体500の角度は、角度基準420内のままである。このように、往復運動ジェスチャ502の第2の部分は、状態404-2によって特徴付けられる。
【0093】
時刻T3において、物体500の範囲レートは、状態404-3の範囲レート基準422-3より大きい。また、物体500の角度は、角度基準420内のままである。物体は、持続時間基準416-2によって指定されている持続時間の間範囲レート基準422-3および角度基準420を満たす。このように、往復運動ジェスチャ502の第3の部分は、状態404-3によって特徴付けられる。
【0094】
状態404-1、404-2、および404-3の基準を順序通りに満たす物体を認識することによって、レーダシステム102は、往復運動ジェスチャ502を認識でき、レーダアプリケーションプログラミングインターフェース210は、往復運動ジェスチャ502が発生したことを示す応答320をアプリケーション206に送信できる。アプリケーション206は、応答320の受信に応答してアクションを行い得る。例えば、アプリケーション206は、タイマーの停止、ボタンのクリック、選択されているオプションの活性化、または媒体の一時停止を行い得る。
【0095】
いくつかのアプリケーション206は、状態404-1~404-3のうちの1つまたは複数の状態内にさらなる基準406を追加してもよく、またはフォールスポジティブを減らすために基準406の許容範囲を厳しくしてもよい。例えば、アプリケーション206は、物体500がスマートデバイス104から最短距離内にあることを要件とするために、範囲基準418を状態404-2に追加できる。別の例として、アプリケーション206は、ユーザによって行われている往復運動ジェスチャ502と、ユーザがスマートデバイス104の隣でベッドを整えるときにベッドシーツを裏返しにすることとを区別するために、レーダ断面基準426または材料組成基準428を状態404-1~404-3に追加できる。さらに別の例として、範囲レート基準422-1および422-3は、往復運動ジェスチャ502の検出を可能にするように適切に設定される得、かつ範囲レート基準422-1または422-3を満たすことができない、より低速の範囲レートを有し得る掃除機がけと関連する検出を拒絶できる。
【0096】
図6-1は、スワイプジェスチャ602を実行する物体500と関連付けられている例示的なパターン認識シーケンス402-2を示す図である。スワイプジェスチャ602を行うために、物体500は、相対的に直線状の経路に沿ってスマートデバイス104を横切って移動する。この直線的経路は、全スワイプジェスチャのための任意の方向に沿って配向可能である。代替的に、この直線的経路は、特定方向スワイプジェスチャ(例えば、上から下への方向、下から上への方向、左から右への方向、または右から左への方向)と関連付けられている特定の方向に沿って配向され得る。図6-1において、物体500は人の手であるように示されている。ただし、無生の物体を含む他の種類の物体も代替的に使用され得る。
【0097】
この例において、パターン認識シーケンス402-2は、状態404-1および404-2を含む。状態404-1は、物体500がスマートデバイス104を横切ってスワイプを開始したときの物体500の挙動を特徴付ける、角度基準420-1、速度基準424、および持続時間基準416-1を含む。状態404-2は、物体500がスマートデバイス104を横切るスワイプを継続したときの物体500の挙動を特徴付ける、角度基準420-2、速度基準424、および持続時間基準416-2を含む。
【0098】
状態404-1および404-2にわたる基準406は、速度基準424の場合などと同様であり得るか、または角度基準420-1および420-2の場合などと異なり得る。状態404-1~404-2と関連付けられている基準406は、図6-2に関してさらに説明される。
【0099】
図6-2は、スワイプジェスチャ602を実行する物体500の例示的な挙動を示す図である。グラフ604は、スワイプジェスチャ602の持続時間にわたる物体500の速度を図示する。この速度は、物体500の測定されている位置の変化に基づいて判定され得る。この場合、速度は、相対的に一定のままである。グラフ606は、スワイプジェスチャ602の持続時間にわたる物体500の角度を図示する。この場合、角度は経時的に変化し、これはスワイプジェスチャ602の特性である。この例について、状態404-1および404-2の基準406は退出基準を表すと考える。
【0100】
時刻T0とT1との間において、物体500の速度は、状態404-1の速度基準424によって指定されている閾値を上回る。また、物体500の角度は、角度基準420-1によって指定されている量だけ変化する。物体500は、持続時間基準416-1によって指定されている持続時間の間、速度基準424および角度基準420-1を満たす。それによって、スワイプジェスチャ602の第1の部分は、状態404-1によって特徴付けられる。
【0101】
時刻T1とT2との間において、物体500の速度は、速度基準424によって指定されている閾値を上回っているままである。また、物体500の角度は、角度基準420-2によって指定されている量だけ変化する。物体500は、持続時間基準416-2によって指定されている持続時間の間、速度基準424および角度基準420-1を満たす。それによって、スワイプジェスチャ602の第2の部分は、状態404-2によって特徴付けられる。
【0102】
状態404-1および404-2の基準を順序通りに満たす物体を認識することによって、レーダシステム102は、スワイプジェスチャ602を認識でき、レーダアプリケーションプログラミングインターフェース210は、スワイプジェスチャ602が発生したことを示す応答320をアプリケーション206に送信できる。アプリケーション206は、応答320の受信に応答してアクションを行い得る。例えば、アプリケーション206は、コンテンツを通してスクロールできるか、またはプレイリストの次の曲を再生できる。
【0103】
パターン認識シーケンス402-2の他の実施態様は、特定の方向に沿ったスワイプジェスチャ602をサポートする角度基準420を含み得る。左から右のスワイプジェスチャ602を認識するために、状態404-1の角度基準420-1は、物体500がスマートデバイス104の左側に現れるかどうかを識別できる。また、状態404-2の角度基準420-2は、物体500がスマートデバイス104の右側に移動するかどうかを識別できる。
【0104】
いくつかのアプリケーション206は、状態404-1および404-2のうちの1つまたは複数の状態内にさらなる基準406を追加してもよく、またはフォールスポジティブを減らすために基準406の許容範囲を厳しくしてもよい。例えば、アプリケーション206は、ユーザによって行われているスワイプジェスチャ602と、ユーザがスマートデバイス104を横切って無生の物体(例えばカップまたは紙)を動かすこととを区別するために、材料組成基準428を状態404-1および404-2に追加できる。
【0105】
図7-1は、手を伸ばすジェスチャ702を実行する物体500と関連付けられている例示的なパターン認識シーケンス402-3を示す図である。手を伸ばすジェスチャ702を行うために、物体500は、相対的に直線状の経路に沿ってスマートデバイス104に向かって移動する。この例において、パターン認識シーケンス402-3は、状態404-1および404-2を含む。状態404-1は、物体500がスマートデバイス104に向かって手を伸ばすことを開始したときの物体500の挙動を特徴付ける、範囲基準418-1、範囲レート基準422、および持続時間基準416-1を含む。状態404-2は、物体500がスマートデバイス104に向かって手を伸ばすことを継続したときの物体500の挙動を特徴付ける、範囲基準418-2、範囲レート基準422、および持続時間基準416-2を含む。
【0106】
状態404-1および404-2にわたる基準406は、例えば範囲レート基準422の場合などのように同様であり得るか、または例えば範囲基準418-1および418-2の場合などのように異なり得る。状態404-1および404-2と関連付けられている基準406は、図7-2に関してさらに説明される。
【0107】
図7-2は、手を伸ばすジェスチャ702を実行する物体500の例示的な挙動を示す図である。グラフ704は、手を伸ばすジェスチャ702の持続時間にわたる物体500の範囲レートの絶対値を図示する。範囲レートは、物体500の測定されているドップラー周波数、または測定されている範囲(例えば、距離)における変化に基づいて判定され得る。この場合、範囲レートは、相対的に一定のままである。グラフ706は、手を伸ばすジェスチャ702の持続時間にわたる物体500の範囲(例えば、距離)を図示する。この場合、範囲は経時的に減少し、これは手を伸ばすジェスチャ702の特性である。この例について、状態404-1および404-2の基準は退出基準を表すと考える。
【0108】
時刻T0とT1との間において、物体500の範囲レートの絶対値は、状態404-1の範囲レート基準422によって指定されている閾値を上回る。また、物体500の範囲は、範囲基準418-1未満である。物体500は、持続時間基準416-1によって指定されている持続時間の間、範囲レート基準422および範囲基準418-1を満たす。それによって、手を伸ばすジェスチャ702の第1の部分は、状態404-1によって特徴付けられる。
【0109】
時刻T1とT2との間において、物体500の範囲レートの絶対値は、範囲レート基準422によって指定されている閾値を上回る。また、物体500の範囲は、範囲基準418-2未満である。物体500は、持続時間基準416-2によって指定されている持続時間の間、範囲レート基準422および範囲基準418-2を満たす。それによって、手を伸ばすジェスチャ702の第2の部分は、状態404-2によって特徴付けられる。
【0110】
状態404-1および404-2の基準406を順序通りに満たす物体を認識することによって、レーダシステム102は、手を伸ばすジェスチャ702を認識でき、レーダアプリケーションプログラミングインターフェース210は、手を伸ばすジェスチャ702が発生したことを示す応答320をアプリケーション206に送信できる。アプリケーション206は、応答320の受信に応答してアクションを行い得る。例えば、アプリケーション206は、センサを起動する、顔認証を開始する、またはディスプレイをオンにすることができる。レーダシステム102の動作は、図8図10に関してさらに説明される。
【0111】
図8は、レーダシステム102の例示的なアンテナアレイ214および例示的なトランシーバ216を示す図である。図示した構成において、トランシーバ216は、送信機802および受信機804を含む。送信機802は、少なくとも1つの電圧制御発振器806および少なくとも1つの電力増幅器808を含む。受信機804は、少なくとも2つの受信チャネル810-1~810-Mを含み、ここでMは1より大きい正の整数である。各受信チャネル810-1~810-Mは、少なくとも1つの低雑音増幅器812、少なくとも1つのミキサ814、少なくとも1つのフィルタ816、および少なくとも1つのアナログ-デジタルコンバータ818を含む。アンテナアレイ214は、少なくとも1つの送信アンテナ素子820および少なくとも2つの受信アンテナ素子822-1~822-Mを含む。送信アンテナ素子820は、送信機802に結合されている。受信アンテナ素子822-1~822-Mは、受信チャネル810-1~810-Mにそれぞれ結合されている。レーダシステム102の他の実施態様は、複数の送信アンテナ素子820および/または単一の受信アンテナ素子822を含み得る。
【0112】
送信中に、電圧制御発振器806は、無線周波数において周波数変調レーダ信号824を生成する。電力増幅器808は、送信アンテナ素子820を介して送信するために周波数変調レーダ信号824を増幅する。送信されている周波数変調レーダ信号824は、複数のチャープを含む場合があるレーダ送信信号826によって表される。一例として、レーダ送信信号826は、16のチャープを含み、これらのチャープは、連続的バーストにおいて、または時間的に間隔があけられているパルスとして送信され得る。各チャープの持続時間は、例えば、数十または数千マイクロ秒程度(例えば、およそ30マイクロ秒(μs)と5ミリ秒(ms)との間)であり得る。
【0113】
チャープの個々の周波数は、経時的に増加または減少し得る。レーダシステム102は、2つの傾斜の周期(例えば、三角周波数変調)を用いて経時的にチャープの周波数を線形的に増加させ、線形的に減少させることができる。この2つの傾斜の周期によって、レーダシステム102は、物体500の動きによって引き起こされているドップラー周波数偏移を測定可能になる。概して、チャープの送信特性(例えば、帯域幅、中心周波数、持続時間、および伝送電力)は、物体500の1つまたは複数の特性を検出するために、特定の検出範囲、範囲分解能、またはドップラー感度を実現するように調整され得る。いくつかの場合では、チャープの特性は、レーダアプリケーションプログラミングインターフェース210を使用してアプリケーション206によって調整される。例えば、アプリケーションプログラミングインターフェースエンジン226は、任意選択的に、レーダアプリケーションプログラミングインターフェース210に従って特定の種類のレーダ信号を生成するように送信機802を構成し得る。
【0114】
受信中に、各受信アンテナ素子822-1~822-Mは、レーダ送信信号826の遅延バージョンを表すレーダ受信信号828-1~828-Mを受信する。遅延量は、レーダシステム102のアンテナアレイ214と物体500との間の距離に比例する。特に、この遅延は、レーダシステム102から物体500へ伝搬するレーダ送信信号826が要する時間と、物体500からレーダシステム102へ伝搬するレーダ受信信号828-1~828-Mが要する時間との和を表す。概して、レーダ受信信号828-1~828-M間の相対位相差は、受信アンテナ素子822-1~822-Mの位置の違いに起因する。物体500が動いている場合、レーダ受信信号828-1~828-Mは、ドップラー効果に起因してレーダ送信信号826に対して周波数において偏移される。レーダ送信信号826と同様に、レーダ受信信号828-~828-Mは、チャープのうちの1つまたは複数からなる。
【0115】
各受信チャネル810-1~810-M内で、低雑音増幅器812はレーダ受信信号828を増幅し、ミキサ814は、増幅されているレーダ受信信号828を周波数変調レーダ信号824と混合する。特に、ミキサは、ビート信号830を生成するために、レーダ受信信号828を低い周波数に変換して、復調するビーティング動作を行う。
【0116】
ビート信号830の周波数は、直距離(スラントレンジ)に比例する、周波数変調レーダ信号824とレーダ受信信号828との間の周波数差を表す。図示していないが、ビート信号830は、複数の周波数を含み得、外部環境内における異なる物体または物体の部分からの反射を表す。いくつかの場合、これらの異なる物体は異なる速度で動き、異なる方向に動き、またはレーダシステム102に対して異なる直距離に位置付けられる。
【0117】
フィルタ816はビート信号830をフィルタリングし、アナログ-デジタルコンバータ818は、フィルタリングされたビート信号830をデジタル化する。受信チャネル810-1~810-Mは、それぞれ、デジタルビート信号832-1~832-Mを生成し、生成されている信号は、処理のためにシステムプロセッサ218に供給される。トランシーバ216の受信チャネル810-1~810-Mは、図9に示すようにシステムプロセッサ218に結合されている。
【0118】
図9は、ハードウェアアブストラクションモジュール228、物体トラッカ230、検出モジュール232、アプリケーションプログラミングインターフェースエンジン226、およびレーダアプリケーションプログラミングインターフェース210の例示的な動作を示す。システムプロセッサ218は、受信チャネル810-1~810-Mに接続されており、レーダアプリケーションプログラミングインターフェース210と通信することもできる。図示した構成において、システムプロセッサ218は、ハードウェアアブストラクションモジュール228、物体トラッカ230、検出モジュール232、およびアプリケーションプログラミングインターフェースエンジン226を実施する。図示していないが、ハードウェアアブストラクションモジュール228、物体トラッカ230、検出モジュール232、および/またはアプリケーションプログラミングインターフェースエンジン226は、代替的に、コンピュータプロセッサ202によって実施され得る。
【0119】
いくつかの実施態様では、アプリケーションプログラミングインターフェースエンジン226は、システムプロセッサ218とレーダアプリケーションプログラミングインターフェース210との間の通信を扱い得る。例えば、アプリケーションプログラミングインターフェースエンジン226は、レーダアプリケーションプログラミングインターフェース210からパターン認識シーケンス402を受け入れて、そのパターン認識シーケンス402を検出モジュール232へ渡すか、またはパターン認識シーケンス402に従って検出モジュール232を構成し得る。アプリケーションプログラミングインターフェースエンジン226はまた、レーダデータ318を、検出モジュール232からレーダアプリケーションプログラミングインターフェース210へ渡し得る。いくつかの場合では、アプリケーションプログラミングインターフェースエンジン226は、レーダアプリケーションプログラミングインターフェース210によって指定されるやり方でレーダデータ318をフォーマットする。他の実施態様では、レーダアプリケーションプログラミングインターフェース210および検出モジュール232は、アプリケーションプログラミングインターフェースエンジン226を介するインターフェース接続なしで通信し得る。この場合、レーダアプリケーションプログラミングインターフェース210は、パターン認識シーケンス402を検出モジュール232に渡し、検出モジュール232は、レーダデータ318をレーダアプリケーションプログラミングインターフェース210に渡す。
【0120】
この例において、ハードウェアアブストラクションモジュール228は、受信チャネル810-1~810-Mからのデジタルビート信号832-1~832-Mを受け入れる。デジタルビート信号832-1~832-Mは、生または未処理の複素数データを表す。ハードウェアアブストラクションモジュール228は、デジタルビート信号832-1~832-Mに基づいて複素数レーダデータ900を生成するための1つまたは複数の動作を実行する。複素数レーダデータ900は、大きさおよび位相情報(例えば、同相および直角位相成分)の両方を含む。いくつかの実施態様において、複素数レーダデータ900は、各受信チャネル810-1~810-Mについてのレンジ-ドップラーマップを表す情報を含む。他の実施態様では、複素数レーダデータ900は角度情報を含む。この角度情報は、複数のレンジ-ドップラーマップ内など、複素数レーダデータ900内で暗黙であり得る。代替的に、システムプロセッサ218または物体トラッカ230は、4次元レンジ-ドップラー-方位-仰角マップを表す情報の形態などで角度情報を明示的に提供するためのデジタルビーム形成を実行する。他の形式の複素数レーダデータ900も可能である。例えば、複素数レーダデータ900は、各受信チャネル810-1~810-Mについての複素数インターフェロメトリデータを含み得る。この複素数インターフェロメトリデータは、レンジ-ドップラーマップの直交表現である。さらに別の例では、複素数レーダデータ900は、アクティブなレーダフレームのためのデジタルビート信号832-1~832-Mの周波数領域表現を含む。時には、複素数レーダデータ900は、上記例のうちのいずれかの例の組合せを含み得る。例えば、複素数レーダデータ900は、レンジ-ドップラーマップおよび複素数インターフェロメトリデータと関連付けられている大きさ情報を含み得る。図示していないが、レーダシステム102の他の実施態様は、デジタルビート信号832-1~832-Mを、アプリケーションプログラミングインターフェースエンジン226へ直接提供できる。
【0121】
物体トラッカ230は、複素数レーダデータ900を分析し、複素数レーダデータ900内の個々の物体を識別する。時間と共に、物体トラッカ230は、位置情報、動き情報、物理的特性情報、またはそれらのいくつかの組合せを含む、それらの物体に関する情報をコンパイルする。この例において、物体トラッカ230は、物体500-1~500-Oについてのレーダタイムライン902-1~902-Oを生成し、ここでOは正の整数を表す。いくつかの場合では、物体トラッカ230は、最も近接した移動物体500と関連付けられている単一のレーダタイムライン902を生成する。これは、アプリケーションプログラミングインターフェースエンジン226の実行を加速させ得る。
【0122】
検出モジュール232は、物体トラッカ230からレーダタイムライン902-1~902-Oを受け付け、レーダアプリケーションプログラミングインターフェース210からパターン認識シーケンス402を受け付ける。検出モジュール232は、レーダタイムライン902-1~902-Oのうちの少なくとも1つ内でパターン認識シーケンス402を認識し、そのレーダデータ318をレーダアプリケーションプログラミングインターフェース210へ送信する。レーダデータ318に基づいて、レーダアプリケーションプログラミングインターフェース210は、応答320を生成し、この応答は、アプリケーション206に提供される。検出モジュール232の動作は、図10に関してさらに説明される。
【0123】
図10は、検出モジュール232によって実施される例示的なスキームを示す図である。ジェスチャ認識のために、検出モジュール232は、パターン認識シーケンス402によって指定される状態404-1~404-Pに基づいて状態機械を実施する。検出モジュール232は、物体500と関連付けられているレーダタイムライン902を受け付ける。レーダタイムライン902は、事象1000-1~1000-Aのリストを含み、ここでAは正の整数を表す。各事象1000は、タイムスタンプ1002、位置情報1004、動き情報1006、物理的特性情報1008、またはそれらのいくつかの組合せを含み得る。位置情報1004、動き情報1006、および物理的特性情報1008は、測定データ、平滑化データ、および/または予測データに基づき得る。
【0124】
各状態についての基準406がレーダタイムライン902によって満たされると、検出モジュール232は、状態404-1~404-Pを通して遷移する。完了状態404-Pに応答して、検出モジュール232はレーダデータ318をレーダアプリケーションプログラミングインターフェース210に送信して、レーダアプリケーションプログラミングインターフェース210に、その応答320をアプリケーション206へ送信させる。このプロセスは、複数のレーダタイムライン902-1~902-Oに対して実行可能である。いくつかの場合では、物体トラッカ230がレーダタイムライン902-1~902-Oをコンパイルするときに、これらの動作は並列で実行され得る。
【0125】
状況によっては、ジェスチャと関連付けられていない他の動きがレーダシステム102によって観察され得る。これらの他の動きは、掃除機がけ、歩行、犬の散歩、衣服を畳む、ベッドを整える、および/または物体を再配置することを含み得る。これらの他の動きがレーダシステム102によって観察された場合、検出モジュール232は、これらの他の動きがジェスチャと関連付けられていないことを、パターン認識シーケンス402に基づいて判定できる。状態404-1~404-Pは、ジェスチャとそれらの他の動きとを区別するように定義されると考える。特に、状態404-1~404-Pは、他の動きとは異なるジェスチャの1つまたは複数の特徴を記述する。他の動きが発生すると、検出モジュール232は、状態404-1~404-Pのうちの少なくとも1つの状態についての基準406が満たされていないことを判定する。このようにして、レーダシステム102は、他の動きがジェスチャと関連付けられていないことを判定する。レーダシステム102は、必ずしも、これらの他の動きの各々の間を差別化またはそれらを識別する必要はない。任意選択的に、いくつかのレーダシステム102は、これらの他の動きの特徴を記述する追加のパターン認識シーケンス404を利用できる。このようにして、レーダシステム102は、これらの他の動きのうちの1つまたは複数を明示的に認識できる。
【0126】
時には、レーダシステム102は、同じ時間間隔中に、複数のモードに従って動作でき、または複数のアプリケーション206をサポートできる。この場合、システムプロセッサ218は、並列に動作し得る検出モジュール232の複数のインスタンスを実行できる。この場合、検出モジュール232の各インスタンスは、レーダアプリケーションプログラミングインターフェース210を使用する対応するアプリケーション206によって構成され得る。例えば、検出モジュール232の1つのインスタンスは、第1のアプリケーション206によるジェスチャ認識のために構成され得、検出モジュール232の別のインスタンスは、第2のアプリケーション206による健康管理のために構成され得る。また、検出モジュール232の第3のインスタンスは、第3のアプリケーション206によるジェスチャ認識のために異なって構成され得る。
例示的な方法
図11は、レーダアプリケーションプログラミングインターフェース210を使用してレーダシステム102によって実行される例示的な方法1100を示す図である。方法1100は、実行される動作(または行為)のセットとして示されているが、動作が本明細書で示されている順序または組合せに必ずしも限定されない。さらに、動作の1つまたは複数のうちのいずれかは、多様な追加および/または代替の方法を提供するために反復、結合、再編成、またはリンクされ得る。以下の説明の一部分において、図1の環境100-1~100-6および図2-1、図2-2、図3-1、または図4に詳細に示されている実体を参照する場合があるが、それらの参照は、例としてなされているのに過ぎない。本技術は、1つのデバイスに対して動作している1つの実体または複数の実体による性能に限定されない。
【0127】
1102において、スマートデバイスのレーダアプリケーションプログラミングインターフェースの複数の層のうちの第1の層を介して、スマートデバイスのアプリケーションからの第1の要求が受け付けられる。第1の要求は、ジェスチャと関連付けられた状態のシーケンスを指定するパターン認識シーケンスを含む。レーダアプリケーションプログラミングインターフェースの複数の層は、レーダシステムの異なる動作レベルと関連付けられている。例えば、図3-1に示すように、レーダシステム102は、スマートデバイス104のレーダプリケーションプログラミングインターフェース210の第1の層310-1を介して、スマートデバイス104のアプリケーション206からの第1の要求314を受け付ける。第1の要求314は、図4に示すように、ジェスチャと関連付けられている状態404-1~404-Pのシーケンスを指定するパターン認識シーケンス402を含む。例示的なジェスチャは、往復運動ジェスチャ502、スワイプジェスチャ602、手を伸ばすジェスチャ702、または図1に関して上述したジェスチャのうちのいずれかを含み得る。図3-2に示すように、レーダアプリケーションプログラミングインターフェース210の複数の層310は、レーダシステム102の異なる動作レベル322と関連付けられている。レーダアプリケーションプログラミングインターフェース210の第1の層310-1は、ユースケースアプリケーションプログラミングインターフェース302に対応し得る。
【0128】
1104において、レーダアプリケーションプログラミングインターフェースの複数の層のうちの第2の層を介して、スマートデバイスのアプリケーションからの第2の要求が受け付けられる。第2の要求は、ジェスチャを検出するためのレーダシステムの検出範囲を含む。例えば、レーダシステム102は、レーダアプリケーションプログラミングインターフェース210の第4の層310-4を介して、アプリケーション206から第2の要求314を受け付ける。第2の要求314は、ジェスチャを検出するためのレーダシステム102の検出範囲を含む。レーダアプリケーションプログラミングインターフェース210の第4の層310-4は、ハードウェアアブストラクションアプリケーションプログラミングインターフェース308に対応し得る。
【0129】
1106において、レーダシステムのハードウェア構成が検出範囲に基づいて修正される。例えば、アプリケーションプログラミングインターフェースエンジン226は、指定された検出範囲を実現するために、レーダシステム102のハードウェア構成(例えば、ハードウェア324)を修正する。特に、アプリケーションプログラミングインターフェースエンジン226は、指定された検出範囲を実現するために、伝送電力、パルス数、アンテナアレイ214内のアクティブなアンテナ素子数、および/またはレーダシステム102のビーム形成パターンを調節する。ハードウェア構成は、利用可能な構成312のうちの1つを含み得る。
【0130】
1108において、レーダ信号がハードウェア構成を使用して送受信される。レーダ信号の少なくとも一部分は、ジェスチャを行う物体に反射する。例えば、図8に示すように、レーダシステム102は、レーダ送信信号826を送信し、レーダ受信信号828-1~828-Mを受信する。レーダ送信信号826の少なくとも一部分は、ジェスチャを行う物体500に反射する。物体500は、ユーザの付属装置またはスタイラスなどの無生物体を含み得る。
【0131】
1110において、パターン認識シーケンスおよび受信レーダ信号に基づいてジェスチャが認識される。例えば、レーダシステム102は、パターン認識シーケンス402およびレーダ受信信号828-1~828-Mに基づいてジェスチャを認識する。特に、物体トラッカ230は、物体500のレーダタイムライン902をコンパイルする。レーダタイムライン902は、時間の経過に伴う物体500の挙動を記述する。この挙動は、位置情報1004、動き情報1006、および/または物理的特性情報1008を含み得る。検出モジュール232は、物体500のレーダタイムライン902内のパターン認識シーケンス402を認識する。特に、検出モジュール232は、状態機械を実施し、順序通りに、状態404-1~404-Pに関連付けられている基準406を満たすレーダタイムライン902に応答してパターン認識シーケンス402を認識する。
【0132】
1112において、応答が、レーダアプリケーションプログラミングインターフェースを介してアプリケーションへ送信される。この応答は、ジェスチャの発生を示す。例えば、レーダアプリケーションプログラミングインターフェース210は、ジェスチャの発生を示す応答320をアプリケーション206に送信する。
例示的なコンピューティングシステム
図12は、レーダアプリケーションプログラミングインターフェース210を実施するために、上記の図2-1および図2-2を参照して説明するように、任意の種類のクライアント、サーバ、および/またはコンピューティングデバイスとして実施され得る例示的なコンピューティングシステム1200の様々な構成要素を示す図である。
【0133】
コンピューティングシステム1200は、デバイスデータ1204(例えば、受信されるデータ、受信されているデータ、ブロードキャストがスケジューリングされているデータ、もしくはデータのデータパケット)の有線および/または無線通信を可能にする通信デバイス1202を含む。通信デバイス1202またはコンピューティングシステム1200は、1つまたは複数のレーダシステム102を含み得る。デバイスデータ1204または他のデバイスコンテンツは、デバイスの構成設定、デバイス上に記憶されるメディアコンテンツ、および/またはデバイスのユーザと関連付けられている情報を含み得る。コンピューティングシステム1200に記憶されているメディアコンテンツは、任意の種類の音声、動画、および/または画像データを含み得る。コンピューティングシステム1200は、人間の発声、ユーザが選択可能な入力(明示的もしくは暗黙的)、メッセージ、音楽、テレビメディアコンテンツ、録画されている動画コンテンツ、あるいは任意のコンテンツおよび/またはデータのソースから受信される任意の他の種類の音声、動画、および/または画像データなどの、任意の種類のデータ、メディアコンテンツ、および/または入力が、それを介して受信可能な1つまたは複数のデータ入力1206を含む。
【0134】
コンピューティングシステム1200はまた、直列および/または並列インターフェース、無線インターフェース、任意の種類のネットワークインターフェース、モデム、および任意の他の種類の通信インターフェースのうちの任意の1つまたは複数として実施され得る通信インターフェース1208を含む。通信インターフェース1208は、コンピューティングシステム1200と通信ネットワークとの間の接続および/または通信リンクを提供し、それによって他の電子デバイス、コンピューティングデバイス、および通信デバイスがコンピューティングシステム1200とデータを通信する。
【0135】
コンピューティングシステム1200は、1つまたは複数のプロセッサ1210(例えば、マイクロプロセッサ、コントローラなどのいずれか)を含み、プロセッサはコンピューティングシステム1200の動作を制御するための様々なコンピュータ実行可能命令を処理する。代替的または追加的に、コンピューティングシステム1200は、ハードウェア、ファームウェア、または全体として1212で示されている処理回路および制御回路と接続して実施される固定論理回路のうちの任意の1つまたはそれらの組合せと共に実施され得る。図示していないが、コンピューティングシステム1200は、デバイス内の様々な構成要素を結合するシステムバスまたはデータ転送システムを含み得る。システムバスは、メモリバスもしくはメモリコントローラ、周辺機器バス、ユニバーサルシリアルバス、および/または多種多様なバスアーキテクチャのうちのいずれかを利用するプロセッサもしくはローカルバスなどの異なるバス構造のうちの任意の1つまたはそれらの組合せを含み得る。
【0136】
コンピューティングシステム1200はまた、持続性および/または非一時的データ記憶(すなわち、単なる信号送信とは対称的)を可能にする1つまたは複数のメモリデバイスなどのコンピュータ可読媒体1214を含み、その例は、ランダムアクセスメモリ(RAM)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ、EPROM、EEPROMなどのうちの任意の1つまたは複数)、およびディスク記憶デバイスを含む。ディスク記憶デバイスは、ハードディスクドライブ、記録可能および/もしくは上書き可能なコンパクトディスク(CD)、任意の種類のデジタル多用途ディスク(DVD)などの任意の種類の磁気または光学記憶デバイスとして実施され得る。コンピューティングシステム1200はまた、大容量記憶媒体デバイス(記憶媒体)1216も含み得る。
【0137】
コンピュータ可読媒体1214は、デバイスデータ1204、ならびに様々なデバイスアプリケーション1218およびコンピューティングシステム1200の動作的な態様に関連した任意の他の種類の情報および/もしくはデータを記憶するためのデータ記憶機構を提供する。例えば、オペレーティングシステム1220は、コンピュータ可読媒体1214によりコンピュータアプリケーションとして維持され、プロセッサ1210上で実行され得る。デバイスアプリケーション1218は、任意の形式の制御アプリケーション、ソフトウェアアプリケーション、信号処理および制御モジュール、特定のデバイスに固有のコード、特定のデバイスのためのハードウェアアブストラクション層など、デバイスマネージャを含み得る。
【0138】
デバイスアプリケーション1218はまた、レーダアプリケーションプログラミングインターフェース210を実装するための任意のシステムコンポーネント、エンジン、またはマネージャを含む。この例では、デバイスアプリケーション1218は、図2-2のアプリケーション206、レーダアプリケーションプログラミングインターフェース210、およびアプリケーションプログラミングインターフェースエンジン226を含む。
終わりに
レーダアプリケーションプログラミングインターフェースを使用する技術およびレーダアプリケーションプログラミングインターフェースを含む装置が、特徴および/または方法に特化した言語において説明されたが、添付されている特許請求の範囲の主題が説明される特定の特徴または方法に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および方法は、レーダアプリケーションプログラミングインターフェースの例示的な実施態様として開示される。
【0139】
いくつかの例を以下に示す。
例1:スマートデバイスのレーダシステムによって実行される方法であって、
スマートデバイスのレーダアプリケーションプログラミングインターフェースの複数の層のうちの第1の層を介して、スマートデバイスのアプリケーションからの第1の要求を受け付けることを含む。第1の要求は、ジェスチャと関連付けられている状態のシーケンスを指定するパターン認識シーケンスを含み、レーダアプリケーションプログラミングインターフェースの複数の層は、レーダシステムの異なる動作レベルと関連付けられている。
【0140】
方法は、レーダアプリケーションプログラミングインターフェースの複数の層のうちの第2の層を介して、スマートデバイスのアプリケーションからの第2の要求を受け付けることをさらに含む。第2の要求は、ジェスチャを検出するためのレーダシステムの検出範囲を含む。
【0141】
方法は、レーダシステムのハードウェア構成を検出範囲に基づいて修正することと、
ハードウェア構成を使用してレーダ信号を送信および受信することとをさらに含む。レーダ信号の少なくとも一部分は、移動する物体に反射する。
【0142】
方法は、パターン認識シーケンスおよび受信されるレーダ信号に基づいてジェスチャを認識することと、
認識に応答して、レーダアプリケーションプログラミングインターフェースを介して、ジェスチャの発生を示す応答を、アプリケーションに送信することと
をさらに含む。
【0143】
例2:例1に記載された方法であって、
レーダシステムの異なる動作レベルは、
レーダシステムのレーダデータ処理モジュールと関連付けられている第1の動作レベルと、
レーダシステムのトランシーバの動作と関連付けられている第2の動作レベルとを含む。
【0144】
レーダアプリケーションプログラミングインターフェースの複数の層のうちの第1の層は、第1の動作レベルと関連付けられている。
【0145】
レーダアプリケーションプログラミングインターフェースの複数の層のうちの第2の層は、第2の動作レベルと関連付けられている。
【0146】
例3:例1に記載された方法であって、
レーダアプリケーションプログラミングインターフェースの複数の層のうちの第3の層を介して、スマートデバイスのアプリケーションからの第3の要求を受け付けることをさらに含む。第3の要求は、デジタル信号処理またはデータ処理と関連付けられているモジュールのシーケンスを指定する実施チェーンを含む。
【0147】
方法は、レーダシステムのソフトウェア構成を実施チェーンに基づいて修正することをさらに含む。
【0148】
例4:先行する例のいずれかに記載された方法であって、
状態のシーケンスは、少なくとも2つの状態を含む。少なくとも2つの状態は、
ジェスチャの少なくとも1つの開始特徴を記述する開始状態と、
ジェスチャの少なくとも1つの終了特徴を記述する終了状態とを含む。
【0149】
少なくとも1つの開始特徴および少なくとも1つの終了特徴は、各々が、レーダ感知を使用して判定され得るジェスチャを実行する物体の特性を記述する。
【0150】
例5:先行する例のいずれかに記載された方法であって、
状態のシーケンス内の各状態は、ジェスチャと関連付けられている少なくとも1つの基準を含む。
【0151】
状態のシーケンスは、第1の状態を含む。
第1の状態は、第1の基準を含む。
【0152】
第1の基準は、
第1の状態に進入するための進入基準、または
第1の状態から退出するための退出基準のうちの少なくとも1つを含む。
【0153】
例6:例5に記載された方法であって、進入基準または退出基準は、
位置基準、
動き基準、
信号特性基準、または
持続時間基準のうちの少なくとも1つを含む。
【0154】
例7:先行する例のいずれかに記載された方法であって、ジェスチャを認識することは、
受信されるレーダ信号に基づいて物体のレーダタイムラインをコンパイルすることを含む。レーダタイムラインは、時間経過に伴う物体の挙動を記述する。
【0155】
ジェスチャを認識することは、レーダタイムライン内のパターン認識シーケンスを検出するステップをさらに含む。
【0156】
例8:例7に記載された方法であって、レーダタイムラインは、複数の事象を含む。各事象は、
タイムスタンプ、
物体に関する位置情報、
物体に関する動き情報、または
物体に関する物理的特性情報のうちの少なくとも1つを含む。
【0157】
例9:例7または例8に記載された方法であって、
ジェスチャは、往復運動ジェスチャを含む。
【0158】
パターン認識シーケンスを検出することは、
状態のシーケンスのうちの第1の状態に従って、第1の持続時間のための第1の閾値を上回る範囲レートの絶対値にて、ある角度に沿ってレーダシステムに向かって移動する物体を検出するステップと、
状態のシーケンスのうちの第2の状態に従って、レーダシステムに向かう移動からレーダシステムから離れる移動へと方向を変更する物体を検出することと、
状態のシーケンスのうちの第3の状態に従って、第2の持続時間のための第2の閾値を上回っている範囲レートの絶対値にて、前記ある角度に沿ってレーダシステムから離れて移動する物体を検出することとを含む。
【0159】
例10:例7または例8に記載された方法であって、
ジェスチャは、スワイプジェスチャを含む。
【0160】
パターン認識シーケンスを検出することは、
状態のシーケンスのうちの第1の状態に従って、第1の持続時間のための閾値を上回る速度をにて角度を変更する物体を検出することと、
状態のシーケンスのうちの第2の状態に従って、第2の持続時間のための閾値を上回る速度にて第1の状態と同じ方向に沿って角度を変更する物体を検出することと
を含む。
【0161】
例11:例10に記載された方法であって、
スワイプジェスチャは、指向性スワイプジェスチャを含む。
【0162】
角度を変更する物体を検出することは、指向性スワイプジェスチャと関連付けられている方向に沿って角度を変更する物体を検出することをさらに含む。
【0163】
例12:例7または例8に記載された方法であって、
ジェスチャは、手を伸ばすジェスチャを含む。
【0164】
パターン認識シーケンスを検出することは、
状態のシーケンスのうちの第1の状態に従って、レーダシステムに向かって移動し、かつ第1の持続時間のための第1の閾値未満の範囲を有する物体を検出することと、
状態のシーケンスのうちの第2の状態に従って、レーダシステムに向かって移動し、かつ第2の持続時間のための第2の閾値未満の範囲を有する物体を検出することと
を含む。
【0165】
例13:先行する例のいずれかに記載された方法であって、
物体は、ジェスチャに加えて他の動きを行う。
【0166】
方法は、パターン認識シーケンスに基づいて、他の動きはジェスチャに関連付けられていないことを判定することを含む。
【0167】
例14:例13に記載された方法であって、他の動きは、
掃除機がけをしている人物、
スマートデバイスと共に歩行している人物、
スマートデバイスの隣で犬を散歩している人物、
スマートデバイスの隣で衣服を畳んでいる人物、
スマートデバイスの隣でベッドを整えている人物、または
スマートデバイスに近接している物体を再配置している人物
のうちの少なくとも1つと関連付けられている。
【0168】
例15:先行する例のいずれかに記載された方法であって、
ハードウェア構成を修正することは、指定された検出範囲を実現するために、伝送電力を調節するステップ、パルス数を調節するステップ、アンテナアレイ内のアクティブなアンテナ素子数を調節するステップ、および/またはレーダシステムのビーム形成パターンを調節するステップを含む。
【0169】
例16:装置であって、
例1~例15の方法のうちのいずれか1つの方法を実行するように構成されているレーダシステムを備える。
【0170】
例17:コンピュータ可読記憶媒体であって、プロセッサによる実行に応答して、レーダシステムに、例1~例15の方法のうちのいずれか1つの方法を実行させる命令を含む。
図1
図2-1】
図2-2】
図3-1】
図3-2】
図4
図5-1】
図5-2】
図6-1】
図6-2】
図7-1】
図7-2】
図8
図9
図10
図11
図12