JPWO2004033159A1 - ロボット制御アルゴリズム構築装置、ロボット制御アルゴリズム構築プログラムロボット制御装置、ロボット制御プログラム、およびロボット - Google Patents
ロボット制御アルゴリズム構築装置、ロボット制御アルゴリズム構築プログラムロボット制御装置、ロボット制御プログラム、およびロボット Download PDFInfo
- Publication number
- JPWO2004033159A1 JPWO2004033159A1 JP2004542801A JP2004542801A JPWO2004033159A1 JP WO2004033159 A1 JPWO2004033159 A1 JP WO2004033159A1 JP 2004542801 A JP2004542801 A JP 2004542801A JP 2004542801 A JP2004542801 A JP 2004542801A JP WO2004033159 A1 JPWO2004033159 A1 JP WO2004033159A1
- Authority
- JP
- Japan
- Prior art keywords
- control algorithm
- robot
- neuron
- unit
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 363
- 238000010276 construction Methods 0.000 title claims description 54
- 210000002569 neuron Anatomy 0.000 claims abstract description 398
- 238000013528 artificial neural network Methods 0.000 claims abstract description 43
- 230000000306 recurrent effect Effects 0.000 claims abstract description 39
- 230000006870 function Effects 0.000 claims description 84
- 230000000737 periodic effect Effects 0.000 claims description 79
- 230000010365 information processing Effects 0.000 claims description 18
- 230000036544 posture Effects 0.000 claims description 17
- 230000033001 locomotion Effects 0.000 abstract description 92
- 238000000034 method Methods 0.000 abstract description 64
- 238000010586 diagram Methods 0.000 description 74
- 238000011156 evaluation Methods 0.000 description 21
- 230000008859 change Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 230000010354 integration Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000005484 gravity Effects 0.000 description 7
- 210000002161 motor neuron Anatomy 0.000 description 7
- 238000004088 simulation Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000002068 genetic effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000002131 composite material Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/008—Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33025—Recurrent artificial neural network
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39313—Ann for joint control, ann for trajectory optimization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Robotics (AREA)
- Automation & Control Theory (AREA)
- Fuzzy Systems (AREA)
- Mechanical Engineering (AREA)
- Feedback Control In General (AREA)
- Manipulator (AREA)
Abstract
本発明は、ロボットの運動を制御する制御アルゴリズムを構築する装置やその構築された制御アルゴリズムにしたがってロボットの運動を制御する装置等に関し、従来のMZP法等、力学的な方程式を解く方式と比べ制御アルゴリズム作成のコストや時間を大きく下げることを目的とし、入力に対すアナログ的な時間遅れを伴う出力を生成するニューロンを含むリカレントニューラルネットワーク(RNN)により制御アルゴリズムを構成し、そのRNNの係数を低次の項から高次の項に向かって順次決定していく。
Description
本発明は、ロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置、コンピュータ等の情報処理装置をロボット制御アルゴリズム構築装置として動作させるロボット制御アルゴリズム構築プログラム、ロボットの動作を制御するロボット制御装置、コンピュータ等の情報処理装置をロボット制御装置として動作させるロボット制御プログラム、および、ロボットに関する。
近年、人間共存型のロボットの研究が盛んに行なわれている(例えば非特許文献1,2参照)。近い将来、街にロボットが進出し、人間を助けるために働いている風景を想像することが容易になりつつある。また、それらのロボットは、各々まったく異なる作業をしていることであろうと想像できる。
ここで、近年開発が進んでいる二足歩行ロボットは、ZMP法(Zoro Momentum Point method)と呼ばれる制御アルゴリズムで動作するように構成されている。
図1は、ZMP法の原理説明図である。
ロボットが静止しているときは、そのロボットの重心がちょうど足裏の真上に来るように上体を起こすことによって立ったままの姿勢を保つことができる。
これに対し、そのロボットが例えば前進しようとしたとき、重心が足裏の真上にあるままの状態では、後ろに倒れることになる。
これは、ZMP(動的重心点)が後ろに位置してしまうためである。前進するときに倒れないようにするには、上体を前方に傾けて上体を加速するとそれに対し復元力が働き、また床からの反力やそのロボットの重心点も考慮し、目標点にZMPが位置するように、上体の傾きの程度等が調節される。このようにして、ZPM(動的重心点)が常に目標位置に来るように制御することにより、二足歩行ロボットは前進することができる。
このMZP法に基づく制御アルゴリズムは、極めて複雑な力学的、数学的演算を必要とする制御アルゴリズムであり、その開発にも多大のコストと時間を要する。また、このZMP法を採用すると、完成されたいわば能役者の歩き方となり、歩き方1つとっても‘人間らしさ’とは少し異なる印象の歩き方となりがちである。
また、ZMP法を採用した二足歩行ロボットに限らず、現在、大半のロボットは、手続き型言語によってある特定の作業を行うためのソフトウェアが作られている。そのため、まったく異なった作業を行うには、このソフトウェアを取り替える必要がある。要するに制御アルゴリズムを組み直すことが必要となる。作業に必要なアルゴリズムを作業毎に作っていては、多数のソフトウェアが必要になりコストが極めて高くつくことが予想される。ミドルウェアの開発等を行なうことによりコストダウンを図ることも1つの方法ではあるが、またひとつの方法は、ロボットあるいはロボット制御装置が自ら学習して各々の作業を覚えることである。
この自ら学習する学習システムの代表例としてニューラルネットワークが知られている。
図2は、階層化ニューラルネットワーク(LNN:Layered Neural Network)のモデルを示した図である。
ここでは、入力層、中間層、出力層の各層にニューロンが配置されており、このLNNへの入力は全て入力層のニューロンで受け取られ、入力層の各ニューロンの出力が中間層の各ニューロンに伝えられ、中間層の各ニューロンの出力が出力層のニューロンに伝えられ、その出力層のニューロンからの出力がこのLNNの出力となる。
図3は、図2に示すLNNを構成する各ニューロンのモデルを示す図、図4は、そのニューロンの入出力の関係を規定するシグモイド関数を示す図である。
図3に示すように、前段側から複数の入力X1,X2,X3,…,Xiがあると、各結合強度をW1,W2,W3,…,Wiとし、このニューロンは、
を全体としての入力として受け取り、このニューロンでは、図4のシグモイド関数
に従う出力Y=f(X)が生成される。
このLNNに関しては、結合強度W1,W2,W3,…,Wiと呼ばれる各係数の値を決定する必要がある。この係数の決定方法としてBP法(Back Propagation法)が知られており、いわゆる教師付き、教師なし学習など様々な学習法が存在する。
このLNNは、基本的に入力にフィルタをかけて出力するものであり、BP法によってフィルタの係数(上記の結合係数W1,W2,W3,…,Wi)を適切に定めることはできるものの、このLNNは、例えば周期運動、非周期運動に相当する出力を生成することはできず、ロボットの動作制御には本質的に不向きである。
ニューラルネットワークのもう1つのモデルとしてリカレントニューラルネットワーク(RNN:Recurrent Neural Network)が知られている。
図5は、RNNのモデルを示す図である。
図2のLNNは、入力側から出力側に向かって整然と信号が流れて行くのに対し、図5のRNNは、入力側のニューロンから出力側のニューロンに向かって信号が伝えられるだけでなく、出力側のニューロンから入力側のニューロンに向かって信号が伝えられることにより、信号の流れのループが存在する。
このRNNは、盛んに研究されてはいるが、例えば上述のLNNやBP法のような、ニューロンの組合せ方(信号の伝搬のルートの決め方)や学習の仕方(係数の値の決め方)としての決定的な手法は従来見い出されていない。
Jiang Shan,Fumio Nagashima:Biologically Inspired Spinal locomotion Controller for Humanoid Robot,第19回日本ロボット学会学術講演会,P.517−518(2001) Taga G.,Miyake Y.,Yamaguchi Y.,Shimizu H.:Generation and Coordination of Bipedal Locomotion through Global Entrainment(1991)
ここで、近年開発が進んでいる二足歩行ロボットは、ZMP法(Zoro Momentum Point method)と呼ばれる制御アルゴリズムで動作するように構成されている。
図1は、ZMP法の原理説明図である。
ロボットが静止しているときは、そのロボットの重心がちょうど足裏の真上に来るように上体を起こすことによって立ったままの姿勢を保つことができる。
これに対し、そのロボットが例えば前進しようとしたとき、重心が足裏の真上にあるままの状態では、後ろに倒れることになる。
これは、ZMP(動的重心点)が後ろに位置してしまうためである。前進するときに倒れないようにするには、上体を前方に傾けて上体を加速するとそれに対し復元力が働き、また床からの反力やそのロボットの重心点も考慮し、目標点にZMPが位置するように、上体の傾きの程度等が調節される。このようにして、ZPM(動的重心点)が常に目標位置に来るように制御することにより、二足歩行ロボットは前進することができる。
このMZP法に基づく制御アルゴリズムは、極めて複雑な力学的、数学的演算を必要とする制御アルゴリズムであり、その開発にも多大のコストと時間を要する。また、このZMP法を採用すると、完成されたいわば能役者の歩き方となり、歩き方1つとっても‘人間らしさ’とは少し異なる印象の歩き方となりがちである。
また、ZMP法を採用した二足歩行ロボットに限らず、現在、大半のロボットは、手続き型言語によってある特定の作業を行うためのソフトウェアが作られている。そのため、まったく異なった作業を行うには、このソフトウェアを取り替える必要がある。要するに制御アルゴリズムを組み直すことが必要となる。作業に必要なアルゴリズムを作業毎に作っていては、多数のソフトウェアが必要になりコストが極めて高くつくことが予想される。ミドルウェアの開発等を行なうことによりコストダウンを図ることも1つの方法ではあるが、またひとつの方法は、ロボットあるいはロボット制御装置が自ら学習して各々の作業を覚えることである。
この自ら学習する学習システムの代表例としてニューラルネットワークが知られている。
図2は、階層化ニューラルネットワーク(LNN:Layered Neural Network)のモデルを示した図である。
ここでは、入力層、中間層、出力層の各層にニューロンが配置されており、このLNNへの入力は全て入力層のニューロンで受け取られ、入力層の各ニューロンの出力が中間層の各ニューロンに伝えられ、中間層の各ニューロンの出力が出力層のニューロンに伝えられ、その出力層のニューロンからの出力がこのLNNの出力となる。
図3は、図2に示すLNNを構成する各ニューロンのモデルを示す図、図4は、そのニューロンの入出力の関係を規定するシグモイド関数を示す図である。
図3に示すように、前段側から複数の入力X1,X2,X3,…,Xiがあると、各結合強度をW1,W2,W3,…,Wiとし、このニューロンは、
を全体としての入力として受け取り、このニューロンでは、図4のシグモイド関数
に従う出力Y=f(X)が生成される。
このLNNに関しては、結合強度W1,W2,W3,…,Wiと呼ばれる各係数の値を決定する必要がある。この係数の決定方法としてBP法(Back Propagation法)が知られており、いわゆる教師付き、教師なし学習など様々な学習法が存在する。
このLNNは、基本的に入力にフィルタをかけて出力するものであり、BP法によってフィルタの係数(上記の結合係数W1,W2,W3,…,Wi)を適切に定めることはできるものの、このLNNは、例えば周期運動、非周期運動に相当する出力を生成することはできず、ロボットの動作制御には本質的に不向きである。
ニューラルネットワークのもう1つのモデルとしてリカレントニューラルネットワーク(RNN:Recurrent Neural Network)が知られている。
図5は、RNNのモデルを示す図である。
図2のLNNは、入力側から出力側に向かって整然と信号が流れて行くのに対し、図5のRNNは、入力側のニューロンから出力側のニューロンに向かって信号が伝えられるだけでなく、出力側のニューロンから入力側のニューロンに向かって信号が伝えられることにより、信号の流れのループが存在する。
このRNNは、盛んに研究されてはいるが、例えば上述のLNNやBP法のような、ニューロンの組合せ方(信号の伝搬のルートの決め方)や学習の仕方(係数の値の決め方)としての決定的な手法は従来見い出されていない。
Jiang Shan,Fumio Nagashima:Biologically Inspired Spinal locomotion Controller for Humanoid Robot,第19回日本ロボット学会学術講演会,P.517−518(2001) Taga G.,Miyake Y.,Yamaguchi Y.,Shimizu H.:Generation and Coordination of Bipedal Locomotion through Global Entrainment(1991)
本発明は、上記事情に鑑み、従来のMZP法等、力学的な方程式を解く方式と比べ制御アルゴリズム作成のコストや時間を大きく下げることのできるロボット制御アルゴリズム構築装置およびロボット制御アルゴリズム構築プログラム、およびコストの安いロボット制御装置、ロボット制御プログラム、およびロボットを提供することを目的とする。
上記目的を達成する本発明のロボット制御アルゴリズム構築装置は、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
定義記憶部に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたことを特徴とする。
ここで、上記の「ロボット」は、「2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えた」ものであればよく、例えばこの定義に合致するマニピュレータ等もここでいうロボットに該当する。
また、上記の「アナログ的な遅れ」とは、入力の値変化に対して出力の値が滑らかに遅れて変化するという現象を伴う遅れをいう。
本発明のロボット制御アルゴリズム構築装置は、図5を参照して説明した、信号のループを有するリカレントニューラルネットワークを採用した制御アルゴリズムを構築するものであるが、このリカレントニューラルネットワークを構成するニューロンの中に、入力に基づいて上記の定義におけるアナログ的な遅れを伴う出力を生成する遅れニューロンを含ませることにより、例えば様々な周期の三角関数を実現して任意の波形の周期信号を生成したり、多項式を実現して様々な波形の非周期信号を生成することができ、上記のように定義されたニューロンを用いて制御目的に合致したリカレントニューラルネットワークを構築することにより、例えばZMP法等、厖大な力学的演算を行なう従来の制御アルゴリズムと比べ同等の制御を行なう制御アルゴリズムを極めて容易に構築することができる。
ここで、上記制御アルゴリズム生成部は、上記制御アルゴリズムをオペレータの操作に応じて決定するものであってもよいが、例えば後述する実施形態で説明するように高次の項に対応する部分ネットワークを順次自動生成するなど、上記制御アルゴリズムを生成するための生成アルゴリズムをあらかじめ定めておいて、上記制御アルゴリズムを自動生成するものであってもよい。
また、上記係数値決定部は、上記係数の値を、オペレータの操作に応じて決定するものであってもよく、あるいは、上記係数の値を、制御対象のロボットの動作を評価する評価関数に基づいて決定するものであってもよく、あるいはそれらの組合せであってもよい。
また、上記定義記憶部は、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従って出力V1を生成するというニューロンの定義を記憶するものであることが好ましい。
上記の定義における「アナログ的な遅れ」をできるだけ単純な数式で表現すると、上記(3)式のように表現することができ、上記の定義における「アナログ的な遅れ」を表現するにあたり、上記(3)式よりも複雑な式を採用する必要性も見あたらないことから、「アナログ的な遅れ」を伴う出力を生成するニューロンの定義として上記(3)式を採用することが好ましい。
ここでのニューロンは、基本的には例えば上記(3)式のように表現されるが、以下のようないくつかの変形を含ませることが好ましい。
すなわち、上記定義記憶部に記憶された定義には、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
上記定義記憶部に記憶された定義に、上記の、入力に重みを付するニューロンの定義を含む場合に、その定義記憶部に記憶された定義には、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムの生成が自在なものであることが、さらに好ましい。
また、上記定義記憶部に記憶された定義には、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
ここで、「入力が閾値を越える場合」には、複数の態様がある。すなわち、ここには、入力が閾値よりも小さい値のときに入力が有効となり、入力が閾値を小さい値から大きい値の方に越えると閾値が有効になるという、閾値が上限値となる態様や、これとは逆に、入力が閾値よりも大きい値のときに入力が有効となり、入力が閾値を大きい値から小さい値の方に越えると閾値が有効になるという、閾値が下限値となる態様がある。ここでは、これら双方の態様のニューロンを定義しておくことが好ましい。
さらに、上記定義記憶部に記憶された定義には、2つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
また、上記本発明のロボット制御アルゴリズム構築装置において、上記制御アルゴリズム生成部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に、その周期関数は、相互に異なる周期の複数の単位周期関数の結合からなるものであって、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましい。
上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって、例えば1つの単位ネットワークずつなど順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
ある程度複雑なロボットを制御するための制御アルゴリズムを構築すると、その制御アルゴリズム中には、非常に多くの係数が含まれ、制御アルゴリズムを完成させるには、それら非常に多数の係数の全てについて値を決定する必要がある。係数の値を決定する方法として例えば前述のLNNの場合はBP法を採用することができるが、このBP法はLNNに限って適用可能なものであり、本発明で採用しているRNN(リカレントニューラルネットワーク)の場合は適用不能である。
係数の値を決定する他の手法として、例えば二分法や遺伝的アルゴリズム(GA:Genetic Algorithm)などが知られている。二分法は、基本的には、係数の値として取り得る第1の範囲内のほぼ中央に位置する値を代入して動作させることにより、その係数の最適な値はその代入した値より大きい値であるか小さい値であるかを評価し、その係数に、今度は、その評価により得られた大きい値(あるいは小さい値)が存在する、上記の第1の範囲の1/2の第2の範囲内のほぼ中央に位置する値を代入して評価し、これを繰り返すことにより範囲を狭めていき、最終的にその係数の値を決定する方法である。一方、遺伝的アルゴリズムは、係数に少しずつ異なる値を代入して評価したり、突然変異のように全く異なる値を代入して評価したり、あるいは、遺伝子が子供に遺伝するかのように、ある程度良好な評価が得られた2つの値の中間的な値を代入して評価したりなど、生物の遺伝をモデルにして係数の値を様々に変化させて評価し、最終的に適切な値を決定する手法である。
これら二分法やGAを適用した場合であっても、同時に決定すべき係数の数が多いと、それらの係数を決めるのに極めて多大の時間を要する結果とする。
これに対し上記のように、周期の長い単位周期関数を実現する単位ネットワークから周期の短い単位周期関数を実現する単位ネットワークへと順次に係数の値を決定していくことにより、同時に決定する必要のある係数の数を格段に減らすことができ、係数値決定のプロセスを単位ネットワークの数と同数繰り返したとしても、全ての係数の値を同時に決定しようとした場合と比べ、それらの係数の決定に要する時間は、後述する例では1057倍程度もの天文学的な数字で表されるほどの差が生じることになる。また、このように、周期の長い単位周期関数を実現する単位ネットワークから周期の短い単位周期関数を実現する単位ネットワークへと順次に係数の値を決定していくと、1つの単位ネットワークの係数を決定していくたびに制御対象のロボットの動きを所望の滑らかな動きに近づかせることができ、ロボットの動きの精度を所望の精度まで順次向上させていくことができる。
また、上記本発明のロボット制御アルゴリズム構築装置において、上記制御アルゴリズム生成部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、多項式の各項を実現し各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましい。
上記制御アルゴリズム生成部により上記複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、上記係数値決定部は、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
周期関数(ロボットの周期的な動作)に関する上述の説明は、多項式で表現される非周期関数(ロボットの非周期的な動作)に関しても成り立つ。多項式の場合は、より次数の低い項に対応する単位ネットワークから、より次数の高い項に対応する単位ネットワークに向かって順次に、各単位ネットワークの係数値を決定していくことになる。
また、上記目的を達成する本発明のロボット制御アルゴリズム構築プログラムは、プログラムを実行する情報処理装置内で実行され、その情報処理装置を、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置として動作させるロボット制御アルゴリズム構築プログラムであって、
上記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
定義記憶部に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたロボット制御アルゴリズム構築装置として動作させることを特徴とする。
本発明のロボット制御アルゴリズム構築プログラムは、コンピュータ等の情報処理装置を、本発明のロボット制御アルゴリズム構築装置として動作させるものであり、本発明のロボット制御アルゴリズム構築装置の各種態様は、その態様を実現するための、本発明ロボット制御アルゴリズム構築プログラムの態様として成立する。
すなわち、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、上記制御アルゴリズムをオペレータの操作に応じて決定するものであってもよいが、例えば後述する実施形態で説明するように高次の項に対応する部分ネットワークを順次自動生成するなど、上記制御アルゴリズムを生成するための生成アルゴリズムをあらかじめ定めておいて、上記制御アルゴリズムを自動生成するものであってもよい。
また、上記係数値決定部は、上記係数の値を、オペレータの操作に応じて決定するものであるものであってもよく、あるいは、上記係数値決定部は、上記係数の値を、制御対象のロボットの動作を評価する評価関数に基づいて決定するものであってもよく、あるいはそれらの組合せであってもよい。
また、上記定義記憶部は、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従って出力V1を生成するというニューロンの定義を記憶するものであることが好ましく、また、
上記定義記憶部に記憶された定義には、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
ここで、上記定義記憶部に記憶された定義に、上記の、入力に重みを付するニューロンの定義を含む場合に、その上記定義記憶部に記憶された定義には、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
また、上記定義記憶部に記憶された定義には、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、さらに、
上記定義記憶部に記憶された定義には、2つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムの生成が自在なものであることも好ましい形態である。
さらに、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合にその周期関数は、相互に異なる周期の複数の単位周期関数の結合からなるものであって、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましく、さらに、上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
さらに、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、多項式の各項を実現し各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましく、この場合にさらに、上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
また、本発明のロボット制御装置は、2つの部材の相対的な位置もしくは姿勢を可変にそれらの2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するロボット制御装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたことを特徴とする。
本発明のロボット制御装置は、例えば本発明のロボット制御アルゴリズム構築装置等を用いて構築した制御アルゴリズム、すなわち、上述の定義における遅れニューロンを有するRNNにより構築された制御アルゴリズムを記憶しておき、その記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するものであり、制御アルゴリズムが安価に供給できることから、このロボット制御装置も安価に構成することができる。
ここで、本発明のロボット制御装置において、上記リカレントニューラルネットワークを構成するニューロンは、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従う出力V1を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボット制御装置において、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、2つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムを記憶するものであるこも好ましい形態である。
さらに、本発明のロボット制御装置において、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボット制御装置において、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
尚、このロボット制御装置は、ロボットの動作シミュレーションを行なうロボットシミュレーション装置内に実現されたアルゴリズムとしてのロボットを制御対象とするものであってもよく、あるいは、このロボット制御装置は、ハードウェア的に製作された現実のロボットを制御対象とするものであってもよい。
また、上記目的を達成する本発明のロボット制御プログラムは、プログラムを実行する情報処理装置内で実行され、その情報処理装置を、2つの部材の相対的な位置もしくは姿勢を可変にそれらの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するロボット制御装置として動作させるロボット制御プログラムであって、
上記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれらのニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたロボット制御装置として動作させることを特徴とする。
本発明のロボット制御プログラムは、コンピュータ等の情報処理装置を本発明のロボット制御装置として動作させるものであり、本発明のロボット制御装置の各種態様は、その各種態様を実現する、本発明のロボット制御プログラムの態様として成立する。
すなわち、本発明のロボット制御プログラムにおいて、上記リカレントニューラルネットワークを構成するニューロンは、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従う出力V1を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボット制御プログラムにおいて、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、2つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムを記憶するものであることも好ましい形態である。
さらに、本発明のロボット制御プログラムにおいて、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボット制御プログラムにおいて、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
尚、このロボット制御プログラムは、上記情報処理装置を、ロボットの動作シミュレーションを行なうロボットシミュレーション装置内に実現されたアルゴリズムとしてのロボットを制御対象とするロボット制御装置として動作させるものであってもよく、あるいは、このロボット制御プログラムは、上記情報処理装置を、ハードウェア的に製作された現実のロボットを制御対象とするロボット制御装置として動作させるものであってもよい。
さらに、上記目的を達成する本発明のロボットは、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットにおいて、
このロボットの動作を制御するロボット制御装置を備え、
そのロボット制御装置が、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いてこのロボットの動作を制御するロボット制御部とを備えたことを特徴とする。
本発明のロボットは、本発明のロボット制御装置がそのロボット制御装置により制御される対象のロボットに組み込まれた構成のものであり、本発明のロボットには、本発明のロボット制御装置の各種態様がそのまま含まれる。
すなわち、本発明のロボットにおいて、上記リカレントニューラルネットワークを構成するニューロンは、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従う出力V1を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボットにおいて、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、2つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムを記憶するものであるこも好ましい形態である。
さらに、本発明のロボットにおいて、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボットにおいて、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
上記目的を達成する本発明のロボット制御アルゴリズム構築装置は、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
定義記憶部に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたことを特徴とする。
ここで、上記の「ロボット」は、「2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えた」ものであればよく、例えばこの定義に合致するマニピュレータ等もここでいうロボットに該当する。
また、上記の「アナログ的な遅れ」とは、入力の値変化に対して出力の値が滑らかに遅れて変化するという現象を伴う遅れをいう。
本発明のロボット制御アルゴリズム構築装置は、図5を参照して説明した、信号のループを有するリカレントニューラルネットワークを採用した制御アルゴリズムを構築するものであるが、このリカレントニューラルネットワークを構成するニューロンの中に、入力に基づいて上記の定義におけるアナログ的な遅れを伴う出力を生成する遅れニューロンを含ませることにより、例えば様々な周期の三角関数を実現して任意の波形の周期信号を生成したり、多項式を実現して様々な波形の非周期信号を生成することができ、上記のように定義されたニューロンを用いて制御目的に合致したリカレントニューラルネットワークを構築することにより、例えばZMP法等、厖大な力学的演算を行なう従来の制御アルゴリズムと比べ同等の制御を行なう制御アルゴリズムを極めて容易に構築することができる。
ここで、上記制御アルゴリズム生成部は、上記制御アルゴリズムをオペレータの操作に応じて決定するものであってもよいが、例えば後述する実施形態で説明するように高次の項に対応する部分ネットワークを順次自動生成するなど、上記制御アルゴリズムを生成するための生成アルゴリズムをあらかじめ定めておいて、上記制御アルゴリズムを自動生成するものであってもよい。
また、上記係数値決定部は、上記係数の値を、オペレータの操作に応じて決定するものであってもよく、あるいは、上記係数の値を、制御対象のロボットの動作を評価する評価関数に基づいて決定するものであってもよく、あるいはそれらの組合せであってもよい。
また、上記定義記憶部は、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従って出力V1を生成するというニューロンの定義を記憶するものであることが好ましい。
上記の定義における「アナログ的な遅れ」をできるだけ単純な数式で表現すると、上記(3)式のように表現することができ、上記の定義における「アナログ的な遅れ」を表現するにあたり、上記(3)式よりも複雑な式を採用する必要性も見あたらないことから、「アナログ的な遅れ」を伴う出力を生成するニューロンの定義として上記(3)式を採用することが好ましい。
ここでのニューロンは、基本的には例えば上記(3)式のように表現されるが、以下のようないくつかの変形を含ませることが好ましい。
すなわち、上記定義記憶部に記憶された定義には、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
上記定義記憶部に記憶された定義に、上記の、入力に重みを付するニューロンの定義を含む場合に、その定義記憶部に記憶された定義には、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムの生成が自在なものであることが、さらに好ましい。
また、上記定義記憶部に記憶された定義には、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
ここで、「入力が閾値を越える場合」には、複数の態様がある。すなわち、ここには、入力が閾値よりも小さい値のときに入力が有効となり、入力が閾値を小さい値から大きい値の方に越えると閾値が有効になるという、閾値が上限値となる態様や、これとは逆に、入力が閾値よりも大きい値のときに入力が有効となり、入力が閾値を大きい値から小さい値の方に越えると閾値が有効になるという、閾値が下限値となる態様がある。ここでは、これら双方の態様のニューロンを定義しておくことが好ましい。
さらに、上記定義記憶部に記憶された定義には、2つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
また、上記本発明のロボット制御アルゴリズム構築装置において、上記制御アルゴリズム生成部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に、その周期関数は、相互に異なる周期の複数の単位周期関数の結合からなるものであって、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましい。
上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって、例えば1つの単位ネットワークずつなど順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
ある程度複雑なロボットを制御するための制御アルゴリズムを構築すると、その制御アルゴリズム中には、非常に多くの係数が含まれ、制御アルゴリズムを完成させるには、それら非常に多数の係数の全てについて値を決定する必要がある。係数の値を決定する方法として例えば前述のLNNの場合はBP法を採用することができるが、このBP法はLNNに限って適用可能なものであり、本発明で採用しているRNN(リカレントニューラルネットワーク)の場合は適用不能である。
係数の値を決定する他の手法として、例えば二分法や遺伝的アルゴリズム(GA:Genetic Algorithm)などが知られている。二分法は、基本的には、係数の値として取り得る第1の範囲内のほぼ中央に位置する値を代入して動作させることにより、その係数の最適な値はその代入した値より大きい値であるか小さい値であるかを評価し、その係数に、今度は、その評価により得られた大きい値(あるいは小さい値)が存在する、上記の第1の範囲の1/2の第2の範囲内のほぼ中央に位置する値を代入して評価し、これを繰り返すことにより範囲を狭めていき、最終的にその係数の値を決定する方法である。一方、遺伝的アルゴリズムは、係数に少しずつ異なる値を代入して評価したり、突然変異のように全く異なる値を代入して評価したり、あるいは、遺伝子が子供に遺伝するかのように、ある程度良好な評価が得られた2つの値の中間的な値を代入して評価したりなど、生物の遺伝をモデルにして係数の値を様々に変化させて評価し、最終的に適切な値を決定する手法である。
これら二分法やGAを適用した場合であっても、同時に決定すべき係数の数が多いと、それらの係数を決めるのに極めて多大の時間を要する結果とする。
これに対し上記のように、周期の長い単位周期関数を実現する単位ネットワークから周期の短い単位周期関数を実現する単位ネットワークへと順次に係数の値を決定していくことにより、同時に決定する必要のある係数の数を格段に減らすことができ、係数値決定のプロセスを単位ネットワークの数と同数繰り返したとしても、全ての係数の値を同時に決定しようとした場合と比べ、それらの係数の決定に要する時間は、後述する例では1057倍程度もの天文学的な数字で表されるほどの差が生じることになる。また、このように、周期の長い単位周期関数を実現する単位ネットワークから周期の短い単位周期関数を実現する単位ネットワークへと順次に係数の値を決定していくと、1つの単位ネットワークの係数を決定していくたびに制御対象のロボットの動きを所望の滑らかな動きに近づかせることができ、ロボットの動きの精度を所望の精度まで順次向上させていくことができる。
また、上記本発明のロボット制御アルゴリズム構築装置において、上記制御アルゴリズム生成部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、多項式の各項を実現し各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましい。
上記制御アルゴリズム生成部により上記複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、上記係数値決定部は、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
周期関数(ロボットの周期的な動作)に関する上述の説明は、多項式で表現される非周期関数(ロボットの非周期的な動作)に関しても成り立つ。多項式の場合は、より次数の低い項に対応する単位ネットワークから、より次数の高い項に対応する単位ネットワークに向かって順次に、各単位ネットワークの係数値を決定していくことになる。
また、上記目的を達成する本発明のロボット制御アルゴリズム構築プログラムは、プログラムを実行する情報処理装置内で実行され、その情報処理装置を、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置として動作させるロボット制御アルゴリズム構築プログラムであって、
上記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
定義記憶部に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたロボット制御アルゴリズム構築装置として動作させることを特徴とする。
本発明のロボット制御アルゴリズム構築プログラムは、コンピュータ等の情報処理装置を、本発明のロボット制御アルゴリズム構築装置として動作させるものであり、本発明のロボット制御アルゴリズム構築装置の各種態様は、その態様を実現するための、本発明ロボット制御アルゴリズム構築プログラムの態様として成立する。
すなわち、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、上記制御アルゴリズムをオペレータの操作に応じて決定するものであってもよいが、例えば後述する実施形態で説明するように高次の項に対応する部分ネットワークを順次自動生成するなど、上記制御アルゴリズムを生成するための生成アルゴリズムをあらかじめ定めておいて、上記制御アルゴリズムを自動生成するものであってもよい。
また、上記係数値決定部は、上記係数の値を、オペレータの操作に応じて決定するものであるものであってもよく、あるいは、上記係数値決定部は、上記係数の値を、制御対象のロボットの動作を評価する評価関数に基づいて決定するものであってもよく、あるいはそれらの組合せであってもよい。
また、上記定義記憶部は、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従って出力V1を生成するというニューロンの定義を記憶するものであることが好ましく、また、
上記定義記憶部に記憶された定義には、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
ここで、上記定義記憶部に記憶された定義に、上記の、入力に重みを付するニューロンの定義を含む場合に、その上記定義記憶部に記憶された定義には、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましい。
また、上記定義記憶部に記憶された定義には、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、また、
上記定義記憶部に記憶された定義には、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、上記制御アルゴリズム生成部は、その定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることが好ましく、さらに、
上記定義記憶部に記憶された定義には、2つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、上記制御アルゴリズム生成部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムの生成が自在なものであることも好ましい形態である。
さらに、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合にその周期関数は、相互に異なる周期の複数の単位周期関数の結合からなるものであって、上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましく、さらに、上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
さらに、上記本発明のロボット制御アルゴリズム構築プログラムにおいて、上記制御アルゴリズム生成部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであり、この場合に上記制御アルゴリズム生成部は、上記部分ネットワークを生成するにあたり、多項式の各項を実現し各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることが好ましく、この場合にさらに、上記係数値決定部は、上記制御アルゴリズム生成部により複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、その部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることが好ましい。
また、本発明のロボット制御装置は、2つの部材の相対的な位置もしくは姿勢を可変にそれらの2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するロボット制御装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたことを特徴とする。
本発明のロボット制御装置は、例えば本発明のロボット制御アルゴリズム構築装置等を用いて構築した制御アルゴリズム、すなわち、上述の定義における遅れニューロンを有するRNNにより構築された制御アルゴリズムを記憶しておき、その記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するものであり、制御アルゴリズムが安価に供給できることから、このロボット制御装置も安価に構成することができる。
ここで、本発明のロボット制御装置において、上記リカレントニューラルネットワークを構成するニューロンは、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従う出力V1を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボット制御装置において、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、2つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムを記憶するものであるこも好ましい形態である。
さらに、本発明のロボット制御装置において、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボット制御装置において、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
尚、このロボット制御装置は、ロボットの動作シミュレーションを行なうロボットシミュレーション装置内に実現されたアルゴリズムとしてのロボットを制御対象とするものであってもよく、あるいは、このロボット制御装置は、ハードウェア的に製作された現実のロボットを制御対象とするものであってもよい。
また、上記目的を達成する本発明のロボット制御プログラムは、プログラムを実行する情報処理装置内で実行され、その情報処理装置を、2つの部材の相対的な位置もしくは姿勢を可変にそれらの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するロボット制御装置として動作させるロボット制御プログラムであって、
上記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれらのニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたロボット制御装置として動作させることを特徴とする。
本発明のロボット制御プログラムは、コンピュータ等の情報処理装置を本発明のロボット制御装置として動作させるものであり、本発明のロボット制御装置の各種態様は、その各種態様を実現する、本発明のロボット制御プログラムの態様として成立する。
すなわち、本発明のロボット制御プログラムにおいて、上記リカレントニューラルネットワークを構成するニューロンは、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従う出力V1を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボット制御プログラムにおいて、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、2つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムを記憶するものであることも好ましい形態である。
さらに、本発明のロボット制御プログラムにおいて、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボット制御プログラムにおいて、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
尚、このロボット制御プログラムは、上記情報処理装置を、ロボットの動作シミュレーションを行なうロボットシミュレーション装置内に実現されたアルゴリズムとしてのロボットを制御対象とするロボット制御装置として動作させるものであってもよく、あるいは、このロボット制御プログラムは、上記情報処理装置を、ハードウェア的に製作された現実のロボットを制御対象とするロボット制御装置として動作させるものであってもよい。
さらに、上記目的を達成する本発明のロボットは、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットにおいて、
このロボットの動作を制御するロボット制御装置を備え、
そのロボット制御装置が、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いてこのロボットの動作を制御するロボット制御部とを備えたことを特徴とする。
本発明のロボットは、本発明のロボット制御装置がそのロボット制御装置により制御される対象のロボットに組み込まれた構成のものであり、本発明のロボットには、本発明のロボット制御装置の各種態様がそのまま含まれる。
すなわち、本発明のロボットにおいて、上記リカレントニューラルネットワークを構成するニューロンは、入力をV0、出力をV1、遅れをε1としたとき、基本的に、
の式に従う出力V1を生成するものであることが好ましく、また、
上記リカレントニューラルネットワークは、複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらに、
上記リカレントニューラルネットワークは、入力に重みを付し、重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることも好ましい態様である。
ここで、入力に重みを付するニューロンを含む場合に、上記リカレントニューラルネットワークは、その重みを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、入力に重みを付するニューロンを含むとともにその重みを変更する別のニューロンを含む制御アルゴリズムを記憶するものであることが好ましい。
また、本発明のロボットにおいて、上記リカレントニューラルネットワークは、ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、また、
上記リカレントニューラルネットワークは、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、制御アルゴリズム記憶部は、その定義に従うニューロンを含む制御アルゴリズムを記憶するものであることが好ましく、さらには、
上記リカレントニューラルネットワークは、2つのニューロン間の結合を、別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、制御アルゴリズム記憶部は、その別のニューロンを含むとともにその別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムを記憶するものであるこも好ましい形態である。
さらに、本発明のロボットにおいて、上記制御アルゴリズム記憶部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、その周期関数は相互に異なる周期の複数の単位周期関数の結合からなるものであって、制御アルゴリズム記憶部は、上記複数の単位周期関数を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
また、本発明のロボットにおいて、上記制御アルゴリズム記憶部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを記憶するものであってもよく、その場合に、上記制御アルゴリズム記憶部は、多項式の各項を実現する複数の単位ネットワークの結合からなる部分ネットワークを含む制御アルゴリズムを記憶するものであってもよい。
図1は、ZMP法の原理説明図である。
図2は、階層化ニューラルネットワーク(LNN:Layered Neural Network)のモデルを示した図である。
図3は、図2に示すLNNを構成する各ニューロンのモデルを示す図である。
図4は、そのニューロンの入出力の関係を規定するシグモイド関数を示す図である。
図5は、RNNのモデルを示す図である。
図6は、コンピュータと、そのコンピュータとの間で通信を行なうロボットの外観図である。
図7は、図1に示したコンピュータのハードウェア構成図である。
図8は、本発明のロボット制御アルゴリズム構築プログラムの一実施形態の概要を示す模式図である。
図9は、本発明のロボット制御アルゴリズム構築装置の一実施形態を示すブロック図である。
図10は、ニューロンの表記を示した図である。
図11は、ニューロンどうしの接続の表記を示す図である。
図12は、時間遅れのないニューロンを示す図である。
図13は、時間遅れのないニューロンの入出力の時間変化を示す図である。
図14は、ε1≠0の遅れε1を有するニューロンを示す図である。
図15は、ε1≠0の遅れε1を有するニューロンの入出力の時間変化を示す図である。
図16は、複数入力のニューロンを示す図である。
図17は、上限閾値を持つニューロンを示す図である。
図18は、下限閾値を持つニューロンを示す図である。
図19は、図16を参照して説明した重み付けと、図17,図18を参照して示した閾値との双方を含む一般的なニューロンを示した図である。
図20は、スイッチを示す図である。
図21は、ニューロンによる遅れの変更を示す図である。
図22は、ニューロンによる結線の重みの変更を示す図である。
図23は、2つのニューロンの組合せの一例を示す図である。
図24は、図22に示す組合せの2のニューロンの入出力を示す図である。
図25は、三角関数生成器の一例を示す図である。
図26は、図25に示す三角関数生成器を複数組み合わせた部分ネットワークを示す図である。
図27は、三角関数生成器のもう1つの例を示す図である。
図28は、n次多項式生成器を示す図である。
図29は、運動の切り換えを行なうときのニューロンの組合せを示す図である。
図30は、2ニューロンからなる、正弦波出力を得るRNN(図25参照)と、関節が1つだけのロボットを示す図である。
図31は、ロボットのアームに任意周期運動を行なわさせる構成を示した図である。
図32は、ロボットのアームに非周期運動を行なわさせる構成を示した図である。
図33は、積分(乗)を除くPD制御の一例を示す図である。
図34は、PID制御の一例を示した図である。
図35は、PID制御のもう1つの例を示した図である。
図36は、ロボットおよびそのロボットを制御する制御アルゴリズム等を含む全体システムの概念図である。
図37は、二足歩行ロボットの足とその足の運動を制御するRNNの模式図である。
図38は、ロボットの運動学習システムの概要を示す図である。
図39は、以上の学習プロセスをまとめたフローチャートである。
図40は、本発明のロボット制御プログラムの一実施形態の概要を示す模式図である。
図41は、本発明のロボット制御装置の一実施形態を示すブロック図である。
図42は、本発明のロボットの一実施形態の外観図である。
図43は、図42のロボット500の構成を示すブロック図である。
図2は、階層化ニューラルネットワーク(LNN:Layered Neural Network)のモデルを示した図である。
図3は、図2に示すLNNを構成する各ニューロンのモデルを示す図である。
図4は、そのニューロンの入出力の関係を規定するシグモイド関数を示す図である。
図5は、RNNのモデルを示す図である。
図6は、コンピュータと、そのコンピュータとの間で通信を行なうロボットの外観図である。
図7は、図1に示したコンピュータのハードウェア構成図である。
図8は、本発明のロボット制御アルゴリズム構築プログラムの一実施形態の概要を示す模式図である。
図9は、本発明のロボット制御アルゴリズム構築装置の一実施形態を示すブロック図である。
図10は、ニューロンの表記を示した図である。
図11は、ニューロンどうしの接続の表記を示す図である。
図12は、時間遅れのないニューロンを示す図である。
図13は、時間遅れのないニューロンの入出力の時間変化を示す図である。
図14は、ε1≠0の遅れε1を有するニューロンを示す図である。
図15は、ε1≠0の遅れε1を有するニューロンの入出力の時間変化を示す図である。
図16は、複数入力のニューロンを示す図である。
図17は、上限閾値を持つニューロンを示す図である。
図18は、下限閾値を持つニューロンを示す図である。
図19は、図16を参照して説明した重み付けと、図17,図18を参照して示した閾値との双方を含む一般的なニューロンを示した図である。
図20は、スイッチを示す図である。
図21は、ニューロンによる遅れの変更を示す図である。
図22は、ニューロンによる結線の重みの変更を示す図である。
図23は、2つのニューロンの組合せの一例を示す図である。
図24は、図22に示す組合せの2のニューロンの入出力を示す図である。
図25は、三角関数生成器の一例を示す図である。
図26は、図25に示す三角関数生成器を複数組み合わせた部分ネットワークを示す図である。
図27は、三角関数生成器のもう1つの例を示す図である。
図28は、n次多項式生成器を示す図である。
図29は、運動の切り換えを行なうときのニューロンの組合せを示す図である。
図30は、2ニューロンからなる、正弦波出力を得るRNN(図25参照)と、関節が1つだけのロボットを示す図である。
図31は、ロボットのアームに任意周期運動を行なわさせる構成を示した図である。
図32は、ロボットのアームに非周期運動を行なわさせる構成を示した図である。
図33は、積分(乗)を除くPD制御の一例を示す図である。
図34は、PID制御の一例を示した図である。
図35は、PID制御のもう1つの例を示した図である。
図36は、ロボットおよびそのロボットを制御する制御アルゴリズム等を含む全体システムの概念図である。
図37は、二足歩行ロボットの足とその足の運動を制御するRNNの模式図である。
図38は、ロボットの運動学習システムの概要を示す図である。
図39は、以上の学習プロセスをまとめたフローチャートである。
図40は、本発明のロボット制御プログラムの一実施形態の概要を示す模式図である。
図41は、本発明のロボット制御装置の一実施形態を示すブロック図である。
図42は、本発明のロボットの一実施形態の外観図である。
図43は、図42のロボット500の構成を示すブロック図である。
以下、本発明の実施形態について説明する。
以下に説明する本発明の各実施形態としてのロボット制御アルゴリズム構築装置およびロボット制御装置は、共通の一台のコンピュータと、そのコンピュータ内で動作する、本発明の各実施形態としてのロボット制御アルゴリズム構築プログラムおよびロボット制御プログラムとの組合せにより構成されたものである。
以下では先ず、本発明の実施形態としてのロボット制御アルゴリズム構築装置およびロボット制御装置を構成するコンピュータのハードウェアについて説明する。
図6は、コンピュータと、そのコンピュータとの間で通信を行なうロボットの外観図である。
CPU(中央処理装置)、RAM(ランダムアクセスメモリ)、ハードディスク、通信ボード等が内蔵された本体部101、本体部101からの指示により表示画面102a上に画像や文字列を表示する表示装置102、コンピュータ100に操作者の指示を入力するためのキーボード103、表示画面102a上の任意の位置を指定することにより、その指定時にその位置に表示されていたアイコン等に応じた指示を入力するマウス104、およびロボット200との間で通信を行なうためのアンテナ105を備えている。
本体部101は、さらに外観上、フレキシブルディスク(図示せず)、CD−ROM300がそれぞれ装填されるFD装填口101a、CD−ROM装填口101bを有しており、それらの内部には、それらの装填口101a,101bから装填されたフレキシブルディスク(FD)やCD−ROM300をドライブしてアクセスするFDドライブやCD−ROMドライブも内蔵されている。
一方、ロボット200は、人体に似せた形状を有し、人間の躰の関節に相当する部分に2つの部材どうしの間の角度の調節が自在な関節を有し、さらに人間の目に対応する部分にカメラ、人間の耳に対応する部分にマイクロホン、人間の手先に相当する部分に接触センサを備えるなど、このロボットには各種のセンサが備えられている。また、このロボットには通信設備が内蔵されており、コンピュータ100との間で通信を行ない、コンピュータ100に向けて各種センサの情報を送信し、コンピュータ100からは制御信号を受信してその制御信号に基づいて二足歩行などの動作を行なうように構成されている。
尚、このコンピュータ100には、ロボット200に相当する、アルゴリズム上で構築したロボットが内蔵されており、このコンピュータ100を用いて構築されたロボット200の動作を制御するための制御アルゴリズムは、直ちにロボット200の動作制御に用いるのではなく、先ずは、コンピュータ100内に構築されたアルゴリズムとしてのロボットをその制御アルゴリズムで動作させることにより動作シミュレーションが行なわれ、意図した通りの動作を行なうことが確認された後、その制御アルゴリズムが、ハードウェア的に製作されたロボット200に適用される。
図7は、図6に示したコンピュータのハードウェア構成図である。
このハードウェア構成図には、CPU111、RAM112、ハードディスクコントローラ113、FDドライブ114、CD−ROMドライブ115、マウスコントローラ116、キーボードコントローラ117、ディスプレイコントローラ118、およびロボット200(図6参照)との間で通信を行なうための通信ボード119が示されており、それらはバス110で相互に接続されている。
FDドライブ114、CD−ROMドライブ115は、図6を参照して説明したように、それぞれFD装填口101aおよびCD−ROM装填口101bから装填されたFD310、CD−ROM300をアクセスするものである。通信ボード119はアンテナ105を介して、ロボット200と通信を行なう。
また、図7には、ハードディスクコントローラ113によりアクセスされるハードディスク120、マウスコントローラ116により制御されるマウス104、キーボードコントローラ117により制御されるキーボード103、およびディスプレイコントローラ118により制御される表示装置102も示されている。
図8は、本発明のロボット制御アルゴリズム構築プログラムの一実施形態の概要を示す模式図である。
ここでは、このロボット制御アルゴリズム構築プログラム400はCD−ROM300に記憶されており、このCD−ROM300が図6に示すCD−ROM装填口101bから装填され図7のCD−ROMドライブ115によりアクセスされて、そのCD−ROM300に記憶されているロボット制御アルゴリズム構築プログラム400が、図6,図7に示すコンピュータ100にインストールされる。そのコンピュータ100内にインストールされたロボット制御アルゴリズム構築プログラムがそのコンピュータ100内で実行されると、そのコンピュータ100は、本発明のロボット制御アルゴリズム構築装置の一実施形態として動作する。
尚、このロボット制御アルゴリズム構築プログラム400は、ここではCD−ROM300に記憶されている例を示したが、CD−ROMに記憶されている必要はなく、例えばFD等他の可搬型記憶媒体に記憶されてコンピュータ100にインストールされてもよく、あるいは、他の装置等から通信網(図示せず)を介してコンピュータ100にインストールされてもよく、あるいは、そのコンピュータ100のハードディスク(図7参照)等にはじめから記憶されていてもよく、最終的にコンピュータで実行可能となるものであればどのように保存あるいは記憶されていてもよい。
図8に示すロボット制御アルゴリズム構築プログラム400は、定義記憶部401と、制御アルゴリズム生成部402と、係数値決定部403とからなる。このロボット制御アルゴリズム構築プログラム400の各部401〜403の作用は、図9の説明と合わせて説明する。
図9は、本発明のロボット制御アルゴリズム構築装置の一実施形態を示すブロック図である。
このロボット制御アルゴリズム構築装置410は、図6,図7に示すコンピュータ100内で図8に示すロボット制御アルゴリズム構築プログラム400が実行されることにより、図6,図7に示すコンピュータ100内に実現するものである。
この図9のロボット制御アルゴリズム構築装置410は、定義記憶部411、制御アルゴリズム生成部412、および係数値決定部413から構成されている。これら定義記憶部411、制御アルゴリズム生成部412、および係数値決定部413は、それぞれ、図8に示すロボット制御アルゴリズム構築プログラム400の、定義記憶部401、制御アルゴリズム生成部402、および係数値決定部403に対応するが、図8のロボット制御アルゴリズム構築装置410の各部411〜413は図6,図7のコンピュータ100のハードウェアおよびそのコンピュータ100内で実行されるオペレーティングシステム(OS)と、そのOS上で動作する、図8に示すロボット制御アルゴリズム構築プログラム400の各部401〜403との結合で構成されているのに対し、図8に示すロボット制御アルゴリズム構築プログラム400の各部401〜403は、それらの複合のうちのアプリケーションプログラムの部分のみで構成されている。図8に示すロボット制御アルゴリズム構築プログラム400を構成する各部401〜403の、このロボット制御アルゴリズム構築プログラム400が図6,図7のコンピュータ100内で実行されたときの作用は、図9に示すロボット制御アルゴリズム構築装置410を構成する各部411〜413の作用そのものであり、以下、図9のロボット制御アルゴリズム構築装置410の各部411〜413の作用を説明することで、図8のロボット制御アルゴリズム構築プログラム400の各部401〜403の作用の説明を兼ねるものとする。
図9に示すロボット制御アルゴリズム構築装置410は、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するための制御アルゴリズムを構築する装置である。図6に示すロボット200は人間の躰の構造に似せた構造を有するヒューマノイド型のロボットであり、人間の手足等に対応する部分に複数の関節を有する。
この図9のロボット制御アルゴリズム構築装置410を構成する定義記憶部411は、入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶しておくものである。ここに記憶されているニューロンは、基本的には、入力をV0、出力をV1、遅れをε1としたとき、
の式に従って出力V1を生成するものである。
この(3)式は、この(3)式を積分することにより、
と表現することもできる。
このニューロンは上記(3)式(あるいはその(3)式と等価の(4)式)を満足するように記述されたプログラム部品で構成されている。この定義記憶部411には、そのプログラム部品としてのニューロンが記憶されていることのほか、さらにそのニューロンを表わすマークも記憶されていてもよい。この定義記憶部411に記憶されたニューロンの他の定義、およびニューロン以外の、RNNを構成するための他の定義については後述する。
図9のロボット制御アルゴリズム構築装置410を構成する制御アルゴリズム生成部412では、定義記憶部411に記憶された定義を用い、例えばオペレータによる図6,図7に示すコンピュータ100のキーボード103やマウス104を操作に応じて、ロボット200(図6参照)を制御するための制御アルゴリズムが構築される。あるいは、制御アルゴリズムを生成するアルゴリズムをあらかじめ定めておいて、オペレータの操作を待つことなく、その生成アルゴリズムに基づいて制御アルゴリズムを自動的に生成してもよい。
この制御アルゴリズムは、上記(3)式のε1がゼロではない有限の値を持つ遅れニューロンを含む複数のニューロンを有し、さらに信号の流れのループが存在するリカレントニューラルネットワーク(RNN)により構築されたものである。ただし、この制御アルゴリズム生成部412で構築される制御アルゴリズムは、各種の係数(例えば上記(3),(4)式中の遅れε1や積分定数Cなど)を変数のまま含んでおり、それらの係数の値は未決定の状態にある。
図9に示すロボット制御アルゴリズム構築装置410を構成する係数値決定部413では、制御アルゴリズム生成部412で生成された制御アルゴリズムの係数の値が決定される。
この係数値決定部413は、係数の値を、もっぱらオペレータの操作に応じて決定するものであってもよいが、本実施形態では、図9に示すように、ロボットの動作を評価する評価関数に基づいて算定された係数の値を変化させながらロボットを動作させたときの評価値が入力され、その評価値が最高の値になるように係数が決められる。評価関数は、ロボットの動作を、「エネルギー最小」、「ロボット本体の安定性」、「高速性」等そのロボットの特質等を考慮した1つあるいは複数の項目からなる。係数の決定プロセスの詳細については後述する。
定義記憶部411に記憶される定義は、基本的には上記(3)式(あるいはそれと等価な(4)式)に従うニューロンであるが、その定義記憶部411に記憶される定義には、この他、そのニューロンを変形した、あるいはそのニューロンから派生したいくつかのニューロンの定義や、それらのニューロンに付随する定義が含まれている。すなわち、この定義記憶部411には、
(a1)上記(3)式(あるいは(4)式)に従う基本的なニューロンの定義
(a2)複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義
(a3)入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義
(a4)上記の重みを別のニューロンの出力に応じて変更するという定義
(a5)ニューロンの遅れを別のニューロンの出力に応じて変更するという定義
(a6)入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義
(a7)2つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義
が記憶されている。
これらの定義は、(3)式あるいは(4)式の定義の際に説明したとおり、プログラム部品の形で記憶されており、制御アルゴリズム生成部412では、その定義記憶部411に記憶された(a1)〜(a7)の定義に従うプログラム部品が駆使されて、それらのプログラム部品が組み合わされたRNNによる制御アルゴリズムが構築される。
すなわち、制御アルゴリズム生成部412は、定義記憶部411に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワーク(RNN)により構築された、値が未確定の係数を含む制御アルゴリズムを生成するものであり、この制御アルゴリズム生成部412では、
(b1)上記(3)式(あるいは(4)式)に従う基本的なニューロンのほか、
(b2)複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義に従うニューロン
(a3)入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義に従うニューロン
(a4)入力に重みを付するニューロンの、その重みを変更する別のニューロン
(a5)アナログ的な遅れを伴う出力を生成するニューロンの遅れを変更する別のニューロン
(a6)入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義に従うニューロン
(b7)スイッチにより接断される結合が定義された2つのニューロンとそのスイッチを接断する別のニューロン
を駆使することにより、制御対象のロボットの動作制御に適合した、RNNからなる制御アルゴリズムが構築される。
さらに、その制御アルゴリズム生成部412は、定義記憶部411に記憶された定義に従うニューロンを接続することにより、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを生成することができ、その周期関数が、相互に異なる周期の複数の単位周期関数の結合からなるものである場合に、制御アルゴリズム生成部412は、上記の部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成する。そして、係数決定部413は、制御アルゴリズム生成部412により生成された複数の単位ネットワークの結合からなる部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって、本実施形態では1つの単位ネットワークずつ順次に、各単位ネットワークの係数の値を決定していく。
こうすることにより、全体の係数の値を短時間に決定することができる。
また、これと同様に、その制御アルゴリズム生成部412は、定義記憶部411に記憶された定義に従うニューロンを接続することにより、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを生成することができ、その場合に、その制御アルゴリズム生成部412は、その部分ネットワークを生成するにあたり、多項式の各項を実現しそれら各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであり、そして係数値決定部413は、制御アルゴリズム生成部412により生成された複数の単位ネットワークの結合からなる部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって、本実施形態では1つの単位ネットワークずつ順次に、各単位ネットワークの係数の値を決定していく。
係数値決定プロセスについての詳細はさらに後で説明する。
ここで、以下の説明のために、ニューロンとその結線の図面上の表記について説明しておく。
図10は、ニューロンの表記を示した図である。
図10(A)〜図10(E)は、いずれもニューロンを表わしており、そのうちの図10(A)には、丸印と二重丸印が示されている。それらは、いずれも、単にそこにニューロンが存在することを表わしている。ニューロンには遅れと初期値が定義されることがあるが、図10(A)の表記にはそれらの定義は含まれていない。
図10(B)には、二重丸のうちの外側の丸の中(内側の丸の外)にV、内側の丸の中にεが記入されているニューロンが示されており、これは、遅れε、初期値Vのニューロンであることを表わしている。
図10(C)には、丸印の中にVが記入されたニューロン、および二重丸印であって、外側の丸の中かつ内側の丸の外にVが記入されたニューロンが示されている。これらの表記は、いずれも、初期値Vのニューロンであることを示している。ここでは遅れは定義されていない。
図10(D)には、二重丸印のうちの内側の丸の中にεが記入されたニューロンが示されている。このニューロンは、遅れεのニューロンであることを表わしている。初期値は定義されていない。
図10(E)は、図10(D)の特別な場合として遅れゼロのニューロンを表わしている。遅れゼロのニューロンは、複数の入力があった場合、それら複数の入力の総和を求めるニューロンとなり、このため二重丸印の内側の丸の中に数字のゼロを記入する記号に代えて、丸印の中に加算を表わす‘+’を記入した記号を用いることもある。
図11は、ニューロンどうしの接続の表記を示す図である。
図11(A)は、左側のニューロンから右側のニューロンに向かって信号が流れ、左側のニューロンの出力がそのまま右側のニューロンの入力となることを表わしている。
また図11(B)は、左側のニューロンの出力が右側のニューロンの入力となる点では図11(A)のニューロンと同じであるが、図11(B)の右側のニューロンでは、その入力に重みCが付され、その重みが付された入力を基に前述の(3)式(あるいは(4)式)に従う演算が行なわれることを示している。
図11(C)は、右側のニューロンに、左側の複数のニューロンの複数の出力が入力されて重みC1,C2,C3,…でそれぞれ重み付けされ、かつ自分自身の出力も再度入力されて重みC0で重み付けされ、右側のニューロンは、それら重み付けされた複数の入力の総和を基に、前述の(3)式(あるいは(4)式)に従う演算が行なわれることを示している。
次に、図10および図11に示した表記法を使いながら、ニューロンの定義とそのニューロンの振舞(入力と出力との関係、実現される関数等)について説明する。
図12は、時間遅れのないニューロンを示しており、図13は、その時間遅れのないニューロンの入出力の時間変化を示している。
前述の(3)式を再度示すと、
である。
ここで遅れε1をゼロとすると、上記(3)式は、
となる。すなわち、遅れε1=0のときは、図13に示すように出力V1は入力V0そのものとなる。
図14は、ε1≠0の遅れε1を有するニューロンを示す図、図15は、その遅れε1を有するニューロンの入出力の時間変化を示す図である。
この場合、上記(3)式の遅れε1をε1≠0として取り扱い、その(3)式を積分すると、前述の(4)式となる。(4)式をここに再度示しておく。
ここで、この(4)式中の積分定数Cは、初期値V10に依存しており、
の関係にある。
上記(4)式の第1項は、図15に示すように出力V1が時間的に遅れて徐々に変化することを示している。
図16は、複数入力のニューロンを示す図である。
この場合、複数の入力Vj(j=0,1,…,n)を各入力に対応する各重みCij(j=0,1,…,n)で重み付けし、それらの重み付けされた各入力の総和が、上記(3)式の入力V0に相当するものとして取り扱われる。すなわち、図16に示す記号を用いて表現すると、
となる。
図17は、上限閾値を持つニューロンを示している。
ここではニューロン1の出力が閾値θに満たない値のときはそのニューロン1の出力がそのままニューロン2に入力され、ニューロン1の入力が閾値θより大きいときは、ニューロン2では、ニューロン1の出力に代えてその閾値θが入力として取り扱われる。
ニューロン2では、ニューロン1の出力の値に応じては閾値θを入力として取り扱った上で、上述の(3)式(あるいは(4)式)に従う演算が行なわれる。
尚、ここで閾値を、一般に角度を表現するときに用いられるθで表わしたのは、ロボットの動作を制御するにあたっては、そのロボットの関節の角度を制御するケースが多いことを念頭に置いたことによる。
図18は、下限閾値を持つニューロンを示している。
ここでは、ニューロン1の出力が閾値θより大きいときはそのニューロン1の出力がそのままニューロン2に入力され、ニューロン1の出力が閾値θより小さいときはニューロン2はその閾値θを入力として取り扱う。
ここでも、図17の場合と同様、ニューロン2は、ニューロン1の出力の値に応じて閾値を入力として取り扱うこと以外は基本のニューロンと同様であり、上述の(3)式(あるいは(4)式)に従う演算を行なう。
図19は、図16を参照して説明した重み付けと、図17,図18を参照して説明した閾値との双方を含む一般的なニューロンを示した図である。
この図19に示すニューロンiの入出力の関係を記述する式は、
となる。ここで、Vj(j=1,2,…,n,…,m,…,N)は、ニューロンjの出力、Cijはニューロンjからニューロンiに向かう結線に対応する重み、θmax jはニューロンjからニューロンiに向かう結線に対応する、最大値を決める閾値、θmin jは、ニューロンjからニューロンiに向かう結線に対応する、最小値を決める閾値、min(x,y)はxとyとのうちの小さい方の値をとる関数、max(x,y)はxとyとのうちの大きい方の値をとる関数である。
ニューロンiはニューロン1〜ニューロンNのうちのいずれか1つのニューロンであってもよく(この場合は、図11(c)に示すように、ニューロンiの出力がその同じニューロンiに戻るように記述することもできる)、あるいは、ニューロンiは、ニューロン1〜ニューロンNのいずれとも異なるニューロンであってもよい。
図20は、スイッチを示す図である。
ニューロン1とニューロン2はスイッチを介して結合されており、そのスイッチの接断(接続および切断)は、別のニューロン3の出力に応じて行なわれる。ここでは、ニューロン3の出力が閾値θ未満のときはスイッチが接続されてニューロン1の出力がニューロン2の入力となり、ニューロン3の出力がちょうど閾値θと等しいときを含め閾値θ以上のときはスイッチが切断され、ニューロン1の出力はニューロン2に入力されない。ここで、図20中には「<θ」の記号が示されているが、これを「≦θ」に変更すると、ニューロン3の出力がちょうど閾値θに等しいときはスイッチが接続された状態にあることを意味している。
また、図20中の「<θ」の記号を「>θ」に変更すると、ニューロン3の出力が閾値θを越えているときにスイッチが接続されており、ニューロン3の出力が閾値θを含む閾値以下になるとスイッチが切断され、ニューロン1の出力がニューロン2に伝わらなくなる。記号「>θ」を記号「≧θ」に変更すると、ニューロン3の出力が閾値にちょうど等しいときはスイッチは接続状態にあることを意味している。
図21は、ニューロンによる遅れの変更を示す図である。
図21(A)と図2(B)は、異なる向きに描かれているだけであって、いずれも同じことを意味している。ここでは、ニューロン1から、ニューロン2を表わす二重丸のうちの内側の丸に矢印が引かれており、これは、ニューロン1の出力がそのままニューロン2の遅れεとなる(ニューロン1によってニューロン2の遅れが設定、変更される)ことを表わしている。このように、ここでは、あるニューロン(図21の例ではニューロン2)の遅れが別のニューロン(図21の例ではニューロン1)の出力によって変更することができるようにニューロンが定義されている。
図22は、ニューロンによる結線の重みの変更を示す図である。
図21の場合と同様、図22(A)と図22(B)は異なる向きに描かれているだけであり、いずれも同じ内容を意味している。ここでは、ニューロン1の出力がニューロン2に入力されてその入力に重みが付されるが、ニューロン3の出力をその重みとすることを表わしている。このように、ここでは、あるニューロン(ここではニューロン3)の出力を重みとすることにより、その重みを変化させることができるように、ニューロンが定義されている。
図9に示すロボット制御アルゴリズム構築装置410を構成する定義記憶部411には、基本的には、これまで説明した様々なニューロン等の定義がそのニューロン等の入出力の関係を記述したプログラム部品として記憶されており、制御アルゴリズム生成部412では、それらのプログラム部品が組み合わされてRNNによる制御アルゴリズムが構築されるが、制御アルゴリズムの構築をさらに容易にするために、定義記憶部411には、これまで説明してきたニューロン等の定義を記憶しておくことのほか、以下に説明するような、高い頻度で利用される複数のニューロンの組合せを1つのプログラム部品として記憶しておき、制御アルゴリズム生成部412では複数のニューロンの組合せとしてのプログラム部品を利用できるようにしてもよい。制御アルゴリズム生成部412は、定義記憶部411に記憶されたプログラム部品を組み立てるためのプログラム言語の入力により制御アルゴリズムを構築するように構成してもよいが、定義記憶部411に、ニューロンの入出力の関係を記述したプログラム部品だけでなく、これまで説明してきたようなニューロンの表記の記号も記憶しておくとともに、そのニューロンの記号とそのニューロンを表わすプログラム部品とを対応づけておき、制御アルゴリズム生成部412は、図6に示すコンピュータ100の表示画面102a上にニューロンの記号を表示しその表示されたニューロンを結線するというオペレータ操作の裏でその表示されたニューロンや結線に応じた制御アルゴリズムを構築するようにしてもよい。
以下では、複数のニューロンを組み合わせたときに生成される関数について説明する。
図23は、2つのニューロンの組合せの一例を示す図である。
2つのニューロンを図23のように組み合わせると、上側のニューロンに関し、
が成立し、下側のニューロンに関しては、
が成立する。但し、V2は下側のニューロンの出力を表わす。
上記の(9)式と(10)式を組み合わせると、
なる2階線形定係数微分方程式となる。
この2階線形定係数微分方程式の一般解は、
である。
図24は、図23に示す組合せの2ニューロンの入出力を示す図である。
入力V0がステップ関数的に立ち上がったとき、その出力V1は、1<C12C21,C12C21=1,0<C12C21<1,C12C21<0に応じて、それぞれ、図24(a),(b),(c),(d)のように変化する。ここで注目すべき点は、入力V0が定数であっても重みC12,C21の値によっては、出力V1が振動する(図24(d)参照)ことと、ちょうど積分と遅れを重ね合わせた出力が存在する(図24(b)参照)ことである。
図25は、三角関数生成器の一例を示す図である。
ここには、図23の2ニューロンの結合と同様に結合された2ニューロンが示されているが、図23の2ニューロンの結合と異なる点は、入力V0が存在しないことと、重みC21,C12が、絶対値が同一であってかつ正負が異なるC,−Cである点である。
図25の出力V1は、
で表わされる。
上記(13)式を積分すると、
となる。
すなわち上記(13)式あるいは(14)式は、角周波数ωの三角関数を表わしており、正弦的に変化する出力V1が得られる。
この(13)式および(14)式から分かることは、重みCや遅れεの値を変えるとその正弦波出力V1の角周波数を変化させることができるとともに、重みC、遅れε、および初期値V10,V20を変えると(14)式中の係数c1,s1が変化し、これによりその正弦波の位相や振幅変化させることができるという点である。
図26は、図25に示す三角関数生成器を複数組み合わせた部分ネットワークを示す図である。
この図26の、一番右側に示された、1つだけのニューロンは、その初期値(ここでは、下記の(15)式との対応でc0とする)を出力し続けるニューロンである。
この図26に示す部分ネットワークにより実現される関数は、
である。定数項c0およびc1,s1,c2,s2,……等は、図26を参照して説明したようにして((13)式および(14)式参照)、各ニューロンの遅れε,重みC,2C,3C,…,初期値(図26には不図示)により決定される。
(15)式はフーリエ級数を表わしている。任意の周期関数はフーリエ級数に展開することができ、したがって図25のように組み合わされた2ニューロンを図26のように複数組み合わせることによって、任意の周期関数を構築することができる。
図27は、三角関数発生器のもう1つの例を示す図である。
この図27に示す3ニューロンの組合せにより生成される出力V1を式で表わすと、
となる。
のときに、(16)式を解くと、
となる。ここで、C1,C2,C3はニューロンの初期値(図示せず)等により定まる積分定数である。
この(18)式中のV1の式を見ると、第1項は急速に減衰する項であり、第2項と第3項は正弦振動の項である。
したがって、図27のニューロンの組合せは、例えば、ある位置もしくは姿勢に静止していた関節を、その静止位置あるいは静止姿勢とは異なる位置もしくは姿勢(角度)に移動させて、その移動後の位置もしくは姿勢を中心して正弦的に振動させるときの、初期の過渡的な位置もしくは姿勢の移動およびその後の正弦振動を行なわせるための制御信号として利用することができる。
図28は、n次多項式生成器を示す図である。
この図28には、この図28に示すように接続された、n次多項式の各項を生成するn+1個のニューロン(それぞれ1個のニューロンからなる単位ネットワーク)とそれらの出力を重み付け加算するための加算ニューロン(遅れゼロのニューロン;図10(E)参照)との、合計n+2個のニューロンが示されている。
この加算ニューロンの出力V1は、
となる。
図26に示すように、の三角関数生成器を複数組み合わせると、任意の周期信号を作り出してロボットに周期的な運動を行なわさせることができるが、この図28の多項式を用いると、非周期信号を作り出すことができ、ロボットに非周期的な運動(例えば立った姿勢から椅子に腰かけた姿勢への移行など)を行なわさせることができる。
図29は、運動の切り換えを行なうときのニューロンの組合せを示す図である。
運動ニューロン1,2は、ここではいずれも1つのニューロンのように示されているが、その背後には、例えば図26に示す、周期運動を指示する制御信号生成器や、例えば図28に示す多項式生成器により構成された非周期運動を指示する制御信号生成器が存在する。運動ニューロン1と運動ニューロン2とでは相互に異なる運動(例えば運動ニューロン1は椅子に腰かけた状態から立ち上がる運動、運動ニューロンは立った状態で行なう二足歩行運動)を行なわさせるものである。
スイッチニューロンは、その背後に、センサやそのロボットに一連の動作を行なわせるためのシーケンスプログラム等が存在し、運動を切り換えるタイミングで出力が変化するニューロンである。この図29に示す構成の場合、スイッチニューロンの出力に応じて、常に、運動ニューロン1の出力と運動ニューロン2の出力とのうちのいずれか一方が遅れニューロンに入力される。遅れニューロンは、前述の(3)式(あるいは(4)式)に従って、入力をアナログ的に遅らせて出力するニューロンである。
従来から採用されている力学的な運動方程式を立ててその運動方程式に従ってロボットを動作させる制御アルゴリズムの場合、そのロボットに、ある1つの運動から別の1つの運動に移行させるには、それら2つの運動の間をつなぐ別の運動方程式(プログラム)を必要とし、そのプログラムは、移行前の運動と移行後の運動との組合せによってそれぞれ異なり、したがって多数のプログラムを必要とし、その開発や動作テスト等にも多大の時間と労力を必要とする。
これに対し、ここで説明しているRNNを採用すると、移行可能な運動どうしの間ではどの運動からどの運動に移行するかを問わず、それら2つの運動の間に、図29に示すようなスイッチニューロンによってスイッチを切り換え、遅れニューロンを介して出力する構成を配置すればよく、この一点をとっても制御アルゴリズムの開発の時間や労力が極めて大幅に軽減される。
次に、これまで説明してきたニューロンを用いたRNNからなる制御アルゴリズムと、ロボットとの簡単な組み合わせについていくつか説明する。
図30には、2ニューロンからなる、正弦波出力を得るRNN(図25参照)と、関節が1つだけのロボットが示されている。
このロボットは横に延びる台と、関節モータからの駆動力を受けて回動するアームとからなる。その台とそのアームとの連結部分が関節である。
図30中のRNNの出力をロボットの関節を動かす関節モータに供給すると、そのロボットのアームを左右に正弦的に周期運動させることができる。
尚、RNNの出力と関節モータとの間には、様々な回路要素、例えばRNNは実際はプログラムで実現されたものであって、そのプログラムをコンピュータで実行するとデジタル出力が得られるが、これをアナログ信号に変換するD/A変換器や、関節モータに電力を供給するためのパワーアンプなどが介在するが、それらの回路要素はここで行なっている説明に関しては本質的ではないので全て省略している。
図31は、ロボットのアームに任意周期運動を行なわさせる構成を示した図である。
図26を参照して説明した前述のように、周波数の異なる出力を生成する複数の三角関数生成器を用いることにより任意周期波形の周期信号を生成することができる。
この周期信号をロボットの関節モータに供給することにより、そのアームにその周期信号に応じた周期運動を行なわさせることができる。
図32は、ロボットのアームに非周期運動を行なわさせる構成を示した図である。
この図32には、図28に示した構成と同じ構成のRNNと、関節が1つだけのロボットが示されている。
図28に示した構成を用いると、任意次元(n次元)の多項式で表わされる非周期関数を実現することができ、その出力で図32のロボットを駆動することにより、そのロボットのアームにその多項式で実現された非周期運動を行なわさせることができる。
次に、これまで説明したきたニューロンの組合せからなるRNNにより、PID制御を実現した例について説明する。
PID制御は、比例(P)と積分(I)と微分(D)とを組み合わせたフィードバック制御であり、従前より広く使われている制御法である。
図33は、積分(I)を除くPD制御の一例を示す図である。
この図33にも、図30〜図32にも示した、関節が1つだけのロボットが示されている。
ここでは、この関節の位置(角度)を測定するセンサと、その関節の動きの速度(角速度)を測定するセンサが備えられている。速度(角速度)センサを備える代わりに位置(角度)センサの出力を微分することにより速度(角速度)情報を得てもよい。
図33のRNNを式で表わすと、
となる。
この(20)式の右辺の第1項は比例項(P)、第2項は微分項(D)である。
図34は、PID制御の一例を示した図である。
この図34では、図32に示すRNNに、さらに積分(I)の構成が追加されている。この図33のRNNを式で表わすと、
となる。この(21)式の右辺の第1項および第2項は、図33を参照して説明した(20)式の第1項、第2項と同様、比例項(P)および微分項(D)であり、(21)式の右辺の第3項は、積分項(I)である。
図35は、PID制御のもう1つの例を示した図である。
上述の図34の場合、目標位置は固定値のように示されているが、図35では、目標位置を周期的に変化させている。こうすることにより、関節モータは、PIDフィードバック制御により、その周期的に変化する目標値に追随するように駆動される。
上記図33〜図35に示すように、これまで説明してきたニューロンを使ったRNNにより、PID制御を実現することもできる。
図36は、ロボットおよびそのロボットを制御する制御アルゴリズム等からなる全体システムの概念図である。
この図36中のCPGは、Central Pattern Generatorの略であり、ここでは、RNNによる部分ネットワークを指している。多数のCPGが集まって、ロボットを制御するための制御アルゴリズムが構成されている。
この制御アルゴリズムを構成する多数のCPG(部分ネットワーク)は、それぞれが、制御対象のロボットの、ある1つの運動を分担している。具体例については次の図37を参照して後に説明する。
CPGの、未決定の各種係数(各ニューロンの遅れε、重みC、初期値等)を決定するにあたっては、ロボットの動作が評価されてその評価値が学習システムに伝えられ、その学習システムで各係数値が決定される。係数値の決定手法については、もう少しあとで説明する。
ロボットの動作は、センサシステムで計測されて制御アルゴリズムに伝えられ、その制御アルゴリズムは、センサシステムからの情報に基づいてロボットが所望の動作を行なうよう、そのロボットを制御する。
図37は、二足歩行ロボットの足とその足の運動を制御するRNNの模式図である。
ここには、ロボットの関節が円柱で示されており、左右の両足のうちの右足の動きを制御するRNNが示されている。
ここには、CPGとして、この二足歩行ロボットに前進歩行動作を行なわせるために必要となる、ロールCPGと、リフトCPGと、ピッチCPGが示されている。
ロボットを前進歩行させるときには、左右の足への体重移動が行なわれるが、ロールCPGは、その体重移動のための運動を制御する制御信号を生成する部分ネットワークである。
前進歩行時、左右の足への体重移動は、交互に周期的に行なわれるため、その運動を制御するロールCPGは周期信号を生成するように構成されている。
また、ロボットを前進歩行させるときには、左右の足を交互に上下運動させる必要がある。図37に示すリフトCPGは、右足を上下運動させるための部分ネットワークである。足の上下運動も周期運動であり、したがってリフトCPGも周期信号を生成するように構成されている。
また、ロボットを前進歩行させるには、左右の足を交互に前進させる必要がある。図37に示すピッチCPGは、右足を前進運動させるための部分ネットワークである。足を1回前進させる運動は非周期の動作であり、このためピッチCPGは、多項式による非周期信号を生成する部分ネットワークとして構成されている。
リフトCPGの出力は、ロールCPGの出力によりスイッチ制御されている。これは、例えば体重(重心)を十分に左足に移してからでないと右足を持ち上げることができないようにするためである。またこれと同様に、ピッチCPGの出力も、ロールCPGの出力によりスイッチ制御されている。これも同様に、例えば体重(重心)を十分に左足に移してからでないと右足を前進させることができないようにするためのものである。さらに、リフトCPGの出力やピッチCPGの出力は閾値処理がなされている。これは、例えば右足を前進させて足裏が床に接触した後は、それ以上その右足を伸ばそうとしたり前進させたりするのを止めて、その右足が床に接触したときの右足の状態を保持するための措置である。
このようにして周期運動を行なわさせるためのCPGや非周期運動を行なわさせるためのCPGを組み合わせることによって、全体として複雑な運動を実現することができる。
次に、ロボットの制御アルゴリズム構築の処理の流れについて説明する。制御アルゴリズムを構築するには、これまで説明してきた、RNNを組み立てるだけの処理では足りず、そのRNNに含まれている各種係数(各ニューロンの遅れ、重み、初期値などに関係する係数)を決定する必要がある。ここでは、RNNからなる制御アルゴリズムを係数値の決定を含めて構築するシステムを、「学習システム」と称する(図36参照)。
ここでは、RNNの係数の値を決定するにあたり、考え方の前提として、運動、すなわち関節の位置や角度の時間変化は、非線形方程式の解であるという立場をとる。この非線形方程式の解を求めるために、新たな非線形方程式を利用する方法もある。しかしながら、非線形方程式を用いる方法は、解発生機構そのものに非線形要素が存在するため、上位判断機能などの処理系が意のままに制御することが難しい。そこで、ここでは、運動を逐次近似法で解くことを考える。
天文力学や流体力学においては、非線形方程式を近似的に解く手法として摂動法が知られている。摂動法とは、天文力学等において、非線形方程式を解く際に、可解な線形微分方程式の解を第1近似解としそれを逐次修正しながら近似解を求める手法である。この摂動法において、修正に必要な項を摂動項という。通常、テイラー展開に基づく計算を行なう。天文力学の場合、解くべき方程式は、あらかじめわかっているため、解くべき方程式に展開した解を直接代入し、各次数毎に解くことによって、逐次解を求める。通常の摂動法の揚合、近似度をあげると解は真の解に逐次近づく。
ここでは、上記の考えをロボットの運動の方程式に当てはめて考える。ロボットの運動の非線形方程式は、歩行等の運動を考えると、ロボットの質量等の物性値、関節粘性、モータ最大トルク、床面の摩擦係数や傾斜、および部屋の形状等の非常に複雑な関係式となっていることが予想される。理想的な場合はこのような方程式を構築することができ、理論的に解析できる。しかしながら、ロボットが様々な運動を行うことを考えると、この方程式をすべてあらかじめ知ることは非常に難しい作業である。
そこで、ここでは、解くべき方程式があらかじめわかっている天文力学の場合とは異なり、解くべき方程式を構築しないで問題を解くことを考える。天文力学等で用いられている摂動法は、低い次数から順次に解が得られる。ここでは、これと同様に、解を以下のようにある固有関数で展開して、低い次数から逐次、試行錯誤によってその係数を数値的に求める。満足できる運動が得られるまで次数をあげていく。
yiは固有関数、δiはその係数、iは次数である。
この手法を、ここでは、NP法(Numerical Perturbation method)と言うことにし、ここでは、CPGモデルとNP法を併用した運動学習システム(CPG/NP)を説明する。CPGモデルは、前述したように、基本的な関数である三角関数や多項式を発生することができ、その他説明は省略するが数種の直交関数を発生することができる。これらの基本的な関数を用いて、運動を表現する未知非線形方程式の解を求める。
k番目の関節の運動(位置あるいは角度)をθk(t)としたとき、ここでは、ある1つのCPGを、
と表現する。
cj,sj,ajは、ニューロンの遅れ、重み、および初期値に関係する係数である((13)式〜(15)式、(19)式を参照。)この(23)式の右辺中の第1項は定数項c0であり、第2項は周期関数の項であり、第3項は非周期関数の項である。ここでは、(23)式のΣによる積算をばらばらに分解した各項それぞれに対応する各単位ネットワークが生成されているものとする。ここでは、jの値の低い項((23)式の右辺中の第2項については角周波数jωの低い(周期の長い項、(23)式の右辺中の第3項については、低次の項)から順に係数の値を求め、ネットワークを構成していく。ここでは、先ず、c0を最初に決め、次に(23)式中の係数c1,s1,a1を求める。このとき、他の係数cj,sj,aj(j=2,3,…,n)を全て0とおく。c1,s1,a1が求められると、次にc2,s2,a2を求める。このとき、先に求めたc1,s1,a1は固定しておき、他の係数cj,sj,aj(j=3,4,…,n)は全て0にしておく。これをcj,sj,ajについて繰り返す。
NP法では、以上のようにして係数を順次決めていく。
図9に示すロボット制御アルゴリズム構築装置410の定義記憶部411には、上述の(23)式の各項に相当する単位ネットワークが全てあらかじめ生成されて記憶されている。あるいは、定義記憶部411には、それらの単位ネットワーク生成のアルゴリズムが記憶されていて、制御アルゴリズム制御部412で必要な単位アルゴリズムが自動生成されるように構成してもよい。
図38は、ロボットの運動学習システムの概要を示す図である。
ここでは、先ずオペレータにより、基本運動タイプと初期係数値が与えられる。基本運動タイプとは、今回係数を決定しようとしているCPGが、周期運動タイプのCPGであるが非周期運動タイプのCPGであるということである。周期運動のCPGであることが指示されると、(23)式の右辺の第1項と第2項のみが有効となり第3項は不要となる。一方、非周期運動のCPGであることが指示されると(23)式の右辺の第1項と第3項が有効となり、第2項は不要となる。
この図38中の「アドバイス」は評価関数である。評価関数は、満足できる運動かをどうかを決定するための関数である。複雑な系の場合、評価関数は、「エネルギー最小」、「ロボット本体の安定性」、「高速性」等複数ある。極致問題とするために、ここでは、評価関数Eを以下のように複数の評価関数Eiの重み付線形和とする。Eiは2次形式で与えられる非負数であり、ciは評価関数Eiの重みである。ここでは、評価関数Eをアドバイスと呼ぶことにする。
図9に示すロボット制御アルゴリズム構築装置410の制御アルゴリズム生成部412には、オペレータにより基本運動タイプと係数の初期値が指定される。先ず、関数kの初期位置(初期角度)c0が指定される。このc0は、その関節が静止状態(運動を開始する前の状態)にあるとき、あるいはその直前の運動から引き継いだ初期状態にあるときの、その関節の初期位置あるいは初期角度である。次に、例えば基本運動タイプが周期運動タイプであることが指定される。すると、図9のロボット制御アルゴリズム構築装置410の制御アルゴリズム生成部412では、その指定を受け、定義記憶部411から
の基本ネットワークを読み出す(あるいはその時点で生成する)。このときの運動の基本式は、初期位置(初期角度)c0を含め、
となる。
オペレータからは、その周期運動の基本的な周期(角周波数ω)や、各係数c1,s1の初期値が与えられ、図9のロボット制御アルゴリズム構築装置410の係数値決定部413は、これらω,c1,s1によりその基本ネットワークを構築する各ニューロンの遅れ、重み、および初期値が仮決定される。
このようにして生成された、初期係数値を持つ基本ネットワークの出力がロボットに与えられ、そのときのロボットの運動が評価される。その評価に応じて係数値が少しずつ修正されその次数の段階での最高の評価が得られるように係数c1,s1が決定される。
ロボットの運動の評価は、オペレータが目視等により行ない、そのオペレータにより係数値を決定してもよいが、上述のアドバイスをあらかじめ決めておき、そのアドバイスに従って、係数値を自動で、あるいはオペレータの意見も含めて半自動で決定してもよい。
(25)式におけるc1,s1が決定されると(c0はそれ以前に既に決定されている)、それに応じて、(24)式で表わされる基本ネットワークを構成するニューロンの遅れ、重み、および初期値が決定される((14)式参照)。図9の制御アルゴリズム生成部412は、定義記憶部411から次の次数の項を実現する基本ネットワークを読み出し(あるいは生成し)これまでの低い次数の部分ネットワークに結合する。式で示すと、
となる。係数c0,c1,s1は既に決定済であり、ここではオペレータにより新たな係数c2,s2の初期値が与えられる。これらの係数c2,s2は、その次数の項を実現する単位ネットワークを構成するニューロンの遅れ、重み、初期値に対応づけられている点は、係数c1,s1の場合と同様である。図9の係数値決定部413では、係数c2,s2として初期値が与えられたときの(26)式に相当する部分ネットワークの出力がロボットに与えられ、そのときのロボットの運動が評価され、その評価がより高まる方向に係数c2,s2の値が調整され、その次数における最高の評価が得られるように係数c2,s2が決定される。
係数c2,s2が決定されると、図9の制御アルゴリズム生成部412は、定義記憶部411から次の次数の項を実現する基本ネットワークを読み出し(あるいは生成し)、これまで評価の済んでいる(係数が決定されている)部分ネットワークに結合される。式で示すと、
となる。
新たな係数c3,s3について初期値が与えられ、上記と同様のプロセスを経ることによりその係数c3,s3の値が決定される。
このようにして、ロボットが必要な精度の運動を行なうことができる次数まで、順次に係数が決定される。
ここでは周期関数を例に挙げて説明したが、非周期関数の係数決定プロセスも同様である。
以上の説明では、係数の初期値は全てオペレータが与えるものとして説明したが、例えば係数の値として任意に定めた初期値あるいは、あらかじめ決められた固定の初期値を自動で与え、その自動で与えた初期値から出発して係数値を順次変化させてその係数の値を決定してもよい。
その初期値の与え方だけでなく、基本運動タイプの指定、基本ネットワークの読み出し(あるいは生成)、およびロボットの運動の評価等の全てをあらかじめプログラムしておくことで、部分ネットワークの生成からその部分ネットワークの係数の決定までを全て自動化してもよい。あるいは、それらのうちの一部をオペレータ操作に委ね、あるいは自動生成の結果をオペレータに提示して承認を受けるなど半自動の装置として実現してもよい。
また、上記では、係数に初期値が与えられたばかりの部分ネットワークの出力をいきなりロボットに与えるように説明したが、その出力を、先ずは図6、図7に示すコンピュータ中に構築されているアルゴリズムとしてのロボットに与えて動作シミュレーションを行ない、ある程度十分な精度で動作することを確認してから、実際のロボットを動かしてみることが好ましい。
図39は、以上の学習プロセスをまとめたフローチャートである。
先ず、基本運動タイプが与えられる。係数は初期値から出発する(ステップS1)。
その初期値から出発した初期運動の係数をGA(遺伝的アルゴリズム)や二分法等、何らかの係数決定アルゴリズムを駆使して決定し(ステップS2)、運動タイプに従ってより高次の項を付加してその付加した項の係数に初期値を与え(ステップS3)、その高次の項の係数をGAや二分法等を用いて決定する(ステップS4)。制御対象のロボットの運動の精度が未だ不充分のときは(ステップS5)、その運動タイプに従ってさらに高次の項を付加するとともにその付加した高次項の係数に初期値を与え(ステップS3)、その高次項の係数をGAや二分法等を用いて決定する(ステップS4)。これを、ロボットが十分な精度の運動を行なうことができるようになるまで繰り返す。
次に、上記のCPG/NP(CPGの係数を上記のNP法で順次求める方法)とCPG/GA(CPGの係数をGA(遺伝的アルゴリズム)を用いて、一度に求める方法)との比較結果を説明する。
CPG/GAでは、すべての係数が同時に求められる。そのため、すべての係数が相互に関係を持つ。動きを少しだけ変更したい場合でも、すべての係数が影響を受け変更に時間がかかることが予想される。ここではもっとも差が出ると考えられる場合として、解の全サーチを行った場合について簡単に考察する。ニューロン値の解像度および結合重みの解像度を共にn、最終的なニューロン数とニューロン間の結合数の和をmとすると、全サーチを行った場合の計算量は、nm回の試行が必要である。仮に、CPG/NPにおいてj次に分割して求めたとすると、計算量は、およそj×nm/jである。具体的にn=16,m=60,j=5とすると、nm=1.15×1073,j×nm/j=1.4×1016とおよそ105 7倍程度の差が出る。実機を用いた実証実験では、CPG/GAでは、CPG/NPで得たものに相当する解を、現在までに、まだ見つけることができていない。さらに、CPG/NP法では、CPG/GAにはない特徴として、各摂動次数の区切りで評価関数を再設定したり、ニューロン数を変化することが容易である事があげられる。
このように、CPG/NPの場合、従来法と比べ天文学的な桁数ほど違うレベルで極めて短時間に係数を決定することができる。
図40は、本発明のロボット制御プログラムの一実施形態の概要を示す模式図である。
ここでは、このロボット制御プログラム500はCD−ROM300に記憶されており、このCD−ROM300が図6に示すCD−ROM装填口101bから装填され図7のCD−ROMドライブ115によりアクセスされて、そのCD−ROM300に記憶されているロボット制御プログラム500が、図6,図7に示すコンピュータ100にインストールされる。そのコンピュータ100内にインストールされたロボット制御プログラムがそのコンピュータ100内で実行されると、そのコンピュータ100は、本発明のロボット制御装置の一実施形態として動作する。
尚、このロボット制御プログラム500は、ここではCD−ROM300に記憶されている例を示したが、前述のロボット制御アルゴリズム構築プログラム(図8参照)の場合と同様、CD−ROMに記憶されている必要はなく、例えばFD等他の可搬型記憶媒体に記憶されてコンピュータ100にインストールされてもよく、あるいは、他の装置等から通信網(図示せず)を介してコンピュータ100にインストールされてもよく、あるいは、そのコンピュータ100のハードディスク(図7参照)等にはじめから記憶されていてもよく、最終的にコンピュータで実行可能となるものであればどのように保存あるいは記憶されていてもよい。
図40に示すロボット制御プログラム500は、制御アルゴリズム記憶部501とロボット制御部502とから構成されている。このロボット制御プログラム500を構成する各部501,502の作用は、図41の説明と合わせて説明する。
図41は、本発明のロボット制御装置の一実施形態を示すブロック図である。
このロボット制御装置510は、図6,図7に示すコンピュータ100内で図40に示すロボット制御プログラム500が実行されることにより、図6,図7に示すコンピュータ100内に実現するものである。
この図41のロボット制御装置510は、制御アルゴリズム記憶部511およびロボット制御部512で構成されている。これら制御アルゴリズム記憶部511およびロボット制御部512は、それぞれ、図40に示すロボット制御プログラム500の、制御アルゴリズム記憶部501およびロボット制御部502に対するが、図41のロボット制御装置510の各部511,512は、図6、図7のコンピュータ100のハードウェアおよびそのコンピュータ100内で実行されるオペレーティングシステム(OS)およびそのOS上で動作する、図40に示すロボット制御プログラム500の各部501,502との複合で構成されているのに対し、図40に示すロボット制御プログラム500の各部501,502は、それらの複合のうちのアプリケーションプログラム部分のみで構成されている。図40に示すロボット制御プログラム500を構成する各部501,502の、そのロボット制御プログラム500が図6、図7のコンピュータ100内で実行されたときの作用は、図41に示すロボット制御装置510を構成する各部511,512の作用そのものであり、以下、図41のロボット制御装置510の各部511,512の作用を説明することで、図40のロボット制御プログラム500の各部501,502の作用の説明を兼ねるものとする。
図41のロボット制御装置510は、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御する装置である。前述したように、図6に示すロボット200は人間の躰の構造に似せた構造を有するヒューマノイド型のロボットであり、人間の手足等に対応する部分に複数の関節を有する。
ここで、この図41のロボット制御装置510を構成する制御アルゴリズム記憶部511は、入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワーク(RNN)により構築された制御アルゴリズムを記憶するものであり、ロボット制御部512は、制御アルゴリズム記憶部511に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するものである。
制御アルゴリズム記憶部511に記憶されている制御アルゴリズムは、前述のようにして構築され係数についても値が決定された後の制御アルゴリズムである。この制御アルゴリズム記憶部511に記憶される制御アルゴリズムの詳細は既に説明済であるため、ここでは重複説明は省略する。
ロボット制御部512には、ロボットに備えられた各種センサによる測定値が入力され、ロボット制御部512は、制御アルゴリズム記憶部511に記憶された制御アルゴリズムに基づくとともにセンサからの測定値に基づいて制御対象のロボットの運動を制御する。
図42は、本発明のロボットの一実施形態の外観図である。
このロボット600は、図6のコンピュータ100で実現しているロボット制御装置を図6に示すロボット200自身の内部に備えたものに相当する。
すなわち、このロボット600は、このロボット自身を制御するロボット制御装置610を内蔵している。
図43は、図42のロボット600の構成を示すブロック図である。
このロボット600は、ロボット制御装置610とそのロボット制御装置610により運動が制御される関節620と、その関節の動作を計測するセンサ630を備えている。
このロボット600のロボット制御装置610は、制御アルゴリズム記憶部611とロボット制御部612とからなる。このロボット制御装置610は、このロボット制御装置610がロボット600に内蔵されていることを除き、図41に示すロボット制御装置510と同一であり、このロボット制御装置610を構成する制御アルゴリズム記憶部611およびロボット制御部612は、図41に示すロボット制御装置510を構成する制御アルゴリズム記憶部511およびロボット制御部512とそれぞれ同一の作用を成す。重複説明は省略する。
このように、ロボット制御装置を内蔵したロボットを構成してもよい。
以下に説明する本発明の各実施形態としてのロボット制御アルゴリズム構築装置およびロボット制御装置は、共通の一台のコンピュータと、そのコンピュータ内で動作する、本発明の各実施形態としてのロボット制御アルゴリズム構築プログラムおよびロボット制御プログラムとの組合せにより構成されたものである。
以下では先ず、本発明の実施形態としてのロボット制御アルゴリズム構築装置およびロボット制御装置を構成するコンピュータのハードウェアについて説明する。
図6は、コンピュータと、そのコンピュータとの間で通信を行なうロボットの外観図である。
CPU(中央処理装置)、RAM(ランダムアクセスメモリ)、ハードディスク、通信ボード等が内蔵された本体部101、本体部101からの指示により表示画面102a上に画像や文字列を表示する表示装置102、コンピュータ100に操作者の指示を入力するためのキーボード103、表示画面102a上の任意の位置を指定することにより、その指定時にその位置に表示されていたアイコン等に応じた指示を入力するマウス104、およびロボット200との間で通信を行なうためのアンテナ105を備えている。
本体部101は、さらに外観上、フレキシブルディスク(図示せず)、CD−ROM300がそれぞれ装填されるFD装填口101a、CD−ROM装填口101bを有しており、それらの内部には、それらの装填口101a,101bから装填されたフレキシブルディスク(FD)やCD−ROM300をドライブしてアクセスするFDドライブやCD−ROMドライブも内蔵されている。
一方、ロボット200は、人体に似せた形状を有し、人間の躰の関節に相当する部分に2つの部材どうしの間の角度の調節が自在な関節を有し、さらに人間の目に対応する部分にカメラ、人間の耳に対応する部分にマイクロホン、人間の手先に相当する部分に接触センサを備えるなど、このロボットには各種のセンサが備えられている。また、このロボットには通信設備が内蔵されており、コンピュータ100との間で通信を行ない、コンピュータ100に向けて各種センサの情報を送信し、コンピュータ100からは制御信号を受信してその制御信号に基づいて二足歩行などの動作を行なうように構成されている。
尚、このコンピュータ100には、ロボット200に相当する、アルゴリズム上で構築したロボットが内蔵されており、このコンピュータ100を用いて構築されたロボット200の動作を制御するための制御アルゴリズムは、直ちにロボット200の動作制御に用いるのではなく、先ずは、コンピュータ100内に構築されたアルゴリズムとしてのロボットをその制御アルゴリズムで動作させることにより動作シミュレーションが行なわれ、意図した通りの動作を行なうことが確認された後、その制御アルゴリズムが、ハードウェア的に製作されたロボット200に適用される。
図7は、図6に示したコンピュータのハードウェア構成図である。
このハードウェア構成図には、CPU111、RAM112、ハードディスクコントローラ113、FDドライブ114、CD−ROMドライブ115、マウスコントローラ116、キーボードコントローラ117、ディスプレイコントローラ118、およびロボット200(図6参照)との間で通信を行なうための通信ボード119が示されており、それらはバス110で相互に接続されている。
FDドライブ114、CD−ROMドライブ115は、図6を参照して説明したように、それぞれFD装填口101aおよびCD−ROM装填口101bから装填されたFD310、CD−ROM300をアクセスするものである。通信ボード119はアンテナ105を介して、ロボット200と通信を行なう。
また、図7には、ハードディスクコントローラ113によりアクセスされるハードディスク120、マウスコントローラ116により制御されるマウス104、キーボードコントローラ117により制御されるキーボード103、およびディスプレイコントローラ118により制御される表示装置102も示されている。
図8は、本発明のロボット制御アルゴリズム構築プログラムの一実施形態の概要を示す模式図である。
ここでは、このロボット制御アルゴリズム構築プログラム400はCD−ROM300に記憶されており、このCD−ROM300が図6に示すCD−ROM装填口101bから装填され図7のCD−ROMドライブ115によりアクセスされて、そのCD−ROM300に記憶されているロボット制御アルゴリズム構築プログラム400が、図6,図7に示すコンピュータ100にインストールされる。そのコンピュータ100内にインストールされたロボット制御アルゴリズム構築プログラムがそのコンピュータ100内で実行されると、そのコンピュータ100は、本発明のロボット制御アルゴリズム構築装置の一実施形態として動作する。
尚、このロボット制御アルゴリズム構築プログラム400は、ここではCD−ROM300に記憶されている例を示したが、CD−ROMに記憶されている必要はなく、例えばFD等他の可搬型記憶媒体に記憶されてコンピュータ100にインストールされてもよく、あるいは、他の装置等から通信網(図示せず)を介してコンピュータ100にインストールされてもよく、あるいは、そのコンピュータ100のハードディスク(図7参照)等にはじめから記憶されていてもよく、最終的にコンピュータで実行可能となるものであればどのように保存あるいは記憶されていてもよい。
図8に示すロボット制御アルゴリズム構築プログラム400は、定義記憶部401と、制御アルゴリズム生成部402と、係数値決定部403とからなる。このロボット制御アルゴリズム構築プログラム400の各部401〜403の作用は、図9の説明と合わせて説明する。
図9は、本発明のロボット制御アルゴリズム構築装置の一実施形態を示すブロック図である。
このロボット制御アルゴリズム構築装置410は、図6,図7に示すコンピュータ100内で図8に示すロボット制御アルゴリズム構築プログラム400が実行されることにより、図6,図7に示すコンピュータ100内に実現するものである。
この図9のロボット制御アルゴリズム構築装置410は、定義記憶部411、制御アルゴリズム生成部412、および係数値決定部413から構成されている。これら定義記憶部411、制御アルゴリズム生成部412、および係数値決定部413は、それぞれ、図8に示すロボット制御アルゴリズム構築プログラム400の、定義記憶部401、制御アルゴリズム生成部402、および係数値決定部403に対応するが、図8のロボット制御アルゴリズム構築装置410の各部411〜413は図6,図7のコンピュータ100のハードウェアおよびそのコンピュータ100内で実行されるオペレーティングシステム(OS)と、そのOS上で動作する、図8に示すロボット制御アルゴリズム構築プログラム400の各部401〜403との結合で構成されているのに対し、図8に示すロボット制御アルゴリズム構築プログラム400の各部401〜403は、それらの複合のうちのアプリケーションプログラムの部分のみで構成されている。図8に示すロボット制御アルゴリズム構築プログラム400を構成する各部401〜403の、このロボット制御アルゴリズム構築プログラム400が図6,図7のコンピュータ100内で実行されたときの作用は、図9に示すロボット制御アルゴリズム構築装置410を構成する各部411〜413の作用そのものであり、以下、図9のロボット制御アルゴリズム構築装置410の各部411〜413の作用を説明することで、図8のロボット制御アルゴリズム構築プログラム400の各部401〜403の作用の説明を兼ねるものとする。
図9に示すロボット制御アルゴリズム構築装置410は、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するための制御アルゴリズムを構築する装置である。図6に示すロボット200は人間の躰の構造に似せた構造を有するヒューマノイド型のロボットであり、人間の手足等に対応する部分に複数の関節を有する。
この図9のロボット制御アルゴリズム構築装置410を構成する定義記憶部411は、入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶しておくものである。ここに記憶されているニューロンは、基本的には、入力をV0、出力をV1、遅れをε1としたとき、
の式に従って出力V1を生成するものである。
この(3)式は、この(3)式を積分することにより、
と表現することもできる。
このニューロンは上記(3)式(あるいはその(3)式と等価の(4)式)を満足するように記述されたプログラム部品で構成されている。この定義記憶部411には、そのプログラム部品としてのニューロンが記憶されていることのほか、さらにそのニューロンを表わすマークも記憶されていてもよい。この定義記憶部411に記憶されたニューロンの他の定義、およびニューロン以外の、RNNを構成するための他の定義については後述する。
図9のロボット制御アルゴリズム構築装置410を構成する制御アルゴリズム生成部412では、定義記憶部411に記憶された定義を用い、例えばオペレータによる図6,図7に示すコンピュータ100のキーボード103やマウス104を操作に応じて、ロボット200(図6参照)を制御するための制御アルゴリズムが構築される。あるいは、制御アルゴリズムを生成するアルゴリズムをあらかじめ定めておいて、オペレータの操作を待つことなく、その生成アルゴリズムに基づいて制御アルゴリズムを自動的に生成してもよい。
この制御アルゴリズムは、上記(3)式のε1がゼロではない有限の値を持つ遅れニューロンを含む複数のニューロンを有し、さらに信号の流れのループが存在するリカレントニューラルネットワーク(RNN)により構築されたものである。ただし、この制御アルゴリズム生成部412で構築される制御アルゴリズムは、各種の係数(例えば上記(3),(4)式中の遅れε1や積分定数Cなど)を変数のまま含んでおり、それらの係数の値は未決定の状態にある。
図9に示すロボット制御アルゴリズム構築装置410を構成する係数値決定部413では、制御アルゴリズム生成部412で生成された制御アルゴリズムの係数の値が決定される。
この係数値決定部413は、係数の値を、もっぱらオペレータの操作に応じて決定するものであってもよいが、本実施形態では、図9に示すように、ロボットの動作を評価する評価関数に基づいて算定された係数の値を変化させながらロボットを動作させたときの評価値が入力され、その評価値が最高の値になるように係数が決められる。評価関数は、ロボットの動作を、「エネルギー最小」、「ロボット本体の安定性」、「高速性」等そのロボットの特質等を考慮した1つあるいは複数の項目からなる。係数の決定プロセスの詳細については後述する。
定義記憶部411に記憶される定義は、基本的には上記(3)式(あるいはそれと等価な(4)式)に従うニューロンであるが、その定義記憶部411に記憶される定義には、この他、そのニューロンを変形した、あるいはそのニューロンから派生したいくつかのニューロンの定義や、それらのニューロンに付随する定義が含まれている。すなわち、この定義記憶部411には、
(a1)上記(3)式(あるいは(4)式)に従う基本的なニューロンの定義
(a2)複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義
(a3)入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義
(a4)上記の重みを別のニューロンの出力に応じて変更するという定義
(a5)ニューロンの遅れを別のニューロンの出力に応じて変更するという定義
(a6)入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義
(a7)2つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義
が記憶されている。
これらの定義は、(3)式あるいは(4)式の定義の際に説明したとおり、プログラム部品の形で記憶されており、制御アルゴリズム生成部412では、その定義記憶部411に記憶された(a1)〜(a7)の定義に従うプログラム部品が駆使されて、それらのプログラム部品が組み合わされたRNNによる制御アルゴリズムが構築される。
すなわち、制御アルゴリズム生成部412は、定義記憶部411に記憶された定義を用い、複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワーク(RNN)により構築された、値が未確定の係数を含む制御アルゴリズムを生成するものであり、この制御アルゴリズム生成部412では、
(b1)上記(3)式(あるいは(4)式)に従う基本的なニューロンのほか、
(b2)複数の入力を受けそれら複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義に従うニューロン
(a3)入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義に従うニューロン
(a4)入力に重みを付するニューロンの、その重みを変更する別のニューロン
(a5)アナログ的な遅れを伴う出力を生成するニューロンの遅れを変更する別のニューロン
(a6)入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義に従うニューロン
(b7)スイッチにより接断される結合が定義された2つのニューロンとそのスイッチを接断する別のニューロン
を駆使することにより、制御対象のロボットの動作制御に適合した、RNNからなる制御アルゴリズムが構築される。
さらに、その制御アルゴリズム生成部412は、定義記憶部411に記憶された定義に従うニューロンを接続することにより、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムを生成することができ、その周期関数が、相互に異なる周期の複数の単位周期関数の結合からなるものである場合に、制御アルゴリズム生成部412は、上記の部分ネットワークを生成するにあたり、複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成する。そして、係数決定部413は、制御アルゴリズム生成部412により生成された複数の単位ネットワークの結合からなる部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって、本実施形態では1つの単位ネットワークずつ順次に、各単位ネットワークの係数の値を決定していく。
こうすることにより、全体の係数の値を短時間に決定することができる。
また、これと同様に、その制御アルゴリズム生成部412は、定義記憶部411に記憶された定義に従うニューロンを接続することにより、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムを生成することができ、その場合に、その制御アルゴリズム生成部412は、その部分ネットワークを生成するにあたり、多項式の各項を実現しそれら各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであり、そして係数値決定部413は、制御アルゴリズム生成部412により生成された複数の単位ネットワークの結合からなる部分ネットワークの係数の値を、その部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって、本実施形態では1つの単位ネットワークずつ順次に、各単位ネットワークの係数の値を決定していく。
係数値決定プロセスについての詳細はさらに後で説明する。
ここで、以下の説明のために、ニューロンとその結線の図面上の表記について説明しておく。
図10は、ニューロンの表記を示した図である。
図10(A)〜図10(E)は、いずれもニューロンを表わしており、そのうちの図10(A)には、丸印と二重丸印が示されている。それらは、いずれも、単にそこにニューロンが存在することを表わしている。ニューロンには遅れと初期値が定義されることがあるが、図10(A)の表記にはそれらの定義は含まれていない。
図10(B)には、二重丸のうちの外側の丸の中(内側の丸の外)にV、内側の丸の中にεが記入されているニューロンが示されており、これは、遅れε、初期値Vのニューロンであることを表わしている。
図10(C)には、丸印の中にVが記入されたニューロン、および二重丸印であって、外側の丸の中かつ内側の丸の外にVが記入されたニューロンが示されている。これらの表記は、いずれも、初期値Vのニューロンであることを示している。ここでは遅れは定義されていない。
図10(D)には、二重丸印のうちの内側の丸の中にεが記入されたニューロンが示されている。このニューロンは、遅れεのニューロンであることを表わしている。初期値は定義されていない。
図10(E)は、図10(D)の特別な場合として遅れゼロのニューロンを表わしている。遅れゼロのニューロンは、複数の入力があった場合、それら複数の入力の総和を求めるニューロンとなり、このため二重丸印の内側の丸の中に数字のゼロを記入する記号に代えて、丸印の中に加算を表わす‘+’を記入した記号を用いることもある。
図11は、ニューロンどうしの接続の表記を示す図である。
図11(A)は、左側のニューロンから右側のニューロンに向かって信号が流れ、左側のニューロンの出力がそのまま右側のニューロンの入力となることを表わしている。
また図11(B)は、左側のニューロンの出力が右側のニューロンの入力となる点では図11(A)のニューロンと同じであるが、図11(B)の右側のニューロンでは、その入力に重みCが付され、その重みが付された入力を基に前述の(3)式(あるいは(4)式)に従う演算が行なわれることを示している。
図11(C)は、右側のニューロンに、左側の複数のニューロンの複数の出力が入力されて重みC1,C2,C3,…でそれぞれ重み付けされ、かつ自分自身の出力も再度入力されて重みC0で重み付けされ、右側のニューロンは、それら重み付けされた複数の入力の総和を基に、前述の(3)式(あるいは(4)式)に従う演算が行なわれることを示している。
次に、図10および図11に示した表記法を使いながら、ニューロンの定義とそのニューロンの振舞(入力と出力との関係、実現される関数等)について説明する。
図12は、時間遅れのないニューロンを示しており、図13は、その時間遅れのないニューロンの入出力の時間変化を示している。
前述の(3)式を再度示すと、
である。
ここで遅れε1をゼロとすると、上記(3)式は、
となる。すなわち、遅れε1=0のときは、図13に示すように出力V1は入力V0そのものとなる。
図14は、ε1≠0の遅れε1を有するニューロンを示す図、図15は、その遅れε1を有するニューロンの入出力の時間変化を示す図である。
この場合、上記(3)式の遅れε1をε1≠0として取り扱い、その(3)式を積分すると、前述の(4)式となる。(4)式をここに再度示しておく。
ここで、この(4)式中の積分定数Cは、初期値V10に依存しており、
の関係にある。
上記(4)式の第1項は、図15に示すように出力V1が時間的に遅れて徐々に変化することを示している。
図16は、複数入力のニューロンを示す図である。
この場合、複数の入力Vj(j=0,1,…,n)を各入力に対応する各重みCij(j=0,1,…,n)で重み付けし、それらの重み付けされた各入力の総和が、上記(3)式の入力V0に相当するものとして取り扱われる。すなわち、図16に示す記号を用いて表現すると、
となる。
図17は、上限閾値を持つニューロンを示している。
ここではニューロン1の出力が閾値θに満たない値のときはそのニューロン1の出力がそのままニューロン2に入力され、ニューロン1の入力が閾値θより大きいときは、ニューロン2では、ニューロン1の出力に代えてその閾値θが入力として取り扱われる。
ニューロン2では、ニューロン1の出力の値に応じては閾値θを入力として取り扱った上で、上述の(3)式(あるいは(4)式)に従う演算が行なわれる。
尚、ここで閾値を、一般に角度を表現するときに用いられるθで表わしたのは、ロボットの動作を制御するにあたっては、そのロボットの関節の角度を制御するケースが多いことを念頭に置いたことによる。
図18は、下限閾値を持つニューロンを示している。
ここでは、ニューロン1の出力が閾値θより大きいときはそのニューロン1の出力がそのままニューロン2に入力され、ニューロン1の出力が閾値θより小さいときはニューロン2はその閾値θを入力として取り扱う。
ここでも、図17の場合と同様、ニューロン2は、ニューロン1の出力の値に応じて閾値を入力として取り扱うこと以外は基本のニューロンと同様であり、上述の(3)式(あるいは(4)式)に従う演算を行なう。
図19は、図16を参照して説明した重み付けと、図17,図18を参照して説明した閾値との双方を含む一般的なニューロンを示した図である。
この図19に示すニューロンiの入出力の関係を記述する式は、
となる。ここで、Vj(j=1,2,…,n,…,m,…,N)は、ニューロンjの出力、Cijはニューロンjからニューロンiに向かう結線に対応する重み、θmax jはニューロンjからニューロンiに向かう結線に対応する、最大値を決める閾値、θmin jは、ニューロンjからニューロンiに向かう結線に対応する、最小値を決める閾値、min(x,y)はxとyとのうちの小さい方の値をとる関数、max(x,y)はxとyとのうちの大きい方の値をとる関数である。
ニューロンiはニューロン1〜ニューロンNのうちのいずれか1つのニューロンであってもよく(この場合は、図11(c)に示すように、ニューロンiの出力がその同じニューロンiに戻るように記述することもできる)、あるいは、ニューロンiは、ニューロン1〜ニューロンNのいずれとも異なるニューロンであってもよい。
図20は、スイッチを示す図である。
ニューロン1とニューロン2はスイッチを介して結合されており、そのスイッチの接断(接続および切断)は、別のニューロン3の出力に応じて行なわれる。ここでは、ニューロン3の出力が閾値θ未満のときはスイッチが接続されてニューロン1の出力がニューロン2の入力となり、ニューロン3の出力がちょうど閾値θと等しいときを含め閾値θ以上のときはスイッチが切断され、ニューロン1の出力はニューロン2に入力されない。ここで、図20中には「<θ」の記号が示されているが、これを「≦θ」に変更すると、ニューロン3の出力がちょうど閾値θに等しいときはスイッチが接続された状態にあることを意味している。
また、図20中の「<θ」の記号を「>θ」に変更すると、ニューロン3の出力が閾値θを越えているときにスイッチが接続されており、ニューロン3の出力が閾値θを含む閾値以下になるとスイッチが切断され、ニューロン1の出力がニューロン2に伝わらなくなる。記号「>θ」を記号「≧θ」に変更すると、ニューロン3の出力が閾値にちょうど等しいときはスイッチは接続状態にあることを意味している。
図21は、ニューロンによる遅れの変更を示す図である。
図21(A)と図2(B)は、異なる向きに描かれているだけであって、いずれも同じことを意味している。ここでは、ニューロン1から、ニューロン2を表わす二重丸のうちの内側の丸に矢印が引かれており、これは、ニューロン1の出力がそのままニューロン2の遅れεとなる(ニューロン1によってニューロン2の遅れが設定、変更される)ことを表わしている。このように、ここでは、あるニューロン(図21の例ではニューロン2)の遅れが別のニューロン(図21の例ではニューロン1)の出力によって変更することができるようにニューロンが定義されている。
図22は、ニューロンによる結線の重みの変更を示す図である。
図21の場合と同様、図22(A)と図22(B)は異なる向きに描かれているだけであり、いずれも同じ内容を意味している。ここでは、ニューロン1の出力がニューロン2に入力されてその入力に重みが付されるが、ニューロン3の出力をその重みとすることを表わしている。このように、ここでは、あるニューロン(ここではニューロン3)の出力を重みとすることにより、その重みを変化させることができるように、ニューロンが定義されている。
図9に示すロボット制御アルゴリズム構築装置410を構成する定義記憶部411には、基本的には、これまで説明した様々なニューロン等の定義がそのニューロン等の入出力の関係を記述したプログラム部品として記憶されており、制御アルゴリズム生成部412では、それらのプログラム部品が組み合わされてRNNによる制御アルゴリズムが構築されるが、制御アルゴリズムの構築をさらに容易にするために、定義記憶部411には、これまで説明してきたニューロン等の定義を記憶しておくことのほか、以下に説明するような、高い頻度で利用される複数のニューロンの組合せを1つのプログラム部品として記憶しておき、制御アルゴリズム生成部412では複数のニューロンの組合せとしてのプログラム部品を利用できるようにしてもよい。制御アルゴリズム生成部412は、定義記憶部411に記憶されたプログラム部品を組み立てるためのプログラム言語の入力により制御アルゴリズムを構築するように構成してもよいが、定義記憶部411に、ニューロンの入出力の関係を記述したプログラム部品だけでなく、これまで説明してきたようなニューロンの表記の記号も記憶しておくとともに、そのニューロンの記号とそのニューロンを表わすプログラム部品とを対応づけておき、制御アルゴリズム生成部412は、図6に示すコンピュータ100の表示画面102a上にニューロンの記号を表示しその表示されたニューロンを結線するというオペレータ操作の裏でその表示されたニューロンや結線に応じた制御アルゴリズムを構築するようにしてもよい。
以下では、複数のニューロンを組み合わせたときに生成される関数について説明する。
図23は、2つのニューロンの組合せの一例を示す図である。
2つのニューロンを図23のように組み合わせると、上側のニューロンに関し、
が成立し、下側のニューロンに関しては、
が成立する。但し、V2は下側のニューロンの出力を表わす。
上記の(9)式と(10)式を組み合わせると、
なる2階線形定係数微分方程式となる。
この2階線形定係数微分方程式の一般解は、
である。
図24は、図23に示す組合せの2ニューロンの入出力を示す図である。
入力V0がステップ関数的に立ち上がったとき、その出力V1は、1<C12C21,C12C21=1,0<C12C21<1,C12C21<0に応じて、それぞれ、図24(a),(b),(c),(d)のように変化する。ここで注目すべき点は、入力V0が定数であっても重みC12,C21の値によっては、出力V1が振動する(図24(d)参照)ことと、ちょうど積分と遅れを重ね合わせた出力が存在する(図24(b)参照)ことである。
図25は、三角関数生成器の一例を示す図である。
ここには、図23の2ニューロンの結合と同様に結合された2ニューロンが示されているが、図23の2ニューロンの結合と異なる点は、入力V0が存在しないことと、重みC21,C12が、絶対値が同一であってかつ正負が異なるC,−Cである点である。
図25の出力V1は、
で表わされる。
上記(13)式を積分すると、
となる。
すなわち上記(13)式あるいは(14)式は、角周波数ωの三角関数を表わしており、正弦的に変化する出力V1が得られる。
この(13)式および(14)式から分かることは、重みCや遅れεの値を変えるとその正弦波出力V1の角周波数を変化させることができるとともに、重みC、遅れε、および初期値V10,V20を変えると(14)式中の係数c1,s1が変化し、これによりその正弦波の位相や振幅変化させることができるという点である。
図26は、図25に示す三角関数生成器を複数組み合わせた部分ネットワークを示す図である。
この図26の、一番右側に示された、1つだけのニューロンは、その初期値(ここでは、下記の(15)式との対応でc0とする)を出力し続けるニューロンである。
この図26に示す部分ネットワークにより実現される関数は、
である。定数項c0およびc1,s1,c2,s2,……等は、図26を参照して説明したようにして((13)式および(14)式参照)、各ニューロンの遅れε,重みC,2C,3C,…,初期値(図26には不図示)により決定される。
(15)式はフーリエ級数を表わしている。任意の周期関数はフーリエ級数に展開することができ、したがって図25のように組み合わされた2ニューロンを図26のように複数組み合わせることによって、任意の周期関数を構築することができる。
図27は、三角関数発生器のもう1つの例を示す図である。
この図27に示す3ニューロンの組合せにより生成される出力V1を式で表わすと、
となる。
のときに、(16)式を解くと、
となる。ここで、C1,C2,C3はニューロンの初期値(図示せず)等により定まる積分定数である。
この(18)式中のV1の式を見ると、第1項は急速に減衰する項であり、第2項と第3項は正弦振動の項である。
したがって、図27のニューロンの組合せは、例えば、ある位置もしくは姿勢に静止していた関節を、その静止位置あるいは静止姿勢とは異なる位置もしくは姿勢(角度)に移動させて、その移動後の位置もしくは姿勢を中心して正弦的に振動させるときの、初期の過渡的な位置もしくは姿勢の移動およびその後の正弦振動を行なわせるための制御信号として利用することができる。
図28は、n次多項式生成器を示す図である。
この図28には、この図28に示すように接続された、n次多項式の各項を生成するn+1個のニューロン(それぞれ1個のニューロンからなる単位ネットワーク)とそれらの出力を重み付け加算するための加算ニューロン(遅れゼロのニューロン;図10(E)参照)との、合計n+2個のニューロンが示されている。
この加算ニューロンの出力V1は、
となる。
図26に示すように、の三角関数生成器を複数組み合わせると、任意の周期信号を作り出してロボットに周期的な運動を行なわさせることができるが、この図28の多項式を用いると、非周期信号を作り出すことができ、ロボットに非周期的な運動(例えば立った姿勢から椅子に腰かけた姿勢への移行など)を行なわさせることができる。
図29は、運動の切り換えを行なうときのニューロンの組合せを示す図である。
運動ニューロン1,2は、ここではいずれも1つのニューロンのように示されているが、その背後には、例えば図26に示す、周期運動を指示する制御信号生成器や、例えば図28に示す多項式生成器により構成された非周期運動を指示する制御信号生成器が存在する。運動ニューロン1と運動ニューロン2とでは相互に異なる運動(例えば運動ニューロン1は椅子に腰かけた状態から立ち上がる運動、運動ニューロンは立った状態で行なう二足歩行運動)を行なわさせるものである。
スイッチニューロンは、その背後に、センサやそのロボットに一連の動作を行なわせるためのシーケンスプログラム等が存在し、運動を切り換えるタイミングで出力が変化するニューロンである。この図29に示す構成の場合、スイッチニューロンの出力に応じて、常に、運動ニューロン1の出力と運動ニューロン2の出力とのうちのいずれか一方が遅れニューロンに入力される。遅れニューロンは、前述の(3)式(あるいは(4)式)に従って、入力をアナログ的に遅らせて出力するニューロンである。
従来から採用されている力学的な運動方程式を立ててその運動方程式に従ってロボットを動作させる制御アルゴリズムの場合、そのロボットに、ある1つの運動から別の1つの運動に移行させるには、それら2つの運動の間をつなぐ別の運動方程式(プログラム)を必要とし、そのプログラムは、移行前の運動と移行後の運動との組合せによってそれぞれ異なり、したがって多数のプログラムを必要とし、その開発や動作テスト等にも多大の時間と労力を必要とする。
これに対し、ここで説明しているRNNを採用すると、移行可能な運動どうしの間ではどの運動からどの運動に移行するかを問わず、それら2つの運動の間に、図29に示すようなスイッチニューロンによってスイッチを切り換え、遅れニューロンを介して出力する構成を配置すればよく、この一点をとっても制御アルゴリズムの開発の時間や労力が極めて大幅に軽減される。
次に、これまで説明してきたニューロンを用いたRNNからなる制御アルゴリズムと、ロボットとの簡単な組み合わせについていくつか説明する。
図30には、2ニューロンからなる、正弦波出力を得るRNN(図25参照)と、関節が1つだけのロボットが示されている。
このロボットは横に延びる台と、関節モータからの駆動力を受けて回動するアームとからなる。その台とそのアームとの連結部分が関節である。
図30中のRNNの出力をロボットの関節を動かす関節モータに供給すると、そのロボットのアームを左右に正弦的に周期運動させることができる。
尚、RNNの出力と関節モータとの間には、様々な回路要素、例えばRNNは実際はプログラムで実現されたものであって、そのプログラムをコンピュータで実行するとデジタル出力が得られるが、これをアナログ信号に変換するD/A変換器や、関節モータに電力を供給するためのパワーアンプなどが介在するが、それらの回路要素はここで行なっている説明に関しては本質的ではないので全て省略している。
図31は、ロボットのアームに任意周期運動を行なわさせる構成を示した図である。
図26を参照して説明した前述のように、周波数の異なる出力を生成する複数の三角関数生成器を用いることにより任意周期波形の周期信号を生成することができる。
この周期信号をロボットの関節モータに供給することにより、そのアームにその周期信号に応じた周期運動を行なわさせることができる。
図32は、ロボットのアームに非周期運動を行なわさせる構成を示した図である。
この図32には、図28に示した構成と同じ構成のRNNと、関節が1つだけのロボットが示されている。
図28に示した構成を用いると、任意次元(n次元)の多項式で表わされる非周期関数を実現することができ、その出力で図32のロボットを駆動することにより、そのロボットのアームにその多項式で実現された非周期運動を行なわさせることができる。
次に、これまで説明したきたニューロンの組合せからなるRNNにより、PID制御を実現した例について説明する。
PID制御は、比例(P)と積分(I)と微分(D)とを組み合わせたフィードバック制御であり、従前より広く使われている制御法である。
図33は、積分(I)を除くPD制御の一例を示す図である。
この図33にも、図30〜図32にも示した、関節が1つだけのロボットが示されている。
ここでは、この関節の位置(角度)を測定するセンサと、その関節の動きの速度(角速度)を測定するセンサが備えられている。速度(角速度)センサを備える代わりに位置(角度)センサの出力を微分することにより速度(角速度)情報を得てもよい。
図33のRNNを式で表わすと、
となる。
この(20)式の右辺の第1項は比例項(P)、第2項は微分項(D)である。
図34は、PID制御の一例を示した図である。
この図34では、図32に示すRNNに、さらに積分(I)の構成が追加されている。この図33のRNNを式で表わすと、
となる。この(21)式の右辺の第1項および第2項は、図33を参照して説明した(20)式の第1項、第2項と同様、比例項(P)および微分項(D)であり、(21)式の右辺の第3項は、積分項(I)である。
図35は、PID制御のもう1つの例を示した図である。
上述の図34の場合、目標位置は固定値のように示されているが、図35では、目標位置を周期的に変化させている。こうすることにより、関節モータは、PIDフィードバック制御により、その周期的に変化する目標値に追随するように駆動される。
上記図33〜図35に示すように、これまで説明してきたニューロンを使ったRNNにより、PID制御を実現することもできる。
図36は、ロボットおよびそのロボットを制御する制御アルゴリズム等からなる全体システムの概念図である。
この図36中のCPGは、Central Pattern Generatorの略であり、ここでは、RNNによる部分ネットワークを指している。多数のCPGが集まって、ロボットを制御するための制御アルゴリズムが構成されている。
この制御アルゴリズムを構成する多数のCPG(部分ネットワーク)は、それぞれが、制御対象のロボットの、ある1つの運動を分担している。具体例については次の図37を参照して後に説明する。
CPGの、未決定の各種係数(各ニューロンの遅れε、重みC、初期値等)を決定するにあたっては、ロボットの動作が評価されてその評価値が学習システムに伝えられ、その学習システムで各係数値が決定される。係数値の決定手法については、もう少しあとで説明する。
ロボットの動作は、センサシステムで計測されて制御アルゴリズムに伝えられ、その制御アルゴリズムは、センサシステムからの情報に基づいてロボットが所望の動作を行なうよう、そのロボットを制御する。
図37は、二足歩行ロボットの足とその足の運動を制御するRNNの模式図である。
ここには、ロボットの関節が円柱で示されており、左右の両足のうちの右足の動きを制御するRNNが示されている。
ここには、CPGとして、この二足歩行ロボットに前進歩行動作を行なわせるために必要となる、ロールCPGと、リフトCPGと、ピッチCPGが示されている。
ロボットを前進歩行させるときには、左右の足への体重移動が行なわれるが、ロールCPGは、その体重移動のための運動を制御する制御信号を生成する部分ネットワークである。
前進歩行時、左右の足への体重移動は、交互に周期的に行なわれるため、その運動を制御するロールCPGは周期信号を生成するように構成されている。
また、ロボットを前進歩行させるときには、左右の足を交互に上下運動させる必要がある。図37に示すリフトCPGは、右足を上下運動させるための部分ネットワークである。足の上下運動も周期運動であり、したがってリフトCPGも周期信号を生成するように構成されている。
また、ロボットを前進歩行させるには、左右の足を交互に前進させる必要がある。図37に示すピッチCPGは、右足を前進運動させるための部分ネットワークである。足を1回前進させる運動は非周期の動作であり、このためピッチCPGは、多項式による非周期信号を生成する部分ネットワークとして構成されている。
リフトCPGの出力は、ロールCPGの出力によりスイッチ制御されている。これは、例えば体重(重心)を十分に左足に移してからでないと右足を持ち上げることができないようにするためである。またこれと同様に、ピッチCPGの出力も、ロールCPGの出力によりスイッチ制御されている。これも同様に、例えば体重(重心)を十分に左足に移してからでないと右足を前進させることができないようにするためのものである。さらに、リフトCPGの出力やピッチCPGの出力は閾値処理がなされている。これは、例えば右足を前進させて足裏が床に接触した後は、それ以上その右足を伸ばそうとしたり前進させたりするのを止めて、その右足が床に接触したときの右足の状態を保持するための措置である。
このようにして周期運動を行なわさせるためのCPGや非周期運動を行なわさせるためのCPGを組み合わせることによって、全体として複雑な運動を実現することができる。
次に、ロボットの制御アルゴリズム構築の処理の流れについて説明する。制御アルゴリズムを構築するには、これまで説明してきた、RNNを組み立てるだけの処理では足りず、そのRNNに含まれている各種係数(各ニューロンの遅れ、重み、初期値などに関係する係数)を決定する必要がある。ここでは、RNNからなる制御アルゴリズムを係数値の決定を含めて構築するシステムを、「学習システム」と称する(図36参照)。
ここでは、RNNの係数の値を決定するにあたり、考え方の前提として、運動、すなわち関節の位置や角度の時間変化は、非線形方程式の解であるという立場をとる。この非線形方程式の解を求めるために、新たな非線形方程式を利用する方法もある。しかしながら、非線形方程式を用いる方法は、解発生機構そのものに非線形要素が存在するため、上位判断機能などの処理系が意のままに制御することが難しい。そこで、ここでは、運動を逐次近似法で解くことを考える。
天文力学や流体力学においては、非線形方程式を近似的に解く手法として摂動法が知られている。摂動法とは、天文力学等において、非線形方程式を解く際に、可解な線形微分方程式の解を第1近似解としそれを逐次修正しながら近似解を求める手法である。この摂動法において、修正に必要な項を摂動項という。通常、テイラー展開に基づく計算を行なう。天文力学の場合、解くべき方程式は、あらかじめわかっているため、解くべき方程式に展開した解を直接代入し、各次数毎に解くことによって、逐次解を求める。通常の摂動法の揚合、近似度をあげると解は真の解に逐次近づく。
ここでは、上記の考えをロボットの運動の方程式に当てはめて考える。ロボットの運動の非線形方程式は、歩行等の運動を考えると、ロボットの質量等の物性値、関節粘性、モータ最大トルク、床面の摩擦係数や傾斜、および部屋の形状等の非常に複雑な関係式となっていることが予想される。理想的な場合はこのような方程式を構築することができ、理論的に解析できる。しかしながら、ロボットが様々な運動を行うことを考えると、この方程式をすべてあらかじめ知ることは非常に難しい作業である。
そこで、ここでは、解くべき方程式があらかじめわかっている天文力学の場合とは異なり、解くべき方程式を構築しないで問題を解くことを考える。天文力学等で用いられている摂動法は、低い次数から順次に解が得られる。ここでは、これと同様に、解を以下のようにある固有関数で展開して、低い次数から逐次、試行錯誤によってその係数を数値的に求める。満足できる運動が得られるまで次数をあげていく。
yiは固有関数、δiはその係数、iは次数である。
この手法を、ここでは、NP法(Numerical Perturbation method)と言うことにし、ここでは、CPGモデルとNP法を併用した運動学習システム(CPG/NP)を説明する。CPGモデルは、前述したように、基本的な関数である三角関数や多項式を発生することができ、その他説明は省略するが数種の直交関数を発生することができる。これらの基本的な関数を用いて、運動を表現する未知非線形方程式の解を求める。
k番目の関節の運動(位置あるいは角度)をθk(t)としたとき、ここでは、ある1つのCPGを、
と表現する。
cj,sj,ajは、ニューロンの遅れ、重み、および初期値に関係する係数である((13)式〜(15)式、(19)式を参照。)この(23)式の右辺中の第1項は定数項c0であり、第2項は周期関数の項であり、第3項は非周期関数の項である。ここでは、(23)式のΣによる積算をばらばらに分解した各項それぞれに対応する各単位ネットワークが生成されているものとする。ここでは、jの値の低い項((23)式の右辺中の第2項については角周波数jωの低い(周期の長い項、(23)式の右辺中の第3項については、低次の項)から順に係数の値を求め、ネットワークを構成していく。ここでは、先ず、c0を最初に決め、次に(23)式中の係数c1,s1,a1を求める。このとき、他の係数cj,sj,aj(j=2,3,…,n)を全て0とおく。c1,s1,a1が求められると、次にc2,s2,a2を求める。このとき、先に求めたc1,s1,a1は固定しておき、他の係数cj,sj,aj(j=3,4,…,n)は全て0にしておく。これをcj,sj,ajについて繰り返す。
NP法では、以上のようにして係数を順次決めていく。
図9に示すロボット制御アルゴリズム構築装置410の定義記憶部411には、上述の(23)式の各項に相当する単位ネットワークが全てあらかじめ生成されて記憶されている。あるいは、定義記憶部411には、それらの単位ネットワーク生成のアルゴリズムが記憶されていて、制御アルゴリズム制御部412で必要な単位アルゴリズムが自動生成されるように構成してもよい。
図38は、ロボットの運動学習システムの概要を示す図である。
ここでは、先ずオペレータにより、基本運動タイプと初期係数値が与えられる。基本運動タイプとは、今回係数を決定しようとしているCPGが、周期運動タイプのCPGであるが非周期運動タイプのCPGであるということである。周期運動のCPGであることが指示されると、(23)式の右辺の第1項と第2項のみが有効となり第3項は不要となる。一方、非周期運動のCPGであることが指示されると(23)式の右辺の第1項と第3項が有効となり、第2項は不要となる。
この図38中の「アドバイス」は評価関数である。評価関数は、満足できる運動かをどうかを決定するための関数である。複雑な系の場合、評価関数は、「エネルギー最小」、「ロボット本体の安定性」、「高速性」等複数ある。極致問題とするために、ここでは、評価関数Eを以下のように複数の評価関数Eiの重み付線形和とする。Eiは2次形式で与えられる非負数であり、ciは評価関数Eiの重みである。ここでは、評価関数Eをアドバイスと呼ぶことにする。
図9に示すロボット制御アルゴリズム構築装置410の制御アルゴリズム生成部412には、オペレータにより基本運動タイプと係数の初期値が指定される。先ず、関数kの初期位置(初期角度)c0が指定される。このc0は、その関節が静止状態(運動を開始する前の状態)にあるとき、あるいはその直前の運動から引き継いだ初期状態にあるときの、その関節の初期位置あるいは初期角度である。次に、例えば基本運動タイプが周期運動タイプであることが指定される。すると、図9のロボット制御アルゴリズム構築装置410の制御アルゴリズム生成部412では、その指定を受け、定義記憶部411から
の基本ネットワークを読み出す(あるいはその時点で生成する)。このときの運動の基本式は、初期位置(初期角度)c0を含め、
となる。
オペレータからは、その周期運動の基本的な周期(角周波数ω)や、各係数c1,s1の初期値が与えられ、図9のロボット制御アルゴリズム構築装置410の係数値決定部413は、これらω,c1,s1によりその基本ネットワークを構築する各ニューロンの遅れ、重み、および初期値が仮決定される。
このようにして生成された、初期係数値を持つ基本ネットワークの出力がロボットに与えられ、そのときのロボットの運動が評価される。その評価に応じて係数値が少しずつ修正されその次数の段階での最高の評価が得られるように係数c1,s1が決定される。
ロボットの運動の評価は、オペレータが目視等により行ない、そのオペレータにより係数値を決定してもよいが、上述のアドバイスをあらかじめ決めておき、そのアドバイスに従って、係数値を自動で、あるいはオペレータの意見も含めて半自動で決定してもよい。
(25)式におけるc1,s1が決定されると(c0はそれ以前に既に決定されている)、それに応じて、(24)式で表わされる基本ネットワークを構成するニューロンの遅れ、重み、および初期値が決定される((14)式参照)。図9の制御アルゴリズム生成部412は、定義記憶部411から次の次数の項を実現する基本ネットワークを読み出し(あるいは生成し)これまでの低い次数の部分ネットワークに結合する。式で示すと、
となる。係数c0,c1,s1は既に決定済であり、ここではオペレータにより新たな係数c2,s2の初期値が与えられる。これらの係数c2,s2は、その次数の項を実現する単位ネットワークを構成するニューロンの遅れ、重み、初期値に対応づけられている点は、係数c1,s1の場合と同様である。図9の係数値決定部413では、係数c2,s2として初期値が与えられたときの(26)式に相当する部分ネットワークの出力がロボットに与えられ、そのときのロボットの運動が評価され、その評価がより高まる方向に係数c2,s2の値が調整され、その次数における最高の評価が得られるように係数c2,s2が決定される。
係数c2,s2が決定されると、図9の制御アルゴリズム生成部412は、定義記憶部411から次の次数の項を実現する基本ネットワークを読み出し(あるいは生成し)、これまで評価の済んでいる(係数が決定されている)部分ネットワークに結合される。式で示すと、
となる。
新たな係数c3,s3について初期値が与えられ、上記と同様のプロセスを経ることによりその係数c3,s3の値が決定される。
このようにして、ロボットが必要な精度の運動を行なうことができる次数まで、順次に係数が決定される。
ここでは周期関数を例に挙げて説明したが、非周期関数の係数決定プロセスも同様である。
以上の説明では、係数の初期値は全てオペレータが与えるものとして説明したが、例えば係数の値として任意に定めた初期値あるいは、あらかじめ決められた固定の初期値を自動で与え、その自動で与えた初期値から出発して係数値を順次変化させてその係数の値を決定してもよい。
その初期値の与え方だけでなく、基本運動タイプの指定、基本ネットワークの読み出し(あるいは生成)、およびロボットの運動の評価等の全てをあらかじめプログラムしておくことで、部分ネットワークの生成からその部分ネットワークの係数の決定までを全て自動化してもよい。あるいは、それらのうちの一部をオペレータ操作に委ね、あるいは自動生成の結果をオペレータに提示して承認を受けるなど半自動の装置として実現してもよい。
また、上記では、係数に初期値が与えられたばかりの部分ネットワークの出力をいきなりロボットに与えるように説明したが、その出力を、先ずは図6、図7に示すコンピュータ中に構築されているアルゴリズムとしてのロボットに与えて動作シミュレーションを行ない、ある程度十分な精度で動作することを確認してから、実際のロボットを動かしてみることが好ましい。
図39は、以上の学習プロセスをまとめたフローチャートである。
先ず、基本運動タイプが与えられる。係数は初期値から出発する(ステップS1)。
その初期値から出発した初期運動の係数をGA(遺伝的アルゴリズム)や二分法等、何らかの係数決定アルゴリズムを駆使して決定し(ステップS2)、運動タイプに従ってより高次の項を付加してその付加した項の係数に初期値を与え(ステップS3)、その高次の項の係数をGAや二分法等を用いて決定する(ステップS4)。制御対象のロボットの運動の精度が未だ不充分のときは(ステップS5)、その運動タイプに従ってさらに高次の項を付加するとともにその付加した高次項の係数に初期値を与え(ステップS3)、その高次項の係数をGAや二分法等を用いて決定する(ステップS4)。これを、ロボットが十分な精度の運動を行なうことができるようになるまで繰り返す。
次に、上記のCPG/NP(CPGの係数を上記のNP法で順次求める方法)とCPG/GA(CPGの係数をGA(遺伝的アルゴリズム)を用いて、一度に求める方法)との比較結果を説明する。
CPG/GAでは、すべての係数が同時に求められる。そのため、すべての係数が相互に関係を持つ。動きを少しだけ変更したい場合でも、すべての係数が影響を受け変更に時間がかかることが予想される。ここではもっとも差が出ると考えられる場合として、解の全サーチを行った場合について簡単に考察する。ニューロン値の解像度および結合重みの解像度を共にn、最終的なニューロン数とニューロン間の結合数の和をmとすると、全サーチを行った場合の計算量は、nm回の試行が必要である。仮に、CPG/NPにおいてj次に分割して求めたとすると、計算量は、およそj×nm/jである。具体的にn=16,m=60,j=5とすると、nm=1.15×1073,j×nm/j=1.4×1016とおよそ105 7倍程度の差が出る。実機を用いた実証実験では、CPG/GAでは、CPG/NPで得たものに相当する解を、現在までに、まだ見つけることができていない。さらに、CPG/NP法では、CPG/GAにはない特徴として、各摂動次数の区切りで評価関数を再設定したり、ニューロン数を変化することが容易である事があげられる。
このように、CPG/NPの場合、従来法と比べ天文学的な桁数ほど違うレベルで極めて短時間に係数を決定することができる。
図40は、本発明のロボット制御プログラムの一実施形態の概要を示す模式図である。
ここでは、このロボット制御プログラム500はCD−ROM300に記憶されており、このCD−ROM300が図6に示すCD−ROM装填口101bから装填され図7のCD−ROMドライブ115によりアクセスされて、そのCD−ROM300に記憶されているロボット制御プログラム500が、図6,図7に示すコンピュータ100にインストールされる。そのコンピュータ100内にインストールされたロボット制御プログラムがそのコンピュータ100内で実行されると、そのコンピュータ100は、本発明のロボット制御装置の一実施形態として動作する。
尚、このロボット制御プログラム500は、ここではCD−ROM300に記憶されている例を示したが、前述のロボット制御アルゴリズム構築プログラム(図8参照)の場合と同様、CD−ROMに記憶されている必要はなく、例えばFD等他の可搬型記憶媒体に記憶されてコンピュータ100にインストールされてもよく、あるいは、他の装置等から通信網(図示せず)を介してコンピュータ100にインストールされてもよく、あるいは、そのコンピュータ100のハードディスク(図7参照)等にはじめから記憶されていてもよく、最終的にコンピュータで実行可能となるものであればどのように保存あるいは記憶されていてもよい。
図40に示すロボット制御プログラム500は、制御アルゴリズム記憶部501とロボット制御部502とから構成されている。このロボット制御プログラム500を構成する各部501,502の作用は、図41の説明と合わせて説明する。
図41は、本発明のロボット制御装置の一実施形態を示すブロック図である。
このロボット制御装置510は、図6,図7に示すコンピュータ100内で図40に示すロボット制御プログラム500が実行されることにより、図6,図7に示すコンピュータ100内に実現するものである。
この図41のロボット制御装置510は、制御アルゴリズム記憶部511およびロボット制御部512で構成されている。これら制御アルゴリズム記憶部511およびロボット制御部512は、それぞれ、図40に示すロボット制御プログラム500の、制御アルゴリズム記憶部501およびロボット制御部502に対するが、図41のロボット制御装置510の各部511,512は、図6、図7のコンピュータ100のハードウェアおよびそのコンピュータ100内で実行されるオペレーティングシステム(OS)およびそのOS上で動作する、図40に示すロボット制御プログラム500の各部501,502との複合で構成されているのに対し、図40に示すロボット制御プログラム500の各部501,502は、それらの複合のうちのアプリケーションプログラム部分のみで構成されている。図40に示すロボット制御プログラム500を構成する各部501,502の、そのロボット制御プログラム500が図6、図7のコンピュータ100内で実行されたときの作用は、図41に示すロボット制御装置510を構成する各部511,512の作用そのものであり、以下、図41のロボット制御装置510の各部511,512の作用を説明することで、図40のロボット制御プログラム500の各部501,502の作用の説明を兼ねるものとする。
図41のロボット制御装置510は、2つの部材の相対的な位置もしくは姿勢を可変にそれら2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御する装置である。前述したように、図6に示すロボット200は人間の躰の構造に似せた構造を有するヒューマノイド型のロボットであり、人間の手足等に対応する部分に複数の関節を有する。
ここで、この図41のロボット制御装置510を構成する制御アルゴリズム記憶部511は、入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有しそれら複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワーク(RNN)により構築された制御アルゴリズムを記憶するものであり、ロボット制御部512は、制御アルゴリズム記憶部511に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するものである。
制御アルゴリズム記憶部511に記憶されている制御アルゴリズムは、前述のようにして構築され係数についても値が決定された後の制御アルゴリズムである。この制御アルゴリズム記憶部511に記憶される制御アルゴリズムの詳細は既に説明済であるため、ここでは重複説明は省略する。
ロボット制御部512には、ロボットに備えられた各種センサによる測定値が入力され、ロボット制御部512は、制御アルゴリズム記憶部511に記憶された制御アルゴリズムに基づくとともにセンサからの測定値に基づいて制御対象のロボットの運動を制御する。
図42は、本発明のロボットの一実施形態の外観図である。
このロボット600は、図6のコンピュータ100で実現しているロボット制御装置を図6に示すロボット200自身の内部に備えたものに相当する。
すなわち、このロボット600は、このロボット自身を制御するロボット制御装置610を内蔵している。
図43は、図42のロボット600の構成を示すブロック図である。
このロボット600は、ロボット制御装置610とそのロボット制御装置610により運動が制御される関節620と、その関節の動作を計測するセンサ630を備えている。
このロボット600のロボット制御装置610は、制御アルゴリズム記憶部611とロボット制御部612とからなる。このロボット制御装置610は、このロボット制御装置610がロボット600に内蔵されていることを除き、図41に示すロボット制御装置510と同一であり、このロボット制御装置610を構成する制御アルゴリズム記憶部611およびロボット制御部612は、図41に示すロボット制御装置510を構成する制御アルゴリズム記憶部511およびロボット制御部512とそれぞれ同一の作用を成す。重複説明は省略する。
このように、ロボット制御装置を内蔵したロボットを構成してもよい。
Claims (18)
- 2つの部材の相対的な位置もしくは姿勢を可変に該2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
前記定義記憶部に記憶された定義を用い、複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
前記制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたことを特徴とするロボット制御アルゴリズム構築装置。 - 前記定義記憶部に記憶された定義には、複数の入力を受け該複数の入力の総和に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、前記制御アルゴリズム生成部は、該定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第1項記載のロボット制御アルゴリズム構築装置。
- 前記定義記憶部に記憶された定義には、入力に重みを付し重みを付した入力に基づいて、遅れゼロを含むアナログ的な遅れを伴う出力を生成するというニューロンの定義を含むものであり、前記制御アルゴリズム生成部は、該定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第1項記載のロボット制御アルゴリズム構築装置。
- 前記定義記憶部に記憶された定義には、前記重みを別のニューロンの出力に応じて変更する定義を含むものであって、前記制御アルゴリズム生成部は、入力に重みを付するニューロンを含むとともに該重みを変更する別のニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第1項記載のロボット制御アルゴリズム構築装置。
- 前記定義記憶部に記憶された定義には、前記ニューロンの遅れを別のニューロンの出力に応じて変更する定義を含むものであって、前記制御アルゴリズム生成部は、該別のニューロンを含むとともに該別のニューロンの出力によって変更される遅れを伴う出力を生成するニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第1項記載のロボット制御アルゴリズム構築装置。
- 前記定義記憶部に記憶された定義には、入力が閾値を越える場合に入力に代えて閾値を採用するニューロンの定義を含むものであって、前記制御アルゴリズム生成部は、該定義に従うニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第1項記載のロボット制御アルゴリズム構築装置。
- 前記定義記憶部に記憶された定義には、2つのニューロン間の結合を別のニューロンの出力に応じて接断するスイッチの定義を含むものであって、前記制御アルゴリズム生成部は、該別のニューロンを含むとともに該別のニューロンの出力に応じて接断するスイッチにより接断される結合が定義された2つのニューロンを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第1項記載のロボット制御アルゴリズム構築装置。
- 前記制御アルゴリズム生成部は、周期関数を実現し周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第1項記載のロボット制御アルゴリズム構築装置。
- 前記周期関数は、相互に異なる周期の複数の単位周期関数の結合からなるものであって、前記制御アルゴリズム生成部は、前記部分ネットワークを生成するにあたり、前記複数の単位周期関数を実現し相互に異なる周期の複数の単位周期信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることを特徴とする請求の範囲第9項記載のロボット制御アルゴリズム構築装置。
- 前記係数値決定部は、前記制御アルゴリズム生成部により前記複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、該部分ネットワークの係数の値を、該部分ネットワークを構成する複数の単位ネットワークのうちの、より長周期の単位周期信号を出力する単位ネットワークから、より短周期の単位周期信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることを特徴とする請求の範囲第10項記載のロボット制御アルゴリズム構築装置。
- 前記制御アルゴリズム生成部は、多項式で表わされる非周期関数を実現し非周期信号を出力する部分ネットワークを含む制御アルゴリズムの生成が自在なものであることを特徴とする請求の範囲第1項記載のロボット制御アルゴリズム構築装置。
- 前記制御アルゴリズム生成部は、前記部分ネットワークを生成するにあたり、前記多項式の各項を実現し該各項に対応する各単位信号を出力する複数の単位ネットワークの結合からなる部分ネットワークを生成するものであることを特徴とする請求の範囲第第12項記載のロボット制御アルゴリズム構築装置。
- 前記係数値決定部は、前記制御アルゴリズム生成部により前記複数の単位ネットワークの結合からなる部分ネットワークが生成される場合に、該部分ネットワークの係数の値を、該部分ネットワークを構成する複数の単位ネットワークのうちの、より次数の低い項に対応する単位信号を出力する単位ネットワークから、より次数の高い項に対応する単位信号を出力する単位ネットワークに向かって順次に、各単位ネットワークの係数の値を決定していくものであることを特徴とする請求の範囲第15項記載のロボット制御アルゴリズム構築装置。
- プログラムを実行する情報処理装置内で実行され、該情報処理装置を、2つの部材の相対的な位置もしくは姿勢を可変に該2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するための制御アルゴリズムを構築するロボット制御アルゴリズム構築装置として動作させるロボット制御アルゴリズム構築プログラムにおいて、
前記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成するニューロンの定義を記憶する定義記憶部と、
前記定義記憶部に記憶された定義を用い、操作に応じて、複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された、値が未確定の係数を含む制御アルゴリズムを生成する制御アルゴリズム生成部と、
前記制御アルゴリズム生成部で生成された制御アルゴリズムの係数の値を決定する係数値決定部とを備えたロボット制御アルゴリズム構築装置として動作させることを特徴とするロボット制御アルゴリズム構築プログラム。 - 2つの部材の相対的な位置もしくは姿勢を可変に該2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するロボット制御装置において、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
前記制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたことを特徴とするロボット制御装置。 - プログラムを実行する情報処理装置内で実行され、該情報処理装置を、2つの部材の相対的な位置もしくは姿勢を可変に該2つの部材を結合する関節を少なくとも1つ備えたロボットの動作を制御するロボット制御装置として動作させるロボット制御プログラムにおいて、
前記情報処理装置を、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
前記制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いて制御対象のロボットを制御するロボット制御部とを備えたロボット制御装置として動作させることを特徴とするロボット制御プログラム。 - 2つの部材の相対的な位置もしくは姿勢を可変に該2つの部材を結合する関節を少なくとも1つ備えたロボットにおいて、
このロボットの動作を制御するロボット制御装置を備え、
該ロボット制御装置が、
入力に基づいて遅れゼロを含むアナログ的な遅れを伴う出力を生成する複数のニューロンを有し該複数のニューロンの中に遅れゼロを除くアナログ的な遅れを伴う出力を生成する遅れニューロンを少なくとも1つ含むとともに信号の流れのループが存在するリカレントニューラルネットワークにより構築された制御アルゴリズムを記憶する制御アルゴリズム記憶部と、
前記制御アルゴリズム記憶部に記憶された制御アルゴリズムに基づいて生成された制御信号を用いてこのロボットの動作を制御するロボット制御部とを備えたことを特徴とするロボット。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2002/010622 WO2004033159A1 (ja) | 2002-10-11 | 2002-10-11 | ロボット制御アルゴリズム構築装置、ロボット制御アルゴリズム構築プログラム、ロボット制御装置、ロボット制御プログラム、およびロボット |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2004033159A1 true JPWO2004033159A1 (ja) | 2006-02-09 |
Family
ID=32089059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004542801A Pending JPWO2004033159A1 (ja) | 2002-10-11 | 2002-10-11 | ロボット制御アルゴリズム構築装置、ロボット制御アルゴリズム構築プログラムロボット制御装置、ロボット制御プログラム、およびロボット |
Country Status (4)
Country | Link |
---|---|
US (1) | US7072741B2 (ja) |
EP (1) | EP1552908A4 (ja) |
JP (1) | JPWO2004033159A1 (ja) |
WO (1) | WO2004033159A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018173790A (ja) * | 2017-03-31 | 2018-11-08 | 株式会社ドワンゴ | 学習装置、学習方法、学習プログラム、動画配信装置、活動装置、活動プログラムおよび動画生成装置 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4512406B2 (ja) * | 2004-04-23 | 2010-07-28 | ソニー株式会社 | 2足歩行移動装置 |
US7627540B2 (en) | 2005-06-28 | 2009-12-01 | Neurosciences Research Foundation, Inc. | Addressing scheme for neural modeling and brain-based devices using special purpose processor |
US7533071B2 (en) | 2005-06-28 | 2009-05-12 | Neurosciences Research Foundation, Inc. | Neural modeling and brain-based devices using special purpose processor |
WO2007127376A2 (en) * | 2006-04-27 | 2007-11-08 | Massachusetts Institute Of Technology | Computer-implemented model of the central nervous system |
WO2007022204A2 (en) * | 2005-08-15 | 2007-02-22 | Massachusetts Institute Of Technology | Computer-implemented model of the central nervous system |
US7765029B2 (en) * | 2005-09-13 | 2010-07-27 | Neurosciences Research Foundation, Inc. | Hybrid control device |
JP4818716B2 (ja) * | 2005-12-27 | 2011-11-16 | 富士通株式会社 | ロボット制御装置 |
WO2007135723A1 (ja) * | 2006-05-22 | 2007-11-29 | Fujitsu Limited | ニューラルネットワーク学習装置、方法、及びプログラム |
JP4286880B2 (ja) * | 2007-04-25 | 2009-07-01 | 本田技研工業株式会社 | 制御パラメータを探索するためのプログラム |
JP5632609B2 (ja) * | 2007-08-21 | 2014-11-26 | 富士通株式会社 | ロボット制御装置およびロボット制御方法 |
WO2009040885A1 (ja) * | 2007-09-25 | 2009-04-02 | Fujitsu Limited | ロボット制御装置、ロボット制御方法およびロボット制御プログラム |
US8554370B2 (en) * | 2009-05-15 | 2013-10-08 | Honda Motor Co., Ltd | Machine learning approach for predicting humanoid robot fall |
US9566710B2 (en) | 2011-06-02 | 2017-02-14 | Brain Corporation | Apparatus and methods for operating robotic devices using selective state space training |
US9296102B2 (en) * | 2012-01-11 | 2016-03-29 | Technion Research And Development Foundation Ltd. | Robot, device and a method for central pattern generator(CPG) based control of a movement of the robot |
EP2896487A1 (en) * | 2012-09-04 | 2015-07-22 | Kabushiki Kaisha Yaskawa Denki | Method for adjusting robot control parameters, robot system, and robot control device |
US9764468B2 (en) | 2013-03-15 | 2017-09-19 | Brain Corporation | Adaptive predictor apparatus and methods |
US9242372B2 (en) | 2013-05-31 | 2016-01-26 | Brain Corporation | Adaptive robotic interface apparatus and methods |
US9314924B1 (en) * | 2013-06-14 | 2016-04-19 | Brain Corporation | Predictive robotic controller apparatus and methods |
US9792546B2 (en) | 2013-06-14 | 2017-10-17 | Brain Corporation | Hierarchical robotic controller apparatus and methods |
US9579789B2 (en) | 2013-09-27 | 2017-02-28 | Brain Corporation | Apparatus and methods for training of robotic control arbitration |
KR102146363B1 (ko) * | 2013-10-31 | 2020-08-20 | 삼성전자주식회사 | 착용형 로봇 및 그 제어 방법 |
US9597797B2 (en) | 2013-11-01 | 2017-03-21 | Brain Corporation | Apparatus and methods for haptic training of robots |
US9463571B2 (en) | 2013-11-01 | 2016-10-11 | Brian Corporation | Apparatus and methods for online training of robots |
US9358685B2 (en) | 2014-02-03 | 2016-06-07 | Brain Corporation | Apparatus and methods for control of robot actions based on corrective user inputs |
US9701018B2 (en) | 2014-04-01 | 2017-07-11 | Bot & Dolly, Llc | Software interface for authoring robotic manufacturing process |
US9841749B2 (en) | 2014-04-01 | 2017-12-12 | Bot & Dolly, Llc | Runtime controller for robotic manufacturing system |
US9346167B2 (en) | 2014-04-29 | 2016-05-24 | Brain Corporation | Trainable convolutional network apparatus and methods for operating a robotic vehicle |
US9278449B1 (en) | 2014-05-21 | 2016-03-08 | Bot & Dolly, Llc | Closed-loop control system for robotic operation |
US9555545B2 (en) | 2014-05-21 | 2017-01-31 | Bot & Dolly, Llc | Systems and methods for time-based parallel robotic operation |
US9308647B2 (en) | 2014-06-03 | 2016-04-12 | Bot & Dolly, Llc | Systems and methods for instructing robotic operation |
US9630318B2 (en) | 2014-10-02 | 2017-04-25 | Brain Corporation | Feature detection apparatus and methods for training of robotic navigation |
US9717387B1 (en) | 2015-02-26 | 2017-08-01 | Brain Corporation | Apparatus and methods for programming and training of robotic household appliances |
JP5816771B1 (ja) * | 2015-06-08 | 2015-11-18 | 株式会社Preferred Networks | 学習装置ユニット |
TWI676536B (zh) * | 2016-01-22 | 2019-11-11 | 大陸商鴻富錦精密工業(武漢)有限公司 | 基於腦電訊號控制之智慧型機器人系統和方法 |
CN107662208B (zh) * | 2017-08-24 | 2020-07-31 | 浙江工业大学 | 一种基于神经网络的柔性关节机械臂有限时间自适应反步控制方法 |
JP6781183B2 (ja) * | 2018-03-26 | 2020-11-04 | ファナック株式会社 | 制御装置及び機械学習装置 |
CN108803344B (zh) * | 2018-07-25 | 2019-11-22 | 西北工业大学 | 一种基于模态切换的机器人双边遥操作对称预测控制方法 |
CN109765929B (zh) * | 2019-01-14 | 2022-04-05 | 哈尔滨工程大学 | 一种基于改进rnn的uuv实时避障规划方法 |
JP7417356B2 (ja) * | 2019-01-25 | 2024-01-18 | 株式会社ソニー・インタラクティブエンタテインメント | ロボット制御システム |
JP7190919B2 (ja) | 2019-01-25 | 2022-12-16 | 株式会社ソニー・インタラクティブエンタテインメント | 画像解析システム |
EP4019202A4 (en) * | 2019-10-24 | 2023-08-09 | Naver Corporation | METHOD AND SYSTEM FOR OPTIMIZING AUTONOMOUS DRIVING BASED ON REINFORCEMENT LEARNING AS A FUNCTION OF USER PREFERENCES |
CN111168680B (zh) * | 2020-01-09 | 2022-11-15 | 中山大学 | 一种基于神经动力学方法的软体机器人控制方法 |
CN111716357A (zh) * | 2020-06-18 | 2020-09-29 | 南京邮电大学 | 一种基于动态神经网络的轨迹生成和调制方法 |
CN111950204B (zh) * | 2020-08-13 | 2022-04-19 | 一汽解放汽车有限公司 | 一种铰链结构的优化方法、装置、计算机设备及存储介质 |
CN113359461B (zh) * | 2021-06-25 | 2022-12-27 | 北京理工大学 | 一种适用于仿生眼系统的运动学标定方法 |
CN114851198B (zh) * | 2022-05-17 | 2023-05-16 | 广州大学 | 一种多单连杆式机械臂的一致跟踪固定时间稳定控制方法 |
CN116401623B (zh) * | 2023-04-19 | 2023-11-03 | 深圳墨影科技有限公司 | 一种机器人控制算法融合方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69836765T2 (de) * | 1997-01-31 | 2007-10-04 | Honda Giken Kogyo K.K. | Steuergerät eines mit beinen beweglichen roboters |
DE69943148D1 (de) * | 1998-04-20 | 2011-03-03 | Honda Motor Co Ltd | Steuereinheit für einen mit beinen beweglichen roboter |
JP3443077B2 (ja) * | 1999-09-20 | 2003-09-02 | ソニー株式会社 | ロボットの運動パターン生成装置及び運動パターン生成方法、並びにロボット |
JP3555107B2 (ja) * | 1999-11-24 | 2004-08-18 | ソニー株式会社 | 脚式移動ロボット及び脚式移動ロボットの動作制御方法 |
JP2001260063A (ja) * | 2000-03-21 | 2001-09-25 | Sony Corp | 多関節型ロボット及びその動作制御方法 |
JP2001277163A (ja) * | 2000-04-03 | 2001-10-09 | Sony Corp | ロボットの制御装置及び制御方法 |
JP3726009B2 (ja) * | 2000-05-19 | 2005-12-14 | 本田技研工業株式会社 | 脚式移動ロボットの床形状推定装置 |
JP3634238B2 (ja) * | 2000-05-19 | 2005-03-30 | 本田技研工業株式会社 | 脚式移動ロボットの床形状推定装置 |
JP4491912B2 (ja) * | 2000-05-22 | 2010-06-30 | ソニー株式会社 | バッテリ駆動の脚式移動ロボット及びその制御方法 |
DE60141092D1 (de) * | 2000-11-17 | 2010-03-04 | Honda Motor Co Ltd | Gangmustererzeugungssystem für beweglichen Roboter mit Beinen |
JP4246638B2 (ja) * | 2002-01-18 | 2009-04-02 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
TW200532523A (en) * | 2004-02-27 | 2005-10-01 | Aureon Biosciences Corp | Methods and systems for predicting occurrence of an event |
-
2002
- 2002-10-11 JP JP2004542801A patent/JPWO2004033159A1/ja active Pending
- 2002-10-11 WO PCT/JP2002/010622 patent/WO2004033159A1/ja active Application Filing
- 2002-10-11 EP EP02775338A patent/EP1552908A4/en not_active Withdrawn
-
2005
- 2005-01-04 US US11/028,311 patent/US7072741B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018173790A (ja) * | 2017-03-31 | 2018-11-08 | 株式会社ドワンゴ | 学習装置、学習方法、学習プログラム、動画配信装置、活動装置、活動プログラムおよび動画生成装置 |
Also Published As
Publication number | Publication date |
---|---|
US20050119791A1 (en) | 2005-06-02 |
US7072741B2 (en) | 2006-07-04 |
WO2004033159A1 (ja) | 2004-04-22 |
EP1552908A1 (en) | 2005-07-13 |
EP1552908A4 (en) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2004033159A1 (ja) | ロボット制御アルゴリズム構築装置、ロボット制御アルゴリズム構築プログラムロボット制御装置、ロボット制御プログラム、およびロボット | |
Sartoretti et al. | Distributed learning of decentralized control policies for articulated mobile robots | |
Lakhal et al. | Hybrid approach for modeling and solving of kinematics of a compact bionic handling assistant manipulator | |
Parikh et al. | A hybrid strategy to solve the forward kinematics problem in parallel manipulators | |
Hornby et al. | Generative representations for the automated design of modular physical robots | |
Bataineh et al. | Neural network for dynamic human motion prediction | |
CN110861084B (zh) | 一种基于深度强化学习的四足机器人跌倒自复位控制方法 | |
Toloue et al. | Position tracking of a 3-PSP parallel robot using dynamic growing interval type-2 fuzzy neural control | |
JP2009134352A (ja) | ロボットの動作経路作成装置及びロボットの動作経路作成方法 | |
Singh et al. | Energy-efficient gait optimization of snake-like modular robots by using multiobjective reinforcement learning and a fuzzy inference system | |
Le Chau et al. | Structural optimization of a rotary joint by hybrid method of FEM, neural-fuzzy and water cycle–moth flame algorithm for robotics and automation manufacturing | |
JP2017213631A (ja) | ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム | |
Hu et al. | Biped gait optimization using spline function based probability model | |
Rempis et al. | An interactively constrained neuro-evolution approach for behavior control of complex robots | |
CN114028156B (zh) | 康复训练方法、装置及康复机器人 | |
JPWO2004104917A1 (ja) | センサおよびセンサプログラム | |
Vincent et al. | User Embodiment Comparison of Semi-Autonomous and Fully-Captured Avatar Movements in Virtual Reality | |
JP6735780B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2018092348A (ja) | 情報処理装置、情報処理方法およびプログラム | |
Liu et al. | An Energy-Saving Snake Locomotion Pattern Learned in a Physically Constrained Environment With Online Model-Based Policy Gradient Method | |
Li et al. | Agile and versatile bipedal robot tracking control through reinforcement learning | |
Meerza et al. | Self Modeling and Gait Control of Quadruped Robot Using Q-Learning Based Particle Swarm Optimization | |
Thant et al. | Application of cubic spline interpolation to walking patterns of biped robot | |
Ayad et al. | Implementation of a balanced and fluid movement six-legged spider robot | |
Mohamed | Optimization of non-linear robust controller for robotic manipulator system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080617 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081028 |