(57)【要約】      （修正有）【課題】ハンズフリーでキャラクタコード列を自在に入力できるシンプルな構成の情報処理システムと情報処理方法及び情報処理プログラムを提供する。【解決手段】外部デバイス１４には、ループジェスチャの方角と特定のキャラクタコード等とを対応付けた割り当て情報Ｆが設定される。外部デバイス１４は、ツイストジェスチャ（第一トリガジェスチャ）が検出されると、利用者がキャラクタコード列の入力を開始すると判断し、このタイミングにおけるウェアラブルデバイス１２の位置を中心位置と認識する。その後、ループジェスチャが検出されると、当該ループジェスチャの方角及び割り当て情報Ｆに基づいて、利用者が入力したキャラクタコードを特定する。その後、ツイストジェスチャ（第二トリガジェスチャ）が検出されると、利用者がキャラクタコード列の入力を終了したと判断し、入力されたキャラクタコード列を確定させる。【選択図】図１
2018097626.tif 000002
【特許請求の範囲】
【請求項１】
利用者のジェスチャによりキャラクタコード列が入力可能な情報処理システムにおいて、
利用者の身体部位と一体的に変位するデバイスであって、加速度センサとジャイロセンサのうちの少なくとも一方を含むセンサ素子で構成されたモーションセンサ装置を有し、前記モーションセンサ装置で前記身体部位の動きを検出してセンサデータを出力する動作検出デバイスと、前記センサデータを解析することによって利用者が行った特定のジェスチャを検出し、検出結果に基づいて利用者が入力したキャラクタコード列を特定する外部デバイスとを備え、
前記特定のジェスチャは、前記身体部位を適宜の態様に変位させる第一トリガジェスチャ及び第二トリガジェスチャと、利用者の近傍に実在する入力面又は仮想の入力面に沿って前記身体部位を変位させるジェスチャであって、前記身体部位を前記入力面の中心位置から適宜の方角に外向きに変位させる往動作の後、ループを描くように速やかに前記中心位置に戻す復動作を行うループジェスチャとであり、
前記外部デバイスには、前記ループジェスチャの前記方角と特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドとを対応付けた割り当て情報が付与され、
前記外部デバイスは、前記第一トリガジェスチャが検出されると、利用者がキャラクタコード列の入力を開始すると判断し、このタイミングにおける前記動作検出デバイスの位置を前記中心位置と認識し、その後、前記ループジェスチャが検出されると、当該ループジェスチャの前記方角及び前記割り当て情報に基づいて、利用者が入力したキャラクタコードを特定し、その後、前記第二トリガジェスチャが検出されると、利用者がキャラクタコード列の入力を終了したと判断し、入力されたキャラクタコード列を確定させることを特徴とする情報処理システム。
【請求項２】
前記割り当て情報には、前記入力面の前記中心位置の周りを放射状に分割する複数の前記方角が定義され、特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドが、前記複数の方角に対応付けられている請求項１記載の情報処理システム。
【請求項３】
前記動作検出デバイスは身体に装着されるウェアラブルデバイスであり、前記ウェアラブルデバイスが装着される前記身体部位は手首であり、前記第一トリガジェスチャ及び第二トリガジェスチャは、前記利用者の腕の長手方向の軸回りに手首を回動させるツイストジェスチャである請求項１又は２記載の情報処理システム。
【請求項４】
利用者のジェスチャによりキャラクタコード列が入力可能な情報処理システムで実行される情報処理方法において、
前記情報処理システムは、利用者の身体部位と一体的に変位するデバイスであって、加速度センサとジャイロセンサのうちの少なくとも一方を含むセンサ素子で構成されたモーションセンサ装置を有し、前記モーションセンサ装置で前記身体部位の動きを検出してセンサデータを出力する動作検出デバイスと、前記センサデータを解析することによって利用者が行った特定のジェスチャを検出し、検出結果に基づいて利用者が入力したキャラクタコード列を特定する外部デバイスとで構成され、
前記特定のジェスチャは、前記身体部位を適宜の態様に変位させる動作である第一トリガジェスチャ及び第二トリガジェスチャと、利用者の近傍に実在する入力面又は仮想の入力面に沿って前記身体部位を変位させる動作であって、前記身体部位を前記入力面の中心位置から適宜の方角に外向きに変位させる往動作の後、ループを描くように速やかに前記中心位置に戻す復動作を行うループジェスチャとであり、
あらかじめ、前記外部デバイスに、前記ループジェスチャの前記方角と特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドとを対応付けた割り当て情報を設定しておき、
前記第一トリガジェスチャが検出されると、利用者がキャラクタコード列の入力を開始すると判断し、このタイミングにおける前記動作検出デバイスの位置を前記中心位置と認識し、その後、前記ループジェスチャが検出されると、当該ループジェスチャの前記方角及び前記割り当て情報に基づいて、利用者が入力したキャラクタコードを特定し、その後、前記第二トリガジェスチャを検出すると、利用者がキャラクタコード列の入力を終了したと判断し、入力されたキャラクタコード列を確定させる、という処理を前記外部デバイスに実行させることを特徴とする情報処理方法。
【請求項５】
前記割り当て情報には、前記入力面の前記中心位置の周りを放射状に分割する複数の前記方角が定義され、特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドが、前記複数の方角に対応付けられている請求項４記載の情報処理方法。
【請求項６】
前記割り当て情報に定義された前記方角は、前記入力面の前記中心位置の周りをほぼ３０度間隔に分割する１２の方角であり、
前記第一トリガジェスチャを検出した後、前記身体部位の移動速度ベクトルの、０度、９０度、１８０度及び２７０度の方角の成分を算出し、前記往動作の方角をこの０度、９０度、１８０度及び２７０度の方角の中のどれか１つであると認識し、前記往動作の方角を認識した後、継続して前記身体部位の移動速度ベクトルの、０度、９０度、１８０度及び２７０度の方角の成分を算出し、前記往動作の方角と異なる方角が認識されると、この方角を復動作の方角と認識し、さらに、前記復動作の方角を認識した後、前記身体部位の、前記中心位置を原点とする位置ベクトルの大きさが一定以下に小さくなると、特定の前記ループジェスチャが検出されたと判定し、認識した往動作及び復動作の方角に基づいて、当該ループジェスチャの前記方角を特定する、という処理を前記外部デバイスに実行させる請求項５記載の情報処理方法。
【請求項７】
前記動作検出デバイスは身体に装着されるウェアラブルデバイスであり、前記ウェアラブルデバイスが装着される前記身体部位は手首であり、前記第一トリガジェスチャ及び第二トリガジェスチャは、前記利用者の腕の長手方向の軸回りに手首を回動させるツイストジェスチャである請求項４乃至６のいずれか記載の情報処理方法。
【請求項８】
請求項４乃至７のいずれか記載の情報処理方法を情報処理システムに実行させるための各処理ステップ用プログラムから成る情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者のジェスチャによりキャラクタコード列が入力可能な情報処理システム、この情報処理システムによって実行される情報処理方法、及びこの情報処理方法を情報処理システムに実行させるための情報処理プログラムに関する。
【背景技術】
【０００２】
従来から、ウェアラブルデバイスで利用者のジェスチャを検出し、利用者の意図するキャラクタコード列等を認識する情報処理システムが提案されている。
【０００３】
例えば特許文献１に開示されているように、近距離無線機能を有する携帯端末装置と使用者の身体に装着するウェアラブルデバイス（指輪等の物品）とで構成された入力システムがあった。ウェアラブルデバイスには、ジェスチャ認識装置が設けられ、ジェスチャ認識装置は、ウェアラブルデバイス本体の動きを加速度センサ等で検出し、センサデータを解析することによって利用者がウェアラブルデバイスを変位させた軌跡を求め、この軌跡を文字や図形として認識する。そして、携帯端末装置は、ジェスチャ認識装置が認識した文字又は図形の情報を受信し、これに対応する操作を判別し、当該操作に基づく処理を実行するよう構成されている。
【０００４】
例えば、利用者が「Ｍ」、「め」、「メ」という文字をジェスチャで描くと、ジェスチャ認識装置がジェスチャを文字として認識し、この情報を受信した携帯端末装置は、このジェスチャに対応するのは「メニュー操作」であると判別し、所定の処理を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特２０１１−２２１６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
コンピュータ機器は、キーボード等を操作し、複数の数字や英文字等から成るキャラクタコード列を入力することにより、高度で複雑なアプリケーションを実行することが可能になる。したがって、ハンズフリーの状態でも、キャラクタコード列を自在に入力できれば、非常に便利である。
【０００７】
特許文献１の入力システムの場合、利用者がジェスチャで描いた文字又は図形が何かをジェスチャ識別装置により識別している。しかし、ジェスチャで描かれた文字等は、人によってばらつきが大きいので、正確に識別するためは、ジェスチャ識別装置に多数の加速度センサ等を取り付けたり、ジェスチャ識別装置で複雑な解析や判別処理を行ったりしなければならない。また、文字等の中に類似した形状のものがあると誤判別しやすくなるので、使用できる文字等は、形状が特徴的なものに限定される。
【０００８】
したがって、このジェスチャ識別装置及び識別方法は、類似した形状が多い数字や英文字等をすべて正確に識別するのが難しく、数字や英文字等から成るキャラクタコード列を入力する用途にはあまり適していない。
【０００９】
本発明は、上記背景技術に鑑みて成されたものであり、ハンズフリーでキャラクタコード列を自在に入力できるシンプルな構成の情報処理システムと情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、利用者のジェスチャによりキャラクタコード列が入力可能な情報処理システムであって、
利用者の身体部位と一体的に変位するデバイスであって、加速度センサとジャイロセンサのうちの少なくとも一方を含むセンサ素子で構成されたモーションセンサ装置を有し、前記モーションセンサ装置で前記身体部位の動きを検出してセンサデータを出力する動作検出デバイスと、前記センサデータを解析することによって利用者が行った特定のジェスチャを検出し、検出結果に基づいて利用者が入力したキャラクタコード列を特定する外部デバイスとを備え、
前記特定のジェスチャは、前記身体部位を適宜の態様に変位させる第一トリガジェスチャ及び第二トリガジェスチャと、利用者の近傍に実在する入力面又は仮想の入力面に沿って前記身体部位を変位させるジェスチャであって、前記身体部位を前記入力面の中心位置から適宜の方角に外向きに変位させる往動作の後、ループを描くように速やかに前記中心位置に戻す復動作を行うループジェスチャとであり、
前記外部デバイスには、前記ループジェスチャの前記方角と特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドとを対応付けた割り当て情報が付与され、
前記外部デバイスは、前記第一トリガジェスチャが検出されると、利用者がキャラクタコード列の入力を開始すると判断し、このタイミングにおける前記動作検出デバイスの位置を前記中心位置と認識し、その後、前記ループジェスチャが検出されると、当該ループジェスチャの前記方角及び前記割り当て情報に基づいて、利用者が入力したキャラクタコードを特定し、その後、前記第二トリガジェスチャが検出されると、利用者がキャラクタコード列の入力を終了したと判断し、入力されたキャラクタコード列を確定させる情報処理システムである。
【００１１】
前記割り当て情報には、前記入力面の前記中心位置の周りを放射状に分割する複数の前記方角が定義され、特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドが、前記複数の方角に対応付けられている。
【００１２】
前記動作検出デバイスは身体に装着されるウェアラブルデバイスであり、前記ウェアラブルデバイスが装着される前記身体部位は手首であり、前記第一トリガジェスチャ及び第二トリガジェスチャは、前記利用者の腕の長手方向の軸回りに手首を回動させるツイストジェスチャであることが好ましい。
【００１３】
また、本発明は、利用者のジェスチャによりキャラクタコード列が入力可能な情報処理システムで実行される情報処理方法であって、
前記情報処理システムは、利用者の身体部位と一体的に変位するデバイスであって、加速度センサとジャイロセンサのうちの少なくとも一方を含むセンサ素子で構成されたモーションセンサ装置を有し、前記モーションセンサ装置で前記身体部位の動きを検出してセンサデータを出力する動作検出デバイスと、前記センサデータを解析することによって利用者が行った特定のジェスチャを検出し、検出結果に基づいて利用者が入力したキャラクタコード列を特定する外部デバイスとで構成され、
前記特定のジェスチャは、前記身体部位を適宜の態様に変位させる動作である第一トリガジェスチャ及び第二トリガジェスチャと、利用者の近傍に実在する入力面又は仮想の入力面に沿って前記身体部位を変位させる動作であって、前記身体部位を前記入力面の中心位置から適宜の方角に外向きに変位させる往動作の後、ループを描くように速やかに前記中心位置に戻す復動作を行うループジェスチャとであり、
あらかじめ、前記外部デバイスに、前記ループジェスチャの前記方角と特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドとを対応付けた割り当て情報を設定しておき、
前記第一トリガジェスチャが検出されると、利用者がキャラクタコード列の入力を開始すると判断し、このタイミングにおける前記動作検出デバイスの位置を前記中心位置と認識し、その後、前記ループジェスチャが検出されると、当該ループジェスチャの前記方角及び前記割り当て情報に基づいて、利用者が入力したキャラクタコードを特定し、その後、前記第二トリガジェスチャを検出すると、利用者がキャラクタコード列の入力を終了したと判断し、入力されたキャラクタコード列を確定させる、という処理を前記外部デバイスに実行させる情報処理方法である。
【００１４】
前記割り当て情報には、前記入力面の前記中心位置の周りを放射状に分割する複数の前記方角が定義され、特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドが、前記複数の方角に対応付けられている。
【００１５】
前記割り当て情報に定義された前記方角は、前記入力面の前記中心位置の周りをほぼ３０度間隔に分割する１２の方角であり、
前記第一トリガジェスチャを検出した後、前記身体部位の移動速度ベクトルの、０度、９０度、１８０度及び２７０度の方角の成分を算出し、前記往動作の方角をこの０度、９０度、１８０度及び２７０度の方角の中のどれか１つであると認識し、前記往動作の方角を認識した後、継続して前記身体部位の移動速度ベクトルの、０度、９０度、１８０度及び２７０度の方角の成分を算出し、前記往動作の方角と異なる方角が認識されると、この方角を復動作の方角と認識し、さらに、前記復動作の方角を認識した後、前記身体部位の、前記中心位置を原点とする位置ベクトルの大きさが一定以下に小さくなると、特定の前記ループジェスチャが検出されたと判定し、認識した往動作及び復動作の方角に基づいて、当該ループジェスチャの前記方角を特定する、という処理を前記外部デバイスに実行させるようにしてもよい。
【００１６】
前記動作検出デバイスは身体に装着されるウェアラブルデバイスであり、前記ウェアラブルデバイスが装着される前記身体部位は手首であり、前記第一トリガジェスチャ及び第二トリガジェスチャは、前記利用者の腕の長手方向の軸回りに手首を回動させるツイストジェスチャであることが好ましい。
【００１７】
さらに、本発明は、前記情報処理方法を前記情報処理システムに実行させるための各処理ステップ用プログラムから成る情報処理プログラムである。
【発明の効果】
【００１８】
本発明の情報処理システムと情報処理方法及び情報処理プログラムによれば、利用者は、身体部位にウェアラブルデバイスを装着する等して、第一トリガジェスチャ、第二トリガジェスチャ、及び複数種類のループジェスチャを行うことによって、ハンズフリーの状態で、所望のキャラクタコード列を自在に入力することができる。また、ループジェスチャの種類は、ループジェスチャの方角によって区別する構成なので、外部デバイスは、モーションセンサ装置が出力するセンサデータを取得し、シンプルな演算処理を行うことにより、ループジェスチャの種類を正確に識別することができる。
【００１９】
また、ループジェスチャは、人が楽に実行できる簡単な動作であり、利用者の負担にならない。また、第一及び第二トリガジェスチャは、ウェアラブルデバイスを装着した手首を軸回させるツイストジェスチャにすることが好ましく、ループジェスチャと同様に、利用者の負担にならない。しかも、ツイストジェスチャは、ループジェスチャと判別しやすい明快な動作なので、外部デバイスが誤認識するのを容易に防止することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の情報処理システムの一実施形態を示すシステム構成図である。
【図２】利用者がキャラクタコード列を入力する際に行うジェスチャの中の、第一及び第二トリガジェスチャであるツイストジェスチャを示す図（ａ）、ループジェスチャを示す図（ｂ）である。
【図３】外部デバイスに付与された割り当て情報の中の、数字ファセットを示す図（ａ）、主英字ファセットを示す図（ｂ）、副英字ファセットを示す図（ｂ）である。
【図４】数字ファセット及び主英字ファセット対応したループジェスチャの種類を示す図（ａ）、副英字ファセットに対応したループジェスチャの種類を示す図（ｂ）である。
【図５】利用者がキャラクタコード列を入力する際に行う操作の一例を示すフローチャートである。
【図６】外部デバイスが行う一連の処理を示すフローチャートである。
【図７】図６の中のデータ記憶部における処理とジェスチャ検出部における処理の流れを示すフローチャートである。
【図８】図７の中のツイストジェスチャ検出処理（往方向／復方向）の流れを示すフローチャートである。
【図９】図８の中の往方向のツイスト検出処理の流れを示すフローチャートである。
【図１０】図８の中の復方向のツイスト検出処理の流れを示すフローチャートである。
【図１１】図７の中のループジェスチャ検出処理（stage1）の流れを示すフローチャートである。
【図１２】図７の中のループジェスチャ検出処理（stage2）の流れを示すフローチャートである。
【図１３】図１１の中の移動の方角検出処理の流れを示すフローチャートである。
【図１４】利用者の手首の動き及び移動の方角検出処理の時間関係を示す図である。
【図１５】ループジェスチャの種類の判定方法を示す図表（その１）である。
【図１６】ループジェスチャの種類の判定方法を示す図表（その２）である。
【図１７】ループジェスチャの種類の判定方法を示す図表（その３）である。
【図１８】ループジェスチャの種類の判定方法を示す図表（その４）である。
【図１９】図６の中の操作制御部における処理の流れを示すフローチャートである。
【図２０】図６の中のコード制御部における処理とアプリケーション実行部における処理の流れを示すフローチャートである。
【図２１】コード制御部のキャラクタコード記憶領域のイメージ図である。
【発明を実施するための形態】
【００２１】
以下、本発明の情報処理システムと情報処理方法及び情報処理プログラムの一実施形態について、図面に基づいて説明する。この実施形態の情報処理システム１０は、有線又は無線のネットワークを介して互いに接続された動作検出デバイスであるウェアラブルデバイス１２及び外部デバイス１４で構成され、ウェアラブルデバイス１２を装着した利用者のジェスチャにより、外部デバイス１４に任意のキャラクタコード列を入力することができるシステムである。この実施形態の情報処理方法は、情報処理システム１０によって実行される処理方法であり、この実施形態の情報処理プログラムは、この処理方法を情報処理システム１０に実行させるため各処理ステップ用プログラムから成るコンピュータプログラムである。
【００２２】
まず、情報処理システム１０の構成を図１に基づいて簡単に説明する。なお、各ブロックにおける詳細な処理内容は、後の動作説明の中で述べる。
【００２３】
ウェアラブルデバイス１２は、利用者の手首に装着される腕時計型で、図２（ａ）、（ｂ）に示すように、モーションセンサ装置１２ａ及び通信装置１２ｂが内蔵された本体部１６を有し、本体部１６を手首の背面側に配置し、ベルト１８で固定して使用される。モーションセンサ装置１２ａは、加速度センサとジャイロセンサのうちの少なくとも一方を含むセンサ素子を備え、手首のツイストジェスチャ及びループジェスチャを検出可能に構成されている。
【００２４】
ここで、ツイストジェスチャとは、図２（ａ）に示すように、利用者が腕の長手方向の軸回りに手首を回動させるジェスチャのことである。以下、ツイストジェスチャに関し、ウェアラブルデバイス１２が装着された右手の手首の軸回方向は、時計回りの方向を往方向と称し、反時計回りの方向を復方向と称する。なお、左手に装着される場合は、逆にすると良い。
【００２５】
また、ループジェスチャとは、図２（ｂ）に示すように、利用者の近傍の仮想入力面２０に沿って手首を変位させるジェスチャであって、手首を仮想入力面２０の中心位置２０ａから適宜の方角に外向きに変位させる往動作、及びループを描くように速やかに中心位置２０ａに戻す復動作を行うジェスチャのことである。
【００２６】
通信装置１２ｂは、モーションセンサ装置１２ａが検出した加速度や角速度等のセンサデータを外部デバイス１４に向けて出力する。
【００２７】
外部デバイス１４は、例えばパソコン等のコンピュータ機器であり、通信装置２２、ジェスチャ解析部２４、ジェスチャ操作部２６及びアプリケーション実行部２８を備えている。通信装置２２は、ウェアラブルデバイス１２が出力したセンサデータを逐次受信する。
【００２８】
ジェスチャ解析部２４は、通信装置２２が受信したセンサデータを保存するデータ記憶部３０と、このセンサデータを解析し、ツイストジェスチャ又は特定のループジェスチャが行われたか否かを判定するジェスチャ検出部３２とを備えている。ジェスチャ検出部３２は、概して言うと、「ツイストジェスチャ又は特定のループジェスチャを検出した」又は「ツイストジェスチャ又はループジェスチャは検出されていない」という内容のジェスチャ情報を出力するブロックである。なお、ジェスチャ検出部３２は、ループジェスチャを検出する際に使用する４つのカウンタUC，DC，LC，RCを有している
ジェスチャ操作部２６は、操作制御部３４及びコード制御部３６を備えている。操作制御部３４は、ジェスチャ検出部３２からジェスチャ情報が送られてくると、そのジェスチャ情報の内容を分析し、その分析結果から以降に行うべき処理を決定するブロックである。コード制御部３６は、操作制御部３４から「特定のループジェスチャが検出された」という内容のジェスチャ情報が送られてくると、あらかじめ付与された割り当て当て情報Ｆに基づいて特定のキャラクタコード（数字や英文字等）を選択する動作を行う。
【００２９】
割り当て情報Ｆとは、ループジェスチャの方角と特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンドとを対応付けた情報のことで、割り当て情報Ｆには、図３に示す数字ファセットＦ１、主英字ファセットＦ２及び副英字ファセットＦ３が定義されている。
【００３０】
数字ファセットＦ１は、図３（ａ）に示すように、仮想入力面２０の中心位置２０ａの周りをほぼ３０度間隔に等分する１２の方角が定義され、図面上方向を０度として、０度〜１２０度の各方角にキャラクタコード「５」〜「９」が割り当てられ、１８０度の方角にキャラクタコード「０」が割り当てられ、２４０度〜３３０度の各方角にキャラクタコード「１」〜「４」が割り当てられている。また、１５０度と２１０度の方角には、キャラクタコードを絞り込むためのコマンドである「ＢＳ」と「ＦＳ」が割り当てられている。「ＢＳ」は先に行ったキャラクタコードの選択をキャンセルするコマンドで、「ＦＳ」は、数字ファセットＦ１を主英字ファセットＦ２に切り換えるコマンドである。
【００３１】
主英字ファセットＦ２は、図３（ｂ）に示すように、仮想入力面２０の中心位置２０ａの周りをほぼ３０度間隔に等分する１２の方角が定義され、０度〜１２０度の各方角にキャラクタコード群「ＭＮＯ」〜「＠／．，」が割り当てられ、２４０度〜３３０度の各方角にキャラクタコード群「ＡＢＣ」〜「ＪＫＬ」が割り当てられている。また、１５０度〜２１０度の各方角には、キャラクタコードを絞り込むためのコマンドである「ＢＳ」と「ＣＬ」と「ＦＳ」とが割り当てられている。「ＢＳ」は、先に行ったキャラクタコード群の選択をキャンセルするコマンドで、「ＣＬ」は、英字の大文字と小文字の設定を切り換えるコマンドで、「ＦＳ」は、主英字ファセットＦ２を数字ファセットＦ１に切り換えるコマンドである。
【００３２】
副英字ファセットＦ３は、主英字ファセットＦ２の各キャラクタコード群に従属させるように設けられたファセットである。例えば、キャラクタコード群「ＰＱＲＳ」に従属する副英字ファセットＦ３は、図３（ｃ）に示すように、０度、９０度、１８０度、２７０度の各方角にキャラクタコード「Ｑ」「Ｒ」「Ｓ」「Ｐ」が割り当てられている。その他のキャラクタコード群に対しても別の副英字ファセットＦ３が設けられ、例えば、キャラクタコード群「ＡＢＣ」に従属する副英字ファセットＦ３は、０度、９０度、２７０度の各方角に「Ｂ」「Ｃ」「Ａ」が割り当てられている。
【００３３】
ループジェスチャの種類は、図４（ａ）、（ｂ）に示すように、０度〜３３０度の各方角に対応したLG1〜LG12の１２通りである。例えば、ループジェスチャLG6は、手首を仮想入力面２０の中心位置２０ａから約３０度の方角に外向きに変位させる往動作の後、時計回りに小さいループを描くように速やかに中心位置２０ａに戻す復動作を行うジェスチャである。
【００３４】
このように、割り当て情報Ｆは、「方角が異なる１２種類ループジェスチャLG1〜LG12」と「特定のキャラクタコード又はキャラクタコードを絞り込むためのコマンド」とを対応付けたファセットＦ１〜Ｆ３が定義されている。そして、コード制御部３６は、操作制御部３４から「特定のループジェスチャが検出された」という内容のジェスチャ情報が送られてくると、割り当て当て情報Ｆに基づいて該当するキャラクタコード（数字や英文字等）を選択し、キャラクタ記憶領域３６ａに一時的に記憶する。その後、操作制御部３４から「ツイストジェスチャが検出された」という内容のジェスチャ情報が送られてくると、入力されたキャラクタコード列が確定したと判断し、キャラクタ記憶領域３６ａのキャラクタコード列をアプリケーション実行部２８に出力する。
【００３５】
アプリケーション実行部２８は、コード制御部３６が出力したキャラクタコード列を受け、これに対応した処理を行うブロックである。
【００３６】
次に、情報処理システム１０が行う情報処理方法（本発明の情報処理方法の一実施形態）について説明する。ここで、情報処理システム１０内部で実行する処理を説明する前に、利用者がキャラクタコード列を入力する際に行う一連の操作を簡単に説明する。ここでは、４つのキャラクタコードで構成された「１ｓｅｃ」というキャラクタコード列を入力するケースを想定し、図５のフローチャートに基づいて説明する。
【００３７】
利用者は、手首にウェアラブルデバイス１２を装着し、身体の正面等に仮想入力面２０及び中心位置２０ａをイメージする。そして、中心位置２０ａに手首を配置し、手首を往／復方向に捻るツイストジェスチャを行う（ジェスチャG1）。このツイストジェスチャは、仮想入力面２０の中心位置２０ａを設定する第一トリガジェスチャであり、キャラクタコード列の入力を開始する合図となる。
【００３８】
そして、利用者は、仮想入力面２０に数字ファセットＦ１をイメージし、キャラクタコード「１」を選択するループジェスチャLG1を行う（ジェスチャG2）。
【００３９】
次に、利用者は、仮想入力面２０に数字ファセットＦ１をイメージし、主英字ファセットＦ２に切り換えるコマンド「ＦＳ」を選択するループジェスチャLG12を行う（ジェスチャG3）。次に、仮想入力面２０に主英字ファセットＦ２をイメージし、大文字入力の設定を小文字入力に切り換えるコマンド「ＣＬ」を選択するループジェスチャLG11を行う（ジェスチャG4）。次に、仮想入力面２０に主英字ファセットＦ２をイメージし、キャラクタコード群「ＰＱＲＳ」を選択するループジェスチャLG6を行う（ジェスチャG5）。そして、仮想入力面２０に副英字ファセットＦ３をイメージし、キャラクタコード「ｓ」を選択するループジェスチャLG11を行う（ジェスチャG6）。
【００４０】
その後、同様の操作（ジェスチャG5，G6）を行ってキャラクタコード「ｅ」と「ｃ」を順番に選択する。
【００４１】
これで「１ｓｅｃ」という４つのキャラクタコードが選択されたので、利用者は、手首を往／復方向に捻るツイストジェスチャを行う（ジェスチャG7）。このツイストジェスチャは、キャラクタコード列を確定させる第二トリガジェスチャであり、キャラクタコード列の入力を終了する合図となる。
【００４２】
これで、利用者の操作は終了し、アプリケーション実行部２８がキャラクタコード列「１ｓｅｃ」に対応した処理を実行する。
【００４３】
次に、利用者の操作を受けて、情報処理システム１０が行う情報処理方法について説明する。
【００４４】
ウェアラブルデバイス１２は、モーションセンサ装置１２ａで検出した加速度や角速度等のセンサデータを逐次出力する。外部デバイス１４は、通信装置２２でセンサデータを受信し、図６に示すような流れで処理SR1〜SR5を行う。
【００４５】
データ記憶部３０における処理SR1では、図７に示すように、通信装置２２が受信したセンサデータをデータ記憶装置３０に格納する（ステップS11）。
【００４６】
次のジェスチャ検出部３２における処理SR2では、最初にツイストジェスチャ検出処理S21を行い、その後でループジェスチャ検出処理S22を行う。この順番は反対でもよい。まず、ツイストジェスチャ検出処理S21の内容について、図８〜図１０のフローチャートに基づいて説明する。
【００４７】
ツイストジェスチャ検出処理S21は、利用者が手首を往方向及び復方向に軸回させた一連の動きが特定の条件を満たすとき、ツイストジェスチャを検出したと判定するステップである。概して言うと、まず、センサデータから往方向の軸回動作情報を抽出し、これが特定の条件を満たすと、往方向のツイストを検出したと判断し、その後、同様に復方向の軸回動作情報を抽出し、これが特定の条件を満たすと、復方向のツイストを検出したと判定し、合わせてツイストジェスチャを検出したと判定する。
【００４８】
ツイストジェスチャ検出処理S21は、図８に示すように、矢印Ｂを通じてステップS21-1に進む。この時点では、往方向のツイストが検出済みではないので、往方向のツイスト検出処理S21-2に進む。
【００４９】
往方向のツイスト検出処理S21-2では、図９に示すように、まず、ステップS21-2-1において、ジェスチャ検出部３２が、最新のセンサデータをデータ記憶部３０から取得する（ｋ回目）。そして、ステップS21-2-2で、往方向のツイスト検出を実行中か否かの判断を行う。１回目の場合、後述するステップＳ21-2-5を行っていないので（開始時刻Ta1を設定していないので）、実行中ではないと判定し、ステップS21-2-3に進む。
【００５０】
ステップS21-2-3に進むと、ジェスチャ検出部３２は、取得したセンサデータを解析して手首の軸回方向（往方向）の角速度を算出し、ステップS21-2-4で、算出した角速度が角速度基準値Va以上か否かの判定を行う。そして、角速度基準値Va以上の場合、手首を往方向に捻る動作が始まったと判断し、このタイミングを往方向のツイスト検出の開始時刻Ta1に設定する（ステップS21-2-5）。そして、ジェスチャ検出処理S21-2を終了し、図８に示すステップS21-3に進む。この時点で往方向のツイストは未検出なので、この後は、ステップS21-3を行ってツイストジェスチャ検出処理S21を終了し、図７に示すステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びツイストジェスチャ検出処理S21を行うとき、次回の往方向のツイスト検出処理S21-2を行うことになる。
【００５１】
一方、角速度基準値Va以下の場合は、手首を往方向に捻る動作が始まっていないと判断し、図９に示すように、そのままジェスチャ検出処理S21-2を終了し、図８に示すステップS21-3に進む。この時点で往方向のツイストは未検出なので、この後は、ステップS21-3を行ってツイストジェスチャ検出処理S21を終了し、図７に示すステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びツイストジェスチャ検出処理S21を行うとき、次回の往方向のツイスト検出処理S21-2を行うことになる。
【００５２】
ステップS21-2-5で開始時刻Ta1を設定し、その開始時刻Ta1後、再び往方向のツイスト検出処理S21-2を行うときは、ジェスチャ検出部３２が最新のセンサデータを取得し（ステップS21-2-1）して次のステップS21-2-2に進むと、すでに開始時刻Ta1の後なので、往方向のツイスト検出を実行していると判定し、ステップS21-2-6に進む。
【００５３】
ステップS21-2-6では、ジェスチャ検出部３２は、取得したセンサデータを解析して、手首の軸回方向（往方向）の角速度を算出する。そして、ステップS21-2-7で、開始時刻Ta1から所定の時間ta1が経過したか否かを判定する。開始時刻Ta1から時間ta1が経過していない場合、ステップS21-2-8に進み、今回（ｋ回目）のステップS21-2-6で算出した角速度と、前回（ｋ−１回目）のステップS21-2-6で算出した角速度を利用して、この間に生じた手首の捻り角度の変化分ΔRa(k)を算出する。そして、ステップS21-2-9に進み、開始時刻Ta1以降の各変化分ΔRa(k)を合計して捻り角度Ra(k)を算出し、ステップS21-2-10に進む。
【００５４】
ステップS21-2-10は、算出した捻り角度Ra(k)が捻り角度基準値Raを超えているか否かの判定を行う。捻り角度基準値Raを超えている場合、往方向のツイストを検出したと判断する（ステップS21-2-11）。そして、往方向のジェスチャ検出処理S21-2を終了し、図８に示すステップS21-3に進む。この時点で、往方向のツイストを検出したが復方向のツイストは未検出なので、この後は、ステップS21-3，S21-4を行ってツイストジェスチャ検出処理S21を終了し、図７に示すステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びツイストジェスチャ検出処理S21を行うとき、ステップS21-1からステップS21-5に進むことになる。
【００５５】
一方、捻り角度基準値Raを超えていない場合、検出中の動作（手首を往方向に捻る動き）は現時点でツイストとは認められないと判断し、そのまま往方向のジェスチャ検出処理S21-2を終了し、図８に示すステップS21-3に進む。この時点で往方向のツイストは未検出なので、この後は、ステップS21-3を行ってツイストジェスチャ検出処理S21を終了し、図７に示すステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びツイストジェスチャ検出処理S21を行うとき、次回の往方向のツイスト検出処理S21-2を行うことになる。
【００５６】
再び往方向のツイスト検出処理S21-2を行うとき、再度ステップS21-2-1に進み、上記と同様に、ステップS21-2-2，S21-2-6，S21-2-7，S21-2-8，S21-2-9，S21-2-10を行う。手首が適切に軸回しているとすれば、今回のステップS21-2-9で算出される捻り角度Ra(k)は、前回のステップS21-2-9で算出した捻り角度Ra(k-1)よりも大きくなる。そして、今回の捻り角度Ra(k)が捻り角度基準値Raを超えると、往方向のツイストを検出したと判断し（ステップS21-2-11）し、上記のように往方向のツイスト検出処理S21-2を終了し、次のステップS21-3に進む。今回の捻り角度基準値Raを超えていない場合、現時点でまだツイストとは認められない判断し、上記の動作を繰り返す。
【００５７】
この繰り返し動作を一定時間継続しても捻り角度Ra(k)が捻り角度基準Raを超えない場合は、検出中の動き（手首を往方向に捻る動き）が往方向のツイストに該当しないと判断し、実行中のツイスト検出を停止する。つまり、ジェスチャ検出部３２は、開始時刻Ta1から所定の時間ta1が経過すると、何回目かのステップS21-2-7からステップS21-2-12に進み、開始時刻Ta1の設定をリセットするとともに、繰り返し動作の中で算出した捻り角度の変化分ΔRa(k)や捻り角度Ra(k)等の情報を破棄する。そして、往方向のジェスチャ検出処理S21-2を終了し、図８に示すステップS21-3に進む。この時点で往方向のツイストは未検出なので、この後は、S21-3を行ってツイストジェスチャ検出処理S21を終了し、図７に示すステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びツイストジェスチャ検出処理S21を行うとき、次回の往方向のツイスト検出処理S21-2を行うことになる。
【００５８】
図８に示すように、往方向のツイストが未検出の段階でステップS21-3に進むと、そのままツイストジェスチャ検出処理S21を終了する。一方、往方向のツイストを検出した段階でステップS21-3に進むと、往方向のツイストの検出時刻Ta2を設定した後（ステップS21-4）、ツイストジェスチャ検出処理S21を終了する。
【００５９】
往方向のツイストを検出した後、再びツイストジェスチャ検出処理S21を行うときは、ステップS21-1からステップS21-5に進む。ステップS21-5では、往方向の検出時刻Ta2から所定の時間ta2が経過したか否かを判定し、時間ta2が経過していない場合、復方向のツイスト検出処理S21-6を行う。
【００６０】
復方向のツイスト検出処理S21-6の内容は、図１０に示すように、上述した往方向のツイストジェスチャ検出処理S21-2（図９）と同様である。すなわち、復方向のステップS21-6-1〜ステップS21-6-12は、それぞれ往方向のステップS21-2-1〜ステップS11-2-12に対応する。
【００６１】
また、復方向のツイスト検出の開始時刻Tb1は、往方向のツイスト検出の開始時刻Ta1に対応する。センサデータに基づいて算出される復方向の捻り角度の変化分ΔRb(k)及び捻り角度Tb(k)は、それぞれ往方向の捻り角度の変化分ΔRa(k)及び捻り角度Ra(k)に対応する。判定を行うときの基準値等である復方向の角速度基準値Vb、時間tb1及び捻り角度基準値Rbは、それぞれ往方向の角速度基準値Va、時間ta1及び捻り角度基準値Raに対応する。これらの基準値（絶対値）や時間は、往方向と復方向で同じ値にしてもよいが、例えば、利用者の体質や癖により、往方向の軸回動作は素早いが、復方向で軸回動作が少し緩慢になるような場合、これに合わせて異なる値に設定することができる。
【００６２】
なお、図９に示すステップS21-5において、往方向の検出時刻Ta2から所定の時間ta2が経過していた場合は、手首の往方向の軸回動作を復方向の軸回動作が一連の動作になっておらず、ツイストジェスチャ（往／復方向）ではないと判断する。すなわち、ジェスチャ検出部３２は、何回目かのステップS21-5で、検出時刻Ta2から時間ta2が経過したと判定すると、ステップS21-7に進み、時刻Ta1，Ta2，Tb1の設定をリセットするとともに、繰り返し動作の中で算出した捻り角度の変化分ΔRa(k)，ΔRb(k)や捻り角度Rb(k)，Rb(k)の情報を破棄し、さらに、往方向のツイストを検出済みであるという情報をリセットして、ツイストジェスチャ検出処理S21を終了する。この時点で、往方向のツイストは検出したが復方向のツイストが未検出なので、この後は、図７に示すステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻り、ツイストジェスチャ検出処理S21を最初からやり直すことになる。
【００６３】
図８に示すように、復方向のツイストが未検出の段階で復方向のツイスト検出処理S21-6を終了すると、ステップS21-8を経て、そのままツイストジェスチャ検出処理S21を終了する。この時点で、往方向のツイストは検出したが復方向のツイストが未検出なので、この後は、図７に示すステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻り、再びツイストジェスチャ検出処理S21を行うとき、次回の復方向のツイスト検出処理S21-6を行うことになる。
【００６４】
一方、復方向のツイストを検出した段階で復方向のツイスト検出処理S21-6を終了すると、ステップS21-8を経てステップS21-9に進み、ツイストジェスチャを検出したと判定する。そして、ステップS21-10で、時刻Ta1，Ta2，Tb1の設定をリセットするとともに、繰り返し動作の中で算出した捻り角度の変化分ΔRa(k)，ΔRb(k)や捻り角度Ra(k)，Rb(k)の情報を破棄し、さらに、往方向のツイストを検出済みであるという情報をリセットして、ツイストジェスチャ検出処理S21を終了する。ツイストジェスチャ検出処理S21の内容は以上である。
【００６５】
次に、ループジェスチャ検出処理S22の内容について、図１１〜図１３のフローチャートと図１４〜図１８の図表に基づいて説明する。
【００６６】
ループジェスチャ検出処理S22は、利用者が手首をループ状に移動させた動きが特定の条件を満たすとき、LG1〜LG12の中のいずれかのループジェスチャを検出したと判定するステップである。概して言うと、まず、手首の移動動作情報をセンサデータから抽出し、往動作及び復動作の各方角を算出するとともに、仮想入力面２０の中心位置２０ａに対する手首の位置ベクトルの情報を算出する。そして、復動作の方角が往動作の方角と一致せず、且つ、手首の位置ベクトルの大きさが一定以下に小さくなったとき、ループジェスチャを検出したと判定し、復動作の方角と往動作の方角の組み合わせによりループジェスチャの種類（LG1〜LG12）を特定する。
【００６７】
ループジェスチャ検出処理S22の全体の流れは、図１１（stage1）と図１２（stage2）のように表される。なお、図１１中に、往動作の方角検出フラグ（true／false）というフラグがあり、これは、往動作の方角が検出済みであることをtrueで示し、未検出であることをfalseで示すものである。また、図１２中に、復動作の方角検出フラグ（true／false）というフラグがあり、これは、復動作の方角が検出済みであることをtrueで示し、未検出であることをfalseで示すものである。以下、ループジェスチャ検出処理S22の流れを説明するとき、初期状態は、往動作の方角検出フラグと復動作の方角検出フラグの両方がfalse（往動作及び復方向の方角は未検出）であるとする。
【００６８】
まず、図１１に示すように、矢印Ｂａを通じてステップS22-1に進み、ジェスチャ検出部３２が、最新のセンサデータをデータ記憶部３０から取得する（ｋ回目）。そして、ステップS22-2で、現在の手首の移動速度Sh，Svと、１〜ｋ回目までの移動量Mh，Mvを算出する。
【００６９】
ここで、移動速度Shは、移動速度ベクトルのホリゾンタル成分（９０度及び２７０度の方角の成分）のことで、手首が０度〜９０度〜１８０度の方角に移動しているときは正の値になり、１８０度〜２７０度〜０度の方角に移動しているときは負の値になる。同様に、移動速度Svは、手首の移動速度ベクトルのヴーチカル成分（０度及び１８０度の方角の成分）のことで、手首が２７０度〜０度〜９０度の方角に移動しているときは正の値になり、９０度〜１８０度〜２７０度の方角に移動しているときは負の値になる。
【００７０】
また、移動量Mhは、中心位置２０ａに対する位置ベクトルのホリゾンタル成分（９０度及び２７０度の方角の成分）のことで、手首が中心位置２０ａに対して０度〜９０度〜１８０度の方角に位置しているときは正の値になり、１８０度〜２７０度〜０度の方角に位置しているときは負の値になる。同様に、移動量Mvは、中心位置２０ａに対する位置ベクトルのヴーチカル成分（０度及び１８０度の方角の成分）のことで、手首が中心位置２０ａに対して２７０度〜０度〜９０度の方角に位置しているときは正の値になり、９０度〜１８０度〜２７０度の方角に位置しているときは負の値になる。
【００７１】
次にステップS22-3に進み、現時点で往方向の方角検出フラグがfalseなので、往動作の移動の方角検出処理S22-4を行う。
【００７２】
移動の方角検出処理S22-4では、図１３に示すように、まず、ステップS22-4-1において、移動速度Sh，Sv及び閾値Spの大小関係を比較する。閾値Spは、先のステップS22-2で算出した移動速度Sh，Svの値を有効な値として採用するか否かを判断するための閾値である。つまり、移動速度Sh，Svの算出結果が閾値Sp以下の場合、この算出結果はループジェスチャにおける手首の移動速度とは言えないと（ノイズデータ等である）と判断する。
【００７３】
ここでは、移動速度Sh，Sv及び閾値Spの大小関係を、Case1〜Case5の５つに場合分けする。Case1は「|Sv|＞｜Sh|かつSv＞+Sp」のとき、Case2は「|Sv|＞｜Sh|かつSv＜-Sp」のとき、Case3は「|Sh|＞｜Sv|かつSh＜-Sp」のとき、Case4は「|Sh|＞｜Sv|かつSh＞+Sp」のときである。そして、Case5はCase1〜Case4以外のときである。例えば、利用者が図１４に示すようなループを描くジェスチャを行って、t1〜t28の各タイミングでセンサデータをサンプリングしたとすると、タイミングt1〜t10ではCase1、タイミングt11〜t14ではCase4、タイミングt15〜t28ではCase2に場合分けされることになる。
【００７４】
ステップS22-4-1において、移動速度Sh，Sv及び閾値Spの大小関係がCase1に該当すると判定した場合は、ジェスチャ検出部３２はステップS22-4-2に進み、カウンタUCを１増やし、他のカウンタDC，LC，RCを０にする。Case2に該当すると判定した場合は、ステップS22-4-3に進み、カウンタDCを１増やし、他のカウンタUC，LC，RCを０にする。Case3に該当すると判定した場合は、ステップS22-4-4に進み、カウンタLCを１増やし、他のカウンタUC，DC，RCを０にする。Case4に該当すると判定した場合は、ステップS22-4-5に進み、カウンタRCを１増やし、他のカウンタUC，DC，LCを０にする。そして、Case5に該当すると判定した場合は、ステップS22-4-6に進み、すべてのカウンタUC，DC，LC，RCを０にする。
【００７５】
ステップS22-4-2，S22-4-3，S22-4-4，S22-4-5を行った後は、ステップS22-4-7に進み、４つのカウンタUC，DC，LC，RCの中でカウントが閾値Cpに達したものがあるかどうかを確認し、無いときは、ループジェスチャ検出処理S22を終了し、図７に示すステップS23に進む。この時点で往動作の方角は未検出なので、この後は、ステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びループジェスチャ検出処理S22を行うとき、次回の移動の方角検出処理（往動作）S22-4を行うことになる。
【００７６】
一方、図８に示すステップS22-4-7において、４つのカウンタUC，DC，LC，RCの中にカウントが閾値Cpに達したものが有るときは、ステップS22-4-8に進む。そして、そのカウンタがUCの場合は方角「０度」に移動する往動作を検出したと判定し、DCの場合は方角「１８０度」に移動する往動作を検出したと判定し、LCの場合は、方角「２７０度」に移動する往動作を検出したと判定し、RCの場合は方角「９０度」に移動する往動作を検出したと判定する。
【００７７】
そして、ステップS22-4-9ですべてカウンタUC，DC，LC，RCを０にした後、移動の方角検出処理（往動作）S22-4を終了し、図１１に示すステップS22-5に進む。そして、往方向の方角の情報をジェスチャ検出部３２で保持するとともに、往動作の方角検出フラグをtrueにした後、ループジェスチャ検出処理S22を終了し、図７に示すステップS23に進む。この時点で往動作は検出したが復動作は未検出なので、ステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びループジェスチャ検出処理S22を行うとき、図１１に示すステップS21-3からステップS22-6に進むことになる。
【００７８】
図１３のステップS22-4-6を行った後は、そのままループジェスチャ検出処理S22を終了し、図７に示すステップS23に進む。この時点で往動作の方角は未検出なので、この後は、ステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びループジェスチャ検出処理S22を行うとき、次回の移動の方角検出処理（往動作）S22-4を行うことになる。
【００７９】
ここで、図１４に示すループジェスチャについて、移動の方角検出処理（往動作）S22-4を閾値Cp＝3で行ったケースを考える。タイミングt1に１回目が行われると、移動速度Sh，Sv及び閾値Spの大小関係がCase1に該当するので、カウンタUCのカウントが１増えるが、この時点では閾値Cp＝3に達していないので、往動作が未検出のまま、ループジェスチャ検出処理S22を終了する。その後、同様の移動の方角検出処理（往動作）S22-4が繰り返されると、タイミングt1，t2，t3が連続してCase1となり、タイミングt3でカウンタUCのカウントが閾値Cp＝3に達するので、ジェスチャ検出部３２は、この時点で方角「０度」に移動する往動作を検出したと判定する。以下に説明するのは、タイミングt4以降に行われる処理である。
【００８０】
往動作を検出した後、再びループジェスチャ検出処理S22に戻ったときは、図１１に示すように、矢印Ｂａを通じてステップS22-1に進み、ジェスチャ検出部３２が、最新のセンサデータをデータ記憶部３０から取得する（ｋ回目）。そして、ステップS22-2で、現在の手首の移動速度Sh，Svと、１〜ｋ回目までの移動量Mh，Mvを算出し、ステップS22-3に進む。ここまでは、上記と同様である。
【００８１】
この時点では、往動作の方角は検出済みで復方向の方角は未検出なので、往動作の角度検出フラグがtrue、復方向の角度検出フラグがfalseになっている。したがって、今回は、ステップS22-3の後は、図１２に示すステップS22-6に進み、さらに、ステップS22-6から移動の方角検出処理（復動作）S22-7に進む。
【００８２】
移動の方角検出処理（復動作）S22-7の中の各ステップは図示していないが、上記の移動の方角検出処理（往動作）S22-4と同様である。つまり、移動の方角検出処理（復動作）S22-7は、図１３に示すステップS22-4-1〜S22-4-9に対応したステップS22-7-1〜S22-7-9で構成されている。
【００８３】
移動の方角検出処理（復動作）S22-7では、ステップS22-7-7でカウントが閾値Cpに達したカウンタが無い場合と、Case5でステップS22-7-6を行った場合は、そのままループジェスチャ検出処理S22を終了し、図７に示すステップS23に進む。この時点で往動作は検出したが復動作は未検出なので、この後は、ステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びループジェスチャ検出処理S22を行うとき、次回の移動の方角検出処理（復動作）S22-7を行うことになる。
【００８４】
一方、ステップS22-7-7において、４つのカウンタUC，DC，LC，RCの中にカウントが閾値Cpに達したものが有るときは、ステップS22-7-8に進む。そして、そのカウンタがUCの場合は方角「０度」に移動する動作を検出したと判定し、DCの場合は方角「１８０度」に移動する動作を検出したと判定し、LCの場合は、方角「２７０度」に移動する動作を検出したと判定し、RCの場合は方角「９０度」に移動する動作を検出したと判定する。なお、上記のステップS22-4-7では、検出した動作をそのまま往動作であると判定したが、このステップS22-7-7では、検出した動作が復動作と言えるかどうかの判定は行わない。復動作と言えるかどうかの判定は、後のステップS22-8で行う。
【００８５】
ステップS22-7-7の後は、ステップS22-7-9ですべてのカウンタUC，DC，LC，RCを０にした後、移動の方角検出処理（復動作）S22-7を終了し、図１２に示すステップS22-8に進む。そして、ステップS22-8において、移動の方角検出処理（復動作）S22-7で検出した動作の方角と、先の移動の方角検出処理（往動作）S22-4で検出した往動作の方角とを比較する。
【００８６】
２つの方角が同じ場合は、移動の方角検出処理（復動作）S22-7で検出した動作が復動作ではないと判断し、そのままループジェスチャ検出処理S22を終了し、図７に示すステップS23に進む。この時点で往動作は検出したが復動作は未検出なので、この後は、ステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びループジェスチャ検出処理S22を行うとき、次回の移動の方角検出処理（復動作）S22-7を行うことになる。
【００８７】
一方、２つの方角が異なる場合は、ステップS22-9に進み、移動の方角検出処理（復動作）S22-7で検出した動作が復動作であると判定する。そして、復動作の方角の情報をジェスチャ検出部３２で保持するとともに、復動作の方角検出フラグをtrueにした後、ループジェスチャ検出処理S22を終了し、図７に示すステップS23に進む。この時点では、往動作及び復動作は検出済みであるが、検出した往動作及び復動作の組み合わせがループジェスチャと言えるかどうかの判定を行っていないので、ループジェスタは未検出である。したがって、ステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びループジェスチャ検出処理S22を行うとき、図１１に示すステップS22-3から図１２に示すステップS22-6に進み、さらにステップS22-6から後述するステップS22-10に進むことになる。ループジェスチャと言えるかどうかの判定は、このステップS22-10で行う。
【００８８】
ここで、図１４に示すループジェスチャについて、移動の方角検出処理S22-7（復動作）を閾値Cp＝3で行ったケースを考える。移動の方角検出処理S22-7（復動作）は、往動作を検出した後のタイミングt4に１回目が行われ、タイミングt4，t5，t6が連続してCase1となり、タイミングt6でカウンタUCのカウントが閾値Cp＝3に達するので、ジェスチャ検出部３２は、方角「０度」に移動する動作を検出したと判定する。しかし、この動作の方角は先に検出した往動作の方角「０度」と同じなので、この動作は復動作とは言えないと判断し、復動作が未検出のまま、ループジェスチャ検出処理S22を終了する。その後、同様の移動の方角検出処理（復動作）S22-7が繰り返され、タイミングt11，t12，t13が連続してCase4となり、タイミングt13でカウンタRCのカウントが閾値Cp＝3に達するので、ジェスチャ検出部３２は、方角「９０度」に移動する動作を検出したと判定する。そうすると、この動作の方角は先に検出した往動作の方角「０度」とは異なるので、この動作は復動作であると判定する。
【００８９】
なお、ループジェスチャ検出処理S22は、タイミングt14以降も繰り返されることになる。しかし、往動作及び復動作の方角検出フラグがともにtrueになっているため、タイミングt14以降、往動作及び復動作の移動の方角検出処理S22-4，S22-7のどちらも実行されない。したがって、タイミングt15〜t28における方角「１８０度」の動作は、往動作又は復動作として検出されない。以下に説明するのは、タイミングt14以降に行われる処理である。
【００９０】
復動作を検出した後、再びループジェスチャ検出処理S22に戻ったときは、図１１に示すように、矢印Ｂａを通じてステップS22-1に進み、ジェスチャ検出部３２が、最新のセンサデータをデータ記憶部３０から取得する（ｋ回目）。そして、ステップS22-2で、現在の手首の移動速度Sh，Svと、１〜ｋ回目までの移動量Mh，Mvを算出する。さらに、往動作の方角検出フラグがtrueになっているので、ステップS22-3から図１２に示すステップS22-6に進む。ここまでは、上記と同様である。
【００９１】
この時点では、復動作の方角も検出済みであり、復動作の角度検出フラグがtrueになっている。したがって、今回は、ステップS22-6の後は、ステップS22-10に進む。そして、ステップS22-10において、手首の位置ベクトルの情報である移動量Mh，Mvが、所定値以下の小さい値になったかどうかを確認する。移動量Mh，Mvが所定値より大きい場合は、手首が中心位置に戻っていない（ループジェスチャの途中である）と判断し、そのままループジェスチャ検出処理S22を終了し、図７に示すステップS23に進む。この時点で往動作及び復動作は検出したがループジェスチャは未検出なので、この後は、ステップS23からの矢印ＣＣ（又は図６に示す矢印ＤＤ，ＥＥ）と矢印Ａ，Ｂを経て処理SR2に戻る。そして、再びループジェスチャ検出処理S22を行うとき、再びステップS22-10を行うことになる。
【００９２】
一方、移動量Mh，Mvが所定値より小さい場合は、ステップS22-11に進み、手首が中心位置にほぼ戻っている（ループジェスチャが終了した）ので、ループジェスチャを検出したと判定する。そして、往動作と復動作の方角からループジェスチャの種類（LG1〜LG12）を特定する。
【００９３】
ループジェスチャの種類の判定は、図１５〜図１８に示す要領で行う。例えば、例１に示すように、往動作と復動作の組み合わせが「２７０度／０度」の場合、検出したループジェスチャはLG3であると判定する。例４に示すように、往動作と復動作の組み合わせが「０度／２７０度」の場合、検出したループジェスチャはLG4であると判定する。例７に示すように、往動作と復動作の組み合わせが「９０度／０度」の場合、検出したループジェスチャはLG7であると判定する。また、例１０に示すように、往動作と復動作の組み合わせが「１８０度／９０度」の場合、検出したループジェスチャはLG10であると判定する。そして、ループジェスチャを検出したこと（及びその種類）をジェスチャ情報とし、ジェスチャ検出部３２に一時的に保持する。
【００９４】
その後、ステップS22-12で往動作及び復動作の方角検出フラグをfalseにして、ループジェスチャ検出処理S22を終了する。ループジェスチャ検出処理S22の内容は以上である。
【００９５】
ツイストジェスチャ検出処理S21とループジェスチャ検出処理S22が終了すると、図７に示すステップS23に進む。ツイストジェスチャとループジェスチャの両方が未検出の場合は、上記のように矢印ＣＣと矢印Ａ，Ｂを経て処理SR2の開始に戻る。一方、ツイストジェスチャとループジェスチャのどちらかを検出している場合はステップS24に進み、ジェスチャ検出部３２は、検出したジェスチャ情報を操作制御部３４に送るとともに、データ記憶部３０の処理済みデータをリセットする。そして、ジェスチャ検出部３２における処理SR2を終了し、図６に示すように、操作制御部３４における処理SR3に進む。
【００９６】
このように、ジェスチャ検出部３２における処理SR2によれば、利用者が行った動作を的確に解析し、キャラクタコード列を入力するための操作（ツイストジェスチャ及びループジェスチャ）を容易に検出することができる。また、ループジェスチャの種類（LG1〜LG12）は、図１３に示すシンプルで独特なアルゴリズムを有した移動の方角検出処理S22-4を実行することによって、容易かつ正確に特定することができる。
【００９７】
次に、操作制御部３４における処理SR3を説明する。処理SR3の流れは、図１９のように表される。なお、図１９中に、入力フラグ（true／false）というフラグがあり、これは、ループジェスチャによるキャラクタコード列の入力を受け付ける状態であることをtrueで示し、受け付けない状態であることをfalseで示すものである。以下、操作制御部３４における処理SR3の流れを説明するとき、初期状態は入力フラグがfalseであるとする。
【００９８】
まず、操作制御部３４は、ジェスチャ検出部３２から送られてきたジェスチャ情報の内容が「ツイストジェスチャを検出した」という内容の場合、ステップS31からステップS32に進み、現時点の入力フラグをtrueに反転させる。さらにステップS33からステップS34に進み、操作制御部３４は、「利用者が行った今回のツイストジェスチャは、キャラクタコード列の入力を開始する合図である」と判定する。そして、これから行われるループジェスチャを検出するため、ステップS35でデータ記憶部３０にある移動量Mh，Mvをゼロに初期化する。そして、操作制御部３４における処理SR3を終了し、矢印ＤＤ，Ａを経て、図６に示す処理SR1に戻る。
【００９９】
ジェスチャ検出部３２から送られてきたジェスチャ情報の内容が「ループジェスチャを検出した」という内容の場合、ステップS31からステップS36に進み、現時点の入力フラグを確認する。ツイストジェスチャによる入力開始の合図を受けた後であれば、入力フラグがtrueになっているので、ステップS37に進み、このジェスチャ情報（ループジェスチャの内容）をコード制御部３６に送る。そして、操作制御部３４における処理SR3を終了し、矢印Ｄを経て、図６に示すコード制御部３６における処理SR4に進む。
【０１００】
一方、ステップS36において、入力フラグがfalseになっているとき（ツイストジェスチャによる入力開始の合図を受けていないとき）は、今回のループジェスチャはキャラクタコード列の入力するためのジェスチャではないと判断し、そのまま操作制御部３４における処理SR3を終了し、矢印ＤＤ，Ａを経て、図６に示す処理SR1に戻る。
【０１０１】
ツイストジェスチャによる入力開始の合図を受けた後、「ツイストジェスチャを検出した」という内容のジェスチャ情報が送られてくると、ステップS31からステップS32に進み、入力フラグをfalseに反転させる。さらにステップS33からステップS38に進み、操作制御部３４は、「利用者が行った今回のツイストジェスチャは、キャラクタコード列を確定させる合図(入力終了の合図)である」と判定する。そして、ステップS39に進み、このジェスチャ情報（ツイストジェスチャの内容）をコード制御部３６に送る。そして、操作制御部３４における処理SR3を終了し、矢印Ｄを経て、図６に示すコード制御部３６における処理SR4に進む。
【０１０２】
このように、操作制御部３２における処理SR3によれば、ジェスチャ検出部３２から送られてきたジェスチャ情報の内容を容易に分析し、その分析結果から以降に行うべき処理を適切に決定することができる。特に、この情報処理システム１０の場合、入力開始の合図（第一トリガジェスチャ）と入力終了の合図（第二トリガジェスチャ）とが同じジェスチャ（ツイストジェスチャ）であるが、操作制御部３４における処理SR3を行うことによって、どちらの合図かを容易に判別することができる。
【０１０３】
次に、コード制御部３６における処理SR4とアプリケーション実行部２８における処理SR5を説明する。処理SR4，SR5の流れは、図２０のように表される。また、コード制御部３６のキャラクタコード記憶領域３６ａは、図２１に示すようなイメージである。
【０１０４】
まず、コード制御部３６は、操作制御部３４から送られてきたジェスチャ情報の内容が「ループジェスチャを検出した」という内容の場合、ステップS41からステップS42に進み、上記の割り当て情報Ｆ(図３、図４)に基づいて、今回のループジェスチャの割り当てを確認する。例えば、現時点のファセットが数字ファセットＦ１で、ループジェスチャの種類がLG1であれば、割り当てはキャラクタコード「１」となる。割り当てがキャタクタコードの場合は、ステップS42からステップS43に進み、図２１に示すように、キャラクタコード記憶領域３６ａの末尾にそのキャラクタコードを順番に追加する。そして、コード制御部３６における処理SR4を終了し、矢印ＥＥ，Ａを経て、図６に示す処理SR1に戻る。
【０１０５】
割り当てがコマンド「ＦＳ」「ＣＬ」「ＢＳ」の場合は、ステップS42からステップS44に進み、各コマンドに対応した処理を行う。また、割り当てが「ＰＱＲＳ」等のキャラクタコード群の場合、同様にステップS42からステップS44に進み、現時点のファセットである主英字ファセットＦ２を、そのキャラクタコード群に対応した副英字ファセットＦ３に切り換える。そして、コード制御部３６における処理SR4を終了し、矢印ＥＥ，Ａを経て、図６に示す処理SR1に戻る。
【０１０６】
コード制御部３６は、操作制御部３４から送られてきたジェスチャ情報の内容が「ツイストを検出した」という内容の場合、このツイストジェスチャは一律に入力終了の合図であると判定することができる。そこで、コード制御部３６は、ステップS41からステップS45に進み、キャラクタコード記憶領域３６ａ内にある「１ｓｅｃ」等のキャラクタコード列をアプリケーション実行部２８に出力し、キャラクタコード記憶領域３６ａを初期化する。そして、コード制御部３６における処理SR4を終了し、矢印Ｅを経てアプリケーション実行部における処理SR5に進む。
【０１０７】
アプリケーション実行部２８における処理SR5では、アプリケーション実行部２８が、コード制御部３６から送られてきたキャラクタコード列に対応した処理を実行する（ステップS51）。
【０１０８】
このように、コード制御部３６における処理SR4によれば、操作制御部３４から送られてきたジェスチャ情報を受け、利用者が意図するキャラクタコード列を効率よく発生させることができる。そして、アプリケーション実行部２８に向けて適切なタイミングで出力することができる。
【０１０９】
以上説明したように、情報処理システム１０と情報処理システム１０で実行される情報処理方法（及び情報処理プログラム）によれば、利用者は、手首にウェアラブルデバイス１２を装着し、ツイストジェスチャ（第一及び第二トリガジェスチャ）及びループジェスチャを行うことによって、ハンズフリーの状態で、所望のキャラクタコード列を自在に入力することができる。また、ループジェスチャの種類（LG1〜LG12）は、ループジェスチャの方角によって区別されるので、外部デバイス１４は、モーションセンサ装置１２ａが出力するセンサデータを取得し、シンプルな演算処理を行うことにより、ループジェスチャの種類（LG1〜LG12）を正確に識別することができる。
【０１１０】
ループジェスチャは、人が楽に実行できる簡単な動作であり、利用者の負担にならない。また、入力開始と入力終了の合図である第一及び第二トリガジェスチャとして、ウェアラブルデバイスを装着した手首を軸回させるツイストジェスチャを採用しているのせ、ループジェスチャと同様に、利用者の負担にならない。しかも、ツイストジェスチャは、ループジェスチャと識別しやすい明快な動作なので、外部デバイス１４が誤認識するのを容易に防止することができる。
【０１１１】
なお、本発明の情報処理システムと情報処理方法及び情報処理プログラムは、上記実施形態に限定されるものではない。上記実施形態は、入力開始と入力終了の合図（第一及び第二トリガジェスチャ）を、手首を軸回させるツイストジェスチャにより行っている。さらに、手首を往方向及び復方向に軸回させることによってツイストジェスチャが成立することにしている。しかし、例えば、ツイストジェスチャが往方向だけ（又は復方向だけ）で成立することにしてもよく、これによって、ツイストジェスチャ検出処理をよりシンプルにすることができる。また、ツイストジェスチャは、ウェアラブルデバイス１２が、利用者が自らの軸回可能な身体部位に装着されていれば検出可能である。したがって、動作検出デバイスのウェアラブルデバイス１２を、手首ではなく、足首、指先、腕、頭部等に装着する形態に変更してもよく、手に持って操作するデバイスでもよく、手などの動作を検出して動作を認識可能な処理装置でもよい。また、第一及び第二トリガジェスチャは、ジェスチャ検出部がループジェスチャと区別可能な動作であればよく、ツイストジェスチャ以外の動作を使用してもよい。
【０１１２】
割り当て情報は、上記の割り当て情報Ｆの形態に限定されない。上記の割り当て情報Ｆは、仮想入力面２０の中心位置２０ａの周りを仮想入力面２０入力面の中心位置２０ａの周りをほぼ３０度間隔に等分する１２の方角を定義し、図４に示す１２種類のループジェスチャLG1〜LG12に対して、図３に示す３つのファセットＦ１〜Ｆ３を割り当てている。方角の数を１２にすれば、ループジェスチャの検出処理を、上記のように非常にシンプルなアルゴリズムで行うことができるという利点があるが、方角の数を変更し、これに合わせ、ループジェスチャの検出処理を上記と異なるアルゴリズムで行うようにしてもよい。また、上記のファセットＦ１〜Ｆ３の内容は一例であり、例えば、数字や英文字以外のキャラクタコード（ひらがな、カタカナ、絵文字等）を使用してもよいし、「ＦＳ／ＣＬ／ＢＣ」以外のコマンドを設けてもよい。
【０１１３】
上記実施形態は、利用者がループジェスチャを仮想入力面２０に沿って身体部位を変位させるという形態であるが、例えば、実在する入力面（例えば、スマートデバイス等のディスプレイの表面）に沿って指を滑らせて、図４に示すループジェスチャの動作を行う形態に変更してもよく、さらに、この入力面に上記のファセットＦ１〜Ｆ３を表示させるようにしてもよい。また、仮想入力面２０に沿ってループジェスチャを行う形態はそのままとし、上記のファセットＦ１〜Ｆ３を、ヘッドマウントディスプレイを装着した利用者に虚像として視認させる構成を追加してしてもよい。
【符号の説明】
【０１１４】
１０  情報処理システム
１２  ウェアラブルデバイス
１２ａ  モーションセンサ装置
１２ｂ，２２  通信装置
１４  外部デバイス
２０  仮想入力面
２０ａ  中心位置
Ｆ  割り当て情報
LG1〜LG12  ループジェスチャ
【図１】
2018097626.tif 000003
【図２】
2018097626.tif 000004
【図３】
2018097626.tif 000005
【図４】
2018097626.tif 000006
【図５】
2018097626.tif 000007
【図６】
2018097626.tif 000008
【図７】
2018097626.tif 000009
【図８】
2018097626.tif 000010
【図９】
2018097626.tif 000011
【図１０】
2018097626.tif 000012
【図１１】
2018097626.tif 000013
【図１２】
2018097626.tif 000014
【図１３】
2018097626.tif 000015
【図１４】
2018097626.tif 000016
【図１５】
2018097626.tif 000017
【図１６】
2018097626.tif 000018
【図１７】
2018097626.tif 000019
【図１８】
2018097626.tif 000020
【図１９】
2018097626.tif 000021
【図２０】
2018097626.tif 000022
【図２１】
2018097626.tif 000023