(57)【特許請求の範囲】
【請求項１】
コンピュータを、
対象物の連続的な複数の姿勢をそれぞれ示す複数の姿勢値を含む姿勢データを取得する姿勢データ取得部、
第１の閾値と第２の閾値との間で連続する予め定められた第１の数より多い姿勢値が前記姿勢データに含まれる場合、前記連続する予め定められた第１の数より多い姿勢値を、前記第１の閾値と前記第２の閾値との間の予め定められた姿勢値に変換する姿勢値変換部、及び
前記姿勢値変換部によって変換された姿勢値に基づいて、前記対象物の連続的な複数の姿勢を制御するための制御データを作成する制御データ作成部
として機能させるためのプログラム。
【請求項２】
前記姿勢値変換部は、前記第１の閾値と前記第２の閾値との間で連続する姿勢値の数が前記第１の数より少ない場合、当該連続する姿勢値を前記姿勢データから削除する、請求項１に記載のプログラム。
【請求項３】
前記姿勢値変換部は、前記第１の閾値と前記第２の閾値との間で連続する姿勢値の数が前記第１の数より多く、かつ、前記第１の数に基づいて決定される前記第１の数より多い第２の数より少ない場合、当該連続する姿勢値を１つの前記予め定められた姿勢値に変換し、当該連続する姿勢値の数が、前記第２の数より多い場合、当該連続する姿勢値を２つ以上の前記予め定められた姿勢値に変換する、請求項１又は２に記載のプログラム。
【請求項４】
前記コンピュータを、
前記姿勢データに含まれる一の姿勢値と、前記一の姿勢値以降で前記一の姿勢値との差分が予め定められた値よりも大きい最初の姿勢値との間の姿勢値を、前記姿勢データから削除する姿勢値削除部
としてさらに機能させるための請求項１から３のいずれか一項に記載のプログラム。
【請求項５】
前記姿勢データ取得部は、撮像装置によって撮像された被写体の動きを解析することによって導出された前記姿勢データを取得する、請求項１から４のいずれか一項に記載のプログラム。
【請求項６】
前記コンピュータを、
前記撮像装置が前記被写体を撮像しつつ録音した前記被写体の音声の内容を表す音声情報と、前記音声のタイミングを示すタイムスタンプとを取得する音声情報取得部
としてさらに機能させ、
前記制御データ作成部は、前記タイムスタンプに基づいて、前記対象物の連続的な複数の姿勢に同期させて、前記対象物に前記音声情報が表す内容の音声を出力させる前記制御データを作成する、請求項５に記載のプログラム。
【請求項７】
前記音声情報取得部は、前記被写体の音声の高さ情報及び速さ情報をさらに取得し、
前記制御データ作成部は、前記高さ情報及び速さ情報に基づいて、前記対象物に前記音声情報が表す内容の音声を出力させる高さ及び速さを決定する、請求項６に記載のプログラム。
【請求項８】
前記音声情報取得部は、前記音声情報として、前記被写体の音声の内容を表すテキストデータを取得し、
前記プログラムは、
前記コンピュータを、
前記テキストデータが表す内容を、複数の音声パラメータを用いて、前記対象物に複数回音声出力させる音声出力制御部、
前記対象物によって出力された複数の音声を録音した複数の録音データを取得する録音データ取得部、
前記録音データ取得部が取得した前記複数の録音データの音声のうち、前記被写体の音声との類似度が最も高い音声を特定する音声特定部
としてさらに機能させ、
前記制御データ作成部は、前記対象物に、前記音声特定部によって特定された音声を出力させる前記制御データを作成する、請求項６又は７に記載のプログラム。
【請求項９】
前記被写体は人間であり、
前記対象物はロボットの関節であり、
前記姿勢データ取得部は、前記ロボットの複数の関節のそれぞれについて、前記姿勢データを取得し、
前記姿勢値変換部は、前記複数の関節のそれぞれについて、前記第１の閾値と前記第２の閾値との間で連続する前記第１の数より多い姿勢値が前記姿勢データに含まれる場合、前記第１の数より多い姿勢値を、前記予め定められた姿勢値に変換する、請求項５から８のいずれか一項に記載のプログラム。
【請求項１０】
前記第１の閾値、前記第２の閾値、及び前記予め定められた姿勢値として、前記複数の関節のそれぞれで異なる値を設定可能である、請求項９に記載のプログラム。
【請求項１１】
前記制御データ作成部は、前記ロボットの右側及び左側の一方の関節の連続的な複数の姿勢を制御するための制御データに基づいて、前記ロボットの右側及び左側の他方の関節の連続的な複数の姿勢を制御するための制御データを作成する、請求項９又は１０に記載のプログラム。
【請求項１２】
被写体を撮像する撮像部と、
前記撮像部によって撮像された前記被写体の動きを解析することによって、対象物の連続的な複数の姿勢をそれぞれ示す複数の姿勢値を含む姿勢データを取得する姿勢データ取得部と、
第１の閾値と第２の閾値との間で連続する予め定められた第１の数より多い姿勢値が前記姿勢データに含まれる場合、前記連続する予め定められた第１の数より多い姿勢値を、前記第１の閾値と前記第２の閾値との間の予め定められた姿勢値に変換する姿勢値変換部と、
前記姿勢値変換部によって変換された姿勢値に基づいて、前記対象物の連続的な複数の姿勢を制御するための制御データを作成する制御データ作成部と
を備える姿勢制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、姿勢制御システム及びプログラムに関する。
【背景技術】
【０００２】
ロボットに連続的な複数の姿勢をとらせるべく、各関節部の角度データを姿勢データとして入力する装置が知られていた（例えば、特許文献１参照）。
［先行技術文献］
［特許文献］
［特許文献１］特開２０１０−２５３６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ロボット等の対象物の動きを適切に制御できるように姿勢データを変換する技術を提供できることが望ましい。
【課題を解決するための手段】
【０００４】
本発明の第１の態様によれば、コンピュータを、対象物の連続的な複数の姿勢をそれぞれ示す複数の姿勢値を含む姿勢データを取得する姿勢データ取得部、第１の閾値と第２の閾値との間で連続する予め定められた第１の数より多い姿勢値が姿勢データに含まれる場合、連続する予め定められた第１の数より多い姿勢値を、第１の閾値と第２の閾値との間の予め定められた姿勢値に変換する姿勢値変換部、及び姿勢値変換部によって変換された姿勢値に基づいて、対象物の連続的な複数の姿勢を制御するための制御データを作成する制御データ作成部として機能させるためのプログラムが提供される。
【０００５】
上記姿勢値変換部は、上記第１の閾値と上記第２の閾値との間で連続する姿勢値の数が上記第１の数より少ない場合、当該連続する姿勢値を上記姿勢データから削除してよい。上記姿勢値変換部は、上記第１の閾値と上記第２の閾値との間で連続する姿勢値の数が上記第１の数より多く、かつ、上記第１の数に基づいて決定される上記第１の数より多い第２の数より少ない場合、当該連続する姿勢値を１つの上記予め定められた姿勢値に変換してよく、当該連続する姿勢値の数が、上記第２の数より多い場合、当該連続する姿勢値を２つ以上の上記予め定められた姿勢値に変換してよい。上記プログラムは、上記コンピュータを、上記姿勢データに含まれる一の姿勢値と、上記一の姿勢値以降で上記一の姿勢値との差分が予め定められた値よりも大きい最初の姿勢値との間の姿勢値を、上記姿勢データから削除する姿勢値削除部としてさらに機能させてよい。上記姿勢データ取得部は、撮像装置によって撮像された被写体の動きを解析することによって導出された上記姿勢データを取得してよい。
【０００６】
上記プログラムは、上記コンピュータを、上記撮像装置が上記被写体を撮像しつつ録音した上記被写体の音声の内容を表す音声情報と、上記音声のタイミングを示すタイムスタンプとを取得する音声情報取得部としてさらに機能させてよく、上記制御データ作成部は、上記タイムスタンプに基づいて、上記対象物の連続的な複数の姿勢に同期させて、上記対象物に上記音声情報が表す内容の音声を出力させる上記制御データを作成してよい。上記音声情報取得部は、上記被写体の音声の高さ情報及び速さ情報をさらに取得してよく、上記制御データ作成部は、上記高さ情報及び速さ情報に基づいて、上記対象物に上記音声情報が表す内容の音声を出力させる高さ及び速さを決定してよい。
【０００７】
上記音声情報取得部は、上記音声情報として、上記被写体の音声の内容を表すテキストデータを取得してよく、上記プログラムは、上記コンピュータを、上記テキストデータが表す内容を、複数の音声パラメータを用いて、上記対象物に複数回音声出力させる音声出力制御部、上記対象物によって出力された複数の音声を録音した複数の録音データを取得する録音データ取得部、上記録音データ取得部が取得した上記複数の録音データの音声のうち、上記被写体の音声との類似度が最も高い音声を特定する音声特定部としてさらに機能させてよく、上記制御データ作成部は、上記対象物に、上記音声特定部によって特定された音声を出力させる上記制御データを作成してよい。上記被写体は人間であってよく、上記対象物はロボットの関節であってよく、上記姿勢データ取得部は、上記ロボットの複数の関節のそれぞれについて、上記姿勢データを取得してよく、上記姿勢値変換部は、上記複数の関節のそれぞれについて、上記第１の閾値と上記第２の閾値との間で連続する上記第１の数より多い姿勢値が上記姿勢データに含まれる場合、上記第１の数より多い姿勢値を、上記予め定められた姿勢値に変換してよい。上記第１の閾値、上記第２の閾値、及び上記予め定められた姿勢値として、上記複数の関節のそれぞれで異なる値を設定可能であってよい。上記制御データ作成部は、上記ロボットの右側及び左側の一方の関節の連続的な複数の姿勢を制御するための制御データに基づいて、上記ロボットの右側及び左側の他方の関節の連続的な複数の姿勢を制御するための制御データを作成してよい。
【０００８】
本発明の第２の態様によれば、被写体を撮像する撮像部と、撮像部によって撮像された被写体の動きを解析することによって、対象物の連続的な複数の姿勢をそれぞれ示す複数の姿勢値を含む姿勢データを取得する姿勢データ取得部と、第１の閾値と第２の閾値との間で連続する予め定められた第１の数より多い姿勢値が姿勢データに含まれる場合、連続する予め定められた第１の数より多い姿勢値を、第１の閾値と第２の閾値との間の予め定められた姿勢値に変換する姿勢値変換部と、姿勢値変換部によって変換された姿勢値に基づいて、対象物の連続的な複数の姿勢を制御するための制御データを作成する制御データ作成部と、制御データ作成部によって作成された制御データに基づいて、対象物の姿勢を制御する姿勢制御部とを備える姿勢制御システムが提供される。
【０００９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１０】
【図１】姿勢制御システム１０の一例を概略的に示す。
【図２】姿勢制御装置１００による姿勢データの変換例を概略的に示す。
【図３】姿勢制御装置１００による姿勢データの変換例を概略的に示す。
【図４】設定例５００を概略的に示す。
【図５】姿勢制御装置１００による姿勢データの変換例を概略的に示す。
【図６】姿勢制御装置１００による姿勢データの変換例を概略的に示す。
【図７】姿勢制御装置１００の機能構成の一例を概略的に示す。
【図８】姿勢制御装置１００として機能するコンピュータ１０００の一例を概略的に示す。
【発明を実施するための形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、姿勢制御システム１０の一例を概略的に示す。本実施形態に係る姿勢制御システム１０は、被写体３０の動きを解析することによって、ロボット２０の連続的な複数の姿勢をそれぞれ示す複数の姿勢値を含む姿勢データ（ロボット２０の姿勢データと記載する場合がある。）を取得し、当該姿勢データに含まれる複数の姿勢値を適切に変換し、変換後の姿勢値に基づいてロボット２０の連続的な複数の姿勢を制御するための制御データを作成し、作成した制御データをロボット２０に送信する。被写体３０は、例えば、人間である。
【００１３】
姿勢制御システム１０は、姿勢制御装置１００及び撮像装置２００を備える。撮像装置２００は、カメラ２１０及びマイク２２０を有する。カメラ２１０は、被写体３０の動画像を撮像する。マイク２２０は、被写体３０の音声を録音する。撮像装置２００は、被写体３０を撮像しつつ、被写体３０の音声を録音してよい。
【００１４】
撮像装置２００は、撮像した被写体３０の動きを解析することによって、ロボット２０の姿勢データを導出してよい。例えば、撮像装置２００は、いわゆるスケルトントラッキングを実行することによって被写体３０の各関節の姿勢情報を取得し、当該姿勢情報をロボット２０の各関節のオイラー角の角度値に変換することによって、ロボット２０の姿勢データを導出する。撮像装置２００は、例えば、Ｍｉｃｒｏｓｏｆｔ社のＫｉｎｅｃｔである。撮像装置２００は、ロボット２０の姿勢データを導出することができれば、他の手法を用いてよく、また、Ｋｉｎｅｃｔ以外の装置であってもよい。
【００１５】
撮像装置２００は、導出したロボット２０の姿勢データを姿勢制御装置１００に送信する。なお、ロボット２０の姿勢データの導出は姿勢制御装置１００が実行してもよい。すなわち、姿勢制御装置１００は、被写体３０の各関節の姿勢情報を撮像装置２００から受信して、受信した姿勢情報を用いてロボット２０の姿勢データを導出してもよい。
【００１６】
また、撮像装置２００は、被写体３０を撮像しつつ録音した被写体３０の音声を、姿勢制御装置１００に送信する。撮像装置２００は、被写体３０を撮像しつつ録音した被写体３０の音声に加えて、当該音声のタイミングを示すタイムスタンプを姿勢制御装置１００に送信してもよい。音声のタイミングを示すタイムスタンプは、被写体３０の撮像画像における音声のタイミングを示す。
【００１７】
姿勢制御装置１００は、撮像装置２００から受信した音声及びタイムスタンプを、ネットワーク４０を介して音声認識サーバ５０に送信してよい。ネットワーク４０は、インターネットを含んでよい。音声認識サーバ５０は、受信した音声を音声認識することによって音声の内容を表すテキストデータを生成し、当該テキストデータにタイムスタンプを対応付けて姿勢制御装置１００に送信してよい。姿勢制御装置１００は、音声認識サーバ５０から受信したテキストデータ及びタイムスタンプを格納する。姿勢制御装置１００は、撮像装置２００から受信した音声を自ら音声認識して、音声の内容を表すテキストデータを生成し、当該テキストデータにタイムスタンプを対応付けて格納してもよい。
【００１８】
なお、姿勢制御装置１００は、撮像装置２００から、被写体３０を撮像しつつ録音した音声の内容を表すテキストデータ及びタイムスタンプを受信してもよい。この場合、撮像装置２００は、被写体３０を撮像しつつ録音した被写体３０の音声を音声認識することによって音声の内容を表すテキストデータを生成し、テキストデータにタイムスタンプを対応付けて姿勢制御装置１００に送信してよい。
【００１９】
姿勢制御装置１００は、ロボット２０の姿勢データに変換処理を施した後、ロボット２０の姿勢データと、テキストデータ及びタイムスタンプとを用いて、ロボット２０の連続的な複数の姿勢を制御し、当該連続的な複数の姿勢に同期させてテキストデータが表す内容を音声出力させるための制御データを作成して、ロボット２０に送信する。以上の流れによって、被写体３０の動き及び音声に対応する動き及び音声を、ロボット２０に実行させることができる。
【００２０】
図２は、姿勢制御装置１００による姿勢データの変換例を概略的に示す。姿勢データ例３０２は、ロボット２０の一の関節についての、変換前の姿勢データの一例を示し、姿勢データ例３０４は、変換後の姿勢データの一例を示す。ここでは姿勢値が角度値である場合を例示するが、姿勢値はこれに限らず、他の値であってもよい。
【００２１】
変換前の姿勢データは、毎フレームの角度値を含む場合がある。姿勢データが毎フレームの角度値を含む場合、当該姿勢データを用いてロボット２０を駆動させると、ロボット２０の動きが滑らかにならない場合があることが実験的に証明されている。また、姿勢データが毎フレームの角度値を含む場合、ロボット２０が備えるモーター等の駆動部への負荷が過度に高くなってしまう場合がある。これに対して、本実施形態に係る姿勢制御装置１００は、ロボット２０の動きを滑らかにし、ロボット２０が備える駆動部の負荷を低減させるべく、姿勢データを変換する。
【００２２】
姿勢制御装置１００は、複数の閾値と、隣接する閾値の間の値をとる設定値とを予め登録し、これらに従って姿勢データを変換する。例えば、姿勢制御装置１００は、隣接する閾値の間に、連続する予め定められた第１の数より多い姿勢値が含まれる場合、当該姿勢値を、当該隣接する閾値の間の値をとる設定値に変換する。図２は、第１の数が４である場合を例示している。図２において、姿勢データ例３０２に、閾値３１４と閾値３１６との間に、連続する４より多い数の姿勢値が含まれることから、当該姿勢値が、閾値３１４と閾値３１６との間の設定値３２５に変換されている。
【００２３】
また、例えば、姿勢制御装置１００は、隣接する閾値の間で連続する姿勢値の数が第１の数より多く、かつ、第１の数に基づいて決定される第１の数より多い第２の数より少ない場合、当該連続する姿勢値を、当該隣接する閾値の間の設定値であって、１つの設定値に変換し、当該連続する姿勢値の数が第２の数より多い場合、当該連続する姿勢値を、当該隣接する閾値の間の設定値であって、２つ以上の設定値に変換する。図２は、第１の数に２を乗じて１を加算した値である９を第２の数とした場合を例示している。図２において、閾値３１２と閾値３１４との間で連続する姿勢値の数が９より多いことから、当該姿勢値が、閾値３１２と閾値３１４との間の２つの設定値３２３に変換されている。これにより、ロボット２０の動作を、設定値３２３が示す角度で一時停止させることができ、ロボット２０に意図したポーズをとらせることができる。なお、ここでは、第１の数に２を乗じて１を加算することによって第２の数を決定する例を挙げて説明したが、第２の数の決定法はこれに限らず、第１の数よりも第２の数が大きくなる決定法であれば、他の決定法を用いてもよい。
【００２４】
図３は、姿勢制御装置１００による姿勢データの変換例を概略的に示す。姿勢データ例４０２は、ロボット２０の一の関節についての、変換前の姿勢データの一例を示し、姿勢データ例４０４は、変換後の姿勢データの一例を示す。
【００２５】
姿勢制御装置１００は、隣接する閾値の間で連続する姿勢値の数が、上述の第１の数より少ない場合、当該連続する姿勢値を姿勢データから削除してよい。図３は、第１の数が４である場合を例示している。図３において、領域４２２において、閾値４１６と閾値４１８との間で連続する姿勢値の数が４より少なく、領域４２４において、閾値４１２と閾値４１４との間で連続する姿勢値の数が４より少なく、領域４２６において、閾値４１２と閾値４１４との間、閾値４１４と閾値４１６との間、閾値４１６と閾値４１８との間でそれぞれ連続する姿勢値の数が４より少ないことから、各姿勢値が削除されている。
【００２６】
図４は、姿勢データの変換に用いる設定例５００を概略的に示す。設定例５００は、閾値領域５１０、設定値領域５２０、及び無効とするフレーム数領域５３０を含む。閾値領域５１０は複数の入力欄５１２を含む。設定値領域５２０は、複数の入力欄５２２を含む。無効とするフレーム数領域５３０は、複数の入力欄５３２を含む。入力欄５１２、入力欄５２２、及び入力欄５３２への入力は、例えば、姿勢制御装置１００の使用者によって行われる。
【００２７】
図４に示す例では、閾値領域５１０において、下限−１２０度、上限１２０度の間に、−７０度、−５５度、−３０度、−１５度、５度、１５度、３５度、７０度、及び９０度が設定されている。ここでは９個の閾値が設定されている場合を例示しているが、閾値の数はこれに限らない。また、設定値領域５２０において、隣接する閾値のそれぞれの間に、−６０度、−４０度、−２０度、０度、１０度、２５度、５０度、及び８０度が設定されている。また、無効とするフレーム数領域５３０において、隣接する閾値のそれぞれの間に、４が設定されている。図４に示す例では、すべての入力欄５３２に同じ４が設定されているが、異なる値が設定されてもよい。無効とするフレーム数は、第１の数の一例である。
【００２８】
上述したように、複数の閾値を、均等な間隔ではなく任意の間隔に設定可能にすることによって、例えば、一の角度範囲についてその他の角度範囲よりも多くの閾値を設定することにより、当該一の角度範囲について、ロボット２０に精密な動作をさせることができる。また、上述したように、隣接する閾値の間の設定値を、隣接する閾値の中央値にするのではなく、任意に設定可能とすることによって、例えば、対象のロボット２０の適正に適合する角度への設定を可能にすることができる。
【００２９】
閾値、設定値、及び無効とするフレーム数は、姿勢データ毎に異なる値が設定可能であってよい。すなわち、閾値、設定値、及び無効とするフレーム数は、ロボット２０の複数の関節のそれぞれで異なる値を設定可能であってよい。
【００３０】
図５は、姿勢制御装置１００による姿勢データの変換例を概略的に示す。姿勢データ例６０２は、ロボット２０の一の関節についての、変換前の姿勢データの一例を示し、姿勢データ例６０４は、変換後の姿勢データの一例を示す。姿勢制御装置１００は、姿勢データに含まれる一の姿勢値と、当該一の姿勢値以降で当該一の姿勢値との差分が予め定められた値よりも大きい最初の姿勢値との間の姿勢値を姿勢データから削除してよい。図５は、予め定められた値が５度である場合を例示している。姿勢データ例６０４は、姿勢データ例６０２において、一の姿勢値との差分が５度以上になるまでの間の姿勢値を削除する処理が繰り返された結果を示す。
【００３１】
図６は、姿勢制御装置１００による姿勢データの変換例を概略的に示す。姿勢データ例６０２は、ロボット２０の一の関節についての、変換前の姿勢データの一例を示し、姿勢データ例６０６は、変換後の姿勢データの一例を示す。図６は、予め定められた値が１５度である場合を例示している。姿勢データ例６０６は、姿勢データ例６０２において、一の姿勢値との差分が１５度以上になるまでの間の姿勢値を削除する処理が繰り返された結果を示す。予め定められた値は、姿勢データ毎に異なる値が設定可能であってよい。すなわち、予め定められた値は、ロボット２０の複数の関節のそれぞれで異なる値を設定可能であってよい。
【００３２】
図７は、姿勢制御装置１００の機能構成の一例を概略的に示す。姿勢制御装置１００は、姿勢データ取得部１０２、姿勢データ格納部１０４、姿勢値変換部１０６、姿勢値削除部１１０、制御データ作成部１１４、音声情報取得部１１６、制御データ送信部１１８、音声出力制御部１２０、録音データ取得部１２２、音声特定部１２４、設定部１２６、及び制御データ取得部１２８を備える。なお、姿勢制御装置１００がこれらのすべての構成を備えることは必須とは限らない。
【００３３】
姿勢データ取得部１０２は、ロボット２０の姿勢データを取得する。姿勢データ取得部１０２は、撮像装置２００からロボット２０の姿勢データを受信してよい。また、姿勢データ取得部１０２は、撮像装置２００から、被写体３０の連続的な複数の姿勢をそれぞれ示す複数の姿勢値を含む姿勢情報を受信して、当該姿勢情報から、ロボット２０の姿勢データを導出してもよい。姿勢データ格納部１０４は、姿勢データ取得部１０２が取得した姿勢データを格納する。
【００３４】
姿勢値変換部１０６は、姿勢データ格納部１０４に格納されている姿勢データに含まれる複数の姿勢値に変換処理を施す。姿勢値変換部１０６は、第１の閾値と第２の閾値との間で連続する予め定められた第１の数より多い姿勢値が姿勢データに含まれる場合、当該姿勢値を、第１の閾値と第２の閾値との間の予め定められた姿勢値に変換する。第１の閾値と第２の閾値との間の予め定められた姿勢値は、第１の閾値と第２の閾値との間の設定値であってよい。姿勢値変換部１０６は、第１の閾値と第２の閾値との間で連続する姿勢値の数が第１の数より少ない場合、当該連続する姿勢値を姿勢データから削除してよい。姿勢データから姿勢値を削除するとは、姿勢値を記憶する記憶媒体から姿勢値を消去することであってよい。また、姿勢データから姿勢値を削除するとは、姿勢値を記憶する記憶媒体から姿勢値を消去せずに、姿勢データから姿勢値を除外することであってもよい。
【００３５】
姿勢値変換部１０６は、第１の閾値と第２の閾値との間で連続する姿勢値の数が第１の数より多く、かつ、第１の数に基づいて決定される第１の数より多い第２の数より少ない場合、当該連続する姿勢値を１つの予め定められた姿勢値に変換してよい。また、姿勢値変換部１０６は、第１の閾値と第２の閾値との間で連続する姿勢値の数が、第２の数より多い場合、当該連続する姿勢値を２つ以上の予め定められた姿勢値に変換してよい。
【００３６】
姿勢値削除部１１０は、姿勢データ格納部１０４に格納されている姿勢データに含まれる複数の姿勢値のうち、予め定められた条件に該当する姿勢値を削除する。姿勢値削除部１１０は、一の姿勢値と、当該一の姿勢値以降で当該一の姿勢値との差分が予め定められた値よりも大きい最初の姿勢値との間の姿勢値を、姿勢データから削除してよい。
【００３７】
制御データ作成部１１４は、姿勢データ格納部１０４に格納されている姿勢データに含まれる複数の姿勢値に基づいて、ロボット２０の連続的な複数の姿勢を制御するための制御データを作成する。制御データ作成部１１４は、複数の姿勢値に対してスムージング処理を実行することによって、制御データを作成してよい。
【００３８】
制御データ作成部１１４は、ロボット２０の右側及び左側の一方の関節の連続的な複数の姿勢を制御するための制御データに基づいて、ロボット２０の右側及び左側の他方の関節の連続的な複数の姿勢を制御するための制御データを作成してよい。ロボット２０に左右対称の動きをさせたい場合、被写体３０が撮像装置２００の前で左右対称の動きをすることになるが、人間が左右対称の動きをすることは難しい場合がある。それに対して、本実施形態に係る姿勢制御装置１００では、例えば、被写体３０の右手の動きに基づいて作成したロボット２０の右手用の制御データから、当該右手用の制御データに対応する左手用の制御データを作成することができ、ロボット２０による左右対称の動きを容易に実現することができる。
【００３９】
音声情報取得部１１６は、撮像装置２００が被写体３０を撮像しつつ録音した被写体３０の音声の内容を表す音声情報と、当該音声のタイミングを示すタイムスタンプとを取得する。音声情報は、音声の内容を表すテキストデータであってよい。
【００４０】
音声情報取得部１１６は、例えば、まず、撮像装置２００から受信した音声及びタイムスタンプを音声認識サーバ５０に送信する。そして、音声情報取得部１１６は、音声認識サーバ５０によって生成された、タイムスタンプが対応付けられているテキストデータを音声認識サーバ５０から受信する。
【００４１】
また、音声情報取得部１１６は、撮像装置２００から受信した音声を自らが音声認識して、音声の内容を表すテキストデータを生成し、当該テキストデータにタイムスタンプを対応付けて格納してもよい。また、音声情報取得部１１６は、撮像装置２００から、タイムスタンプが対応付けられたテキストデータを受信してもよい。
【００４２】
制御データ作成部１１４は、音声情報取得部１１６が取得したタイムスタンプに基づいて、ロボット２０の連続的な複数の姿勢に同期させて、ロボット２０に、音声情報取得部１１６が取得した音声情報が表す内容の音声を出力させる制御データを作成してよい。
【００４３】
音声情報取得部１１６は、被写体３０の音声の高さ情報及び速さ情報をさらに取得してもよい。音声情報取得部１１６は、テキストデータを音声認識サーバ５０から受信する場合、高さ情報及び速さ情報も併せて音声認識サーバ５０から受信してよい。音声認識サーバ５０は、姿勢制御装置１００から受信した音声を音声認識するときに、当該音声の高さ情報及び速さ情報を併せて生成し、姿勢制御装置１００に送信してよい。
【００４４】
音声情報取得部１１６は、撮像装置２００からテキストデータを受信する場合、高さ情報及び速さ情報も併せて撮像装置２００から受信してよい。撮像装置２００は、被写体３０を撮像しつつ録音した音声を音声認識するときに、当該音声の高さ情報及び速さ情報を併せて生成し、姿勢制御装置１００に送信してよい。
【００４５】
音声情報取得部１１６は、撮像装置２００から受信した音声を自らが音声認識する場合、当該音声を音声認識するときに、当該音声の高さ情報及び速さ情報を併せて生成してよい。
【００４６】
制御データ作成部１１４は、音声情報取得部１１６が取得した高さ情報及び速さ情報に基づいて、ロボット２０に音声情報が表す内容の音声を出力させる高さ及び速さを決定してよい。
【００４７】
制御データ送信部１１８は、制御データ作成部１１４によって作成された制御データをロボット２０に送信する。
【００４８】
音声出力制御部１２０は、音声情報取得部１１６が取得した音声情報が表す内容を、複数の音声パラメータを用いて、ロボット２０に複数回音声出力させる。音声出力制御部１２０は、例えば、話す速さ、声の高さ、声の太さ、声の大きさ、イントネーション、アクセント、感情の種類、及び感情の度合い等の値の少なくともいずれかが異なる複数の音声パラメータを用いて、ロボット２０に複数回音声出力させてよい。
【００４９】
録音データ取得部１２２は、音声出力制御部１２０による制御に従ってロボット２０によって出力された複数の音声を録音した録音データを取得する。録音データ取得部１２２は、例えば、姿勢制御装置１００が備える不図示のマイクによって録音された録音データを取得する。録音データ取得部１２２は、姿勢制御装置１００以外の装置が備えるマイクによって録音された録音データを、当該装置から受信してもよい。
【００５０】
音声特定部１２４は、録音データ取得部１２２が取得した複数の録音データと、音声情報取得部１１６が取得した被写体３０の音声とを比較して、被写体３０の音声との類似度が最も高い音声を特定する。制御データ作成部１１４は、ロボット２０に、音声特定部１２４によって特定された音声を出力させる制御データを作成してよい。ロボット２０による発声は、発声させてみないとどのような発声になるかわからない場合があるが、本実施形態に係る姿勢制御装置１００によれば、ロボット２０に、複数の音声パラメータによって複数回発声させ、被写体３０の音声と最も類似する音声を採用することができるので、被写体３０の発声内容を、ロボット２０に忠実に再現させることが可能となる。
【００５１】
設定部１２６は、姿勢データの変更に関する各種設定を実行する。例えば、設定部１２６は、閾値領域５１０への閾値の設定、設定値領域５２０への設定値の設定、及び無効とするフレーム数領域５３０へのフレーム数の設定を実行する。また、設定部１２６は、姿勢データの変更の実行要否の設定を実行する。設定部１２６は、姿勢制御装置１００の使用者による設定入力を受け付けてよい。
【００５２】
制御データ取得部１２８は、制御データを取得する。制御データ取得部１２８は、任意の装置によって作成された制御データを取得してよい。制御データ取得部１２８は、例えば、他の姿勢制御装置１００によって作成された制御データを取得する。制御データ取得部１２８は、例えば、可搬型の記憶媒体から制御データを取得する。また、制御データ取得部１２８は、ネットワーク４０を介して制御データを受信する。制御データ作成部１１４は、制御データ取得部１２８が取得した制御データを編集することによって、制御データを作成してよい。また、制御データ作成部１１４は、制御データ取得部１２８が受信した制御データを編集することなく、制御データ送信部１１８に送信させてもよい。
【００５３】
上記実施形態では、姿勢制御装置１００と撮像装置２００とが別体である場合を例に挙げて説明したが、姿勢制御装置１００と撮像装置２００とは一体であってもよい。すなわち、姿勢制御装置１００が、撮像装置２００の機能を備えてもよい。
【００５４】
また、上記実施形態では、ロボット２０を対象物の一例として挙げたが、これに限らない。対象物は、ロボット２０以外の実物のオブジェクトであってもよい。また、対象物は、仮想のオブジェクトであってもよい。例えば、対象物は、ゲーム内のキャラクタ等の仮想３次元オブジェクトであってよい。
【００５５】
図８は、姿勢制御装置１００として機能するコンピュータ１０００の一例を概略的に示す。本実施形態に係るコンピュータ１０００は、ホストコントローラ１０９２により相互に接続されるＣＰＵ１０１０、ＲＡＭ１０３０、グラフィックコントローラ１０８５、及びサウンドコントローラ１０８７を有するＣＰＵ周辺部と、入出力コントローラ１０９４によりホストコントローラ１０９２に接続される通信Ｉ／Ｆ１０４０、ハードディスクドライブ１０５０、ＤＶＤドライブ１０７０及びカメラ１０９６を有する入出力部と、入出力コントローラ１０９４に接続されるＲＯＭ１０２０、ＦＤドライブ１０６０、及び入出力チップ１０８０を有するレガシー入出力部とを備える。
【００５６】
ＣＰＵ１０１０は、ＲＯＭ１０２０及びＲＡＭ１０３０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０８５は、ＣＰＵ１０１０などがＲＡＭ１０３０内に設けたフレーム・バッファ上に生成する画像データを取得し、ディスプレイ１０８６上に表示させる。これに代えて、グラフィックコントローラ１０８５は、ＣＰＵ１０１０などが生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。サウンドコントローラ１０８７は、マイク１０８８を介して音声を取得する。
【００５７】
通信Ｉ／Ｆ１０４０は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信Ｉ／Ｆ１０４０は、通信を行うハードウエアとして機能する。カメラ１０９６は、動画像を撮像する。カメラ１０９６は、通信I／F１０４０に外部接続されてもよい。ハードディスクドライブ１０５０は、ＣＰＵ１０１０が使用するプログラム及びデータを格納する。ＤＶＤドライブ１０７０は、ＤＶＤ−ＲＯＭ１０７２からプログラム又はデータを読み取り、ＲＡＭ１０３０を介してハードディスクドライブ１０５０に提供する。
【００５８】
ＲＯＭ１０２０は、コンピュータ１０００が起動時に実行するブート・プログラム、及びコンピュータ１０００のハードウエアに依存するプログラムなどを格納する。ＦＤドライブ１０６０は、フレキシブルディスク１０６２からプログラム又はデータを読み取り、ＲＡＭ１０３０を介してハードディスクドライブ１０５０に提供する。入出力チップ１０８０は、ＦＤドライブ１０６０を入出力コントローラ１０９４へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポートなどを介して各種の入出力装置を入出力コントローラ１０９４へと接続する。
【００５９】
ＲＡＭ１０３０を介してハードディスクドライブ１０５０に提供されるプログラムは、フレキシブルディスク１０６２、ＤＶＤ−ＲＯＭ１０７２、又はＩＣカードなどの記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ１０３０を介してハードディスクドライブ１０５０にインストールされ、ＣＰＵ１０１０において実行される。
【００６０】
コンピュータ１０００にインストールされ、コンピュータ１０００を姿勢制御装置１００として機能させるプログラムは、ＣＰＵ１０１０などに働きかけて、コンピュータ１０００を、姿勢制御装置１００の各部としてそれぞれ機能させてよい。これらのプログラムに記述された情報処理は、コンピュータ１０００に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段である姿勢データ取得部１０２、姿勢データ格納部１０４、姿勢値変換部１０６、姿勢値削除部１１０、制御データ作成部１１４、音声情報取得部１１６、制御データ送信部１１８、音声出力制御部１２０、録音データ取得部１２２、音声特定部１２４、設定部１２６、及び制御データ取得部１２８として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１０００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の姿勢制御装置１００が構築される。
【００６１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６２】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００６３】
１０  姿勢制御システム、２０  ロボット、３０  被写体、５０  音声認識サーバ、１００  姿勢制御装置、１０２  姿勢データ取得部、１０４  姿勢データ格納部、１０６  姿勢値変換部、１１０  姿勢値削除部、１１４  制御データ作成部、１１６  音声情報取得部、１１８  制御データ送信部、１２０  音声出力制御部、１２２  録音データ取得部、１２４  音声特定部、１２６  設定部、１２８  制御データ取得部、２００  撮像装置、２１０  カメラ、２２０  マイク、３０２  姿勢データ例、３０４  姿勢データ例、３１２  閾値、３１４  閾値、３１６  閾値、３２３  設定値、３２５  設定値、４０２  姿勢データ例、４０４  姿勢データ例、４１２  閾値、４１４  閾値、４１６  閾値、４１８  閾値、４２２  領域、４２４  領域、４２６  領域、５００  設定例、５１０  閾値領域、５１２  入力欄、５２０  設定値領域、５２２  入力欄、５３０  無効とするフレーム数領域、５３２  入力欄、６０２  姿勢データ例、６０４  姿勢データ例、６０６  姿勢データ例、１０００  コンピュータ、１０１０  ＣＰＵ、１０２０  ＲＯＭ、１０３０  ＲＡＭ、１０４０  通信Ｉ／Ｆ、１０５０  ハードディスクドライブ、１０６０  ＦＤドライブ、１０６２  フレキシブルディスク、１０７０  ＤＶＤドライブ、１０７２  ＤＶＤ−ＲＯＭ、１０８０  入出力チップ、１０８５  グラフィックコントローラ、１０８６  ディスプレイ、１０８７  サウンドコントローラ、１０８８  マイク、１０９２  ホストコントローラ、１０９４  入出力コントローラ、１０９６  カメラ
【図１】
0006378716.tif 000002
【図２】
0006378716.tif 000003
【図３】
0006378716.tif 000004
【図４】
0006378716.tif 000005
【図５】
0006378716.tif 000006
【図６】
0006378716.tif 000007
【図７】
0006378716.tif 000008
【図８】
0006378716.tif 000009