(57)【要約】      （修正有）【解決手段】ヒューマノイドロボット１０は２２個の関節を含み、２２個の間接によって所定の動作を実行する。或る動作を実行したときにおける２２個の間接についての関節角度指令値の時系列変化についての行列を特異値分解し、次元圧縮する。つまり、有効な特異値の数を減らす。これにより、ロボット１０の制御情報が削減される。【効果】次元圧縮するので、簡易なコントローラを用いてロボットの身体動作を簡単に制御することができる。【選択図】図１
2006281354.tif 000002
【特許請求の範囲】
【請求項１】
多自由度を有するヒューマノイドロボットを含むロボットシステムであって、
前記ヒューマノイドロボットに所定の動作を実行させるときの各関節角度の時系列変化についての行列を特異値分解して、次元圧縮した圧縮済み関節角度に対応する情報を記憶する記憶手段、および
制御情報に従って前記圧縮済み関節角度になるように各関節を駆動制御する駆動制御手段を備える、ロボットシステム。
【請求項２】
操作手段を有する制御装置をさらに備え、
前記制御情報は前記操作手段の操作に応じて前記制御装置から与える、請求項１記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はロボットシステムに関し、特にたとえば、多自由度を有するヒューマノイドロボットを含む、ロボットシステムに関する。
【背景技術】
【０００２】
背景技術のヒューマノイドロボットの一例が非特許文献１に開示される。この非特許文献１によれば、２足歩行可能な人間型ロボット（商品名「ＡＳＩＭＯ」）は、携帯コントローラのボタン操作により、予め登録された動作（握手、両手を振る、おじぎなどの身振り）を実行する。また、同様に、携帯コントローラを操縦することにより、前進・後退、カニ歩き、斜め歩き、その場旋回、コーナリングのように、自在に歩行させることができる。
【非特許文献１】http://www.honda.co.jp/ASIMO/technology/tech_08.html
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、この背景技術では、たとえば、予め一歩分の軌道生成をしておき、それをボタン操作により、実行するようにしてある。したがって、生成できる最小単位は一歩であり、一度ボタンを操作（オン）すると、途中で動作を止めることができない。つまり、動作そのものを携帯コントローラで制御しているのではなく、ボタンで動作の実行を命令しているだけである。このように、背景技術では、１つのボタンで１つの動作しか実行できないため、新たな動作を実行可能にする（定義する）場合には、それに対応してボタンを増やす必要があり、汎用性に欠けるという問題がある。たとえば、アスファルトの道を歩行する場合と砂利道を歩行する場合とでは異なる動作となり、異なるボタンを割り当てる必要がある。これに対して、或る動作についての操作に対応して、運動方程式を毎回演算して、環境に対応させてロボットを動作させると、汎用性は高くなる。しかし、演算が膨大になってしまい、リアルタイム性に欠けてしまう。
【０００４】
それゆえに、この発明の主たる目的は、新規な、ロボットシステムを提供することである。
【０００５】
この発明の他の目的は、簡易なインターフェイスで動作を簡単に制御できる、ロボットシステムを提供することである。
【課題を解決するための手段】
【０００６】
請求項１の発明は、多自由度を有するヒューマノイドロボットを含むロボットシステムであって、ヒューマノイドロボットに所定の動作を実行させるときの各関節角度の時系列変化についての行列を特異値分解して、次元圧縮した圧縮済み関節角度に対応する情報を記憶する記憶手段、および制御情報に従って圧縮済み関節角度になるように各関節を駆動制御する駆動制御手段を備える、ロボットシステムである。
【０００７】
請求項１の発明では、ロボットシステムは、多自由度を有し、たとえば、２足歩行可能なヒューマノイドロボットを含む。記憶手段は、ヒューマノイドロボットに所定の動作を実行させるときの各関節角度の時系列変化についての行列を特異値分解して、次元圧縮した圧縮済み関節角度に対応する情報を記憶する。ここで、所定の動作は、たとえば、握手、抱擁のような秩序だった動作である。また、次元圧縮した圧縮済み関節角度に対応する情報を記憶するので、多自由度（高次元）のロボットの動作が比較的低次元にされる。圧縮済み関節角度に対応する情報は、圧縮済み関節角度の時系列変化であってもよく、また、関節角度の指令値の時系列変化であってもよく、或いは、そのいずれかについての微分値であってもよい。駆動制御手段は、制御情報が示す圧縮済み関節角度を記憶手段から取得し、取得した関節角度になるように各関節を駆動制御する。つまり、ヒューマノイドの動作（姿勢）が制御される。
【０００８】
請求項１の発明によれば、所定の動作についての各関節角度を次元圧縮した圧縮済み関節角度を記憶しておき、これに従って各関節を駆動制御するので、高次元の動作を比較的低次元で駆動制御することができる。つまり、ジョイスティックのような簡易なインターフェイスを用いて、ロボットの動作を制御することができる。
【０００９】
請求項２の発明は請求項１に従属し、操作手段を有する制御装置をさらに備え、制御情報は操作手段の操作に応じて制御装置から与える。
【００１０】
請求項２の発明では、ロボットシステムは、操作手段を有する制御装置をさらに備える。制御情報は、操作手段の操作に応じて制御装置からヒューマノイドロボットに与えられる。
【００１１】
請求項２の発明によれば、制御装置をヒューマノイドロボットと有線ないし無線で接続すれば、遠隔的にヒューマノイドロボットを制御することができる。
【発明の効果】
【００１２】
この発明によれば、所定の動作についての各関節角度を次元圧縮した圧縮済み関節角度に対応する情報を記憶しておき、これに従って各関節を駆動制御するので、高次元の動作を比較的低次元で駆動制御することができる。したがって、簡易なインターフェイスを用いて、動作を制御することができる。
【００１３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１４】
図１は、この発明の一実施例であるヒューマノイドロボット（以下、単に「ロボット」という。）１０をモデル表記した図解図である。この実施例のロボット１０は、垂直方向または縦方向に間隔を隔てて設けられる２つの横杆１２および１４を含み、この上下横杆１２および１４の間には、胴体１６が形成される。
【００１５】
胴体１６の上部には、胸の自由度を形成する１つのヨー（Ｙａｗ）軸関節１８が設けられ、その下方には腰の自由度を形成する１つのピッチ（Ｐｉｔｃｈ）軸関節２０が設けられる。なお、よく知られているように、ヨー軸とは鉛直回転軸（Ｚ軸）であり、ピッチ軸とはこのヨー軸に直行する２つの軸の一方、たとえばＸ軸であり、そして、後述のロール（Ｒｏｌｌ）軸がヨー軸に直行する２つの軸の他方、たとえばＹ軸である。Ｘ軸（ピッチ軸）は図１の紙面に平行な方向に延びる回転軸であり、Ｙ軸（ロール軸）は図１の紙面に直行する方向に延びる回転軸である。
【００１６】
上横杆１２の両端には、腕２２Ｒおよび２２Ｌがそれぞれ取り付けられる。これら左右の腕２２Ｒおよび２２Ｌは同じ構成である。右左を区別する必要があるときは、右を示す「Ｒ」または左を表す「Ｌ」を付し、また区別する必要がないときはこの「Ｒ」や「Ｌ」を付けないで示すようにして、重複する説明はできるだけ省く。このことは、後述する足についても同様である。
【００１７】
腕２２は、肩の自由度を形成するロール軸関節２４を含み、この肩関節２４によって上横杆１２に、ロール軸周りに回転可能に取り付けられる。この肩関節２４の先には、それぞれピッチ軸関節２６、ヨー軸関節２８、およびピッチ軸関節３０の直列接続が設けられる。したがって、この実施例のロボット１０の場合、腕２２は、各々４自由度であり、左右（両方）で８自由度である。
【００１８】
また、下横杆１４の両端には、足３２Ｒおよび３２Ｌがそれぞれ取り付けられる。足３２は、股関節の自由度を形成する１つのロール軸関節３４によって下横杆１４に取り付けられ、この股関節３２から先の下端方向には、連続する３つのピッチ軸関節３６、３８および４０、および１つのロール軸関節４２、さらには１つのヨー軸関節４４の直列接続が取り付けられる。そして、最下端のヨー軸関節４４の先端には、このヨー軸関節４４の軸と一体的に回転されるたとえばゴム車輪４６が取り付けられる。したがって、この実施例のロボット１０の場合、足３２は、６自由度であり、左右で１２自由度である。
【００１９】
ただし、ヨー軸関節２８Ｒおよび２８Ｌは有限回転関節であるが、足３２Ｒおよび３２Ｌのそれぞれの先端のヨー軸関節４４Ｒおよび４４Ｌはいずれも無限回転関節に改造されている。
【００２０】
図２は、図１に示すロボット１０の電気的構成を示すブロック図である。この図２に示すように、ロボット１０は、全体の制御のためにマイクロコンピュータまたはＣＰＵ４８を含み、このＣＰＵ４８には、バス５０を通して、メモリ５２、モータ制御ボード５４、センサ入力／出力ボード５６および無線受信装置１００が接続される。
【００２１】
メモリ５２は、図示しないが、ＲＯＭやＲＡＭを含み、ＲＯＭにはこのロボット１０の制御プログラムが予め書き込まれている。ＲＡＭは、一時記憶メモリとして利用されるとともに、ワーキングメモリとして利用され得る。
【００２２】
センサ入力／出力ボード５６には、図１の胴体１６に設けられる１つの２軸加速度センサ５８と、関節角度センサ６０とが接続される。なお、関節角度センサ６０は１つのブロックで示すが、実際には、上で説明した２２個の関節にそれぞれ個別に設けられ、それぞれの関節角を検出する２２個の関節角度センサを含む。２軸加速度センサ５８は、ロボット１０の前後方向および左右方向の２軸で加速度を検出することができる。この２軸加速度センサ５８の出力を用いて、ＣＰＵ４８は、ロボット１０の２足歩行を制御する。
【００２３】
モータ制御ボード５４は、たとえばＤＳＰ(Digital Signal Processor) で構成され、腕２２や足３２の関節軸モータ（サーボモータ）６２を制御する。なお、関節軸モータ６２は１つのブロックで示すが、実際には、上で説明した２２個の関節にそれぞれ個別に設けられ、それぞれの関節の曲がり（場合によっては回転）を実現することができる。
【００２４】
無線受信装置１００は、コントローラ（図９参照）のような外部からの制御情報（コントロール信号）を受信して、ＣＰＵ４８に与える。無線受信装置１００としては、任意の受信装置を用いることができるが、この実施例では、コントローラが発信（送信）する電波（制御情報を含む。）を受信可能な受信装置が用いられる。ただし、コントローラが、赤外線や（超）音波を発信（送信）する場合には、そのいずれかを受信可能な受信装置が用いられる。ただし、ロボット１０とコントローラとを有線で接続するようにすることもできるが、ロボット１０の動作および動作範囲に影響を与えるため、適切ではない。
【００２５】
このような構成のロボット１０は、多自由度であり、これを動かすためには、様々な関節を操作する必要がある。したがって、ジョイスティックのような単純な機構のコントローラを用いることは困難である。このため、一般的には、予め歩く（一歩）、手を振るなどの動作を１のボタンに対応させておき、ボタン操作により、動作を選択的に実行させるようにしてある。つまり、歩行（一歩）についての各関節角の時系列変化のデータ（制御情報）をすべて記憶しておき、ボタン操作による歩行の命令を受けて、各関節を駆動制御しているのである。したがって、たとえば、或るボタンを操作すれば、ロボット１０は前進し、他のボタンを操作すれば、ロボット１０は両手を振る。
【００２６】
しかし、一旦ボタンを操作すると、当該ボタンに対応する動作の実行を途中で止めることができない。つまり、コントローラにより、ロボット１０の動作を制御しているのではなく、ロボット１０の動作の実行を命令しているに過ぎない。また、１のボタンに１の動作を対応づけるため、汎用性が低い。たとえば、アスファルトの道を歩行する場合と砂利道を歩行する場合とでは異なる動作となり、異なるボタンを割り当てる必要がある。これに対して、或る動作についての操作に対応して、運動方程式を毎回演算して、環境に対応させてロボット１０を動作させると、汎用性は高くなる。しかし、演算が膨大になってしまい、リアルタイム性に欠けてしまう。
【００２７】
そこで、この実施例では、ロボット１０の全身の動き（身体動作）を計測し、高次元の運動を次元圧縮し、ジョイスティックのような簡易なインターフェイスで多自由度のロボット１０の身体動作を簡単に制御できるようにしてある。
【００２８】
図３〜図５は、ロボット１０を歩行（８歩歩行）させた場合における、一定時間（ステップ）毎の各関節角度の指令値（各関節角度指令値）を示す図解図である。ただし、図３〜図５では、該当する関節を図１に示した参照符号で記述してある。また、図３は、ロボット１０が、直立した状態から１歩踏み出し、３歩目を終了した時点までにおける各関節角度指令値を示す。図４は、４歩目を開始した時点から５歩目を終了した時点までにおける各関節角度指令値を示す。図５は、６歩目を開始した時点から８歩目で直立する時点までにおける各関節角度指令値を示す。
【００２９】
ただし、図３〜図５における関節角度指令値は、厳密には、関節軸モータ６２を駆動するための指令値であり、０〜２５５で表わされる。つまり、指令値０〜２５５は、関節軸モータ６２の回転角（０度（３６０度）〜３５９度）に相当する。
【００３０】
なお、図３〜図５において、同じ姿勢となるタイミングでは、同じ番号（ステップ）を付してあるが、各図表では、上から下に向かうに従って時間が経過する。
【００３１】
ここで、図３〜図５に示す歩行動作における各関節角度指令値を、４９行２２列の行列Ａとみなし、特異値分解する。特異値分解は、数１に従って行われる。
【００３２】
［数１］
Ａ＝Ｕ×Ｓ×Ｖ´
ただし、Ｕ，Ｖは、ユニタリ行列（Ｕ×Ｕ´またはＶ×Ｖ´が単位行列となる正方複素行列）である。また、行列Ｕは４９行４９列であり、行列Ｖは２２行２２列である。このときの対角行列Ｓのランクは、行列Ａに等しくなる。
【００３３】
対角行列Ｓの対角成分すなわち行列Ａの特異値をグラフに表わすと、図６のように示される。具体的な特異値は、数２のとおりである。
【００３４】
［数２］
diag(Ｓ)＝［４７０７．７，２８７．７，２４２．９，１６３．６，１５０．０，７５．４，５５．７，３７．５，９．４，７．１，５．４，３．３，１．８，０．０，…，０．０］
ここで、ロボット１０の歩行動作についての特異値（数２）を見ると、１４行目（１４つ目）以降では、０．０となっている。これは、腕を開く関節２４や足首をねじる（回転させる）関節４４のように、歩行動作ではほとんど使っていない関節も存在するため、２２自由度は必要ないからである。したがって、この実施例では、ロボット１０の全身（２２個の関節）を使った歩行動作を表わすためには、１３自由度が必要となる最大の自由度である。また、数２からも分かるように、１つ目（１行目）、５つ目および８つ目で、特異値の桁が落ちており、制御情報（図３〜図５に示した各関節角度指令値のデータ）の情報量を落として行けば、８自由度、５自由度、１自由度まで圧縮（次元圧縮）することができる可能性を示していると言える。
【００３５】
図７（Ａ）および図７（Ｃ）は、５自由度まで圧縮した場合の関節３４Ｌおよび関節３６Ｌについての関節角度指令値の時系列変化を示すグラフである。ここで、５自由度まで圧縮するというのは、６番目（６行目）以降の特異値を０（０．０）にすることを意味する。つまり、有効な特異値（０より大きい特異値）の数を減らす。そして、数１により行列Ａを算出し直すと、制御情報を削減することができる。また、図７（Ｂ）および図７（Ｄ）は、圧縮しない場合の関節３４Ｌおよび関節３６Ｌについての関節角度指令値の時系列変化を示すグラフである。つまり、図３〜図５に示した関節３４Ｌおよび関節３６Ｌについての関節角度指令値の時系列変化を折れ線グラフ化したものである。
【００３６】
図７（Ａ）〜図７（Ｄ）を見て分かるように、圧縮した場合には、高周波成分がなまった値（データ）となる。ロボット１０の動作において、高周波成分はノイズである場合が多く、したがって、５自由度まで圧縮した場合であっても、ロボット１０は歩行可能であると考えられる。
【００３７】
なお、このことは、実際のロボットに、５自由度まで圧縮したデータを与え、歩行可能であることを確認済みである。
【００３８】
また、図８（Ａ）および図８（Ｃ）は、１自由度まで圧縮した場合の関節３４Ｌおよび関節３６Ｌについての関節角度指令値の時系列変化を示すグラフである。また、図８（Ｂ）および図８（Ｄ）は、圧縮しない場合の関節３４Ｌおよび関節３６Ｌについての関節角度指令値の時系列変化を示すグラフであり、図７（Ｂ）および図７（Ｄ）とそれぞれ同じである。このように、１自由度まで圧縮した場合であっても、関節角度指令値の時系列変化は、圧縮しない場合とほぼ同様であり、ロボット１０は歩行可能であると考えられる。
【００３９】
なお、このことは、実際のロボットに、１自由度まで圧縮したデータを与え、歩行可能であることを確認済みである。
【００４０】
したがって、この実施例のロボット１０に歩行動作させる場合には、２２次元の制御情報を１次元にまで圧縮することが可能である。したがって、ジョイスティックのような簡易なコントローラを用いて、ロボット１０の歩行動作を制御することが可能である。具体的に説明すると、１次元までに圧縮した場合には、特異値が１つであり、このことは、或る２２次元ベクトルをａとしたとき、ベクトルａの線形結合で、すべてのデータ（ここでは、図３〜図５に示した各関節角度指令値に相当する。）を記述することができることを意味する。
【００４１】
すなわち、関節角度が各行に並んでいる時系列データの行列のｎ行目をｄ（ｎ）としたとき、ｄ（ｎ）はベクトルａを使って数３のように表わすことができる。ただし、ｋ（ｎ）はスカラである。
【００４２】
［数３］
ｄ（ｎ）＝ｋ（ｎ）×ａ
したがって、ベクトルａとスカラｋ（ｎ）とをロボット１０のメモリ５２に記憶しておき、ジョイスティックの１つの軸の動きに対応してｎを増減させれば、ロボット１０の歩行動作を制御することができる。つまり、図３〜図５に示したような各関節角度指令値をすべて記憶しておく必要がない。また、ジョイスティックの動きでｎを増減させるので、ジョイスティックの操作を停止すれば、動作を途中で停止させることもできる。
【００４３】
また、詳細な説明は省略するが、５次元に圧縮した場合には、２２次元ベクトルは、数４に示すように、５つのベクトル（ａ１，ａ２，ａ３，ａ４，ａ５）の線形結合で表わされる。ただし、各ベクトルについてのスカラｋ（ｎ）は、ｋ１（ｎ），ｋ２（ｎ），ｋ３（ｎ），ｋ４（ｎ），ｋ５（ｎ）である。
【００４４】
［数４］
ｄ（ｎ）＝ｋ１（ｎ）×ａ１＋ｋ２（ｎ）×ａ２＋ｋ３（ｎ）×ａ３
＋ｋ４（ｎ）×ａ４＋ｋ５（ｎ）×ａ５
この実施例では、歩行動作のみについて説明したが、他の動作についても同様に、動作を実行させるときの各関節角度指令値の時系列変化を取得し、それを行列として特異値分解し、次元圧縮すれば、ジョイスティックのような簡易なコントローラを用いて制御することができる。ただし、ロボット１０の任意の動作は次元圧縮することができない。或いは、次元圧縮したとしても行列Ｓのランクが小さくならない。この特異値分解による手法では、ロボット１０が人間にとって意味のある動作を行うときに初めて圧縮可能となる。ここで、人間にとって意味のある動作としては、たとえば、ロボット１０にとっては、相手との握手や抱擁のような秩序だった動作が該当する。また、根本的には、歩行も意味の或る動作であり、これらの動作は、環境からの制約を受ける。たとえば、平らな床を歩行する場合、足（脚）先は床面上に接地するという制約を受ける。この制約は、拘束式として、関節の自由な軌道の妨げとなり、動作の軌道は単調なものに近づき、そのため、拘束式があればある程高い圧縮率が実現できる。したがって、人間との間でインタラクション（コミュニケーション）を行うようなロボットの動作（行動）では、比較的多くの拘束式が存在し、高い圧縮率を実現することができる。
【００４５】
なお、上述したように、歩行動作では、１自由度まで圧縮することができると考えられるが、他の動作では、必ずしも１自由度まで圧縮することができるとは言えない。つまり、動作を実行可能な次元に圧縮する必要がある。
【００４６】
図９は、ロボット１０を用いたロボットシステム（以下、単に「システム」という。）２００の一例を示す。このシステム２００は、ロボット１０およびこのロボット１０を制御するための制御装置２０２を備える。ロボット１０は、上述したように、メモリ５２（図２参照）に、各動作に対応するベクトルａとスカラｋ（ｎ）（ｎは、時刻に対応するものである。）とを記憶する。つまり、次元圧縮した各関節角度指令値（ｄ（ｎ））が記憶される。ただし、各々の動作でベクトルおよびスカラの個数は異なる。これは、動作毎に次元圧縮の次数が異なるからである。なお、ロボット１０の他の構成等は、上述したとおりであるため、重複した説明は省略する。
【００４７】
また、制御装置２０２は、ジョイスティック２０２ａ、コンピュータ２０２ｂおよび無線送信装置２０２ｃを含む。ジョイスティック２０２ａは汎用のジョイスティックであり、コンピュータ２０２ｂに接続される。図９からも分かるように、この実施例では、簡単のため、１つのレバーが設けられたジョイスティック２０２ａを設けるようにしてあるが、これに限定される必要はない。ジョイスティック２０２ａのレバーの数（一度に操作可能な操作部の個数）に相当する次元（次数）に圧縮すれば、対応する動作を制御することができる。コンピュータ２０２ｂは、パーソナルコンピュータ或いはワークステーションのような汎用のコンピュータであり、ジョイスティック２０２ａからの入力信号（たとえば、傾き（角度）信号）に基づいて、ロボット１０を制御するための制御情報（コントロール信号：ここでは、ｎの数値）を生成する。或いは、コンピュータ２０２ｂは、入力信号を、コントロール信号ｎに変換する。ただし、制御情報すなわちコントロール信号ｎは、或る動作（たとえば、歩行、握手）についての情報（信号）であり、詳細な説明は省略するが、当該動作は制御情報を入力する前に、予め決定してある。コンピュータ２０２ｂは、変換または生成したコントロール信号ｎを、無線送信装置２０２ｃを介してロボット１０に送信する。無線送信装置２０２ｃは、コンピュータ２０２ｂからのコントロール信号ｎを電波により、ロボット１０に送信する。
【００４８】
たとえば、ロボット１０では、ＣＰＵ４８は、制御装置２０２から送信された或る動作についての制御情報（コントロール信号ｎ）を無線受信装置１００を介して取得する。次いで、ＣＰＵ４８は、取得した制御情報に従って、その或る動作についての次元圧縮した各関節角度指令値を検出（算出）する。そして、ＣＰＵ４８は、算出した各関節角度指令値に従って各関節（関節軸モータ）５８を駆動するように、モータ制御ボード５４を指示する。このようにして、制御情報に従う動作がロボット１０で実行される。
【００４９】
このように、ジョイスティック２０２ａのような簡易なインターフェイス（コントローラ）を用いて、ロボット１０の動作を制御（遠隔制御）することができる。なお、この実施例では、ジョイスティック２０２ａを入力装置として用いるようにしてあるが、他の入力装置を用いることも可能である。ただし、連続的に変化するようなロボット１０の動作についての制御を可能とするような構成のものを用いる必要がある。たとえば、コンピュータマウスがトラックボールのような入力装置を用いることができる。
【００５０】
なお、この実施例では、ロボット１０のメモリ５２に次元圧縮した各関節角度指令値（ｄ（ｎ））を記憶するようにしてあるが、制御装置２０２のコンピュータ２０２ｂに記憶するようにすることもできる。ただし、かかる場合には、各関節角度についての信号（データ）をロボット１０に送信する必要がある。
【００５１】
また、この実施例では、次元圧縮した各関節角度指令値（ｄ（ｎ））を記憶するようにしてあるが、これに限定されるべきではない。たとえば、次元圧縮した各関節角度の時系列変化を記憶するようにしてもよく、次元圧縮した各関節角度指令値（ｄ（ｎ））や次元圧縮した各関節角度の時系列変化の微分値を記憶するようにしてもよい。
【００５２】
この実施例によれば、或る動作をさせる場合における各関節角度指令値の時系列変化についての行列を特異値分解し、可能な限り次元圧縮するので、多自由度（高次元）のロボットの身体動作を比較的低次元で制御することができる。したがって、簡易なインターフェイスないしコントローラを用いて簡単に制御することができる。
【００５３】
また、ロボットの動作を制御できるため、ボタン操作により、単に歩行動作の実行を命令していた場合よりも直感的な操作ができ、ロボットが存在（動作）する環境による制約を受けることもない。このため、毎回運動方程式を演算するような面倒な処理が必要ない。
【００５４】
なお、この実施例では、本件発明者等が提案し、販売されているロボット（商品名「Robovie-M ver.2」）のようなヒューマノイドロボットについてのみ説明したが、任意のヒューマノイドロボットに適応できることは言うまでもない。
【図面の簡単な説明】
【００５５】
【図１】図１はこの発明のヒューマノイドロボットの一例を示す図解図である。
【図２】図２は図１実施例に示すヒューマノイドロボットの電気的構成を示すブロック図である。
【図３】図３は図１実施例に示すヒューマノイドロボットを歩行させた場合の各関節角度指令値の時系列変化の一部を示す図解図である。
【図４】図４は図１実施例に示すヒューマノイドロボットを歩行させた場合の各関節角度指令値の時系列変化の他の一部である図解図である。
【図５】図５は図１実施例に示すヒューマノイドロボットを歩行させた場合の各関節角度指令値の時系列変化のその他の一部を示す図解図である。
【図６】図６は図３−図５に示す各関節角度指令値の時系列変化についての行列の特異値を行に従ってプロットした場合のグラフである。
【図７】図７は或る関節について、５番目の特異値まで圧縮した場合の関節角度指令値の時系列変化、および圧縮しない場合の時系列変化を示すグラフである。
【図８】図８は或る関節について、１番目の特異値まで圧縮した場合の関節角度指令値の時系列変化、および圧縮しない場合の時系列変化を示すグラフである。
【図９】図９は図１実施例に示すヒューマノイドロボットを用いたロボットシステムの一例を示す図解図である。
【符号の説明】
【００５６】
１０  …ヒューマノイドロボット
１２，１４  …横杆
１８，２８Ｒ，２８Ｌ，４４Ｒ，４４Ｌ  …ヨー軸関節
２０，２６Ｒ，２６Ｒ，３０Ｒ，３０Ｌ，３６Ｒ，３６Ｌ，３８ａＲ，３８Ｌ，４０Ｒ，４０Ｌ  …ピッチ軸
２２Ｒ，２２Ｌ  …腕
２４Ｒ，２４Ｌ，３４Ｒ，３４Ｌ，４２Ｒ，４２Ｌ  …ロール軸関節
３２Ｒ，３２Ｌ  …足
４８  …ＣＰＵ
５２  …メモり
５４  …モータ制御ボード
５６  …センサ入力／出力ボード
５８  …２軸加速度センサ
６０  …関節角度センサ
６２  …関節軸モータ
【図１】
2006281354.tif 000003
【図２】
2006281354.tif 000004
【図３】
2006281354.tif 000005
【図４】
2006281354.tif 000006
【図５】
2006281354.tif 000007
【図６】
2006281354.tif 000008
【図７】
2006281354.tif 000009
【図８】
2006281354.tif 000010
【図９】
2006281354.tif 000011