(57)【要約】本発明は、ロボットの運動を制御する制御アルゴリズムを構築する装置やその構築された制御アルゴリズムにしたがってロボットの運動を制御する装置等に関し、従来のＭＺＰ法等、力学的な方程式を解く方式と比べ制御アルゴリズム作成のコストや時間を大きく下げることを目的とし、入力に対すアナログ的な時間遅れを伴う出力を生成するニューロンを含むリカレントニューラルネットワーク（ＲＮＮ）により制御アルゴリズムを構成し、そのＲＮＮの係数を低次の項から高次の項に向かって順次決定していく。
2004033159.tif 000002
【特許請求の範囲】
【請求項１】
２つの部材の相対的な位置もしくは姿勢を可変に該２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
前記定義記憶部に記憶された定義を用い、複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
前記制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたことを特徴とするロボット制御アルゴリズム構築装置。
【請求項２】
前記定義記憶部は、入力をＶ０、出力をＶ１、遅れをε１としたとき、基本的に、
2004033159.tif 000038
の式に従って出力Ｖ１を生成するというニューロンの定義を記憶するものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項３】
前記定義記憶部に記憶された定義には、複数の入力を受け該複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、前記制御アルゴリズム生成部は、該定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項４】
前記定義記憶部に記憶された定義には、入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、前記制御アルゴリズム生成部は、該定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項５】
前記定義記憶部に記憶された定義には、前記重みを別のニューロンの出力に応じて変更する定義を含むものであって、前記制御アルゴリズム生成部は、入力に重みを付するニューロンを含むとともに該重みを変更する別のニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項６】
前記定義記憶部に記憶された定義には、前記ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、前記制御アルゴリズム生成部は、該別のニューロンを含むとともに該別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項７】
前記定義記憶部に記憶された定義には、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、前記制御アルゴリズム生成部は、該定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項８】
前記定義記憶部に記憶された定義には、２つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、前記制御アルゴリズム生成部は、該別のニューロンを含むとともに該別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された２つのニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項９】
前記制御アルゴリズム生成部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項１０】
前記周期関数は、相互に異なる周期の複数の単位周期関数の結合からなるものであって、前記制御アルゴリズム生成部は、前記部分ネットワークを生成するにあたり、前記複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることを特徴とする請求の範囲第９項記載のロボット制御アルゴリズム構築装置。
【請求項１１】
前記係数値決定部は、前記制御アルゴリズム生成部により前記複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、該部分ネットワークの係数の値を、該部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることを特徴とする請求の範囲第１０項記載のロボット制御アルゴリズム構築装置。
【請求項１２】
前記制御アルゴリズム生成部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第１項記載のロボット制御アルゴリズム構築装置。
【請求項１３】
前記制御アルゴリズム生成部は、前記部分ネットワークを生成するにあたり、前記多項式の各項を実現し該各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることを特徴とする請求の範囲第第１２項記載のロボット制御アルゴリズム構築装置。
【請求項１４】
前記係数値決定部は、前記制御アルゴリズム生成部により前記複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、該部分ネットワークの係数の値を、該部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることを特徴とする請求の範囲第１５項記載のロボット制御アルゴリズム構築装置。
【請求項１５】
プログラムを実行する情報処理装置内で実行され、該情報処理装置を、２つの部材の相対的な位置もしくは姿勢を可変に該２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置として動作させるロボット制御アルゴリズム構築プログラムにおいて、
前記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
前記定義記憶部に記憶された定義を用い、操作に応じて、複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
前記制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたロボット制御アルゴリズム構築装置として動作させることを特徴とするロボット制御アルゴリズム構築プログラム。
【請求項１６】
２つの部材の相対的な位置もしくは姿勢を可変に該２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するロボット制御装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
前記制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたことを特徴とするロボット制御装置。
【請求項１７】
プログラムを実行する情報処理装置内で実行され、該情報処理装置を、２つの部材の相対的な位置もしくは姿勢を可変に該２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するロボット制御装置として動作させるロボット制御プログラムにおいて、
前記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
前記制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたロボット制御装置として動作させることを特徴とするロボット制御プログラム。
【請求項１８】
２つの部材の相対的な位置もしくは姿勢を可変に該２つの部材を結合する関節を少なくとも１つ備えたロボットにおいて、
このロボットの動作を制御するロボット制御装置を備え、
該ロボット制御装置が、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
前記制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いてこのロボットの動作を制御するロボット制御部とを備えたことを特徴とするロボット。
【発明の詳細な説明】
【技術分野】  本発明は、ロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置、コンピュータ等の情報処理装置をロボット制御アルゴリズム構築装置として動作させるロボット制御アルゴリズム構築プログラム、ロボットの動作を制御するロボット制御装置、コンピュータ等の情報処理装置をロボット制御装置として動作させるロボット制御プログラム、および、ロボットに関する。
【背景技術】  近年、人間共存型のロボットの研究が盛んに行なわれている（例えば非特許文献１，２参照）。近い将来、街にロボットが進出し、人間を助けるために働いている風景を想像することが容易になりつつある。また、それらのロボットは、各々まったく異なる作業をしていることであろうと想像できる。
ここで、近年開発が進んでいる二足歩行ロボットは、ＺＭＰ法（Ｚｏｒｏ  Ｍｏｍｅｎｔｕｍ  Ｐｏｉｎｔ  ｍｅｔｈｏｄ）と呼ばれる制御アルゴリズムで動作するように構成されている。
図１は、ＺＭＰ法の原理説明図である。
ロボットが静止しているときは、そのロボットの重心がちょうど足裏の真上に来るように上体を起こすことによって立ったままの姿勢を保つことができる。
これに対し、そのロボットが例えば前進しようとしたとき、重心が足裏の真上にあるままの状態では、後ろに倒れることになる。
これは、ＺＭＰ（動的重心点）が後ろに位置してしまうためである。前進するときに倒れないようにするには、上体を前方に傾けて上体を加速するとそれに対し復元力が働き、また床からの反力やそのロボットの重心点も考慮し、目標点にＺＭＰが位置するように、上体の傾きの程度等が調節される。このようにして、ＺＰＭ（動的重心点）が常に目標位置に来るように制御することにより、二足歩行ロボットは前進することができる。
このＭＺＰ法に基づく制御アルゴリズムは、極めて複雑な力学的、数学的演算を必要とする制御アルゴリズムであり、その開発にも多大のコストと時間を要する。また、このＺＭＰ法を採用すると、完成されたいわば能役者の歩き方となり、歩き方１つとっても‘人間らしさ’とは少し異なる印象の歩き方となりがちである。
また、ＺＭＰ法を採用した二足歩行ロボットに限らず、現在、大半のロボットは、手続き型言語によってある特定の作業を行うためのソフトウェアが作られている。そのため、まったく異なった作業を行うには、このソフトウェアを取り替える必要がある。要するに制御アルゴリズムを組み直すことが必要となる。作業に必要なアルゴリズムを作業毎に作っていては、多数のソフトウェアが必要になりコストが極めて高くつくことが予想される。ミドルウェアの開発等を行なうことによりコストダウンを図ることも１つの方法ではあるが、またひとつの方法は、ロボットあるいはロボット制御装置が自ら学習して各々の作業を覚えることである。
この自ら学習する学習システムの代表例としてニューラルネットワークが知られている。
図２は、階層化ニューラルネットワーク（ＬＮＮ：Ｌａｙｅｒｅｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）のモデルを示した図である。
ここでは、入力層、中間層、出力層の各層にニューロンが配置されており、このＬＮＮへの入力は全て入力層のニューロンで受け取られ、入力層の各ニューロンの出力が中間層の各ニューロンに伝えられ、中間層の各ニューロンの出力が出力層のニューロンに伝えられ、その出力層のニューロンからの出力がこのＬＮＮの出力となる。
図３は、図２に示すＬＮＮを構成する各ニューロンのモデルを示す図、図４は、そのニューロンの入出力の関係を規定するシグモイド関数を示す図である。
図３に示すように、前段側から複数の入力Ｘ１，Ｘ２，Ｘ３，…，Ｘｉがあると、各結合強度をＷ１，Ｗ２，Ｗ３，…，Ｗｉとし、このニューロンは、
2004033159.tif 000003
を全体としての入力として受け取り、このニューロンでは、図４のシグモイド関数
2004033159.tif 000004
に従う出力Ｙ＝ｆ（Ｘ）が生成される。
このＬＮＮに関しては、結合強度Ｗ１，Ｗ２，Ｗ３，…，Ｗｉと呼ばれる各係数の値を決定する必要がある。この係数の決定方法としてＢＰ法（Ｂａｃｋ  Ｐｒｏｐａｇａｔｉｏｎ法）が知られており、いわゆる教師付き、教師なし学習など様々な学習法が存在する。
このＬＮＮは、基本的に入力にフィルタをかけて出力するものであり、ＢＰ法によってフィルタの係数（上記の結合係数Ｗ１，Ｗ２，Ｗ３，…，Ｗｉ）を適切に定めることはできるものの、このＬＮＮは、例えば周期運動、非周期運動に相当する出力を生成することはできず、ロボットの動作制御には本質的に不向きである。
ニューラルネットワークのもう１つのモデルとしてリカレントニューラルネットワーク（ＲＮＮ：Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）が知られている。
図５は、ＲＮＮのモデルを示す図である。
図２のＬＮＮは、入力側から出力側に向かって整然と信号が流れて行くのに対し、図５のＲＮＮは、入力側のニューロンから出力側のニューロンに向かって信号が伝えられるだけでなく、出力側のニューロンから入力側のニューロンに向かって信号が伝えられることにより、信号の流れのループが存在する。
このＲＮＮは、盛んに研究されてはいるが、例えば上述のＬＮＮやＢＰ法のような、ニューロンの組合せ方（信号の伝搬のルートの決め方）や学習の仕方（係数の値の決め方）としての決定的な手法は従来見い出されていない。
【非特許文献１】      Ｊｉａｎｇ  Ｓｈａｎ，Ｆｕｍｉｏ  Ｎａｇａｓｈｉｍａ：Ｂｉｏｌｏｇｉｃａｌｌｙ  Ｉｎｓｐｉｒｅｄ  Ｓｐｉｎａｌ  ｌｏｃｏｍｏｔｉｏｎ  Ｃｏｎｔｒｏｌｌｅｒ  ｆｏｒ  Ｈｕｍａｎｏｉｄ  Ｒｏｂｏｔ，第１９回日本ロボット学会学術講演会，Ｐ．５１７−５１８（２００１）
【非特許文献２】      Ｔａｇａ  Ｇ．，Ｍｉｙａｋｅ  Ｙ．，Ｙａｍａｇｕｃｈｉ  Ｙ．，Ｓｈｉｍｉｚｕ  Ｈ．：Ｇｅｎｅｒａｔｉｏｎ  ａｎｄ  Ｃｏｏｒｄｉｎａｔｉｏｎ  ｏｆ  Ｂｉｐｅｄａｌ  Ｌｏｃｏｍｏｔｉｏｎ  ｔｈｒｏｕｇｈ  Ｇｌｏｂａｌ  Ｅｎｔｒａｉｎｍｅｎｔ（１９９１）
【発明の開示】
本発明は、上記事情に鑑み、従来のＭＺＰ法等、力学的な方程式を解く方式と比べ制御アルゴリズム作成のコストや時間を大きく下げることのできるロボット制御アルゴリズム構築装置およびロボット制御アルゴリズム構築プログラム、およびコストの安いロボット制御装置、ロボット制御プログラム、およびロボットを提供することを目的とする。
上記目的を達成する本発明のロボット制御アルゴリズム構築装置は、２つの部材の相対的な位置もしくは姿勢を可変にそれら２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
定義記憶部に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたことを特徴とする。
ここで、上記の「ロボット」は、「２つの部材の相対的な位置もしくは姿勢を可変にそれら２つの部材を結合する関節を少なくとも１つ備えた」ものであればよく、例えばこの定義に合致するマニピュレータ等もここでいうロボットに該当する。
また、上記の「アナログ的な遅れ」とは、入力の値変化に対して出力の値が滑らかに遅れて変化するという現象を伴う遅れをいう。
本発明のロボット制御アルゴリズム構築装置は、図５を参照して説明した、信号のループを有するリカレントニューラルネットワークを採用した制御アルゴリズムを構築するものであるが、このリカレントニューラルネットワークを構成するニューロンの中に、入力に基づいて上記の定義におけるアナログ的な遅れを伴う出力を生成する遅れニューロンを含ませることにより、例えば様々な周期の三角関数を実現して任意の波形の周期信号を生成したり、多項式を実現して様々な波形の非周期信号を生成することができ、上記のように定義されたニューロンを用いて制御目的に合致したリカレントニューラルネットワークを構築することにより、例えばＺＭＰ法等、厖大な力学的演算を行なう従来の制御アルゴリズムと比べ同等の制御を行なう制御アルゴリズムを極めて容易に構築することができる。
ここで、上記制御アルゴリズム生成部は、上記制御アルゴリズムをオペレータの操作に応じて決定するものであってもよいが、例えば後述する実施形態で説明するように高次の項に対応する部分ネットワークを順次自動生成するなど、上記制御アルゴリズムを生成するための生成アルゴリズムをあらかじめ定めておいて、上記制御アルゴリズムを自動生成するものであってもよい。
また、上記係数値決定部は、上記係数の値を、オペレータの操作に応じて決定するものであってもよく、あるいは、上記係数の値を、制御対象のロボットの動作を評価する評価関数に基づいて決定するものであってもよく、あるいはそれらの組合せであってもよい。
また、上記定義記憶部は、入力をＶ０、出力をＶ１、遅れをε１としたとき、基本的に、
2004033159.tif 000005
の式に従って出力Ｖ１を生成するというニューロンの定義を記憶するものであることが好ましい。
上記の定義における「アナログ的な遅れ」をできるだけ単純な数式で表現すると、上記（３）式のように表現することができ、上記の定義における「アナログ的な遅れ」を表現するにあたり、上記（３）式よりも複雑な式を採用する必要性も見あたらないことから、「アナログ的な遅れ」を伴う出力を生成するニューロンの定義として上記（３）式を採用することが好ましい。
ここでのニューロンは、基本的には例えば上記（３）式のように表現されるが、以下のようないくつかの変形を含ませることが好ましい。
すなわち、上記定義記憶部に記憶された定義には、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
上記定義記憶部に記憶された定義に、上記の、入力に重みを付するニューロンの定義を含む場合に、その定義記憶部に記憶された定義には、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムの生成が自在なものであることが、さらに好ましい。
また、上記定義記憶部に記憶された定義には、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
ここで、「入力が閾値を越える場合」には、複数の態様がある。すなわち、ここには、入力が閾値よりも小さい値のときに入力が有効となり、入力が閾値を小さい値から大きい値の方に越えると閾値が有効になるという、閾値が上限値となる態様や、これとは逆に、入力が閾値よりも大きい値のときに入力が有効となり、入力が閾値を大きい値から小さい値の方に越えると閾値が有効になるという、閾値が下限値となる態様がある。ここでは、これら双方の態様のニューロンを定義しておくことが好ましい。
さらに、上記定義記憶部に記憶された定義には、２つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された２つのニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
また、上記本発明のロボット制御アルゴリズム構築装置において、上記制御アルゴリズム生成部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に、その周期関数は、相互に異なる周期の複数の単位周期関数の結合からなるものであって、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましい。
上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって、例えば１つの単位ネットワークずつなど順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
ある程度複雑なロボットを制御するための制御アルゴリズムを構築すると、その制御アルゴリズム中には、非常に多くの係数が含まれ、制御アルゴリズムを完成させるには、それら非常に多数の係数の全てについて値を決定する必要がある。係数の値を決定する方法として例えば前述のＬＮＮの場合はＢＰ法を採用することができるが、このＢＰ法はＬＮＮに限って適用可能なものであり、本発明で採用しているＲＮＮ（リカレントニューラルネットワーク）の場合は適用不能である。
係数の値を決定する他の手法として、例えば二分法や遺伝的アルゴリズム（ＧＡ：Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ）などが知られている。二分法は、基本的には、係数の値として取り得る第１の範囲内のほぼ中央に位置する値を代入して動作させることにより、その係数の最適な値はその代入した値より大きい値であるか小さい値であるかを評価し、その係数に、今度は、その評価により得られた大きい値（あるいは小さい値）が存在する、上記の第１の範囲の１／２の第２の範囲内のほぼ中央に位置する値を代入して評価し、これを繰り返すことにより範囲を狭めていき、最終的にその係数の値を決定する方法である。一方、遺伝的アルゴリズムは、係数に少しずつ異なる値を代入して評価したり、突然変異のように全く異なる値を代入して評価したり、あるいは、遺伝子が子供に遺伝するかのように、ある程度良好な評価が得られた２つの値の中間的な値を代入して評価したりなど、生物の遺伝をモデルにして係数の値を様々に変化させて評価し、最終的に適切な値を決定する手法である。
これら二分法やＧＡを適用した場合であっても、同時に決定すべき係数の数が多いと、それらの係数を決めるのに極めて多大の時間を要する結果とする。
これに対し上記のように、周期の長い単位周期関数を実現する単位ネットワークから周期の短い単位周期関数を実現する単位ネットワークへと順次に係数の値を決定していくことにより、同時に決定する必要のある係数の数を格段に減らすことができ、係数値決定のプロセスを単位ネットワークの数と同数繰り返したとしても、全ての係数の値を同時に決定しようとした場合と比べ、それらの係数の決定に要する時間は、後述する例では１０５７倍程度もの天文学的な数字で表されるほどの差が生じることになる。また、このように、周期の長い単位周期関数を実現する単位ネットワークから周期の短い単位周期関数を実現する単位ネットワークへと順次に係数の値を決定していくと、１つの単位ネットワークの係数を決定していくたびに制御対象のロボットの動きを所望の滑らかな動きに近づかせることができ、ロボットの動きの精度を所望の精度まで順次向上させていくことができる。
また、上記本発明のロボット制御アルゴリズム構築装置において、上記制御アルゴリズム生成部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、多項式の各項を実現し各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましい。
上記制御アルゴリズム生成部により上記複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、上記係数値決定部は、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
周期関数（ロボットの周期的な動作）に関する上述の説明は、多項式で表現される非周期関数（ロボットの非周期的な動作）に関しても成り立つ。多項式の場合は、より次数の低い項に対応する単位ネットワークから、より次数の高い項に対応する単位ネットワークに向かって順次に、各単位ネットワークの係数値を決定していくことになる。
また、上記目的を達成する本発明のロボット制御アルゴリズム構築プログラムは、プログラムを実行する情報処理装置内で実行され、その情報処理装置を、２つの部材の相対的な位置もしくは姿勢を可変にそれら２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置として動作させるロボット制御アルゴリズム構築プログラムであって、
上記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
定義記憶部に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたロボット制御アルゴリズム構築装置として動作させることを特徴とする。
本発明のロボット制御アルゴリズム構築プログラムは、コンピュータ等の情報処理装置を、本発明のロボット制御アルゴリズム構築装置として動作させるものであり、本発明のロボット制御アルゴリズム構築装置の各種態様は、その態様を実現するための、本発明ロボット制御アルゴリズム構築プログラムの態様として成立する。
すなわち、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、上記制御アルゴリズムをオペレータの操作に応じて決定するものであってもよいが、例えば後述する実施形態で説明するように高次の項に対応する部分ネットワークを順次自動生成するなど、上記制御アルゴリズムを生成するための生成アルゴリズムをあらかじめ定めておいて、上記制御アルゴリズムを自動生成するものであってもよい。
また、上記係数値決定部は、上記係数の値を、オペレータの操作に応じて決定するものであるものであってもよく、あるいは、上記係数値決定部は、上記係数の値を、制御対象のロボットの動作を評価する評価関数に基づいて決定するものであってもよく、あるいはそれらの組合せであってもよい。
また、上記定義記憶部は、入力をＶ０、出力をＶ１、遅れをε１としたとき、基本的に、
2004033159.tif 000006
の式に従って出力Ｖ１を生成するというニューロンの定義を記憶するものであることが好ましく、また、
上記定義記憶部に記憶された定義には、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
ここで、上記定義記憶部に記憶された定義に、上記の、入力に重みを付するニューロンの定義を含む場合に、その上記定義記憶部に記憶された定義には、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
また、上記定義記憶部に記憶された定義には、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、さらに、
上記定義記憶部に記憶された定義には、２つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された２つのニューロンを含む制御アルゴリズムの生成が自在なものであることも好ましい形態である。
さらに、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合にその周期関数は、相互に異なる周期の複数の単位周期関数の結合からなるものであって、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましく、さらに、上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
さらに、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、多項式の各項を実現し各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましく、この場合にさらに、上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
また、本発明のロボット制御装置は、２つの部材の相対的な位置もしくは姿勢を可変にそれらの２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するロボット制御装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたことを特徴とする。
本発明のロボット制御装置は、例えば本発明のロボット制御アルゴリズム構築装置等を用いて構築した制御アルゴリズム、すなわち、上述の定義における遅れニューロンを有するＲＮＮにより構築された制御アルゴリズムを記憶しておき、その記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するものであり、制御アルゴリズムが安価に供給できることから、このロボット制御装置も安価に構成することができる。
ここで、本発明のロボット制御装置において、上記リカレントニューラルネットワークを構成するニューロンは、入力をＶ０、出力をＶ１、遅れをε１としたとき、基本的に、
2004033159.tif 000007
の式に従う出力Ｖ１を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボット制御装置において、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、２つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された２つのニューロンを含む制御アルゴリズムを記憶するものであるこも好ましい形態である。
さらに、本発明のロボット制御装置において、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボット制御装置において、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
尚、このロボット制御装置は、ロボットの動作シミュレーションを行なうロボットシミュレーション装置内に実現されたアルゴリズムとしてのロボットを制御対象とするものであってもよく、あるいは、このロボット制御装置は、ハードウェア的に製作された現実のロボットを制御対象とするものであってもよい。
また、上記目的を達成する本発明のロボット制御プログラムは、プログラムを実行する情報処理装置内で実行され、その情報処理装置を、２つの部材の相対的な位置もしくは姿勢を可変にそれらの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するロボット制御装置として動作させるロボット制御プログラムであって、
上記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれらのニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたロボット制御装置として動作させることを特徴とする。
本発明のロボット制御プログラムは、コンピュータ等の情報処理装置を本発明のロボット制御装置として動作させるものであり、本発明のロボット制御装置の各種態様は、その各種態様を実現する、本発明のロボット制御プログラムの態様として成立する。
すなわち、本発明のロボット制御プログラムにおいて、上記リカレントニューラルネットワークを構成するニューロンは、入力をＶ０、出力をＶ１、遅れをε１としたとき、基本的に、
2004033159.tif 000008
の式に従う出力Ｖ１を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボット制御プログラムにおいて、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、２つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された２つのニューロンを含む制御アルゴリズムを記憶するものであることも好ましい形態である。
さらに、本発明のロボット制御プログラムにおいて、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボット制御プログラムにおいて、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
尚、このロボット制御プログラムは、上記情報処理装置を、ロボットの動作シミュレーションを行なうロボットシミュレーション装置内に実現されたアルゴリズムとしてのロボットを制御対象とするロボット制御装置として動作させるものであってもよく、あるいは、このロボット制御プログラムは、上記情報処理装置を、ハードウェア的に製作された現実のロボットを制御対象とするロボット制御装置として動作させるものであってもよい。
さらに、上記目的を達成する本発明のロボットは、２つの部材の相対的な位置もしくは姿勢を可変にそれら２つの部材を結合する関節を少なくとも１つ備えたロボットにおいて、
このロボットの動作を制御するロボット制御装置を備え、
そのロボット制御装置が、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いてこのロボットの動作を制御するロボット制御部とを備えたことを特徴とする。
本発明のロボットは、本発明のロボット制御装置がそのロボット制御装置により制御される対象のロボットに組み込まれた構成のものであり、本発明のロボットには、本発明のロボット制御装置の各種態様がそのまま含まれる。
すなわち、本発明のロボットにおいて、上記リカレントニューラルネットワークを構成するニューロンは、入力をＶ０、出力をＶ１、遅れをε１としたとき、基本的に、
2004033159.tif 000009
の式に従う出力Ｖ１を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボットにおいて、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、２つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された２つのニューロンを含む制御アルゴリズムを記憶するものであるこも好ましい形態である。
さらに、本発明のロボットにおいて、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボットにおいて、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
【図面の簡単な説明】  図１は、ＺＭＰ法の原理説明図である。
図２は、階層化ニューラルネットワーク（ＬＮＮ：Ｌａｙｅｒｅｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）のモデルを示した図である。
図３は、図２に示すＬＮＮを構成する各ニューロンのモデルを示す図である。
図４は、そのニューロンの入出力の関係を規定するシグモイド関数を示す図である。
図５は、ＲＮＮのモデルを示す図である。
図６は、コンピュータと、そのコンピュータとの間で通信を行なうロボットの外観図である。
図７は、図１に示したコンピュータのハードウェア構成図である。
図８は、本発明のロボット制御アルゴリズム構築プログラムの一実施形態の概要を示す模式図である。
図９は、本発明のロボット制御アルゴリズム構築装置の一実施形態を示すブロック図である。
図１０は、ニューロンの表記を示した図である。
図１１は、ニューロンどうしの接続の表記を示す図である。
図１２は、時間遅れのないニューロンを示す図である。
図１３は、時間遅れのないニューロンの入出力の時間変化を示す図である。
図１４は、ε１≠０の遅れε１を有するニューロンを示す図である。
図１５は、ε１≠０の遅れε１を有するニューロンの入出力の時間変化を示す図である。
図１６は、複数入力のニューロンを示す図である。
図１７は、上限閾値を持つニューロンを示す図である。
図１８は、下限閾値を持つニューロンを示す図である。
図１９は、図１６を参照して説明した重み付けと、図１７，図１８を参照して示した閾値との双方を含む一般的なニューロンを示した図である。
図２０は、スイッチを示す図である。
図２１は、ニューロンによる遅れの変更を示す図である。
図２２は、ニューロンによる結線の重みの変更を示す図である。
図２３は、２つのニューロンの組合せの一例を示す図である。
図２４は、図２２に示す組合せの２のニューロンの入出力を示す図である。
図２５は、三角関数生成器の一例を示す図である。
図２６は、図２５に示す三角関数生成器を複数組み合わせた部分ネットワークを示す図である。
図２７は、三角関数生成器のもう１つの例を示す図である。
図２８は、ｎ次多項式生成器を示す図である。
図２９は、運動の切り換えを行なうときのニューロンの組合せを示す図である。
図３０は、２ニューロンからなる、正弦波出力を得るＲＮＮ（図２５参照）と、関節が１つだけのロボットを示す図である。
図３１は、ロボットのアームに任意周期運動を行なわさせる構成を示した図である。
図３２は、ロボットのアームに非周期運動を行なわさせる構成を示した図である。
図３３は、積分（乗）を除くＰＤ制御の一例を示す図である。
図３４は、ＰＩＤ制御の一例を示した図である。
図３５は、ＰＩＤ制御のもう１つの例を示した図である。
図３６は、ロボットおよびそのロボットを制御する制御アルゴリズム等を含む全体システムの概念図である。
図３７は、二足歩行ロボットの足とその足の運動を制御するＲＮＮの模式図である。
図３８は、ロボットの運動学習システムの概要を示す図である。
図３９は、以上の学習プロセスをまとめたフローチャートである。
図４０は、本発明のロボット制御プログラムの一実施形態の概要を示す模式図である。
図４１は、本発明のロボット制御装置の一実施形態を示すブロック図である。
図４２は、本発明のロボットの一実施形態の外観図である。
図４３は、図４２のロボット５００の構成を示すブロック図である。
【発明を実施するための最良の形態】  以下、本発明の実施形態について説明する。
以下に説明する本発明の各実施形態としてのロボット制御アルゴリズム構築装置およびロボット制御装置は、共通の一台のコンピュータと、そのコンピュータ内で動作する、本発明の各実施形態としてのロボット制御アルゴリズム構築プログラムおよびロボット制御プログラムとの組合せにより構成されたものである。
以下では先ず、本発明の実施形態としてのロボット制御アルゴリズム構築装置およびロボット制御装置を構成するコンピュータのハードウェアについて説明する。
図６は、コンピュータと、そのコンピュータとの間で通信を行なうロボットの外観図である。
ＣＰＵ（中央処理装置）、ＲＡＭ（ランダムアクセスメモリ）、ハードディスク、通信ボード等が内蔵された本体部１０１、本体部１０１からの指示により表示画面１０２ａ上に画像や文字列を表示する表示装置１０２、コンピュータ１００に操作者の指示を入力するためのキーボード１０３、表示画面１０２ａ上の任意の位置を指定することにより、その指定時にその位置に表示されていたアイコン等に応じた指示を入力するマウス１０４、およびロボット２００との間で通信を行なうためのアンテナ１０５を備えている。
本体部１０１は、さらに外観上、フレキシブルディスク（図示せず）、ＣＤ−ＲＯＭ３００がそれぞれ装填されるＦＤ装填口１０１ａ、ＣＤ−ＲＯＭ装填口１０１ｂを有しており、それらの内部には、それらの装填口１０１ａ，１０１ｂから装填されたフレキシブルディスク（ＦＤ）やＣＤ−ＲＯＭ３００をドライブしてアクセスするＦＤドライブやＣＤ−ＲＯＭドライブも内蔵されている。
一方、ロボット２００は、人体に似せた形状を有し、人間の躰の関節に相当する部分に２つの部材どうしの間の角度の調節が自在な関節を有し、さらに人間の目に対応する部分にカメラ、人間の耳に対応する部分にマイクロホン、人間の手先に相当する部分に接触センサを備えるなど、このロボットには各種のセンサが備えられている。また、このロボットには通信設備が内蔵されており、コンピュータ１００との間で通信を行ない、コンピュータ１００に向けて各種センサの情報を送信し、コンピュータ１００からは制御信号を受信してその制御信号に基づいて二足歩行などの動作を行なうように構成されている。
尚、このコンピュータ１００には、ロボット２００に相当する、アルゴリズム上で構築したロボットが内蔵されており、このコンピュータ１００を用いて構築されたロボット２００の動作を制御するための制御アルゴリズムは、直ちにロボット２００の動作制御に用いるのではなく、先ずは、コンピュータ１００内に構築されたアルゴリズムとしてのロボットをその制御アルゴリズムで動作させることにより動作シミュレーションが行なわれ、意図した通りの動作を行なうことが確認された後、その制御アルゴリズムが、ハードウェア的に製作されたロボット２００に適用される。
図７は、図６に示したコンピュータのハードウェア構成図である。
このハードウェア構成図には、ＣＰＵ１１１、ＲＡＭ１１２、ハードディスクコントローラ１１３、ＦＤドライブ１１４、ＣＤ−ＲＯＭドライブ１１５、マウスコントローラ１１６、キーボードコントローラ１１７、ディスプレイコントローラ１１８、およびロボット２００（図６参照）との間で通信を行なうための通信ボード１１９が示されており、それらはバス１１０で相互に接続されている。
ＦＤドライブ１１４、ＣＤ−ＲＯＭドライブ１１５は、図６を参照して説明したように、それぞれＦＤ装填口１０１ａおよびＣＤ−ＲＯＭ装填口１０１ｂから装填されたＦＤ３１０、ＣＤ−ＲＯＭ３００をアクセスするものである。通信ボード１１９はアンテナ１０５を介して、ロボット２００と通信を行なう。
また、図７には、ハードディスクコントローラ１１３によりアクセスされるハードディスク１２０、マウスコントローラ１１６により制御されるマウス１０４、キーボードコントローラ１１７により制御されるキーボード１０３、およびディスプレイコントローラ１１８により制御される表示装置１０２も示されている。
図８は、本発明のロボット制御アルゴリズム構築プログラムの一実施形態の概要を示す模式図である。
ここでは、このロボット制御アルゴリズム構築プログラム４００はＣＤ−ＲＯＭ３００に記憶されており、このＣＤ−ＲＯＭ３００が図６に示すＣＤ−ＲＯＭ装填口１０１ｂから装填され図７のＣＤ−ＲＯＭドライブ１１５によりアクセスされて、そのＣＤ−ＲＯＭ３００に記憶されているロボット制御アルゴリズム構築プログラム４００が、図６，図７に示すコンピュータ１００にインストールされる。そのコンピュータ１００内にインストールされたロボット制御アルゴリズム構築プログラムがそのコンピュータ１００内で実行されると、そのコンピュータ１００は、本発明のロボット制御アルゴリズム構築装置の一実施形態として動作する。
尚、このロボット制御アルゴリズム構築プログラム４００は、ここではＣＤ−ＲＯＭ３００に記憶されている例を示したが、ＣＤ−ＲＯＭに記憶されている必要はなく、例えばＦＤ等他の可搬型記憶媒体に記憶されてコンピュータ１００にインストールされてもよく、あるいは、他の装置等から通信網（図示せず）を介してコンピュータ１００にインストールされてもよく、あるいは、そのコンピュータ１００のハードディスク（図７参照）等にはじめから記憶されていてもよく、最終的にコンピュータで実行可能となるものであればどのように保存あるいは記憶されていてもよい。
図８に示すロボット制御アルゴリズム構築プログラム４００は、定義記憶部４０１と、制御アルゴリズム生成部４０２と、係数値決定部４０３とからなる。このロボット制御アルゴリズム構築プログラム４００の各部４０１〜４０３の作用は、図９の説明と合わせて説明する。
図９は、本発明のロボット制御アルゴリズム構築装置の一実施形態を示すブロック図である。
このロボット制御アルゴリズム構築装置４１０は、図６，図７に示すコンピュータ１００内で図８に示すロボット制御アルゴリズム構築プログラム４００が実行されることにより、図６，図７に示すコンピュータ１００内に実現するものである。
この図９のロボット制御アルゴリズム構築装置４１０は、定義記憶部４１１、制御アルゴリズム生成部４１２、および係数値決定部４１３から構成されている。これら定義記憶部４１１、制御アルゴリズム生成部４１２、および係数値決定部４１３は、それぞれ、図８に示すロボット制御アルゴリズム構築プログラム４００の、定義記憶部４０１、制御アルゴリズム生成部４０２、および係数値決定部４０３に対応するが、図８のロボット制御アルゴリズム構築装置４１０の各部４１１〜４１３は図６，図７のコンピュータ１００のハードウェアおよびそのコンピュータ１００内で実行されるオペレーティングシステム（ＯＳ）と、そのＯＳ上で動作する、図８に示すロボット制御アルゴリズム構築プログラム４００の各部４０１〜４０３との結合で構成されているのに対し、図８に示すロボット制御アルゴリズム構築プログラム４００の各部４０１〜４０３は、それらの複合のうちのアプリケーションプログラムの部分のみで構成されている。図８に示すロボット制御アルゴリズム構築プログラム４００を構成する各部４０１〜４０３の、このロボット制御アルゴリズム構築プログラム４００が図６，図７のコンピュータ１００内で実行されたときの作用は、図９に示すロボット制御アルゴリズム構築装置４１０を構成する各部４１１〜４１３の作用そのものであり、以下、図９のロボット制御アルゴリズム構築装置４１０の各部４１１〜４１３の作用を説明することで、図８のロボット制御アルゴリズム構築プログラム４００の各部４０１〜４０３の作用の説明を兼ねるものとする。
図９に示すロボット制御アルゴリズム構築装置４１０は、２つの部材の相対的な位置もしくは姿勢を可変にそれら２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御するための制御アルゴリズムを構築する装置である。図６に示すロボット２００は人間の躰の構造に似せた構造を有するヒューマノイド型のロボットであり、人間の手足等に対応する部分に複数の関節を有する。
この図９のロボット制御アルゴリズム構築装置４１０を構成する定義記憶部４１１は、入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶しておくものである。ここに記憶されているニューロンは、基本的には、入力をＶ０、出力をＶ１、遅れをε１としたとき、
2004033159.tif 000010
の式に従って出力Ｖ１を生成するものである。
この（３）式は、この（３）式を積分することにより、
2004033159.tif 000011
と表現することもできる。
このニューロンは上記（３）式（あるいはその（３）式と等価の（４）式）を満足するように記述されたプログラム部品で構成されている。この定義記憶部４１１には、そのプログラム部品としてのニューロンが記憶されていることのほか、さらにそのニューロンを表わすマークも記憶されていてもよい。この定義記憶部４１１に記憶されたニューロンの他の定義、およびニューロン以外の、ＲＮＮを構成するための他の定義については後述する。
図９のロボット制御アルゴリズム構築装置４１０を構成する制御アルゴリズム生成部４１２では、定義記憶部４１１に記憶された定義を用い、例えばオペレータによる図６，図７に示すコンピュータ１００のキーボード１０３やマウス１０４を操作に応じて、ロボット２００（図６参照）を制御するための制御アルゴリズムが構築される。あるいは、制御アルゴリズムを生成するアルゴリズムをあらかじめ定めておいて、オペレータの操作を待つことなく、その生成アルゴリズムに基づいて制御アルゴリズムを自動的に生成してもよい。
この制御アルゴリズムは、上記（３）式のε１がゼロではない有限の値を持つ遅れニューロンを含む複数のニューロンを有し、さらに信号の流れのループが存在するリカレントニューラルネットワーク（ＲＮＮ）により構築されたものである。ただし、この制御アルゴリズム生成部４１２で構築される制御アルゴリズムは、各種の係数（例えば上記（３），（４）式中の遅れε１や積分定数Ｃなど）を変数のまま含んでおり、それらの係数の値は未決定の状態にある。
図９に示すロボット制御アルゴリズム構築装置４１０を構成する係数値決定部４１３では、制御アルゴリズム生成部４１２で生成された制御アルゴリズムの係数の値が決定される。
この係数値決定部４１３は、係数の値を、もっぱらオペレータの操作に応じて決定するものであってもよいが、本実施形態では、図９に示すように、ロボットの動作を評価する評価関数に基づいて算定された係数の値を変化させながらロボットを動作させたときの評価値が入力され、その評価値が最高の値になるように係数が決められる。評価関数は、ロボットの動作を、「エネルギー最小」、「ロボット本体の安定性」、「高速性」等そのロボットの特質等を考慮した１つあるいは複数の項目からなる。係数の決定プロセスの詳細については後述する。
定義記憶部４１１に記憶される定義は、基本的には上記（３）式（あるいはそれと等価な（４）式）に従うニューロンであるが、その定義記憶部４１１に記憶される定義には、この他、そのニューロンを変形した、あるいはそのニューロンから派生したいくつかのニューロンの定義や、それらのニューロンに付随する定義が含まれている。すなわち、この定義記憶部４１１には、
（ａ１）上記（３）式（あるいは（４）式）に従う基本的なニューロンの定義
（ａ２）複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義
（ａ３）入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義
（ａ４）上記の重みを別のニューロンの出力に応じて変更するという定義
（ａ５）ニューロンの遅れを別のニューロンの出力に応じて変更するという定義
（ａ６）入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義
（ａ７）２つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義
が記憶されている。
これらの定義は、（３）式あるいは（４）式の定義の際に説明したとおり、プログラム部品の形で記憶されており、制御アルゴリズム生成部４１２では、その定義記憶部４１１に記憶された（ａ１）〜（ａ７）の定義に従うプログラム部品が駆使されて、それらのプログラム部品が組み合わされたＲＮＮによる制御アルゴリズムが構築される。
すなわち、制御アルゴリズム生成部４１２は、定義記憶部４１１に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワーク（ＲＮＮ）により構築された、値が未確定の係数を含む制御アルゴリズムを生成するものであり、この制御アルゴリズム生成部４１２では、
（ｂ１）上記（３）式（あるいは（４）式）に従う基本的なニューロンのほか、
（ｂ２）複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義に従うニューロン
（ａ３）入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義に従うニューロン
（ａ４）入力に重みを付するニューロンの、その重みを変更する別のニューロン
（ａ５）アナログ的な遅れを伴う出力を生成するニューロンの遅れを変更する別のニューロン
（ａ６）入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義に従うニューロン
（ｂ７）スイッチにより接断される結合が定義された２つのニューロンとそのスイッチを接断する別のニューロン
を駆使することにより、制御対象のロボットの動作制御に適合した、ＲＮＮからなる制御アルゴリズムが構築される。
さらに、その制御アルゴリズム生成部４１２は、定義記憶部４１１に記憶された定義に従うニューロンを接続することにより、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを生成することができ、その周期関数が、相互に異なる周期の複数の単位周期関数の結合からなるものである場合に、制御アルゴリズム生成部４１２は、上記の部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成する。そして、係数決定部４１３は、制御アルゴリズム生成部４１２により生成された複数の単位ネットワークの結合からなる部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって、本実施形態では１つの単位ネットワークずつ順次に、各単位ネットワークの係数の値を決定していく。
こうすることにより、全体の係数の値を短時間に決定することができる。
また、これと同様に、その制御アルゴリズム生成部４１２は、定義記憶部４１１に記憶された定義に従うニューロンを接続することにより、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを生成することができ、その場合に、その制御アルゴリズム生成部４１２は、その部分ネットワークを生成するにあたり、多項式の各項を実現しそれら各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであり、そして係数値決定部４１３は、制御アルゴリズム生成部４１２により生成された複数の単位ネットワークの結合からなる部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって、本実施形態では１つの単位ネットワークずつ順次に、各単位ネットワークの係数の値を決定していく。
係数値決定プロセスについての詳細はさらに後で説明する。
ここで、以下の説明のために、ニューロンとその結線の図面上の表記について説明しておく。
図１０は、ニューロンの表記を示した図である。
図１０（Ａ）〜図１０（Ｅ）は、いずれもニューロンを表わしており、そのうちの図１０（Ａ）には、丸印と二重丸印が示されている。それらは、いずれも、単にそこにニューロンが存在することを表わしている。ニューロンには遅れと初期値が定義されることがあるが、図１０（Ａ）の表記にはそれらの定義は含まれていない。
図１０（Ｂ）には、二重丸のうちの外側の丸の中（内側の丸の外）にＶ、内側の丸の中にεが記入されているニューロンが示されており、これは、遅れε、初期値Ｖのニューロンであることを表わしている。
図１０（Ｃ）には、丸印の中にＶが記入されたニューロン、および二重丸印であって、外側の丸の中かつ内側の丸の外にＶが記入されたニューロンが示されている。これらの表記は、いずれも、初期値Ｖのニューロンであることを示している。ここでは遅れは定義されていない。
図１０（Ｄ）には、二重丸印のうちの内側の丸の中にεが記入されたニューロンが示されている。このニューロンは、遅れεのニューロンであることを表わしている。初期値は定義されていない。
図１０（Ｅ）は、図１０（Ｄ）の特別な場合として遅れゼロのニューロンを表わしている。遅れゼロのニューロンは、複数の入力があった場合、それら複数の入力の総和を求めるニューロンとなり、このため二重丸印の内側の丸の中に数字のゼロを記入する記号に代えて、丸印の中に加算を表わす‘＋’を記入した記号を用いることもある。
図１１は、ニューロンどうしの接続の表記を示す図である。
図１１（Ａ）は、左側のニューロンから右側のニューロンに向かって信号が流れ、左側のニューロンの出力がそのまま右側のニューロンの入力となることを表わしている。
また図１１（Ｂ）は、左側のニューロンの出力が右側のニューロンの入力となる点では図１１（Ａ）のニューロンと同じであるが、図１１（Ｂ）の右側のニューロンでは、その入力に重みＣが付され、その重みが付された入力を基に前述の（３）式（あるいは（４）式）に従う演算が行なわれることを示している。
図１１（Ｃ）は、右側のニューロンに、左側の複数のニューロンの複数の出力が入力されて重みＣ１，Ｃ２，Ｃ３，…でそれぞれ重み付けされ、かつ自分自身の出力も再度入力されて重みＣ０で重み付けされ、右側のニューロンは、それら重み付けされた複数の入力の総和を基に、前述の（３）式（あるいは（４）式）に従う演算が行なわれることを示している。
次に、図１０および図１１に示した表記法を使いながら、ニューロンの定義とそのニューロンの振舞（入力と出力との関係、実現される関数等）について説明する。
図１２は、時間遅れのないニューロンを示しており、図１３は、その時間遅れのないニューロンの入出力の時間変化を示している。
前述の（３）式を再度示すと、
2004033159.tif 000012
である。
ここで遅れε１をゼロとすると、上記（３）式は、
2004033159.tif 000013
となる。すなわち、遅れε１＝０のときは、図１３に示すように出力Ｖ１は入力Ｖ０そのものとなる。
図１４は、ε１≠０の遅れε１を有するニューロンを示す図、図１５は、その遅れε１を有するニューロンの入出力の時間変化を示す図である。
この場合、上記（３）式の遅れε１をε１≠０として取り扱い、その（３）式を積分すると、前述の（４）式となる。（４）式をここに再度示しておく。
2004033159.tif 000014
ここで、この（４）式中の積分定数Ｃは、初期値Ｖ１０に依存しており、
2004033159.tif 000015
の関係にある。
上記（４）式の第１項は、図１５に示すように出力Ｖ１が時間的に遅れて徐々に変化することを示している。
図１６は、複数入力のニューロンを示す図である。
この場合、複数の入力Ｖｊ（ｊ＝０，１，…，ｎ）を各入力に対応する各重みＣｉｊ（ｊ＝０，１，…，ｎ）で重み付けし、それらの重み付けされた各入力の総和が、上記（３）式の入力Ｖ０に相当するものとして取り扱われる。すなわち、図１６に示す記号を用いて表現すると、
2004033159.tif 000016
となる。
図１７は、上限閾値を持つニューロンを示している。
ここではニューロン１の出力が閾値θに満たない値のときはそのニューロン１の出力がそのままニューロン２に入力され、ニューロン１の入力が閾値θより大きいときは、ニューロン２では、ニューロン１の出力に代えてその閾値θが入力として取り扱われる。
ニューロン２では、ニューロン１の出力の値に応じては閾値θを入力として取り扱った上で、上述の（３）式（あるいは（４）式）に従う演算が行なわれる。
尚、ここで閾値を、一般に角度を表現するときに用いられるθで表わしたのは、ロボットの動作を制御するにあたっては、そのロボットの関節の角度を制御するケースが多いことを念頭に置いたことによる。
図１８は、下限閾値を持つニューロンを示している。
ここでは、ニューロン１の出力が閾値θより大きいときはそのニューロン１の出力がそのままニューロン２に入力され、ニューロン１の出力が閾値θより小さいときはニューロン２はその閾値θを入力として取り扱う。
ここでも、図１７の場合と同様、ニューロン２は、ニューロン１の出力の値に応じて閾値を入力として取り扱うこと以外は基本のニューロンと同様であり、上述の（３）式（あるいは（４）式）に従う演算を行なう。
図１９は、図１６を参照して説明した重み付けと、図１７，図１８を参照して説明した閾値との双方を含む一般的なニューロンを示した図である。
この図１９に示すニューロンｉの入出力の関係を記述する式は、
2004033159.tif 000017
となる。ここで、Ｖｊ（ｊ＝１，２，…，ｎ，…，ｍ，…，Ｎ）は、ニューロンｊの出力、Ｃｉｊはニューロンｊからニューロンｉに向かう結線に対応する重み、θｍａｘｊはニューロンｊからニューロンｉに向かう結線に対応する、最大値を決める閾値、θｍｉｎｊは、ニューロンｊからニューロンｉに向かう結線に対応する、最小値を決める閾値、ｍｉｎ（ｘ，ｙ）はｘとｙとのうちの小さい方の値をとる関数、ｍａｘ（ｘ，ｙ）はｘとｙとのうちの大きい方の値をとる関数である。
ニューロンｉはニューロン１〜ニューロンＮのうちのいずれか１つのニューロンであってもよく（この場合は、図１１（ｃ）に示すように、ニューロンｉの出力がその同じニューロンｉに戻るように記述することもできる）、あるいは、ニューロンｉは、ニューロン１〜ニューロンＮのいずれとも異なるニューロンであってもよい。
図２０は、スイッチを示す図である。
ニューロン１とニューロン２はスイッチを介して結合されており、そのスイッチの接断（接続および切断）は、別のニューロン３の出力に応じて行なわれる。ここでは、ニューロン３の出力が閾値θ未満のときはスイッチが接続されてニューロン１の出力がニューロン２の入力となり、ニューロン３の出力がちょうど閾値θと等しいときを含め閾値θ以上のときはスイッチが切断され、ニューロン１の出力はニューロン２に入力されない。ここで、図２０中には「＜θ」の記号が示されているが、これを「≦θ」に変更すると、ニューロン３の出力がちょうど閾値θに等しいときはスイッチが接続された状態にあることを意味している。
また、図２０中の「＜θ」の記号を「＞θ」に変更すると、ニューロン３の出力が閾値θを越えているときにスイッチが接続されており、ニューロン３の出力が閾値θを含む閾値以下になるとスイッチが切断され、ニューロン１の出力がニューロン２に伝わらなくなる。記号「＞θ」を記号「≧θ」に変更すると、ニューロン３の出力が閾値にちょうど等しいときはスイッチは接続状態にあることを意味している。
図２１は、ニューロンによる遅れの変更を示す図である。
図２１（Ａ）と図２（Ｂ）は、異なる向きに描かれているだけであって、いずれも同じことを意味している。ここでは、ニューロン１から、ニューロン２を表わす二重丸のうちの内側の丸に矢印が引かれており、これは、ニューロン１の出力がそのままニューロン２の遅れεとなる（ニューロン１によってニューロン２の遅れが設定、変更される）ことを表わしている。このように、ここでは、あるニューロン（図２１の例ではニューロン２）の遅れが別のニューロン（図２１の例ではニューロン１）の出力によって変更することができるようにニューロンが定義されている。
図２２は、ニューロンによる結線の重みの変更を示す図である。
図２１の場合と同様、図２２（Ａ）と図２２（Ｂ）は異なる向きに描かれているだけであり、いずれも同じ内容を意味している。ここでは、ニューロン１の出力がニューロン２に入力されてその入力に重みが付されるが、ニューロン３の出力をその重みとすることを表わしている。このように、ここでは、あるニューロン（ここではニューロン３）の出力を重みとすることにより、その重みを変化させることができるように、ニューロンが定義されている。
図９に示すロボット制御アルゴリズム構築装置４１０を構成する定義記憶部４１１には、基本的には、これまで説明した様々なニューロン等の定義がそのニューロン等の入出力の関係を記述したプログラム部品として記憶されており、制御アルゴリズム生成部４１２では、それらのプログラム部品が組み合わされてＲＮＮによる制御アルゴリズムが構築されるが、制御アルゴリズムの構築をさらに容易にするために、定義記憶部４１１には、これまで説明してきたニューロン等の定義を記憶しておくことのほか、以下に説明するような、高い頻度で利用される複数のニューロンの組合せを１つのプログラム部品として記憶しておき、制御アルゴリズム生成部４１２では複数のニューロンの組合せとしてのプログラム部品を利用できるようにしてもよい。制御アルゴリズム生成部４１２は、定義記憶部４１１に記憶されたプログラム部品を組み立てるためのプログラム言語の入力により制御アルゴリズムを構築するように構成してもよいが、定義記憶部４１１に、ニューロンの入出力の関係を記述したプログラム部品だけでなく、これまで説明してきたようなニューロンの表記の記号も記憶しておくとともに、そのニューロンの記号とそのニューロンを表わすプログラム部品とを対応づけておき、制御アルゴリズム生成部４１２は、図６に示すコンピュータ１００の表示画面１０２ａ上にニューロンの記号を表示しその表示されたニューロンを結線するというオペレータ操作の裏でその表示されたニューロンや結線に応じた制御アルゴリズムを構築するようにしてもよい。
以下では、複数のニューロンを組み合わせたときに生成される関数について説明する。
図２３は、２つのニューロンの組合せの一例を示す図である。
２つのニューロンを図２３のように組み合わせると、上側のニューロンに関し、
2004033159.tif 000018
が成立し、下側のニューロンに関しては、
2004033159.tif 000019
が成立する。但し、Ｖ２は下側のニューロンの出力を表わす。
上記の（９）式と（１０）式を組み合わせると、
2004033159.tif 000020
なる２階線形定係数微分方程式となる。
この２階線形定係数微分方程式の一般解は、
2004033159.tif 000021
である。
図２４は、図２３に示す組合せの２ニューロンの入出力を示す図である。
入力Ｖ０がステップ関数的に立ち上がったとき、その出力Ｖ１は、１＜Ｃ１２Ｃ２１，Ｃ１２Ｃ２１＝１，０＜Ｃ１２Ｃ２１＜１，Ｃ１２Ｃ２１＜０に応じて、それぞれ、図２４（ａ），（ｂ），（ｃ），（ｄ）のように変化する。ここで注目すべき点は、入力Ｖ０が定数であっても重みＣ１２，Ｃ２１の値によっては、出力Ｖ１が振動する（図２４（ｄ）参照）ことと、ちょうど積分と遅れを重ね合わせた出力が存在する（図２４（ｂ）参照）ことである。
図２５は、三角関数生成器の一例を示す図である。
ここには、図２３の２ニューロンの結合と同様に結合された２ニューロンが示されているが、図２３の２ニューロンの結合と異なる点は、入力Ｖ０が存在しないことと、重みＣ２１，Ｃ１２が、絶対値が同一であってかつ正負が異なるＣ，−Ｃである点である。
図２５の出力Ｖ１は、
2004033159.tif 000022
で表わされる。
上記（１３）式を積分すると、
2004033159.tif 000023
となる。
すなわち上記（１３）式あるいは（１４）式は、角周波数ωの三角関数を表わしており、正弦的に変化する出力Ｖ１が得られる。
この（１３）式および（１４）式から分かることは、重みＣや遅れεの値を変えるとその正弦波出力Ｖ１の角周波数を変化させることができるとともに、重みＣ、遅れε、および初期値Ｖ１０，Ｖ２０を変えると（１４）式中の係数ｃ１，ｓ１が変化し、これによりその正弦波の位相や振幅変化させることができるという点である。
図２６は、図２５に示す三角関数生成器を複数組み合わせた部分ネットワークを示す図である。
この図２６の、一番右側に示された、１つだけのニューロンは、その初期値（ここでは、下記の（１５）式との対応でｃ０とする）を出力し続けるニューロンである。
この図２６に示す部分ネットワークにより実現される関数は、
2004033159.tif 000024
である。定数項ｃ０およびｃ１，ｓ１，ｃ２，ｓ２，……等は、図２６を参照して説明したようにして（（１３）式および（１４）式参照）、各ニューロンの遅れε，重みＣ，２Ｃ，３Ｃ，…，初期値（図２６には不図示）により決定される。
（１５）式はフーリエ級数を表わしている。任意の周期関数はフーリエ級数に展開することができ、したがって図２５のように組み合わされた２ニューロンを図２６のように複数組み合わせることによって、任意の周期関数を構築することができる。
図２７は、三角関数発生器のもう１つの例を示す図である。
この図２７に示す３ニューロンの組合せにより生成される出力Ｖ１を式で表わすと、
2004033159.tif 000025
となる。
2004033159.tif 000026
のときに、（１６）式を解くと、
2004033159.tif 000027
となる。ここで、Ｃ１，Ｃ２，Ｃ３はニューロンの初期値（図示せず）等により定まる積分定数である。
この（１８）式中のＶ１の式を見ると、第１項は急速に減衰する項であり、第２項と第３項は正弦振動の項である。
したがって、図２７のニューロンの組合せは、例えば、ある位置もしくは姿勢に静止していた関節を、その静止位置あるいは静止姿勢とは異なる位置もしくは姿勢（角度）に移動させて、その移動後の位置もしくは姿勢を中心して正弦的に振動させるときの、初期の過渡的な位置もしくは姿勢の移動およびその後の正弦振動を行なわせるための制御信号として利用することができる。
図２８は、ｎ次多項式生成器を示す図である。
この図２８には、この図２８に示すように接続された、ｎ次多項式の各項を生成するｎ＋１個のニューロン（それぞれ１個のニューロンからなる単位ネットワーク）とそれらの出力を重み付け加算するための加算ニューロン（遅れゼロのニューロン；図１０（Ｅ）参照）との、合計ｎ＋２個のニューロンが示されている。
この加算ニューロンの出力Ｖ１は、
2004033159.tif 000028
となる。
図２６に示すように、の三角関数生成器を複数組み合わせると、任意の周期信号を作り出してロボットに周期的な運動を行なわさせることができるが、この図２８の多項式を用いると、非周期信号を作り出すことができ、ロボットに非周期的な運動（例えば立った姿勢から椅子に腰かけた姿勢への移行など）を行なわさせることができる。
図２９は、運動の切り換えを行なうときのニューロンの組合せを示す図である。
運動ニューロン１，２は、ここではいずれも１つのニューロンのように示されているが、その背後には、例えば図２６に示す、周期運動を指示する制御信号生成器や、例えば図２８に示す多項式生成器により構成された非周期運動を指示する制御信号生成器が存在する。運動ニューロン１と運動ニューロン２とでは相互に異なる運動（例えば運動ニューロン１は椅子に腰かけた状態から立ち上がる運動、運動ニューロンは立った状態で行なう二足歩行運動）を行なわさせるものである。
スイッチニューロンは、その背後に、センサやそのロボットに一連の動作を行なわせるためのシーケンスプログラム等が存在し、運動を切り換えるタイミングで出力が変化するニューロンである。この図２９に示す構成の場合、スイッチニューロンの出力に応じて、常に、運動ニューロン１の出力と運動ニューロン２の出力とのうちのいずれか一方が遅れニューロンに入力される。遅れニューロンは、前述の（３）式（あるいは（４）式）に従って、入力をアナログ的に遅らせて出力するニューロンである。
従来から採用されている力学的な運動方程式を立ててその運動方程式に従ってロボットを動作させる制御アルゴリズムの場合、そのロボットに、ある１つの運動から別の１つの運動に移行させるには、それら２つの運動の間をつなぐ別の運動方程式（プログラム）を必要とし、そのプログラムは、移行前の運動と移行後の運動との組合せによってそれぞれ異なり、したがって多数のプログラムを必要とし、その開発や動作テスト等にも多大の時間と労力を必要とする。
これに対し、ここで説明しているＲＮＮを採用すると、移行可能な運動どうしの間ではどの運動からどの運動に移行するかを問わず、それら２つの運動の間に、図２９に示すようなスイッチニューロンによってスイッチを切り換え、遅れニューロンを介して出力する構成を配置すればよく、この一点をとっても制御アルゴリズムの開発の時間や労力が極めて大幅に軽減される。
次に、これまで説明してきたニューロンを用いたＲＮＮからなる制御アルゴリズムと、ロボットとの簡単な組み合わせについていくつか説明する。
図３０には、２ニューロンからなる、正弦波出力を得るＲＮＮ（図２５参照）と、関節が１つだけのロボットが示されている。
このロボットは横に延びる台と、関節モータからの駆動力を受けて回動するアームとからなる。その台とそのアームとの連結部分が関節である。
図３０中のＲＮＮの出力をロボットの関節を動かす関節モータに供給すると、そのロボットのアームを左右に正弦的に周期運動させることができる。
尚、ＲＮＮの出力と関節モータとの間には、様々な回路要素、例えばＲＮＮは実際はプログラムで実現されたものであって、そのプログラムをコンピュータで実行するとデジタル出力が得られるが、これをアナログ信号に変換するＤ／Ａ変換器や、関節モータに電力を供給するためのパワーアンプなどが介在するが、それらの回路要素はここで行なっている説明に関しては本質的ではないので全て省略している。
図３１は、ロボットのアームに任意周期運動を行なわさせる構成を示した図である。
図２６を参照して説明した前述のように、周波数の異なる出力を生成する複数の三角関数生成器を用いることにより任意周期波形の周期信号を生成することができる。
この周期信号をロボットの関節モータに供給することにより、そのアームにその周期信号に応じた周期運動を行なわさせることができる。
図３２は、ロボットのアームに非周期運動を行なわさせる構成を示した図である。
この図３２には、図２８に示した構成と同じ構成のＲＮＮと、関節が１つだけのロボットが示されている。
図２８に示した構成を用いると、任意次元（ｎ次元）の多項式で表わされる非周期関数を実現することができ、その出力で図３２のロボットを駆動することにより、そのロボットのアームにその多項式で実現された非周期運動を行なわさせることができる。
次に、これまで説明したきたニューロンの組合せからなるＲＮＮにより、ＰＩＤ制御を実現した例について説明する。
ＰＩＤ制御は、比例（Ｐ）と積分（Ｉ）と微分（Ｄ）とを組み合わせたフィードバック制御であり、従前より広く使われている制御法である。
図３３は、積分（Ｉ）を除くＰＤ制御の一例を示す図である。
この図３３にも、図３０〜図３２にも示した、関節が１つだけのロボットが示されている。
ここでは、この関節の位置（角度）を測定するセンサと、その関節の動きの速度（角速度）を測定するセンサが備えられている。速度（角速度）センサを備える代わりに位置（角度）センサの出力を微分することにより速度（角速度）情報を得てもよい。
図３３のＲＮＮを式で表わすと、
2004033159.tif 000029
となる。
この（２０）式の右辺の第１項は比例項（Ｐ）、第２項は微分項（Ｄ）である。
図３４は、ＰＩＤ制御の一例を示した図である。
この図３４では、図３２に示すＲＮＮに、さらに積分（Ｉ）の構成が追加されている。この図３３のＲＮＮを式で表わすと、
2004033159.tif 000030
となる。この（２１）式の右辺の第１項および第２項は、図３３を参照して説明した（２０）式の第１項、第２項と同様、比例項（Ｐ）および微分項（Ｄ）であり、（２１）式の右辺の第３項は、積分項（Ｉ）である。
図３５は、ＰＩＤ制御のもう１つの例を示した図である。
上述の図３４の場合、目標位置は固定値のように示されているが、図３５では、目標位置を周期的に変化させている。こうすることにより、関節モータは、ＰＩＤフィードバック制御により、その周期的に変化する目標値に追随するように駆動される。
上記図３３〜図３５に示すように、これまで説明してきたニューロンを使ったＲＮＮにより、ＰＩＤ制御を実現することもできる。
図３６は、ロボットおよびそのロボットを制御する制御アルゴリズム等からなる全体システムの概念図である。
この図３６中のＣＰＧは、Ｃｅｎｔｒａｌ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒの略であり、ここでは、ＲＮＮによる部分ネットワークを指している。多数のＣＰＧが集まって、ロボットを制御するための制御アルゴリズムが構成されている。
この制御アルゴリズムを構成する多数のＣＰＧ（部分ネットワーク）は、それぞれが、制御対象のロボットの、ある１つの運動を分担している。具体例については次の図３７を参照して後に説明する。
ＣＰＧの、未決定の各種係数（各ニューロンの遅れε、重みＣ、初期値等）を決定するにあたっては、ロボットの動作が評価されてその評価値が学習システムに伝えられ、その学習システムで各係数値が決定される。係数値の決定手法については、もう少しあとで説明する。
ロボットの動作は、センサシステムで計測されて制御アルゴリズムに伝えられ、その制御アルゴリズムは、センサシステムからの情報に基づいてロボットが所望の動作を行なうよう、そのロボットを制御する。
図３７は、二足歩行ロボットの足とその足の運動を制御するＲＮＮの模式図である。
ここには、ロボットの関節が円柱で示されており、左右の両足のうちの右足の動きを制御するＲＮＮが示されている。
ここには、ＣＰＧとして、この二足歩行ロボットに前進歩行動作を行なわせるために必要となる、ロールＣＰＧと、リフトＣＰＧと、ピッチＣＰＧが示されている。
ロボットを前進歩行させるときには、左右の足への体重移動が行なわれるが、ロールＣＰＧは、その体重移動のための運動を制御する制御信号を生成する部分ネットワークである。
前進歩行時、左右の足への体重移動は、交互に周期的に行なわれるため、その運動を制御するロールＣＰＧは周期信号を生成するように構成されている。
また、ロボットを前進歩行させるときには、左右の足を交互に上下運動させる必要がある。図３７に示すリフトＣＰＧは、右足を上下運動させるための部分ネットワークである。足の上下運動も周期運動であり、したがってリフトＣＰＧも周期信号を生成するように構成されている。
また、ロボットを前進歩行させるには、左右の足を交互に前進させる必要がある。図３７に示すピッチＣＰＧは、右足を前進運動させるための部分ネットワークである。足を１回前進させる運動は非周期の動作であり、このためピッチＣＰＧは、多項式による非周期信号を生成する部分ネットワークとして構成されている。
リフトＣＰＧの出力は、ロールＣＰＧの出力によりスイッチ制御されている。これは、例えば体重（重心）を十分に左足に移してからでないと右足を持ち上げることができないようにするためである。またこれと同様に、ピッチＣＰＧの出力も、ロールＣＰＧの出力によりスイッチ制御されている。これも同様に、例えば体重（重心）を十分に左足に移してからでないと右足を前進させることができないようにするためのものである。さらに、リフトＣＰＧの出力やピッチＣＰＧの出力は閾値処理がなされている。これは、例えば右足を前進させて足裏が床に接触した後は、それ以上その右足を伸ばそうとしたり前進させたりするのを止めて、その右足が床に接触したときの右足の状態を保持するための措置である。
このようにして周期運動を行なわさせるためのＣＰＧや非周期運動を行なわさせるためのＣＰＧを組み合わせることによって、全体として複雑な運動を実現することができる。
次に、ロボットの制御アルゴリズム構築の処理の流れについて説明する。制御アルゴリズムを構築するには、これまで説明してきた、ＲＮＮを組み立てるだけの処理では足りず、そのＲＮＮに含まれている各種係数（各ニューロンの遅れ、重み、初期値などに関係する係数）を決定する必要がある。ここでは、ＲＮＮからなる制御アルゴリズムを係数値の決定を含めて構築するシステムを、「学習システム」と称する（図３６参照）。
ここでは、ＲＮＮの係数の値を決定するにあたり、考え方の前提として、運動、すなわち関節の位置や角度の時間変化は、非線形方程式の解であるという立場をとる。この非線形方程式の解を求めるために、新たな非線形方程式を利用する方法もある。しかしながら、非線形方程式を用いる方法は、解発生機構そのものに非線形要素が存在するため、上位判断機能などの処理系が意のままに制御することが難しい。そこで、ここでは、運動を逐次近似法で解くことを考える。
天文力学や流体力学においては、非線形方程式を近似的に解く手法として摂動法が知られている。摂動法とは、天文力学等において、非線形方程式を解く際に、可解な線形微分方程式の解を第１近似解としそれを逐次修正しながら近似解を求める手法である。この摂動法において、修正に必要な項を摂動項という。通常、テイラー展開に基づく計算を行なう。天文力学の場合、解くべき方程式は、あらかじめわかっているため、解くべき方程式に展開した解を直接代入し、各次数毎に解くことによって、逐次解を求める。通常の摂動法の揚合、近似度をあげると解は真の解に逐次近づく。
ここでは、上記の考えをロボットの運動の方程式に当てはめて考える。ロボットの運動の非線形方程式は、歩行等の運動を考えると、ロボットの質量等の物性値、関節粘性、モータ最大トルク、床面の摩擦係数や傾斜、および部屋の形状等の非常に複雑な関係式となっていることが予想される。理想的な場合はこのような方程式を構築することができ、理論的に解析できる。しかしながら、ロボットが様々な運動を行うことを考えると、この方程式をすべてあらかじめ知ることは非常に難しい作業である。
そこで、ここでは、解くべき方程式があらかじめわかっている天文力学の場合とは異なり、解くべき方程式を構築しないで問題を解くことを考える。天文力学等で用いられている摂動法は、低い次数から順次に解が得られる。ここでは、これと同様に、解を以下のようにある固有関数で展開して、低い次数から逐次、試行錯誤によってその係数を数値的に求める。満足できる運動が得られるまで次数をあげていく。
2004033159.tif 000031
ｙｉは固有関数、δｉはその係数、ｉは次数である。
この手法を、ここでは、ＮＰ法（Ｎｕｍｅｒｉｃａｌ  Ｐｅｒｔｕｒｂａｔｉｏｎ  ｍｅｔｈｏｄ）と言うことにし、ここでは、ＣＰＧモデルとＮＰ法を併用した運動学習システム（ＣＰＧ／ＮＰ）を説明する。ＣＰＧモデルは、前述したように、基本的な関数である三角関数や多項式を発生することができ、その他説明は省略するが数種の直交関数を発生することができる。これらの基本的な関数を用いて、運動を表現する未知非線形方程式の解を求める。
ｋ番目の関節の運動（位置あるいは角度）をθｋ（ｔ）としたとき、ここでは、ある１つのＣＰＧを、
2004033159.tif 000032
と表現する。
ｃｊ，ｓｊ，ａｊは、ニューロンの遅れ、重み、および初期値に関係する係数である（（１３）式〜（１５）式、（１９）式を参照。）この（２３）式の右辺中の第１項は定数項ｃ０であり、第２項は周期関数の項であり、第３項は非周期関数の項である。ここでは、（２３）式のΣによる積算をばらばらに分解した各項それぞれに対応する各単位ネットワークが生成されているものとする。ここでは、ｊの値の低い項（（２３）式の右辺中の第２項については角周波数ｊωの低い（周期の長い項、（２３）式の右辺中の第３項については、低次の項）から順に係数の値を求め、ネットワークを構成していく。ここでは、先ず、ｃ０を最初に決め、次に（２３）式中の係数ｃ１，ｓ１，ａ１を求める。このとき、他の係数ｃｊ，ｓｊ，ａｊ（ｊ＝２，３，…，ｎ）を全て０とおく。ｃ１，ｓ１，ａ１が求められると、次にｃ２，ｓ２，ａ２を求める。このとき、先に求めたｃ１，ｓ１，ａ１は固定しておき、他の係数ｃｊ，ｓｊ，ａｊ（ｊ＝３，４，…，ｎ）は全て０にしておく。これをｃｊ，ｓｊ，ａｊについて繰り返す。
ＮＰ法では、以上のようにして係数を順次決めていく。
図９に示すロボット制御アルゴリズム構築装置４１０の定義記憶部４１１には、上述の（２３）式の各項に相当する単位ネットワークが全てあらかじめ生成されて記憶されている。あるいは、定義記憶部４１１には、それらの単位ネットワーク生成のアルゴリズムが記憶されていて、制御アルゴリズム制御部４１２で必要な単位アルゴリズムが自動生成されるように構成してもよい。
図３８は、ロボットの運動学習システムの概要を示す図である。
ここでは、先ずオペレータにより、基本運動タイプと初期係数値が与えられる。基本運動タイプとは、今回係数を決定しようとしているＣＰＧが、周期運動タイプのＣＰＧであるが非周期運動タイプのＣＰＧであるということである。周期運動のＣＰＧであることが指示されると、（２３）式の右辺の第１項と第２項のみが有効となり第３項は不要となる。一方、非周期運動のＣＰＧであることが指示されると（２３）式の右辺の第１項と第３項が有効となり、第２項は不要となる。
この図３８中の「アドバイス」は評価関数である。評価関数は、満足できる運動かをどうかを決定するための関数である。複雑な系の場合、評価関数は、「エネルギー最小」、「ロボット本体の安定性」、「高速性」等複数ある。極致問題とするために、ここでは、評価関数Ｅを以下のように複数の評価関数Ｅｉの重み付線形和とする。Ｅｉは２次形式で与えられる非負数であり、ｃｉは評価関数Ｅｉの重みである。ここでは、評価関数Ｅをアドバイスと呼ぶことにする。
2004033159.tif 000033
図９に示すロボット制御アルゴリズム構築装置４１０の制御アルゴリズム生成部４１２には、オペレータにより基本運動タイプと係数の初期値が指定される。先ず、関数ｋの初期位置（初期角度）ｃ０が指定される。このｃ０は、その関節が静止状態（運動を開始する前の状態）にあるとき、あるいはその直前の運動から引き継いだ初期状態にあるときの、その関節の初期位置あるいは初期角度である。次に、例えば基本運動タイプが周期運動タイプであることが指定される。すると、図９のロボット制御アルゴリズム構築装置４１０の制御アルゴリズム生成部４１２では、その指定を受け、定義記憶部４１１から
2004033159.tif 000034
の基本ネットワークを読み出す（あるいはその時点で生成する）。このときの運動の基本式は、初期位置（初期角度）ｃ０を含め、
2004033159.tif 000035
となる。
オペレータからは、その周期運動の基本的な周期（角周波数ω）や、各係数ｃ１，ｓ１の初期値が与えられ、図９のロボット制御アルゴリズム構築装置４１０の係数値決定部４１３は、これらω，ｃ１，ｓ１によりその基本ネットワークを構築する各ニューロンの遅れ、重み、および初期値が仮決定される。
このようにして生成された、初期係数値を持つ基本ネットワークの出力がロボットに与えられ、そのときのロボットの運動が評価される。その評価に応じて係数値が少しずつ修正されその次数の段階での最高の評価が得られるように係数ｃ１，ｓ１が決定される。
ロボットの運動の評価は、オペレータが目視等により行ない、そのオペレータにより係数値を決定してもよいが、上述のアドバイスをあらかじめ決めておき、そのアドバイスに従って、係数値を自動で、あるいはオペレータの意見も含めて半自動で決定してもよい。
（２５）式におけるｃ１，ｓ１が決定されると（ｃ０はそれ以前に既に決定されている）、それに応じて、（２４）式で表わされる基本ネットワークを構成するニューロンの遅れ、重み、および初期値が決定される（（１４）式参照）。図９の制御アルゴリズム生成部４１２は、定義記憶部４１１から次の次数の項を実現する基本ネットワークを読み出し（あるいは生成し）これまでの低い次数の部分ネットワークに結合する。式で示すと、
2004033159.tif 000036
となる。係数ｃ０，ｃ１，ｓ１は既に決定済であり、ここではオペレータにより新たな係数ｃ２，ｓ２の初期値が与えられる。これらの係数ｃ２，ｓ２は、その次数の項を実現する単位ネットワークを構成するニューロンの遅れ、重み、初期値に対応づけられている点は、係数ｃ１，ｓ１の場合と同様である。図９の係数値決定部４１３では、係数ｃ２，ｓ２として初期値が与えられたときの（２６）式に相当する部分ネットワークの出力がロボットに与えられ、そのときのロボットの運動が評価され、その評価がより高まる方向に係数ｃ２，ｓ２の値が調整され、その次数における最高の評価が得られるように係数ｃ２，ｓ２が決定される。
係数ｃ２，ｓ２が決定されると、図９の制御アルゴリズム生成部４１２は、定義記憶部４１１から次の次数の項を実現する基本ネットワークを読み出し（あるいは生成し）、これまで評価の済んでいる（係数が決定されている）部分ネットワークに結合される。式で示すと、
2004033159.tif 000037
となる。
新たな係数ｃ３，ｓ３について初期値が与えられ、上記と同様のプロセスを経ることによりその係数ｃ３，ｓ３の値が決定される。
このようにして、ロボットが必要な精度の運動を行なうことができる次数まで、順次に係数が決定される。
ここでは周期関数を例に挙げて説明したが、非周期関数の係数決定プロセスも同様である。
以上の説明では、係数の初期値は全てオペレータが与えるものとして説明したが、例えば係数の値として任意に定めた初期値あるいは、あらかじめ決められた固定の初期値を自動で与え、その自動で与えた初期値から出発して係数値を順次変化させてその係数の値を決定してもよい。
その初期値の与え方だけでなく、基本運動タイプの指定、基本ネットワークの読み出し（あるいは生成）、およびロボットの運動の評価等の全てをあらかじめプログラムしておくことで、部分ネットワークの生成からその部分ネットワークの係数の決定までを全て自動化してもよい。あるいは、それらのうちの一部をオペレータ操作に委ね、あるいは自動生成の結果をオペレータに提示して承認を受けるなど半自動の装置として実現してもよい。
また、上記では、係数に初期値が与えられたばかりの部分ネットワークの出力をいきなりロボットに与えるように説明したが、その出力を、先ずは図６、図７に示すコンピュータ中に構築されているアルゴリズムとしてのロボットに与えて動作シミュレーションを行ない、ある程度十分な精度で動作することを確認してから、実際のロボットを動かしてみることが好ましい。
図３９は、以上の学習プロセスをまとめたフローチャートである。
先ず、基本運動タイプが与えられる。係数は初期値から出発する（ステップＳ１）。
その初期値から出発した初期運動の係数をＧＡ（遺伝的アルゴリズム）や二分法等、何らかの係数決定アルゴリズムを駆使して決定し（ステップＳ２）、運動タイプに従ってより高次の項を付加してその付加した項の係数に初期値を与え（ステップＳ３）、その高次の項の係数をＧＡや二分法等を用いて決定する（ステップＳ４）。制御対象のロボットの運動の精度が未だ不充分のときは（ステップＳ５）、その運動タイプに従ってさらに高次の項を付加するとともにその付加した高次項の係数に初期値を与え（ステップＳ３）、その高次項の係数をＧＡや二分法等を用いて決定する（ステップＳ４）。これを、ロボットが十分な精度の運動を行なうことができるようになるまで繰り返す。
次に、上記のＣＰＧ／ＮＰ（ＣＰＧの係数を上記のＮＰ法で順次求める方法）とＣＰＧ／ＧＡ（ＣＰＧの係数をＧＡ（遺伝的アルゴリズム）を用いて、一度に求める方法）との比較結果を説明する。
ＣＰＧ／ＧＡでは、すべての係数が同時に求められる。そのため、すべての係数が相互に関係を持つ。動きを少しだけ変更したい場合でも、すべての係数が影響を受け変更に時間がかかることが予想される。ここではもっとも差が出ると考えられる場合として、解の全サーチを行った場合について簡単に考察する。ニューロン値の解像度および結合重みの解像度を共にｎ、最終的なニューロン数とニューロン間の結合数の和をｍとすると、全サーチを行った場合の計算量は、ｎｍ回の試行が必要である。仮に、ＣＰＧ／ＮＰにおいてｊ次に分割して求めたとすると、計算量は、およそｊ×ｎｍ／ｊである。具体的にｎ＝１６，ｍ＝６０，ｊ＝５とすると、ｎｍ＝１．１５×１０７３，ｊ×ｎｍ／ｊ＝１．４×１０１６とおよそ１０５７倍程度の差が出る。実機を用いた実証実験では、ＣＰＧ／ＧＡでは、ＣＰＧ／ＮＰで得たものに相当する解を、現在までに、まだ見つけることができていない。さらに、ＣＰＧ／ＮＰ法では、ＣＰＧ／ＧＡにはない特徴として、各摂動次数の区切りで評価関数を再設定したり、ニューロン数を変化することが容易である事があげられる。
このように、ＣＰＧ／ＮＰの場合、従来法と比べ天文学的な桁数ほど違うレベルで極めて短時間に係数を決定することができる。
図４０は、本発明のロボット制御プログラムの一実施形態の概要を示す模式図である。
ここでは、このロボット制御プログラム５００はＣＤ−ＲＯＭ３００に記憶されており、このＣＤ−ＲＯＭ３００が図６に示すＣＤ−ＲＯＭ装填口１０１ｂから装填され図７のＣＤ−ＲＯＭドライブ１１５によりアクセスされて、そのＣＤ−ＲＯＭ３００に記憶されているロボット制御プログラム５００が、図６，図７に示すコンピュータ１００にインストールされる。そのコンピュータ１００内にインストールされたロボット制御プログラムがそのコンピュータ１００内で実行されると、そのコンピュータ１００は、本発明のロボット制御装置の一実施形態として動作する。
尚、このロボット制御プログラム５００は、ここではＣＤ−ＲＯＭ３００に記憶されている例を示したが、前述のロボット制御アルゴリズム構築プログラム（図８参照）の場合と同様、ＣＤ−ＲＯＭに記憶されている必要はなく、例えばＦＤ等他の可搬型記憶媒体に記憶されてコンピュータ１００にインストールされてもよく、あるいは、他の装置等から通信網（図示せず）を介してコンピュータ１００にインストールされてもよく、あるいは、そのコンピュータ１００のハードディスク（図７参照）等にはじめから記憶されていてもよく、最終的にコンピュータで実行可能となるものであればどのように保存あるいは記憶されていてもよい。
図４０に示すロボット制御プログラム５００は、制御アルゴリズム記憶部５０１とロボット制御部５０２とから構成されている。このロボット制御プログラム５００を構成する各部５０１，５０２の作用は、図４１の説明と合わせて説明する。
図４１は、本発明のロボット制御装置の一実施形態を示すブロック図である。
このロボット制御装置５１０は、図６，図７に示すコンピュータ１００内で図４０に示すロボット制御プログラム５００が実行されることにより、図６，図７に示すコンピュータ１００内に実現するものである。
この図４１のロボット制御装置５１０は、制御アルゴリズム記憶部５１１およびロボット制御部５１２で構成されている。これら制御アルゴリズム記憶部５１１およびロボット制御部５１２は、それぞれ、図４０に示すロボット制御プログラム５００の、制御アルゴリズム記憶部５０１およびロボット制御部５０２に対するが、図４１のロボット制御装置５１０の各部５１１，５１２は、図６、図７のコンピュータ１００のハードウェアおよびそのコンピュータ１００内で実行されるオペレーティングシステム（ＯＳ）およびそのＯＳ上で動作する、図４０に示すロボット制御プログラム５００の各部５０１，５０２との複合で構成されているのに対し、図４０に示すロボット制御プログラム５００の各部５０１，５０２は、それらの複合のうちのアプリケーションプログラム部分のみで構成されている。図４０に示すロボット制御プログラム５００を構成する各部５０１，５０２の、そのロボット制御プログラム５００が図６、図７のコンピュータ１００内で実行されたときの作用は、図４１に示すロボット制御装置５１０を構成する各部５１１，５１２の作用そのものであり、以下、図４１のロボット制御装置５１０の各部５１１，５１２の作用を説明することで、図４０のロボット制御プログラム５００の各部５０１，５０２の作用の説明を兼ねるものとする。
図４１のロボット制御装置５１０は、２つの部材の相対的な位置もしくは姿勢を可変にそれら２つの部材を結合する関節を少なくとも１つ備えたロボットの動作を制御する装置である。前述したように、図６に示すロボット２００は人間の躰の構造に似せた構造を有するヒューマノイド型のロボットであり、人間の手足等に対応する部分に複数の関節を有する。
ここで、この図４１のロボット制御装置５１０を構成する制御アルゴリズム記憶部５１１は、入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも１つ含むとともに信号の流れのループが存在するリカレントニューラルネットワーク（ＲＮＮ）により構築された制御アルゴリズムを記憶するものであり、ロボット制御部５１２は、制御アルゴリズム記憶部５１１に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するものである。
制御アルゴリズム記憶部５１１に記憶されている制御アルゴリズムは、前述のようにして構築され係数についても値が決定された後の制御アルゴリズムである。この制御アルゴリズム記憶部５１１に記憶される制御アルゴリズムの詳細は既に説明済であるため、ここでは重複説明は省略する。
ロボット制御部５１２には、ロボットに備えられた各種センサによる測定値が入力され、ロボット制御部５１２は、制御アルゴリズム記憶部５１１に記憶された制御アルゴリズムに基づくとともにセンサからの測定値に基づいて制御対象のロボットの運動を制御する。
図４２は、本発明のロボットの一実施形態の外観図である。
このロボット６００は、図６のコンピュータ１００で実現しているロボット制御装置を図６に示すロボット２００自身の内部に備えたものに相当する。
すなわち、このロボット６００は、このロボット自身を制御するロボット制御装置６１０を内蔵している。
図４３は、図４２のロボット６００の構成を示すブロック図である。
このロボット６００は、ロボット制御装置６１０とそのロボット制御装置６１０により運動が制御される関節６２０と、その関節の動作を計測するセンサ６３０を備えている。
このロボット６００のロボット制御装置６１０は、制御アルゴリズム記憶部６１１とロボット制御部６１２とからなる。このロボット制御装置６１０は、このロボット制御装置６１０がロボット６００に内蔵されていることを除き、図４１に示すロボット制御装置５１０と同一であり、このロボット制御装置６１０を構成する制御アルゴリズム記憶部６１１およびロボット制御部６１２は、図４１に示すロボット制御装置５１０を構成する制御アルゴリズム記憶部５１１およびロボット制御部５１２とそれぞれ同一の作用を成す。重複説明は省略する。
このように、ロボット制御装置を内蔵したロボットを構成してもよい。
【図１】
2004033159.tif 000039
【図２】
2004033159.tif 000040
【図３】
2004033159.tif 000041
【図４】
2004033159.tif 000042
【図５】
2004033159.tif 000043
【図６】
2004033159.tif 000044
【図７】
2004033159.tif 000045
【図８】
2004033159.tif 000046
【図９】
2004033159.tif 000047
【図１０】
2004033159.tif 000048
【図１１】
2004033159.tif 000049
【図１２】
2004033159.tif 000050
【図１３】
2004033159.tif 000051
【図１４】
2004033159.tif 000052
【図１５】
2004033159.tif 000053
【図１６】
2004033159.tif 000054
【図１７】
2004033159.tif 000055
【図１８】
2004033159.tif 000056
【図１９】
2004033159.tif 000057
【図２０】
2004033159.tif 000058
【図２１】
2004033159.tif 000059
【図２２】
2004033159.tif 000060
【図２３】
2004033159.tif 000061
【図２４】
2004033159.tif 000062
【図２５】
2004033159.tif 000063
【図２６】
2004033159.tif 000064
【図２７】
2004033159.tif 000065
【図２８】
2004033159.tif 000066
【図２９】
2004033159.tif 000067
【図３０】
2004033159.tif 000068
【図３１】
2004033159.tif 000069
【図３２】
2004033159.tif 000070
【図３３】
2004033159.tif 000071
【図３４】
2004033159.tif 000072
【図３５】
2004033159.tif 000073
【図３６】
2004033159.tif 000074
【図３７】
2004033159.tif 000075
【図３８】
2004033159.tif 000076
【図３９】
2004033159.tif 000077
【図４０】
2004033159.tif 000078
【図４１】
2004033159.tif 000079
【図４２】
2004033159.tif 000080
【図４３】
2004033159.tif 000081
【国際調査報告】
2004033159.tif 000082
2004033159.tif 000083