(57)【要約】【課題】ロボットの動作の安定性とデータが途切れたときのロボットの動作を補償しながらモーション・データをストリーミング再生する。【解決手段】モーション・データが各制御対象において、コントロール・ポイント毎に角度ポジションと角速度からなる指令値を持ち、２点のコントロール・ポイントだけで高次スプライン補間ができる形式であると、デザインしたモーション・パターンと補間結果との誤差は微小である。時系列で転送を行なうには、各関節順ではなく、時間的に早いコントロール・ポイントから随時指令値を転送していく。【選択図】  図１２
2004291202.tif 000002
【特許請求の範囲】
【請求項１】
基体と前記基体に接続される複数の可動部を備えたロボット装置のためのモーション・データを提供するデータ提供装置であって、
元のモーション・データは、各制御対象毎に時間軸上に区々の間隔でコントロール・ポイントが並び、コントロール・ポイントにおける指令値とコントロール・ポイント間の補間方法の記述で構成され、
元のモーション・データを、各制御対象において、コントロール・ポイント毎に角度ポジションと角速度からなる指令値を持ち、２点のコントロール・ポイントだけで補間できる形式に変換するデータ変換手段と、
時間的に早いコントロール・ポイントから随時指令値を提供するデータ提供手段と、
を具備することを特徴とするデータ提供装置。
【請求項２】
前記複数の可動部は、少なくとも上肢、下肢及び体幹部を含む、
ことを特徴とする請求項１に記載のデータ提供装置。
【請求項３】
前記のデータを提供する手段は、ある経過時間において、モーションを再生するために必要なすべてのコントロール・ポイントの指令値が、この経過時間に到達する以前に受信側に提供する、
ことを特徴とする請求項１に記載のデータ提供装置。
【請求項４】
モーション・データは、すべての制御対象における指令値が０となるキーフレームを含み、
前記のデータを提供する手段は、キーフレームで仕切られる単位でデータの提供を行なう、
ことを特徴とする請求項１に記載のデータ提供装置。
【請求項５】
ある時間までのデータが要求されデータ提供先においてデータが欠損したことに応答して、欠落しては困る制御対象についての指令値から優先的にデータ送信を行なう手段をさらに備える、
ことを特徴とする請求項１に記載のデータ提供装置。
【請求項６】
基体と前記基体に接続される複数の可動部を備えたロボット装置のためのモーション・データを提供するデータ提供方法であって、
元のモーション・データは、各制御対象毎に時間軸上に区々の間隔でコントロール・ポイントが並び、コントロール・ポイントにおける指令値とコントロール・ポイント間の補間方法の記述で構成され、
元のモーション・データを、各制御対象において、コントロール・ポイント毎に角度ポジションと角速度からなる指令値を持ち、２点のコントロール・ポイントだけで補間できる形式に変換するデータ変換ステップと、
時間的に早いコントロール・ポイントから随時指令値を提供するデータ提供ステップと、
を具備することを特徴とするデータ提供方法。
【請求項７】
前記複数の可動部は、少なくとも上肢、下肢及び体幹部を含む、
ことを特徴とする請求項６に記載のデータ提供方法。
【請求項８】
前記のデータを提供するステップでは、ある経過時間において、モーションを再生するために必要なすべてのコントロール・ポイントの指令値が、この経過時間に到達する以前に受信側に提供する、
ことを特徴とする請求項６に記載のデータ提供方法。
【請求項９】
モーション・データは、すべての制御対象における指令値が０となるキーフレームを含み、
前記のデータを提供するステップでは、キーフレームで仕切られる単位でデータの提供を行なう、
ことを特徴とする請求項６に記載のデータ提供方法。
【請求項１０】
ある時間までのデータが要求されデータ提供先においてデータが欠損したことに応答して、欠落しては困る制御対象についての指令値から優先的にデータ送信を行なうステップをさらに備える、
ことを特徴とする請求項６に記載のデータ提供方法。
【請求項１１】
基体と前記基体に接続される複数の可動部を備え、モーション・データを外部装置から受信して再生するロボット装置であって、
モーション・データは各制御対象において、コントロール・ポイント毎に角度ポジションと角速度からなる指令値を持ち、２点のコントロール・ポイントだけで補間できる形式であり、
前記外部装置にデータを要求する手段と、
要求分のデータを受信して前記ロボット装置のすべての制御対象の指令値に関し復元可能になるまで一時保存する手段と、
再生時間単位分のデータが一時保存されたことに応答して、データを復元しモーションを再生する手段と、
を具備することを特徴とするロボット装置。
【請求項１２】
前記複数の可動部は、少なくとも上肢、下肢及び体幹部を含む、
ことを特徴とする請求項１１に記載のロボット装置。
【請求項１３】
モーションを再生するために必要な次のデータが途切れたことに応答して、速度不連続補正処理を実行する手段をさらに備える、
ことを特徴とする請求項１１に記載のロボット装置。
【請求項１４】
モーション・データは、すべての制御対象における指令値が０となるキーフレームを含み、
前記のデータを要求する手段及びモーションを再生する手段は、キーフレームで仕切られる単位でデータの受信及び再生を行なう、
ことを特徴とする請求項１１に記載のロボット装置。
【請求項１５】
受信したデータが欠損したことに応答した処理を行なう手段をさらに備える、ことを特徴とする請求項１１に記載のロボット装置。
【請求項１６】
基体と前記基体に接続される複数の可動部を備え、モーション・データを外部装置から受信して再生するロボットのモーション再生方法であって、
モーション・データは各制御対象において、コントロール・ポイント毎に角度ポジションと角速度からなる指令値を持ち、２点のコントロール・ポイントだけで補間できる形式であり、
前記外部装置にデータを要求するステップと、
要求分のデータを受信して前記ロボット装置のすべての制御対象の指令値に関し復元可能になるまで一時保存するステップと、
再生時間単位分のデータが一時保存されたことに応答して、データを復元しモーションを再生するステップと、
を具備することを特徴とするロボットのモーション再生方法。
【請求項１７】
前記複数の可動部は、少なくとも上肢、下肢及び体幹部を含む、
ことを特徴とする請求項１６に記載のロボットのモーション再生方法。
【請求項１８】
モーションを再生するために必要な次のデータが途切れたことに応答して、速度不連続補正処理を実行するステップをさらに備える、
ことを特徴とする請求項１６に記載のロボットのモーション再生方法。
【請求項１９】
モーション・データは、すべての制御対象における指令値が０となるキーフレームを含み、
前記のデータを要求するステップ及びモーションを再生するステップでは、キーフレームで仕切られる単位でデータの受信及び再生を行なう、
ことを特徴とする請求項１６に記載のロボットのモーション再生方法。
【請求項２０】
受信したデータが欠損したことに応答した処理を行なうステップをさらに備える、
ことを特徴とする請求項１６に記載のロボットのモーション再生方法。
【請求項２１】
ロボットのモーション・データを処理するデータ処理装置であって、
ロボットのモーション・データは、各制御対象毎の指令値からなるコントロール・ポイントが時系列的に配列されてなる本線で構成され、一部のコントロール・ポイントはロボットが機体の安定性を保証して停止することができる停止ポイントであり、
停止ポイントが含まれるようにモーション・データを所定サイズに分割して送信データを生成する、
ことを特徴とするデータ処理装置。
【請求項２２】
所定サイズ内に停止ポイントがない場合には、該所定サイズの最終コントロール・ポイントから移行することができる停止ポイントを生成し、モーション・データの本線に対し、該最終コントロール・ポイントから該停止ポイントへ向かう支線を挿入する、
ことを特徴とする請求項２１に記載のデータ処理装置。
【請求項２３】
ロボットのモーション・データを受信して再生するデータ処理装置であって、ロボットのモーション・データは、各制御対象毎の指令値からなるコントロール・ポイントが時系列的に配列されて構成され、一部のコントロール・ポイントはロボットが機体の安定性を保証して停止することができる停止ポイントであり、
データを受信する受信手段と、
受信したデータを一時格納する受信バッファと、
受信バッファに蓄積されたデータを再生するデータ再生手段と、
前記データ再生手段によるデータ再生処理を制御する再生制御手段とを備え、前記再生制御手段は、前記受信バッファに貯まった最後の停止ポイントまでデータ再生を行なわせる、
ことを特徴とするデータ処理装置。
【請求項２４】
送信されてくるロボットのモーション・データは、各制御対象毎の指令値からなるコントロール・ポイントが時系列的に配列されてなる本線に対し、通常のコントロール・ポイントから停止ポイントへ向かう支線が挿入されており、
前記再生制御手段は、受信バッファ中に常に到達可能な停止ポイントがあるように再生の分岐を行なう、
ことを特徴とする請求項２３に記載のデータ処理装置。
【請求項２５】
前記再生制御手段は、受信バッファに格納されているモーション・データの本線上の最後の停止ポイントまでデータ再生を行なわせる、
ことを特徴とする請求項２４に記載のデータ処理装置。
【請求項２６】
前記再生制御手段は、受信バッファに格納されているモーション・データの本線上に次の停止ポイントが見つからない場合には、支線上の停止ポイントを探索して該停止ポイントまでデータ再生を行なわせる、
ことを特徴とする請求項２５に記載のデータ処理装置。
【請求項２７】
前記再生制御手段は、受信バッファに格納されているモーション・データの本線及び支線のいずれにおいても次の停止ポイントが見つからない場合には、現在の停止ポイントにおいて再生を停止させる、
ことを特徴とする請求項２５に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク経由でデータを提供するデータ提供装置及びデータ提供方法、並びにネットワーク経由で受信したデータを再生処理するデータ再生装置及びデータ再生方法に係り、特に、複数の関節自由度を備えたロボットのモーション・データをネットワーク経由で提供するデータ提供装置及びデータ提供方法、ロボット装置及びロボットのモーション再生方法、並びにデータ処理装置に関する。
【０００２】
さらに詳しくは、本発明は、ストリーミング技術を利用してロボットのモーション・データを逐次読み込み実行するデータ提供装置及びデータ提供方法、ロボット装置及びロボットのモーション再生方法、並びにデータ処理装置に係り、特に、ロボットの動作の安定性とデータが途切れたときのロボットの動作を保証しながらモーション・データをストリーミング再生するデータ提供装置及びデータ提供方法、ロボット装置及びロボットのモーション再生方法、並びにデータ処理装置に関する。
【０００３】
【従来の技術】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の”ＲＯＢＯＴＡ（奴隷機械）”に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（ｉｎｄｕｓｔｒｉａｌ  ｒｏｂｏｔ）であった。
【０００４】
最近では、ヒトやサルなどの２足直立歩行を行う動物の身体メカニズムや動作を模した脚式移動ロボットに関する研究開発が進展し、実用化への期待も高まってきている。２足直立による脚式移動は、クローラ式や、４足又は６足式などに比し不安定で姿勢制御や歩行制御が難しくなるが、不整地や障害物など作業経路上に凹凸のある歩行面や、階段や梯子の昇降など不連続な歩行面に対応することができるなど、柔軟な移動作業を実現できるという点で優れている。
【０００５】
また、ヒトの生体メカニズムや動作を再現した脚式移動ロボットのことを、特に、「人間形」、若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ  ｒｏｂｏｔ）と呼ぶ。人間型ロボットは、例えば、生活支援、すなわち住環境その他の日常生活上のさまざまな場面における人的活動の支援などを行なうことができる。
【０００６】
人間の作業空間や居住空間のほとんどは、２足直立歩行という人間が持つ身体メカニズムや行動様式に合わせて形成されおり、車輪その他の駆動装置を移動手段とした現状の機械システムが移動するのには多くの障壁が存在する。したがって、機械システムすなわちロボットがさまざまな人的作業を代行し、さらに人間の住空間に深く浸透していくためには、ロボットの移動可能範囲が人間のそれとほぼ同じであることが好ましい。これが、脚式移動ロボットの実用化が大いに期待されている所以でもある。
【０００７】
脚式移動ロボットを始めとする多関節型ロボット、あるいはその他のロボット装置は、関節角度や関節ゲインなどの複数の制御対象を持つ。そして、そのロボット装置の動作シーケンスは、時間軸上の各制御対象点をクロックで表し、クロック毎の指令値（関節アクチュエータの角度情報など）として表される。但し、各クロックにおける情報をすべて表すとデータ量が多過ぎる。このため、ある動作期間の初期点と終端点における各制御対象の制御値のみを規定し、動作期間中の各制御対象の動作はスプライン補間や線形補間などの補間処理が行なわれるというＰＴＰ制御が一般に採用されている（すなわち、補間関数を用いることを前提に、キーとなるデータだけに圧縮される）。例えば、制御対象毎に所定の時間間隔又はランダムな時間間隔で補間点（コントロール・ポイント）が設けられ、補間点の間は、適宜スプライン補間や線形補間などの補間処理が施される。モーション・データは、各制御対象毎の、補間点における制御目標値と、各補間点間の補間方法の記述で構成される。
【０００８】
現在、ロボットを動作させるための手法として、その都度リアルタイムに動きを生成する方法と、あらかじめデザインされたスタティックなモーションに従って機体を駆動する方法の２通りに大別される。
【０００９】
後者のモーションを使用する方法では、あらかじめロボット内部に保存することができるモーション数がメモリ容量で制限されてしまう。加えて、決められたモーションのみではユーザに飽きられてしまう可能性がある。
【００１０】
そこで、ネットワーク上にあるサーバから新たなモーション・データをダウンロードするといった、モーションをロボットに供給する仕組みが必要であると考えられる。
【００１１】
一方、最近では、電話回線（ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ：非対称デジタル加入者回線）など）やケーブル・テレビなどのネットワーク回線の高速化に伴い、ファイルをダウンロードし終えてからこれを再生するのではなく、ダウンロードしながら再生するという「ストリーミング」技術が開発され、普及し始めている。ストリーミング配信は次世代のインターネット利用の要と見られている。
【００１２】
例えば、モーション・データのダウンロードの完了を待ってから、ロボットの動作を開始するよりも、ストリーミング技術により逐次読み込みを実行する方が、ロボットのレスポンス向上に有効であると本発明者らは考えられる。
【００１３】
しかしながら、ストリーミングの最中にデータ落ちが発生し、関節の速度が不連続になったり、完全にデータが途切れたりした場合には、アクチュエータへ多大な負荷が掛かったり、ロボット本体が不安定な状態にならないことを保証しなければならず、従来の映像や音声用データのストリーミングとは様相が大いに相違する。
【００１４】
また、効率的なモーション・データ・フォーマットでは、制御対象毎のコントロール・ポイントが時系列に並んでいることは稀であり、制御対象毎に独立したコントロール・ポイントが並んでいることが多い。言い換えれば、モーション・データ・フォーマットは、映像や音声データとは異なり、時系列すなわち再生順にデータが配列されているとは限らず、ストリーミング方式との親和性がよくない。
【００１５】
また、現在代表的なネットワーク・プロトコルであるＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）では、データ転送を制御するトランスポート層としてＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）やＴＣＰが挙げられる。ＵＤＰでは、パケットの消失、重複、順序などは全く保証されない。また、ＴＣＰでは、再送を行なうことで信頼性（データの抜けや重複、誤りがなく、送信データがそのままの順序で正しく受信側に届くこと）が保証されているが、再送に伴う遅延に関しては保証がない。また、ＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ，ＲＦＣ−１８８９）では、実時間でデータ通信できるような枠組みが与えられている（通常ＵＤＰを用いる）が、配送の保証、順番違いが保証されるものではない。このように、現状のネットワークでは、データの抜けや遅延の危険性が常につきまとう。
【００１６】
ビデオや音声のアプリケーションでは、データの抜けや遅延があった場合、ビデオのノイズやコマ送り、音声が途切れるといった、サービス品質が一時的に低下するだけ、機械装置の故障の原因になることはない。これに対し、ロボットのモーション・データのような場合、データの消失や遅延は、機械の故障の原因ともなるので重大である。例えば、２足直立歩行ロボットの場合、歩行用データで片足を挙げた時点でデータが消失してしまうと、機体はバランスを崩し、そのまま転倒するなど致命的で重大な事態を招来するであろう。
【００１７】
【発明が解決しようとする課題】
本発明の目的は、ストリーミング技術を利用してロボットのモーション・データを逐次読み込み実行することができる、優れたデータ提供装置及びデータ提供方法、ロボット装置及びロボットのモーション再生方法、並びにデータ処理装置を提供することにある。
【００１８】
本発明のさらなる目的は、ロボットの動作の安定性とデータが途切れたときのロボットの動作を保証しながらモーション・データをストリーミング再生することができる、優れたデータ提供装置及びデータ提供方法、ロボット装置及びロボットのモーション再生方法、並びにデータ処理装置を提供することにある。
【００１９】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、基体と前記基体に接続される複数の可動部を備えたロボット装置のためのモーション・データを提供するデータ提供装置であって、
元のモーション・データは、各制御対象毎に時間軸上に区々の間隔でコントロール・ポイントが並び、コントロール・ポイントにおける指令値とコントロール・ポイント間の補間方法の記述で構成され、
元のモーション・データを、各制御対象において、コントロール・ポイント毎に角度ポジションと角速度からなる指令値を持ち、２点のコントロール・ポイントだけで高次スプライン補間ができる形式に変換するデータ変換手段と、
時間的に早いコントロール・ポイントから随時指令値を提供するデータ提供手段と、
を具備することを特徴とするデータ提供装置である。
【００２０】
ここで言うロボットとは、例えば少なくとも上肢、下肢及び体幹部を含む複数の可動部を備えた、２足歩行型の脚式移動ロボットである。
【００２１】
モーション・データが各制御対象において、コントロール・ポイント毎に角度ポジションと角速度からなる指令値を持ち、２点のコントロール・ポイントだけで高次スプライン補間ができる形式であると、デザインしたモーション・パターンと補間結果との誤差は微小である。時系列で転送を行なうには、各関節順ではなく、時間的に早いコントロール・ポイントから随時指令値を転送していくようにすればよい。
【００２２】
この方式では、ある経過時間において、モーションを再生するために必要なすべてのコントロール・ポイントの指令値が、この経過時間に到達する以前に受信側のロボットに届いておくように送信する必要がある。例えば、再生単位時間を１秒と設定した場合、サーバから１秒後までのデータを受信する。これは、受信側で１秒後までのデータが復元可能になることを意味し、そのためにはモーションの頭から１秒以降で最初のコントロール・ポイントのデータを受信している必要がある。サーバ側から送信するデータ列は必ずしも時系列順ではなく、制御対象毎のコントロール・ポイントの粗密により順序が変更される。
【００２３】
また、モーション・データは、すべての制御対象における指令値が０となるキーフレームを含んでもよい。このような場合、前記のデータを提供する手段は、キーフレームで仕切られる単位でデータの提供を行なうようにしてもよい。
【００２４】
一定の再生単位時間でモーションのデータの送受信を行なうことも可能であるが、キーフレーム単位でデータの送受信及び再生を行なうことにより、データ欠損時には必ずロボットの速度が０となる状態で再生することができるので、安全なストリーミングを実現することができる。この手法は、安全性の低いロボットに関して特に有効である。
【００２５】
また、ある時間までのデータが要求されデータ提供先においてデータが欠損したことに応答して、欠落しては困る制御対象についての指令値から優先的にデータ送信を行なう手段をさらに備えてもよい。このような場合、より安定したストリーミングを可能とすることができる。
【００２６】
また、本発明の第２の側面は、基体と前記基体に接続される複数の可動部を備え、モーション・データを外部装置から受信して再生するロボット装置であって、
モーション・データは各制御対象において、コントロール・ポイント毎に角度ポジションと角速度からなる指令値を持ち、２点のコントロール・ポイントだけで高次スプライン補間ができる形式であり、
前記外部装置にデータを要求する手段と、
要求分のデータを受信して前記ロボット装置のすべての制御対象の指令値に関し復元可能になるまで一時保存する手段と、
再生時間単位分のデータが一時保存されたことに応答して、データを復元しモーションを再生する手段と、
を具備することを特徴とするロボット装置である。
【００２７】
ここで言うロボットとは、例えば少なくとも上肢、下肢及び体幹部を含む複数の可動部を備えた、２足歩行型の脚式移動ロボットである。
【００２８】
本発明の第２の側面に係るロボット装置によれば、ある経過時間においてモーションを再生するために必要なすべてのコントロール・ポイントの指令値を、この経過時間に到達する以前に受信することができるので、安定してストリーミング再生することができる。
【００２９】
また、ロボット装置は、モーションを再生するために必要な次のデータが途切れたことに応答して、速度不連続補正処理を実行する手段をさらに備えていてもよい。このような場合、急停止により関節アクチュエータに過大な負荷がかかるのを防止することができる。
【００３０】
また、モーション・データは、すべての制御対象における指令値が０となるキーフレームを含んでもよい。このような場合、前記のデータを要求する手段及びモーションを再生する手段は、キーフレームで仕切られる単位でデータの受信及び再生を行なうようにしてもよい。
【００３１】
一定の再生単位時間でモーションのデータの送受信を行なうことも可能であるが、キーフレーム単位でデータの送受信及び再生を行なうことにより、データ欠損時には必ずロボットの速度が０となる状態で再生することができるので、安全なストリーミングを実現することができる。この手法は、安全性の低いロボットに関して特に有効である。
【００３２】
また、ロボット装置は、受信したデータが欠損したことに応答した処理を行なう手段をさらに備えていてもよい。
【００３３】
このような場合、データ欠損時にも何のデータが欠損したかによってモーションの再生を中断したりデータが揃うまで待ったりといった具合に動作に変化を持たせることができる。例えば、指などのトルク又は力の低いアクチュエータのためのデータなら指令値が欠損しても無視して再生を続けるといった処理を行なうようにしてもよい。
【００３４】
また、本発明の第３の側面は、ロボットのモーション・データを処理するデータ処理装置であって、
ロボットのモーション・データは、各制御対象毎の指令値からなるコントロール・ポイントが時系列的に配列されてなる本線で構成され、一部のコントロール・ポイントはロボットが機体の安定性を保証して停止することができる停止ポイントであり、
停止ポイントが含まれるようにモーション・データを所定サイズに分割して送信データを生成する、
ことを特徴とするデータ処理装置である。
【００３５】
ここで、所定サイズ内に停止ポイントがない場合には、該所定サイズの最終コントロール・ポイントから移行することができる停止ポイントを生成し、モーション・データの本線に対し、該最終コントロール・ポイントから該停止ポイントへ向かう支線を挿入するようにする。この結果、すべての送信データ・ブロックにおいて停止ポイントが含まれることが保証される。
【００３６】
また、本発明の第４の側面は、ロボットのモーション・データを受信して再生するデータ処理装置であって、
ロボットのモーション・データは、各制御対象毎の指令値からなるコントロール・ポイントが時系列的に配列されて構成され、一部のコントロール・ポイントはロボットが機体の安定性を保証して停止することができる停止ポイントであり、
データを受信する受信手段と、
受信したデータを一時格納する受信バッファと、
受信バッファに蓄積されたデータを再生するデータ再生手段と、
前記データ再生手段によるデータ再生処理を制御する再生制御手段とを備え、前記再生制御手段は、前記受信バッファに貯まった最後の停止ポイントまでデータ再生を行なわせる、
ことを特徴とするデータ処理装置である。
【００３７】
モーション・データをネットワーク経由でストリーミング再生を行なう場合、データ受信側では、バッファリングを行ないながら再生するが、この際、受信バッファ中に常に到達可能な停止ポイントがあるように再生の分岐を行ない、いつデータ受信が途切れても安全に停止できることを保証する。
【００３８】
ここで、前記再生制御手段は、受信バッファに格納されているモーション・データの本線上の最後の停止ポイントまでデータ再生を行なわせる。また、受信バッファに格納されているモーション・データの本線上に次の停止ポイントが見つからない場合には、支線上の停止ポイントを探索して該停止ポイントまでデータ再生を行なわせる。また、受信バッファに格納されているモーション・データの本線及び支線のいずれにおいても次の停止ポイントが見つからない場合には、現在の停止ポイントにおいて再生を停止させる。
【００３９】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００４０】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４１】
Ａ．ロボット構成
図１及び図２には本発明の実施に供される「人間形」又は「人間型」の脚式移動ロボット１００が直立している様子を前方及び後方の各々から眺望した様子を示している。図示の通り、脚式移動ロボット１００は、胴体部と、頭部と、左右の上肢部と、脚式移動を行なう左右２足の下肢部とで構成され、例えば胴体に内蔵されている制御部（図示しない）により機体の動作を統括的にコントロールするようになっている。
【００４２】
左右各々の下肢は、大腿部と、膝関節と、脛部と、足首と、足平とで構成され、股関節によって体幹部の略最下端にて連結されている。また、左右各々の上肢は、上腕と、肘関節と、前腕とで構成され、肩関節によって体幹部の上方の左右各側縁にて連結されている。また、頭部は、首関節によって体幹部の略最上端中央に連結されている。
【００４３】
制御部は、この脚式移動ロボット１００を構成する各関節アクチュエータの駆動制御や各センサ（後述）などからの外部入力を処理するコントローラ（主制御部）や、電源回路その他の周辺機器類を搭載した筐体である。制御部は、その他、遠隔操作用の通信インターフェースや通信装置を含んでいてもよい。
【００４４】
このように構成された脚式移動ロボット１００は、制御部による全身協調的な動作制御により、２足歩行を実現することができる。かかる２足歩行は、一般に、以下に示す各動作期間に分割される歩行周期を繰り返すことによって行なわれる。すなわち、
【００４５】
（１）右脚を持ち上げた、左脚による単脚支持期
（２）右足が接地した両脚支持期
（３）左脚を持ち上げた、右脚による単脚支持期
（４）左足が接地した両脚支持期
【００４６】
脚式移動ロボット１００における歩行制御は、あらかじめ下肢の目標軌道を計画し、上記の各期間において計画軌道の修正を行なうことによって実現される。すなわち、両脚支持期では、下肢軌道の修正を停止して、計画軌道に対する総修正量を用いて腰の高さを一定値で修正する。また、単脚支持期では、修正を受けた脚の足首と腰との相対位置関係を計画軌道に復帰させるように修正軌道を生成する。
【００４７】
歩行動作の軌道修正を始めとして、機体の姿勢安定制御には、一般に、ＺＭＰに対する偏差を小さくするための位置、速度、及び加速度が連続となるように、５次多項式を用いた補間計算により行なう。ＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）を歩行の安定度判別の規範として用いている。ＺＭＰによる安定度判別規範は、歩行系から路面には重力と慣性力、並びにこれらのモーメントが路面から歩行系への反作用としての床反力並びに床反力モーメントとバランスするという「ダランベールの原理」に基づく。力学的推論の帰結として、足底接地点と路面の形成する支持多角形（すなわちＺＭＰ安定領域）の辺上あるいはその内側にピッチ軸及びロール軸モーメントがゼロとなる点、すなわち「ＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）」が存在する。本実施形態に係る脚式移動ロボットは、腰部付近に装置全体の重心位置が設定されている。したがって、腰部は姿勢安定制御を行なうための重要の制御対象店であり、ロボットの「基体」を構成する。
【００４８】
図３には、この脚式移動ロボット１００が具備する関節自由度構成を模式的に示している。同図に示すように、脚式移動ロボット１００は、２本の腕部と頭部１を含む上肢と、移動動作を実現する２本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成された、複数の肢を備えた構造体である。
【００４９】
頭部を支持する首関節（Ｎｅｃｋ）は、首関節ヨー軸１と、第１及び第２の首関節ピッチ軸２ａ，２ｂと、首関節ロール軸３という３自由度を有している。
【００５０】
また、各腕部は、その自由度として、肩（Ｓｈｏｕｌｄｅｒ）における肩関節ピッチ軸４と、肩関節ロール軸５と、上腕ヨー軸６、肘（Ｅｌｂｏｗ）における肘関節ピッチ軸７と、手首（Ｗｒｉｓｔ）における手首関節ヨー軸８と、手部とで構成される。手部は、実際には、複数本の指を含む多関節・多自由度構造体である。
【００５１】
また、体幹部（Ｔｒｕｎｋ）は、体幹ピッチ軸９と、体幹ロール軸１０という２自由度を有する。
【００５２】
また、下肢を構成する各々の脚部は、股関節（Ｈｉｐ）における股関節ヨー軸１１と、股関節ピッチ軸１２と、股関節ロール軸１３と、膝（Ｋｎｅｅ）における膝関節ピッチ軸１４と、足首（Ａｎｋｌｅ）における足首関節ピッチ軸１５と、足首関節ロール軸１６と、足部とで構成される。
【００５３】
但し、エンターティンメント向けの脚式移動ロボット１００が上述したすべての自由度を装備しなければならない訳でも、あるいはこれに限定される訳でもない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【００５４】
上述したような脚式移動ロボット１００が持つ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行なうことなどの要請から、アクチュエータは小型且つ軽量であることが好ましい。本実施形態では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載することとした（この種のＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開２０００−２９９９７０号公報に開示されている）。本実施形態では、直結ギアとして低減速ギアを採用することにより、人間との物理的インタラクションを重視するタイプのロボット１００に求められている駆動系自身の受動的特性を得ている。
【００５５】
図４には、本発明の実施に供されるロボット装置１００の機能構成を模式的に示している。同図に示すように、ロボット装置１００は、全体の動作の統括的制御やその他のデータ処理を行なう制御ユニット１２０と、入出力部１４０と、駆動部１５０と、電源部１６０とで構成される。以下、各部について説明する。
【００５６】
入出力部１４０は、入力部としてロボット装置１の目に相当するＣＣＤカメラ１１５や、耳に相当するマイクロフォン１１６、頭部や背中などの部位に配設されてユーザの接触を感知するタッチ・センサ１１８、あるいは五感に相当するその他の各種のセンサを含む。また、出力部として、口に相当するスピーカ１１７、あるいは点滅の組み合わせや点灯のタイミングにより顔の表情を形成するＬＥＤインジケータ（目ランプ）１１９などを装備している。これら出力部は、音声やランプの点滅など、脚などによる機械運動パターン以外の形式でもロボット装置１からのユーザ・フィードバックを表現することができる。
【００５７】
駆動部１５０は、制御部１２０が指令する所定の運動パターンに従ってロボット装置１００の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部１５０は、ロボット装置１００の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨーなど関節軸毎に設けられた複数の駆動ユニットで構成される。各駆動ユニットは、所定軸回りの回転動作を行なうモータ１５１と、モータ１５１の回転位置を検出するエンコーダ１５２と、エンコーダ１５２の出力に基づいてモータ１５１の回転位置や回転速度を適応的に制御するドライバ１５３の組み合わせで構成される。
【００５８】
駆動ユニットの組み合わせ方によって、ロボット装置１００を例えば図２〜３に示したような２足歩行の脚式移動ロボット、あるいは又は４足歩行ロボットなどとして構成することができる。
【００５９】
電源部１６０は、その字義通り、ロボット装置１００内の各電気回路などに対して給電を行なう機能モジュールである。本実施形態に係るロボット装置１００は、バッテリを用いた自律駆動式であり、電源部１６０は、充電バッテリ１６１と、充電バッテリ１６１の充放電状態を管理する充放電制御部１６２とで構成される。
【００６０】
充電バッテリ１６１は、例えば、複数本のリチウムイオン２次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【００６１】
また、充放電制御部１６２は、バッテリ１６１の端子電圧や充電／放電電流量、バッテリ１６１の周囲温度などを測定することでバッテリ１６１の残存容量を把握し、充電の開始時期や終了時期などを決定する。充放電制御部１６２が決定する充電の開始及び終了時期は制御ユニット１２０に通知され、ロボット装置１００が充電オペレーションを開始及び終了するためのトリガとなる。
【００６２】
制御ユニット１２０は、「頭脳」に相当し、例えばロボット装置１の機体頭部あるいは胴体部に搭載されている。
【００６３】
図５には、制御ユニット１２０の構成をさらに詳細に図解している。同図に示すように、制御ユニット１２０は、メイン・コントローラとしてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２１が、メモリやその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス１２７は、データ・バス、アドレス・バス、コントロール・バスなどを含む共通信号伝送路である。バス１２７上の各装置にはそれぞれに固有のアドレス（メモリ・アドレス又はＩ／Ｏアドレス）が割り当てられている。ＣＰＵ１２１は、アドレスを指定することによってバス１２８上の特定の装置と通信することができる。
【００６４】
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２２は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの揮発性メモリで構成された書き込み可能メモリであり、ＣＰＵ１２１が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的な保存したりするために使用される。
【００６５】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２３は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ＲＯＭ１２３に格納されるプログラム・コードには、ロボット装置１００の電源投入時に実行する自己診断テスト・プログラムや、ロボット装置１００の動作を規定する動作制御プログラムなどが挙げられる。
【００６６】
ロボット装置１００の制御プログラムには、カメラ１１５やマイクロフォン１１６などのセンサ入力を処理してシンボルとして認識する「センサ入力・認識処理プログラム」、短期記憶や長期記憶などの記憶動作（後述）を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット装置１００の行動を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ１１７の音声出力などを制御する「駆動制御プログラム」、ストリーミング配信されるモーション・データを受信処理並びに再生処理する「ストリーミング・データ再生プログラム」などが含まれる。
【００６７】
不揮発性メモリ１２４は、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）のように電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータには、暗号鍵やその他のセキュリティ情報、出荷後にインストールすべき装置制御プログラムなどが挙げられる。
【００６８】
インターフェース１２５は、制御ユニット１２０外の機器と相互接続し、データ交換を可能にするための装置である。インターフェース１２５は、例えば、カメラ１１５やマイクロフォン１１６、スピーカ１１７との間でデータ入出力を行なう。また、インターフェース１２５は、駆動部１５０内の各ドライバ１５３−１…との間でデータやコマンドの入出力を行なう。
【００６９】
また、インターフェース１２５は、ＲＳ（Ｒｅｃｏｍｍｅｎｄｅｄ  Ｓｔａｎｄａｒｄ）−２３２Ｃなどのシリアル・インターフェース、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）１２８４などのパラレル・インターフェース、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェース、ｉ−Ｌｉｎｋ（ＩＥＥＥ１３９４）インターフェース、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）インターフェース、ＰＣカードやメモリ・スティックを受容するメモリ・カード・インターフェース（カード・スロット）などのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続又はインターネット接続された外部機器（サーバ）との間でプログラムやデータの移動を行なうようにしてもよい。
【００７０】
また、インターフェース１２５の他の例として、赤外線通信（ＩｒＤＡ）インターフェースを備え、外部機器と無線通信を行なうようにしてもよい。
【００７１】
さらに、制御ユニット１２０は、無線通信インターフェース２６やネットワーク・インターフェース・カード（ＮＩＣ）１２７などを含み、Ｂｌｕｅｔｏｏｔｈのような近接無線データ通信や、ＩＥＥＥ  ８０２．１１ｂのような無線ネットワーク、あるいはインターネットなどの広域ネットワークを経由して、外部のさまざまなホスト・コンピュータとデータ通信を行なうことができる。
【００７２】
このようなロボット装置１００とホスト・コンピュータ間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置１の複雑な動作制御を演算したり、リモート・コントロールしたりすることができる。
【００７３】
後述するように、本実施形態に係るロボットは、ネットワーク接続して、インターネット上の所定のＷｅｂサービス・サイトからダンス・シーケンスなどのモーション・データやその他の配信コンテンツを、ストリーミングあるいはその他の形式でダウンロードする。このため、ロボット側のプラットフォームは以下の構成要素を装備している。
【００７４】
▲１▼ネットワークに接続するための無線ＬＡＮ
▲２▼ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）エンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
▲３▼ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）でＳＯＡＰなどを通信するためのＨＴＴＰモジュール
▲４▼通信を統制するソフトウェア・モジュール
▲５▼ダンスを実行する姿勢制御のためのモーション・コントロール・モジュール
▲６▼ユーザとの対話を行なう音声入出力モジュール
【００７５】
また、Ｗｅｂサービス側では以下の構成要素を装備している。
【００７６】
▲１▼ＳＯＡＰエンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
▲２▼ＨＴＴＰでＳＯＡＰなどを通信するためのＨＴＴＰモジュール
▲３▼ダンス・シーケンスなど複数のコンテンツ
▲４▼コンテンツのリスト
【００７７】
Ｂ．ロボット向けモーション・データのストリーミング
本実施形態に係るロボットは、スタティック・モーションの再生機構を持ち、ロボット内部の制御周期毎にモーション記述内容に応じて各関節の各種指令値を対応するデバイスに与えることができるシステムである。また、ロボット自身がネットワークへの接続機能を備えている。
【００７８】
Ｂ−１．モーション・データの規定
この項では、ロボットの各関節角度値やゲイン値、指先や足運びなどのポジション・データといった各指令値（以下、ｔｒａｊｅｃｔｏｒｙと呼ぶ）をストリーミングする際のフォーマットに関して述べる。
【００７９】
ストリーミングに使用するフォーマットとして重要な点は、ファイル・サイズを小さくし転送量を抑えること、また、時系列にデータを送信する必要があることから、それに準じた形式であること、キーフレームなどを設定可能であることなどが挙げられる。
【００８０】
以下の説明では、簡単な例として、右腕の肘ピッチ軸と方ヨー軸を動かすモーションを取り上げる。図６に示すように、肘と肩を同時に動かすモーションを考える。
【００８１】
図６に示すモーションを規定するモーション・データは、図７に示すようなコントロール・ポイントにおいて、スプライン端点及び中間点を持つように作成される。各コントロール・ポイントのデータを用いて補間を行なった結果、各関節の角度指令値は、図８のグラフのような遷移となる。
【００８２】
このように、ロボットのモーションに関しては、制御周期毎に手作業で各関節角度を指示するのではなく、コントロール・ポイント毎に目標値を設定する作成法が一般的である。以下に、このモーションをストリーミングすることを検証してみる。
【００８３】
まず、単純に図７に示したコントロール・ポイントを時刻順に並べてデータを送受信し（図９を参照のこと）、モーション再生時にロボット側において各コントロール・ポイント間を補間する形式を取り上げる。
【００８４】
図示の形式では、コントロール・ポイントの位置は必要最低限でよいので、転送するデータ量は非常に少なくて済むが、データ中にスプライン中間点が混ざった場合には前後を含む合計３点のコントロール・ポイントを必要とする。このため、再生処理が煩雑になってしまう。
【００８５】
次に、図１０に示すようなＲａｗ  Ｄａｔａ形式について考察してみる。これは、制御周期毎の各関節角度などのｔｒａｊｅｃｔｏｒｙを時系列的に配置した構造となっており、ロボットの制御周期毎に各関節やそのゲイン値などデータ中の補間式を展開することにより得られる。この形式では、時系列にデータが割り出されるので、ストリーミングを行ない易い構造になっている。しかし、転送するデータ量が膨大になってしまい、ロボットとサーバ間のネットワークが細い場合には、すぐにデータが途切れてしまう。
【００８６】
モーション・データ・フォーマットでは、各制御対象毎のコントロール・ポイントが時系列に並んでいることは稀であり、各制御対象毎に独立したコントロール・ポイントが並んでいることが多い。これに対し、図１１に示す例では、各制御対象に一定の周期でコントロール・ポイントを設定し、すべての関節のコントロール・ポイントを時間的に一致（同期）させる形式を採用している。この場合、各関節において、元のモーション・データではコントロール・ポイントが設定されていない周期では、スプラインなどの補間式を展開してｔｒａｊｅｃｔｏｒｙを求めてコントロール・ポイントを追加していくことで、ストリーミング用のデータが作成される。
【００８７】
図１１に示す形式では、ストリーミングにも有用であるが、コントロール・ポイントの量が非常に増大する。また、同じ区間内で同じ補間式で補間するときに、新たに挿入したコントロール・ポイントの分だけ、再生時の各ｔｒａｇｅｃｔｏｒｙにおいてデザインしたモーション・パターンよりも復元結果が若干変化してしまう可能性がある（すなわちモーションの同一性が保証されない）。
【００８８】
次いで、図１２に示すように、各制御対象において、コントロール・ポイント毎に角度ポジションと角速度を持ち、２点のコントロール・ポイントだけで高次スプライン補間ができる形式について考察してみる。
【００８９】
この形式では、デザインしたモーション・パターンと補間結果との誤差は微小である。時系列で転送を行なうには、各関節順ではなく、時間的に早いコントロール・ポイントから随時指令値を転送していく方式を採用する。
【００９０】
ここで、ある経過時間において、モーションを再生するために必要なすべてのコントロール・ポイントの指令値が、この経過時間に到達する以前に受信側のロボットに届いておくように送信する必要がある。図１２に示す例では、モーション再生開始時には、肘と肩双方について最初のコントロール・ポイントについての指令値（▲１▼）が届いていなければならない。次いで、その次に時間的に早い肩のコントロール・ポイントの指令値（▲２▼）が転送され、以降、肘のコントロール・ポイントの指令値（▲３▼）、方のコントロール・ポイントの指令値（▲４▼）と続く。
【００９１】
また、図１２中で、０．０［ｓｅｃ］と４．０［ｓｅｃ］のときにはすべての関節の角速度が０［ｄｅｇｒｅｅ／ｓｅｃ］となっており、ロボットが静止している状態である。このようにすべてのｔｒａｊｅｃｔｏｒｙにおいて指令値の変化が０となるフレームを、本実施形態では「キーフレーム」として設定する。キーフレームを設定しておくと、モーションの頭出しやプレビュー（後述）に利用することができ、有用である。
【００９２】
図１２に示すような形式のデータを実際に転送することを考察してみる。最初に、時系列転送実現のため、再生単位時間を１秒と設定し（この単位は任意に設定可とする）、サーバから１秒後までのデータを受信する。これは、受信側で１秒後までのデータが復元可能になることを意味する。そのためにはモーションの頭から１秒以降で最初のコントロール・ポイントのデータを受信している必要がある。
【００９３】
図１２に示すように、１秒後までのモーションを復元するには▲１▼の範囲まで、２秒後までを復元するには▲２▼の範囲まで、同様に▲３▼、▲４▼の範囲までをそれぞれ必要とする。
【００９４】
また、ロボット・モーションのストリーミングを全身において実行するには、上述したようなシーケンスをｔｒａｊｅｃｔｏｒｙ毎のマルチストリームとして扱う必要がある。よって、サーバ側から送信するデータ列は必ずしも時系列順ではなく、ｔｒａｊｅｃｔｏｒｙ毎のコントロール・ポイントの粗密により順序が変更される。図１２に示す例では、図１３に示すようなデータ順でデータ送出される。送受信に関する詳細なシーケンスについては後述に譲る。
【００９５】
図１４には、ストリーミング・フォーマットの詳細を示している。同図に示すように、フォーマットは、ストリーミング処理用の情報を記述したヘッダ部と、データ領域で構成される。
【００９６】
ヘッダ部は、Ｈｅａｄｅｒ  ｓｉｚｅと、ｖｅｒｓｉｏｎと、ｆｅａｔｕｒｅと、対応ロボット判別情報と、有効時間情報と、キーフレームと、使用するデータ種別と、関節別データ不足時の対処方法で構成される。
【００９７】
Ｈｅａｄｅｒ  ｓｉｚｅは、ヘッダのバイト数を格納する。受信側でヘッダとデータ領域の切り分けに利用する。
【００９８】
ｖｅｒｓｉｏｎは、バージョン情報を格納する。ロボット側がこのストリーミング・フォーマットに対応しているかどうかを判別するために用いる。
【００９９】
ｆｅａｔｕｒｅは、モーションの特徴（ダンス・モーション、挨拶、歩行パフォーマンスなど）を格納する。ｆｅａｔｕｒｅによって、ロボット側の受信モジュール内で再生の挙動を変更するために用いる。用途としては、ダンスなら、データが途切れたら即時中止、挨拶なら次にデータが揃った時点で再度再生開始などである。
【０１００】
対応ロボット判別情報は、対象とするロボット情報を格納する。データ中に２足歩行用のステップ・データが含まれている場合には、２足歩行ロボット用などその旨の情報が格納される。対応していないロボットでは、そのデータを無視するか、ストリーミングを中止する必要がある。
【０１０１】
有効時間情報は、１フレーム当たりの時間、及びモーションの遅延時間を格納する。
【０１０２】
キーフレーム情報は、キーフレームの個数、時刻、プレビュー時のキーフレームを格納する。プレビューに使用するキーフレームに関しては、モーション作成時に指定するか、モーションを各キーフレーム間で周波数分析し、最も高周波な早い動きをしているキーフレームを選定する（さびの部分を検索する）といった方法がある。
【０１０３】
使用するデータ種別は、モーション内に内包するすべてのｔｒａｊｅｃｔｏｒｙの種別（例えば、肘のピッチ軸、頭のヨー軸のＰゲイン、指先位置、歩容パラメータなど）とその１データ当たりのサイズを格納する。
【０１０４】
関節別データ不足時の対処方法は、各ｔｒａｊｅｃｔｏｒｙ毎のデータ欠損時の対処種別を格納する。例えば、指などのトルク又は力の低いアクチュエータのためのデータなら指令値が欠損しても無視して再生を続けるといった処理を記述する。
【０１０５】
一方、データ領域は、ｆｒａｍｅと、Ｓｉｚｅと、ｔｒａｊｅｃｔｏｒｙ識別子と、ｉｎｔｅｒｐｏｌａｔｏｒと、ｄａｔａで構成される。
【０１０６】
ｆｒａｍｅは、先頭のフレームを０と刷るフレーム番号を格納する。ロボット側では、ヘッダ内の１フレームあたりの時間から現在のモーション時間を算出して使用する。
【０１０７】
Ｓｉｚｅは、同フレーム内に存在するコントロール・ポイントのサイズを示す。
【０１０８】
ｔｒａｊｅｃｔｏｒｙ識別子は、ｔｒａｊｅｃｔｏｒｙの種別（○○関節の○○軸、足先位置、指先位置など）を示す識別子である。
【０１０９】
ｉｎｔｅｒｐｏｌａｔｏｒは、前のコントロール・ポイントとの間をどのような補間方式を用いるかを示す。代表的なものに、スプライン補間や線形補間、ＳＴＥＰなどを挙げることができる。
【０１１０】
ｄａｔａは、同フレームでの位置（角度）と速度（角速度）を格納する。
【０１１１】
同じフレーム内で多数のコントロール・ポイントが存在する場合には、そのサイズ分だけ、ｔｒａｊｅｃｔｏｒｙ識別子〜ｄａｔａまでの情報が繰り返し格納される。
【０１１２】
Ｂ−２．モーション・データのストリーミング
図１５には、図１４に示したストリーミング・フォーマットを持つロボットのモーション・データを送信するサーバ側における送信処理手順をフローチャートの形式で示している。
【０１１３】
サーバを起動させた後（ステップＳ１）、クライアント（この場合はロボット）からの接続待機に移行する（ステップＳ２）。
【０１１４】
そして、ロボット側からの接続を受理すると（ステップＳ３）、ロボットとのコネクションを設立する（ステップＳ４）。その後、ストリーミング・データの送信依頼の待機状態に入る（ステップＳ５）。
【０１１５】
ロボット側からの送信依頼を受理したら、指定されたモーション・ファイルを読み出し、ヘッダを送信する（ステップＳ６）。
【０１１６】
そして、データの送信依頼の有無をチェックし（ステップＳ７）、なければステップＳ９へ進む。
【０１１７】
ロボットからのデータの送信依頼がある場合には、指定された範囲のデータ復元に必要とするデータを読み出し、ロボット側に送信し（ステップＳ８）、ステップＳ７に戻る。
【０１１８】
ステップＳ９では、接続解除要求をチェックする。接続解除要求がなければステップＳ７へ進み、ストリーミング・データの送信処理を継続して行なう。
【０１１９】
また、接続解除要求があれば、ロボットとの接続を解除し（ステップＳ１０）、ステップＳ２の接続待機状態へ戻る。
【０１２０】
また、図１６には、図１４に示したストリーミング・フォーマットを持つロボットのモーション・データを受信するロボット側における受信処理手順をフローチャートの形式で示している。
【０１２１】
ユーザからストリーミング要求が入力されると（ステップＳ１１）、指定されたサーバに接続要求を行なう（ステップＳ１２）。
【０１２２】
サーバと接続されたら、ストリーミング対象モーションのファイル名を指定して、初期データ要求を送信する（ステップＳ１３）。
【０１２３】
ヘッダ部分のデータをサーバ側から受信したら、ストリーミング対象モーションにロボットが対応しているかどうか、また、すべてのｔｒａｊｅｃｔｏｒｙに関し初期位置への遷移は可能かどうかを判別する（ステップＳ１４）。未対応のモーションならステップＳ１３の終了処理へ進む。また、対応可能ならば、要求分のデータがすべてのｔｒａｊｅｃｔｏｒｙに関し復元可能になるまでデータのバッファリングを続ける。
【０１２４】
次いで、セットする再生単位時間分のデータが蓄積されているかどうかを判別する（ステップＳ１５）。蓄積されていたら次ステップＳ１６へ進み、そうでなければステップＳ２０へ進む。但し、初回なら必要分だけ蓄積されるまでステップＳ１５内で待機する。
【０１２５】
すべてのｔｒａｊｅｃｔｏｒｙのデータを再生単位時間分（初回のみ再生単位時間×２）だけ復元し、モーションの再生を開始する（ステップＳ１６）。初回以外は、現在再生中のモーションが存在する筈なので、各ｔｒａｊｅｃｔｏｒｙとも対応する最終位置にリンクさせて連続して再生されるように再生バッファにセットする。
【０１２６】
受信したデータがすべてのｔｒａｊｅｃｔｏｒｙに化してファイル終了位置に達しているかどうかを判別する（ステップＳ１７）。終了位置に到達しているならば、ステップＳ２２へ進む。
【０１２７】
一方、終了位置に到達していないならば、サーバに対し次の再生単位時間分のデータ要求を送信する（ステップＳ１８）。
【０１２８】
ステップＳ１９では、モーション再生が単位時間分終了するのを待ち、ステップＳ１５へ戻る。
【０１２９】
ステップＳ２０では、次にセットする再生単位時間分のデータが蓄積されていない、すなわち、ストリーミング・データの途切れが発生したことに応答して、サーバに中止依頼を送信し、受信処理を停止する。
【０１３０】
最後に、送信した各ｔｒａｊｅｃｔｏｒｙのデータ速度がゆっくりと０になるような軌道をすべてのｔｒａｊｅｃｔｏｒｙに関し生成し、再生バッファに送る（ステップＳ２１）。これによって、急停止により関節アクチュエータに過大な負荷がかかるのを防止することができる。
【０１３１】
ステップＳ２２では、再生バッファに送った最後のデータまで再生が終了するのを待つ。
【０１３２】
ステップＳ２３では、サーバとの接続を解除する。
【０１３３】
Ｂ−３．変形例
図１２に示したようなモーション・データのフォーマットによれば、ストリーミング方式との親和性がよい。すなわち、時系列で転送を行なうには、各関節順ではなく、時間的に早いコントロール・ポイントから随時指令値を転送していくようにすることで、ある経過時間において、モーションを再生するために必要なすべてのコントロール・ポイントの指令値が、この経過時間に到達する以前に受信側のロボットに届いておくように送信することができる。
【０１３４】
しかしながら、実時間でデータ通信できるような枠組みが与えられているが、配送の保証、順番違いの保証がなされている訳ではなく、データの抜けや遅延の危険性が常につきまとう。
【０１３５】
そこで、本発明者らは、ネットワークからのストリーミング再生のモーション・データに安全な姿勢へ遷移することができるデータをあらかじめ付け加えておく、という方法を提案する。この方法によれば、パケットが届かなかったり、遅延があったりした場合には付加的に加えられたデータを基に、ロボットを安全に停止することができる。
【０１３６】
既に述べたように、ロボットのモーション・データは、各制御対象毎の指令値からなるコントロール・ポイントが時系列的に配列されて構成される。ここで、コントロール・ポイントの中には、停止しても機体の安定性が保証されている安定姿勢を設定するコントロール・ポイント（以下では、「停止ポイント」とも呼ぶ）が含まれている。モーション・データのメイン・ストリーム（本線）となるコントロール・ポイントの列に対し、部分的に停止ポイントをサブストリーム（支線）として挿入しておく。そして、通常のコントロール・ポイントを再生している最中にデータが途切れると、停止ポイントまで遷移してからロボットを安全に停止させる。
【０１３７】
データの送信側（若しくはストリーム・データの生成装置）では、元のデータ・ストリームを、少なくとも１つの停止ポイントを含むように区切って、送信データを生成する。通常、受信側が持つ受信バッファ・サイズに合せて送信データ・サイズが決まるが、モーション・データのメイン・ストリーム（本線）上で停止ポイントが含まれるように、モーション・データを分割していく。また、モーション・データの本線上のちょうど良い時間的位置に停止ポイントが見当たらない場合には、停止ポイントでない通常のコントロール・ポイントに停止ポイントへ向かうサブストリーム（支線）を挿入する。
【０１３８】
図１７には、元のモーション・データからストリーム配信用のデータ・フォーマットを生成する様子を示している。同図に示す例では、○が通常のコントロール・ポイントを、◎が停止ポイントを表している。同図（ａ）に示すように、モーション・データ自体は、通常のコントロール・ポイントと、停止ポイントとなるコントロール・ポイントが混在して、時系列的な配列で構成される。但し、図示の例では、図面の簡素化のため、通常のコントロール・ポイントの個数を間引いて描いている。
【０１３９】
モーション・データを受信側が持つ受信バッファ・サイズに合せて順次分割していくことによって、送信データが生成される。図１７（ａ）に示す例では、分割後のデータ・ブロック１、データ・ブロック４、及びデータ・ブロック５において停止ポイントが含まれない。
【０１４０】
このような場合、図１７（ｂ）に示すように、データ・ブロック１、データ・ブロック４、及びデータ・ブロック５のそれぞれにおいて、データ・ブロック中の最後のコントロール・ポイントから移行することができる停止ポイントを生成するとともに、最後のコントロール・ポイントにこの停止ポイントへ向かう支線を付け加える。すなわち、停止ポイントのないデータ・ストリームから、本来のデータ・ストリームへ向かうパスと、安全な静止姿勢へ向かうパスとの分岐ができる（図１８を参照のこと）。また、本線よりも支線が長くなる場合もある（図１９を参照のこと）。
【０１４１】
この結果、すべての送信データ・ブロックにおいて停止ポイントが含まれることが保証される。したがって、このモーション・データをネットワーク経由でストリーミング再生を行なう場合、データ受信側では、バッファリングを行ないながら再生するが、この際、受信バッファ中に常に到達可能な停止ポイントがあるように再生の分岐を行ない、いつデータ受信が途切れても安全に停止できることを保証する。
【０１４２】
図２０〜２３には、各制御対象毎の指令値からなるコントロール・ポイントが時系列的に配列されてなる本線に対し、通常のコントロール・ポイントから停止ポイントへ向かう支線が挿入されてなるデータ・ストリームを再生処理する様子を示している。但し、図示の例では、図面の簡素化のため、通常のコントロール・ポイントの個数を間引いて描いている。
【０１４３】
図２０に示す例では、モーション・データの本線がコントロール・ポイントＰ１、…、Ｐ２、…、Ｐ３、…、Ｐ４、…、Ｐ５…で構成され、このうちＰ１とＰ４が停止ポイントであるとする。また、通常のコントロール・ポイントＰ２とＰ３には、移行可能な停止ポイント（図示しない）へ向かう支線が付け加えられている。
【０１４４】
ここで、コントロール・ポイントＰ１〜Ｐ４のデータを成功裏に受信し、受信バッファ中に蓄積しているが、コントロール・ポイントＰ５のデータが消失又は遅延、再送などにより途切れてしまったとする。この場合、本線上の停止ポイントＰ４が受信バッファ内にあるので、コントロール・ポイントＰ１〜Ｐ４までデータ再生を継続することができる。また、コントロール・ポイントＰ４まで再生処理が進む間に、コントロール・ポイントＰ５以降のデータが再送され無事に受信することができている場合には、そのままデータ再生を継続することができる。
【０１４５】
また、図２１に示す例では、モーション・データの本線がコントロール・ポイントＰ１１、…、Ｐ１２、…、Ｐ１３、…、Ｐ１４、…、Ｐ１５…で構成され、このうちＰ１１とＰ１５が停止ポイントであるとする。また、通常のコントロール・ポイントＰ１２には、移行可能な停止ポイントＰ１２Ａへ向かう支線が付け加えられている。
【０１４６】
ここで、コントロール・ポイントＰ１１〜Ｐ１３のデータを成功裏に受信し、受信バッファ中に蓄積しているが、コントロール・ポイントＰ１４のデータが消失又は遅延、再送などにより途切れてしまったとする。この場合、モーション・データの本線上でデータ再生を続行していると、Ｐ１３まで進んだ時点でロボットの動作が破綻してしまい、転倒やその他の不測・致命的な事態を招来しかねない。そこで、支線上の停止ポイントＰ１２Ａを見つけ出し、コントロール・ポイントＰ１２から本線上の次のコントロール・ポイントＰ１３ではなく支線上の停止ポイントＰ１２Ａへと分岐を行ない、再生を継続して、いつデータ受信が途切れても安全に停止できることを保証する。また、再生を継続中に、併せて再送要求を行なう。
【０１４７】
また、図２２に示す例では、モーション・データの本線がコントロール・ポイントＰ２１、…、Ｐ２２、…、Ｐ２３、…、Ｐ２４、…、Ｐ２５…で構成され、このうちＰ２１とＰ２５が停止ポイントであるとする。また、通常のコントロール・ポイントＰ１２には、コントロール・ポイントＰ２２Ａへ向かう支線が付け加えられている。
【０１４８】
ここで、コントロール・ポイントＰ２１〜Ｐ２３のデータを成功裏に受信し、受信バッファ中に蓄積しているが、本線上のコントロール・ポイントＰ２４並びに支線上のコントロール・ポイントＰ２２Ａのデータが消失又は遅延、再送などにより途切れてしまったとする。この場合、Ｐ２３まで進んだ時点でロボットの動作が破綻してしまい、転倒やその他の不測・致命的な事態を招来しかねない。また、支線上の停止ポイントへ移行することもできない。そこで、受信バッファ中に蓄積されている最後の停止ポイントはＰ２１となるので、Ｐ２１にてデータ再生を停止して、安全に停止できることを保証する。また、再生を継続中に、併せて再送要求を行なう。
【０１４９】
また、図２３に示す例では、モーション・データの本線がコントロール・ポイントＰ３１、…、Ｐ３２、…、Ｐ３３、…、Ｐ３４、…で構成され、このうちＰ３４が停止ポイントであるとする。また、通常のコントロール・ポイントＰ３１並びにＰ３２には、コントロール・ポイントＰ３１Ａ又はＰ３２Ａへ向かう支線がそれぞれ付け加えられている。
【０１５０】
ここで、コントロール・ポイントＰ３１〜Ｐ３２のデータを成功裏に受信し、受信バッファ中に蓄積しているが、本線上のコントロール・ポイントＰ３３並びに支線上のコントロール・ポイントＰ３２Ａのデータが消失又は遅延、再送などにより途切れてしまったとする。この場合、Ｐ３２まで進んだ時点でロボットの動作が破綻してしまい、転倒やその他の不測・致命的な事態を招来しかねない。また、支線を経由して停止ポイントＰ３２Ａへ移行することもできない。そこで、支線上の停止ポイントＰ３１Ａを見つけ出し、コントロール・ポイントＰ３１から本線上の次のコントロール・ポイントＰ３２ではなく支線上の停止ポイントＰ３１Ａへと分岐を行ない、再生を継続して、いつデータ受信が途切れても安全に停止できることを保証する。また、再生を継続中に、併せて再送要求を行なう。
【０１５１】
Ｃ．応用例
（１）バッファリング時間について
ストリーミングのためのバッファリングに必要な秒数はファイル・フォーマット側では規定していない。上述した受信処理（図１６を参照のこと）では、便宜的に再生開始には再生単位時間×２だけのデータを必要としたが、サーバとのネットワーク状況がよくない場合には、バッファリング時間を増やすことによりモーションの中断を抑えることができる。これは、ロボット側の受信モジュールの実装に依存する。
【０１５２】
また、上述した本発明の実施形態では、一定の再生単位時間でモーションのデータの送受信を記述したが、キーフレーム単位でデータの送受信及び再生を行なうことにより、データ欠損時には必ずロボットの速度が０となる状態で再生することができるので、安全なストリーミングを実現することができる。この手法は、安全性の低いロボットに関して特に有効である。
【０１５３】
（２）再生方法について
上述した本発明の実施形態では、便宜的に関節角度を主なモーション内のデータとして説明したが、これに限定されず、歩容パラメータであったりある部位における３次元位置であったり各関節のゲイン値であったりと、さまざまなデータをモーション内のデータとして記述することができる。そのためには、受信モジュールがそのデータの意味を知っている必要がある。その点は、ヘッダ読み込み時に受信モジュール側でネゴシエーションなどを行なう必要がある。
【０１５４】
（３）データ欠損時の対処
図１４を参照しながら既に説明したように、データ欠損時にも何のデータが欠損したかによってモーションの再生を中断したりデータが揃うまで待ったりといった具合に動作に変化を持たせることができる。また、ある時間までのデータをサーバに要求した際に、欠落しては困るｔｒａｊｅｃｔｏｒｙから優先的にデータ送信を行なうような仕組みを採用することにより、より安定したストリーミングを可能とすることができる。
【０１５５】
（４）キーフレームの増やし方
キーフレームはすべての制御対象の指令値が０になる、すなわちロボットの動作が停止している時間と定義したが、低出力の関節アクチュエータや自動でその後に安定状態に移行することができる機能を持つ部位であれば、動作が定位していなくてもキーフレームに設定することが可能である。キーフレームを増やすことにより、より安定なモーション再生を行なうことができる。
【０１５６】
（５）モーションのプレビュー機能について
例えば、モーション・データがロボットのダンスに関するものであったとする。ダンスには名前が付けられているが、ユーザは名前だけではどういった内容のダンスかを判断することができない。そこで、最初の部分だけを再生して内容確認を行なうということが考えられる。しかしながら、制御対象毎にコントロール・ポイントが時間軸上で区々の位置に設定されている場合には、ダンス・シーケンスの任意の区間を再生することができない。つまり、プレビューすることができない。
【０１５７】
そこで、モーション・データに上述したキーフレームを導入する。キーフレームでは、以下の条件が満足される。
【０１５８】
▲１▼すべての関節アクチュエータの角速度が０になる（又は非常に小さい値となる）。
▲２▼ロボット本体が安定に停止できる姿勢になる。
【０１５９】
このようなキーフレームに挟まれた任意の動作シーケンスによれば、安定姿勢から安定姿勢へ遷移するように運動を行なうので、安全にモーションを再生することができる。
【０１６０】
例えばダンスのプレビューは、ダンス・シーケンスの先頭からダンスと中のキーフレームまでの区間を再生することで実現する。これにより、完全に作品となっているダンスの先頭部分のみを再生して停止したり、音楽と合わせて提供されるダンスにおいて、曲のさびの部分に対応する部分のみを再生したりすることができる。
【０１６１】
本実施形態に係るロボットは、インターネット上の所定のＷｅｂサービス・サイトからダンス・シーケンスなどのモーション・データをストリーミング再生するため、そのプラットフォームは以下の構成要素を装備している。
【０１６２】
▲１▼ネットワークに接続するための無線ＬＡＮ
▲２▼ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）エンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
▲３▼ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）でＳＯＡＰなどを通信するためのＨＴＴＰモジュール
▲４▼通信を統制するソフトウェア・モジュール
▲５▼ダンスを実行する姿勢制御のためのモーション・コントロール・モジュール
▲６▼ユーザとの対話を行なう音声入出力モジュール
【０１６３】
また、Ｗｅｂサービス側では以下の構成要素を装備している。
【０１６４】
▲１▼ＳＯＡＰエンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
▲２▼ＨＴＴＰでＳＯＡＰなどを通信するためのＨＴＴＰモジュール
▲３▼ダンス・シーケンスなど複数のコンテンツ
▲４▼コンテンツのリスト
【０１６５】
ロボットは、ユーザの音声命令などを受け取ると、提供され得るダンス・コンテンツをＳＯＡＰで問い合わせする。Ｗｅｂサービス側では、その要求に従って、ダンス・コンテンツのリストを返す。ロボットは、受け取ったリストに従って内容物（コンテンツ・ファイル）を要求し、それを受け取る。このとき、受け取るものは、フルサイズのダンス・シーケンスである。但し、ユーザはロボットにプレビューを行なうよう命令すると、ロボットはダンスの先頭又はさびの部分のみを再生して、安全に停止する。
【０１６６】
モーション全体を再生したいのではなく、一部のみを再生したい場合には、受信モジュール側でヘッダから読み込んだプレビュー用のキーフレームを指定してサーバからデータを読み込むことにより、プレビューに適した範囲のみのモーション・データを取得することができる。これは、ロボットのユーザに好みのモーションを選択させる場合などに非常に有効な機能となる。
【０１６７】
［追補］
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
【０１６８】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置あるいはその他一般的な移動体装置、あるいはこれら装置の動作を記述したデータを演算処理するデータ処理システムであるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０１６９】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１７０】
【発明の効果】
以上詳記したように、本発明によれば、ストリーミング技術を利用してロボットのモーション・データを逐次読み込み実行することができる、優れたデータ提供装置及びデータ提供方法、ロボット装置及びロボットのモーション再生方法、並びにデータ処理装置を提供することができる。
【０１７１】
また、本発明によれば、ロボットの動作の安定性とデータが途切れたときのロボットの動作を保証しながらモーション・データをストリーミング再生することができる、優れたデータ提供装置及びデータ提供方法、ロボット装置及びロボットのモーション再生方法、並びにデータ処理装置を提供することができる。
【０１７２】
本発明によれば、ロボット向けのモーション・データを、アクチュエータへの負荷とロボットの安定状態に配慮した形で、ストリーミングを実現することができる。
【０１７３】
また、本発明によれば、ストリーミング時の転送量を非常に小さく抑えることができる。また、データ欠損時にはロボットを安全に停止させることができる。また、ロボットの形態への依存度の低いモーション・ストリーミングを行なうことができる。また、モーションのさびの部分だけをプレビュー再生するといった機能を同じモーション・データを用いて行なうことができる。
【図面の簡単な説明】
【図１】本発明の実施に供される脚式移動ロボットが直立している様子を前方から眺望した様子を示した図である。
【図２】本発明の実施に供される脚式移動ロボットが直立している様子を後方から眺望した様子を示した図である。
【図３】脚式移動ロボットが具備する関節自由度構成を模式的に示した図である。
【図４】本発明の実施に供されるロボット装置１００の機能構成を模式的に示した図である。
【図５】制御ユニット１２０の構成をさらに詳細に示した図である。
【図６】肘と肩を同時に動かすモーションを示した図である。
【図７】コントロール・ポイントにおいて、スプライン端点及び中間点を持つように作成されたモーション・データを示した図である。
【図８】各コントロール・ポイントのデータを用いて補間を行なった結果の各関節の角度指令値の遷移を示したグラフである。
【図９】コントロール・ポイントを時刻順に並べてデータを送受信するストリーミング・データの形式を示した図である。
【図１０】Ｒａｗ  Ｄａｔａ形式のストリーミング・データの構造を示した図である。
【図１１】各制御対象に一定の周期でコントロール・ポイントを設定し、すべての関節のコントロール・ポイントを時間的に一致させる形式を示した図である。
【図１２】各制御対象において、コントロール・ポイント毎に角度ポジションと角速度を持ち、２点のコントロール・ポイントだけで高次スプライン補間ができる形式を示した図である。
【図１３】図１２に示したデータにおいて送出されるデータの順を示した図である。
【図１４】ストリーミング・フォーマットの詳細を示した図である。
【図１５】図１４に示したストリーミング・フォーマットを持つロボットのモーション・データを送信するサーバ側における送信処理手順を示したフローチャートである。
【図１６】図１４に示したストリーミング・フォーマットを持つロボットのモーション・データを受信するロボット側における受信処理手順を示したフローチャートである。
【図１７】元のモーション・データからストリーム配信用のデータ・フォーマットを生成する方法を説明するための図である。
【図１８】元のモーション・データからストリーム配信用のデータ・フォーマットを生成する方法を説明するための図である。
【図１９】元のモーション・データからストリーム配信用のデータ・フォーマットを生成する方法を説明するための図である。
【図２０】各制御対象毎の指令値からなるコントロール・ポイントが時系列的に配列されてなる本線に対し、通常のコントロール・ポイントから停止ポイントへ向かう支線が挿入されてなるデータ・ストリームの再生処理方法を説明するための図である。
【図２１】データ・ストリームの再生処理方法を説明するための図である。
【図２２】データ・ストリームの再生処理方法を説明するための図である。
【図２３】データ・ストリームの再生処理方法を説明するための図である。
【符号の説明】
１…首関節ヨー軸
２Ａ…第１の首関節ピッチ軸
２Ｂ…第２の首関節（頭）ピッチ軸
３…首関節ロール軸
４…肩関節ピッチ軸
５…肩関節ロール軸
６…上腕ヨー軸
７…肘関節ピッチ軸
８…手首関節ヨー軸
９…体幹ピッチ軸
１０…体幹ロール軸
１１…股関節ヨー軸
１２…股関節ピッチ軸
１３…股関節ロール軸
１４…膝関節ピッチ軸
１５…足首関節ピッチ軸
１６…足首関節ロール軸
１１５…ＣＣＤカメラ
１１６…マイクロフォン
１１７…スピーカ
１１８…タッチ・センサ
１１９…ＬＥＤインジケータ
１２０…制御部
１２１…ＣＰＵ
１２２…ＲＡＭ
１２３…ＲＯＭ
１２４…不揮発メモリ
１２５…インターフェース
１２６…無線通信インターフェース
１２７…ネットワーク・インターフェース・カード
１２８…バス
１２９…キーボード
１４０…入出力部
１５０…駆動部
１５１…モータ
１５２…エンコーダ
１５３…ドライバ
【図１】
2004291202.tif 000003
【図２】
2004291202.tif 000004
【図３】
2004291202.tif 000005
【図４】
2004291202.tif 000006
【図５】
2004291202.tif 000007
【図６】
2004291202.tif 000008
【図７】
2004291202.tif 000009
【図８】
2004291202.tif 000010
【図９】
2004291202.tif 000011
【図１０】
2004291202.tif 000012
【図１１】
2004291202.tif 000013
【図１２】
2004291202.tif 000014
【図１３】
2004291202.tif 000015
【図１４】
2004291202.tif 000016
【図１５】
2004291202.tif 000017
【図１６】
2004291202.tif 000018
【図１７】
2004291202.tif 000019
【図１８】
2004291202.tif 000020
【図１９】
2004291202.tif 000021
【図２０】
2004291202.tif 000022
【図２１】
2004291202.tif 000023
【図２２】
2004291202.tif 000024
【図２３】
2004291202.tif 000025