駆動部を持つシステムとその制御方法と制御装置並びにプログラム
【課題】所望の動作を円滑、且つ高速に実現する装置、方法、システム、プログラムの提供。
【解決手段】システムの駆動部(50)を制御してシステムの軌道を制御する制御装置(1)が、システムの軌道を設定する軌道設定部(10)と、前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部(20)と、ランダムな信号を生成するランダム信号発生部(30)と、前記ランダム信号発生部からのランダム信号と前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を駆動部(50)に送る統合信号発生部(40)と、を備えている。
【解決手段】システムの駆動部(50)を制御してシステムの軌道を制御する制御装置(1)が、システムの軌道を設定する軌道設定部(10)と、前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部(20)と、ランダムな信号を生成するランダム信号発生部(30)と、前記ランダム信号発生部からのランダム信号と前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を駆動部(50)に送る統合信号発生部(40)と、を備えている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、駆動部を持つシステム及びその制御方法と制御装置並びにプログラムに関する。
【背景技術】
【0002】
(A)複雑な駆動部(アクチュエータ)を持つシステムを快適に動かしたい、
あるいは、
(B)構造上は複雑ではない駆動部を持つシステムに複雑な動きをさせたい、
という要請は、古くから、存在する。
【0003】
上記(A)の代表的な例としては、人型ロボットが挙げられる。人型ロボットに人間のように自然な動きをさせようとすると、極めて多数の駆動部を調和的に動かす必要があり、難易度が高い。
【0004】
また(B)の例としては、車の自動運転などが挙げられる。車の場合、例えば4つの車輪(駆動部)を動かせばよいが、自在に変動する外部環境に適合させて4つの車輪を制御しようとすると、解決困難な問題となっている。
【0005】
上記問題を解く試みは、これまで多数為されてきたが、そのほとんどは失敗し、現在でも満足のいく結果が得られていないのが実情である。
【0006】
上記課題の解決を図ることを意図した代表的な技術を以下に示す。
【0007】
<モザイク>
人型ロボットを動かす技術としては、モザイク(MOSAIC)が知られている(非特許文献1)。図11にモザイクのブロック図を示す。
【0008】
図11において、
uAは運動の指令、
uDは運動指令の教師信号、
xAは実際の軌道、
xDは目標軌道、
u1、u2、・・・、unは逆モデル1〜nの出力、
x1、x2、・・・、xnは順モデル1〜nの出力
を表している。
【0009】
順モデル1〜nは、運動の指令uAを共通に入力し、x1、x2、・・・、xnを出力し、実際の軌道xAとの差分xA−x1、xA−x2、・・・、xA−xnをソフトマックス関数に入力し、各差分とそれぞれソフトマックス関数の出力λ1〜λnを乗じた値によって制御される(モデルが学習される)。逆モデル1〜nは、目標軌道xDを共通に入力し、u1、u2、・・・、unを出力し、運動指令の教師信号uDとの差分uD−u1、uD−u2、・・・、uD−unにそれぞれソフトマックス関数の出力λ1〜λnを乗じた値によって制御される(モデルが学習される)。
【0010】
順モデルと逆モデルは一対になっており、それらは、ソフトマックス関数で繋がれている。順モデルとは、アクチュエータの駆動パラメータを入力とし、軌道を出力とするモデルであり、通常、運動学、動力学が扱うモデルである。一方、逆モデルは、軌道を入力とし、アクチュエータの駆動パラメータを出力とするモデルであり、順モデルの逆である。
【0011】
アクチュエータの駆動パラメータの数は、通常、軌道の自由度よりも多いので、逆モデルは、境界条件等の拘束条件を設定しないと解けない不良設定問題となる。
【0012】
逆モデルを扱う計算方式を、逆運動学、逆動力学と呼ぶ。順動力学が、対象とする系の運動方程式に力を入力として与え運動を出力するのに対して、逆動力学は、運動方程式に運動を入力し運動の駆動力となる力を出力する。
【0013】
順モデルは、通常、拘束条件を設定しなくても解ける良設定問題となる。逆モデルは、トップダウンで軌道(目標軌道xD)を与えることができるので、使い勝手が良いが、不良設定問題となる。モザイクでは実際の軌道をフィードバックすることで、逆モデルに拘束条件を与えている。
【0014】
ソフトマックス関数とは、例えば次式(1)で与えられる。
【0015】
(1)
【0016】
あるいは、次式(1)’であってもよい。
(1)’
【0017】
ただし、σはxA-xiの標準偏差である。
【0018】
順モデル1〜nと逆モデル1〜nの各対のうち、どの対が最も現在の動作を記述しているか、あるいは、それぞれの対をどのような重みで重ね合わせればいいかを表したものである。
【0019】
モザイクでは、ある動作に対して、好適な動作、動作の組み合わせを、ソフトマックス関数により自動的に選択できる。順モデル1〜nは、自身の出力x1〜xnと実際の軌道xAの差をモデルにフィードバックすることで,モデルを学習する。一方、逆モデル1〜nは、運動指令の教師信号uDが存在すれば、自身の出力u1〜unと,運動指令の教師信号uDの差をモデルにフィードバックすることで、モデルを学習する。
【0020】
しかしながら、通常、所望の軌道を実現するアクチュエータへの入力はわからない。そこで、そのような場合、目標軌道xDと実際の軌道xAのずれを、運動指令uA(順モデルの入力)にフィードバックしながら、uDを運動指令の教師信号として、逆モデルにフィードバックして学習する。
【0021】
<モザイクの課題>
よく知られているように、モザイクは、数々のロボットを動かすことに成功してきた。しかしながら、モザイクには、複雑な動作をしようとすればするほどモデルの数が爆発的に増えていく、という問題点がある。
【0022】
一つのモデルを学習するにも、それなりの時間がかかる。複雑な動作を行おうとすると、モデルの数が増える。モデルの数の増加に伴い、モデルの学習の時間が爆発的に増える。その結果、複雑な動作の実行は、不可能となってくる。
【0023】
また、実環境では、予測不可能な事態が発生する。モザイクは、ある決められた実環境上での動作は得意であるが、実環境上で予測不可能な事態が起きると、適応的な動作ができない。これは、実環境上で予測不可能な事態に対応するモデルがないか、あるいは、直ちに、該モデルに対応した新しいモデルを構築することができないためである。したがって、予測不可能な実環境で適応的に動くロボットを、モザイクだけで作ることは、難しい。
【0024】
<ゆらぎ方程式>
モザイクにおいて、駆動部を制御するために複数のモデルを持つことで生じる問題、および、予測不可能な実環境に適応できないという問題を解決することが期待される技術に、「ゆらぎ方程式」を使った技術がある(非特許文献2(「ゆらぎで技術革新」、大阪大学ゆらぎプロジェクト、2008))。これは、次式(2)に示すゆらぎ方程式をベースに駆動部を制御する技術である。なお、式(2)中のf(x)は式(3)で与えられる。
【0025】
(2)
【0026】
(3)
【0027】
式(2)において、Activityはバイアスの一種であり、システムが快適と感じる位置xで大きな値をとる関数である。ηはランダムなノイズである。式(3)において、U(x)はシステムを駆動するポテンシャル(モデル化された目的関数)である。
【0028】
ゆらぎ方程式と似た方程式に、次式(4)に示すランジェバン方程式(Langevin Equation)がある。
【0029】
(4)
【0030】
なお、ゆらぎ方程式は、式(2)に式(3)を代入すると、次式が得られる。
【0031】
(2)’
【0032】
上式(2)’を、上式(4)のランジェバン方程式と比べると、Activityにしか違いがない。ゆらぎ方程式は、ポテンシャルを、UとActivityに分けて表現したに過ぎない印象を与えるが、これが決定的な差を生む。すなわち、工学的見地から決定的な違いがある。
【0033】
何かを駆動しようとして、ランジェバン方程式を使おうとすれば、ポテンシャルUを正確に求めなくてはならない。非線形な複雑な問題に対して、正確なポテンシャルを求めることは極めて難しく、解析的に解ける例は少ない。機械学習、強化学習等も、実は、物理的にみると、あるシステムのポテンシャルを求めているのと同じであるが、ニューラルネットワーク等を用い、ブラックボックス的にポテンシャルを求めている。
【0034】
非線形な複雑な問題のポテンシャルを求めようとすると、ブラックボックス的に求めざるを得ない、というのが現状である。
【0035】
ポテンシャルを求めるということは、モデルを設定することと同じである。このため、より複雑な動作を行おうとすると、モザイクのようにモデルの数が増えるか、ポテンシャル関数が非常に複雑になる。その結果、一つのポテンシャル関数では事象を表現しきれない、という問題が発生する。
【0036】
この問題を解決したのが、ゆらぎ方程式である。ゆらぎ方程式では、システムが感じる快適さを、Activityとして、ポテンシャル全体から切り離すことで、システムの動作をトップダウンで(階層的に)、ユーザ(人)側が指定することができるようになる。
【0037】
すなわち、システムに期待する動作を実現できるようにActivityの設定が行われる。例えば、ある位置にシステムを動かしたいとすると、所望の位置で値が最大となる関数を、Activityとして与える。所望の位置から遠い場合には、式(2)の右辺第1項は小さな値となり、右辺第2項のランダムノイズによってシステムが駆動される。システムを粒子と例えると、ブラウン運動のような状態である。所望の位置から遠い位置にあるシステムは、ブラウン運動のようなランダムな動き(ランダムウォーク)を行いながら、偶発的に所望の位置に近づくことがある。
【0038】
その際、式(2)の右辺第1項がActivity関数の作用により、大きな値を取る。すると、システムの動作を支配するのが、右辺第2項から右辺第1項に移る。右辺第1項がシステムを制御し始めると、後は自然と、Activity最大となるポテンシャル位置にシステムは落ち込む。つまり、所望の位置に到達する。ユーザ(人)は、トップダウンにActivityを決定しているだけであり、システムの駆動部に対して特別な指令、制御をしていない。
【0039】
階層的なゆらぎ制御により、最上位のActivityを与えるだけでシステム全体を制御することができる。
【0040】
式(2)には、システムを駆動する力は陽に記述されていないが、システムの駆動部には、式(2)の右辺の値に比例した出力を与えておけば良い。駆動部が複数あっても、同じように、式(2)の右辺に比例した出力を与えておけば良い。その際、各駆動部でのランダムノイズは独立にしておく。
【0041】
一方、Activityは、すべての駆動部で同じものを用いる。すると、各駆動部は、個々の式(2)に従って、単純に動作しているだけだが、全体を統括するActivityの作用で、Activity最大の位置に動くように、全体で協調動作するようになる。ゆらぎ方程式を使うと、複数の駆動部を持つシステムでも、モザイクのようなモデルを一切使わずに、所望の動作をシステムに実行させることができる。この技術を使って、26本もの筋肉アクチュエータを使った人工の手の制御(26次元の制御空間)が実現されている。例えば、手を挙げる動作をさせようとした場合、挙げたい手の位置でActivityを最大になるように設定しておくと、最初、手はランダムノイズのせいで、ブルブル震えているだけだが、徐々に、挙げたい手の位置(所望の位置)に到達する。Activityを設定するだけで、モデルもなしに、このような複雑な動作を実現することができる。
【0042】
また、実環境から予測不可能な外乱が入っても、特定のモデルベースで駆動されていないことから、しばらく、所望の動作からずれはするが、徐々に、所望の動作に戻ってくることができる。したがって、例えば、ゆらぎ方程式を使ってロボットを作ることで、予測不可能な実空間で適応的に動作するロボットが実現する可能性がある。
【0043】
<先行技術文献:特許文献>
本願出願人による先行技術文献サーチでサーチされたいくつかの特許文献について説明しておく。特許文献1には、軌道追従制御を行うロボットに対するロバスト制御装置として、ロボットの動特性モデルの不正確さ(モデル化誤差)や雑音などのランダムな外乱を考慮したロバスト制御装置が開示されている。この特許文献1では、雑音などのランダムな外乱を推定する機構を制御モデルに組み込む方式であり、システム内部に外乱を発生する機構を備えるものではない。また、特許文献2には、ロボット機構部の各関節の許容ピークトルク(許容値)を越えず、最短時間で動作が終了できる最適な各関節の加減速度を求めることができ、動作時間を短縮できるようにしたロボットシステムの制御装置が開示されている。特許文献1、2記載の発明はゆらぎ方程式に基づく制御とは全く別の発明であり、特許文献1、2には、ゆらぎ方程式に基づく制御の課題、該課題を解決するための手段はいっさい開示も示唆もされていない(後述される本発明とは全く相違した発明)。
【先行技術文献】
【特許文献】
【0044】
【特許文献1】特開平08−123507号公報
【特許文献2】特開2002−91572号公報
【非特許文献】
【0045】
【非特許文献1】「脳・身体性・ロボット 知能の創発をめざして」、土井利忠その他、シュプリンガー社、2005年
【非特許文献2】「ゆらぎで技術革新」、大阪大学ゆらぎプロジェクト、2008
【発明の概要】
【発明が解決しようとする課題】
【0046】
以下に関連技術の分析を与える。
【0047】
上記したゆらぎ方程式を用いた制御にも、なお、解決されるべき課題が存在する。それは、迅速な動作の実現ということである(本発明者による知見)。例えば前記した26本もの筋肉アクチュエータを使った人工の手の場合でも、所定の位置に到達するまで、しばらくの間、ブルブルと震えるランダムな動きを経なければならない。したがって、最終的に所定の位置まで手を挙げることはできるが、人間のように手を挙げたいと思ったときにすぐに手を挙げられるようにはなっていない。
【0048】
したがって、本発明は、上記課題に鑑みて創案されたものであって、その目的は、所望の動作を円滑、且つ高速に実現する装置、方法、システム並びにプログラムを提供することにある。
【課題を解決するための手段】
【0049】
本発明によれば、システムの駆動部を制御して前記システムの軌道を制御する制御装置であって、前記システムの軌道を設定する軌道設定部と、前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部と、ランダムな信号を生成するランダム信号発生部と、前記ランダム信号発生部で生成されたランダム信号と、前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る統合信号発生部と、を備えた制御装置が提供される。
【0050】
本発明によれば、システムの駆動部を制御して前記システムの軌道を制御する制御方法であって、
起動設定部が前記システムの軌道を設定し、
軌道連動信号発生部が前記設定された軌道に基づく軌道連動信号を生成し、
ランダム信号発生部がランダムな信号を生成し、
統合信号発生部が前記ランダムな信号と前記軌道連動信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る、
上記各工程を含む制御方法が提供される。
【0051】
本発明によれば、駆動部を備えたシステムであって、前記駆動部に駆動信号を与え前記駆動部を制御して前記システムの軌道を制御する制御装置を備え、前記制御装置が、前記システムの軌道を設定する軌道設定部と、前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部と、ランダムな信号を生成するランダム信号発生部と、前記ランダム信号発生部で生成されたランダム信号と、前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動信号として前記駆動部に送る統合信号発生部と、を備えたシステムが提供される。
【0052】
本発明の別の側面によれば、システムを駆動する駆動部を制御して前記システムの軌道を制御する処理を実行するコンピュータに、前記システムの軌道を設定する軌道設定処理と、前記軌道設定処理によって設定された軌道に基づき信号を生成する軌道連動信号発生処理と、ランダムな信号を生成するランダム信号発生処理と、前記ランダム信号発生処理からのランダム信号と前記軌道連動信号発生処理で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る統合信号発生処理と、を実行させるプログラムが提供される。さたに本発明の別の側面によれば、該プログラムを記憶したコンピュータ読出し可能な記録媒体が提供される。
【発明の効果】
【0053】
本発明によれば、所望の動作を円滑、且つ高速に実現することができる。
【図面の簡単な説明】
【0054】
【図1】本発明の一実施形態の構成を示す図である。
【図2】本発明の一実施形態における設定軌道の一例を示す図である。
【図3】本発明の一実施形態における暫定目標位置の一例を示す図である。
【図4】本発明の一実施形態の処理シーケンスを示す図である。
【図5】本発明の一実施形態における暫定目標位置の一例を示す図である。
【図6】本発明の第1の実施例のシステムの構成を示す図である。
【図7】本発明の第1の実施例の軌道制御の一例を示す図である。
【図8】比較例の軌道制御の一例を示す図である。
【図9】本発明の第2の実施例のシステムの構成を示す図である。
【図10】本発明の第2の実施例の軌道制御の一例を示す図である。
【図11】モザイクを説明する図である。
【発明を実施するための形態】
【0055】
本発明の実施形態について以下に説明する。はじめに発明の概要を説明する。本発明においては、システムの軌道を設定する軌道設定部(10)と、軌道設定部(10)によって設定された軌道に基づく信号を発生する軌道連動信号発生部(20)と、ランダムな信号を発生するランダム信号発生部(30)と、前記ランダム信号発生部(30)からのランダム信号と前記軌道連動信号発生部(20)で発生された信号を統合した信号を生成する統合信号発生部(40)と、を備える。統合信号発生部(40)からの信号(駆動信号)が駆動部(50)に送られ、駆動部(50)が、被駆動対象のシステムを駆動し、その軌道を制御する。
【0056】
本発明において、軌道連動信号発生部(20)は、軌道設定部(10)において設定された軌道上に到達すべき暫定目標位置を決定する暫定目標位置設定部(21)を有する。軌道連動信号発生部(20)は、暫定目標位置に近づくにつれて、絶対値が大きくなる信号と、前記暫定目標位置に近づくにつれて、0に近づく信号を発生する。暫定目標位置は、例えば初期位置と最終目標位置間の設定軌道を複数に分割した区間のうちの1つの区間の端部に設定される。
【0057】
本発明において、軌道連動信号発生部(20)は、暫定目標位置への移動が達成されたか否かを判別する暫定目標位置到達判定部(22)を有し、前記暫定目標位置への移動が達成されたと判断した場合は、次の暫定目標位置を設定する(ただし、最終目標位置に達した場合、移動を終了する)。次の暫定目標位置は、設定軌道を複数に分割した区間のうち、例えば只今移動が達成した暫定目標位置から最終目標位置側の最も近い区間の端部に設定される。
【0058】
統合信号発生部(40)を出力をS
暫定目標位置で極大を向かえる関数をA、
ランダム値を出す関数をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置に対して極性を反転させる値をとる関数をUとし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
統合信号発生部(40)は、次の時刻i+1に駆動部(50)へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
なる出力S(i+1)を、駆動部(50)に送る。
【0059】
また、本発明において、関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数を、x、y、zいずれかのパラメータで偏微分した関数である。以下、実施形態を説明する。
【0060】
<実施形態1>
図1は、本発明の一実施形態のシステムの構成を示す図である。図1を参照すると、制御装置(コントローラ)1は、システムの軌道を設定する軌道設定部10と、軌道設定部10により設定された軌道に基づいた信号を発生する軌道連動信号発生部20と、ランダムな信号を発生するランダム信号発生部30と、軌道連動信号発生部20からの信号とランダム信号発生部30からの信号を統合し、駆動部50に信号を送る統合信号発生部40と、を備えている。
【0061】
<軌道設定部>
軌道設定部10は、不図示のCPU等の上位装置とやりとりし、所望のシステムの動作を実現するためのシステムの軌道を設定する。
【0062】
筋肉アクチュエータを使用した人工の手の場合、軌道設定部10は、例えば初期の手のポジションから所望の手を挙げたい位置までの軌道を設定する。
【0063】
初期のポジションから、所望の位置(目標位置)までの軌道は無数考えられるが、軌道設定部10においては、最短距離で結ぶ軌道など、何らかの拘束条件を設定して決めれば良い。
【0064】
図3に、設定した軌道の例を示す。設定された軌道は破線で示している。実際は3次元になる場合が多いが、説明を簡略化するために2次元(X−Z座標)での動作としている。
【0065】
軌道設定部10は、設定した軌道情報を、軌道連動信号発生部20に転送する。
【0066】
<軌道連動信号発生部>
軌道連動信号発生部20は、軌道設定部10にて設定された軌道上に到達すべき暫定目標位置を決定する暫定目標位置設定部21と、暫定目標位置への移動が達成されたかどうかを判別する暫定目標位置到達判定部22とを有する。
【0067】
軌道連動信号発生部20の暫定目標位置設定部21は、軌道設定部10より得た軌道情報を用いて、到達すべき暫定目標位置を軌道上に設定する。その様子を図4に示す。軌道連動信号発生部20は、暫定目標位置設定部21が設定した暫定目標位置を用い、暫定目標位置に近づくにつれて、絶対値が大きくなる信号Aと、前記暫定目標位置に近づくにつれて、0に近づく信号Uを発生する。
【0068】
本発明を特に制限するものではないが、本実施形態において、AとUは、例えば、次式(5)、(6)のようなxの2次関数、1次関数で記述される。A0は正の定数である。
【0069】
(5)
【0070】
(6)
【0071】
この場合、x=0が暫定目標位置になる。
【0072】
一般に、駆動部50は複数あるので(図1の501〜50n)、軌道連動信号発生部20はいくつかのAおよびUを用意する。
【0073】
場合によっては、すべての駆動部501〜50nで同じA、Uを用いるが、例えば、ある駆動部50iには、上記式(5)、式(6)に基づいたものを用意し、他の駆動部50j(j≠i、1≦i、j≦n)には、式(5)、式(6)のxをyまたはzに変えたもの、あるいはx、y、zで記述される関数を用意するなど、様々な変形例(バリエーション)が適用可能である。
【0074】
いずれの場合も、Aは前記暫定目標位置に近づくにつれて、絶対値が大きくなる信号であればよく、Uは暫定目標位置に近づくにつれて、0に近づく信号であればよい。軌道連動信号発生部20で用意されたこれらの信号A、Uは、統合信号発生部40に送られる。
【0075】
<ランダム信号発生部>
一方、ランダム信号発生部30は、複数の駆動部501〜50n用にそれぞれ個別にランダム信号Rを用意し、統合信号発生部40に送る。
【0076】
<統合信号発生部>
統合信号発生部40は、軌道連動信号発生部20とランダム信号発生部30でそれぞれ用意された信号を用いて、個々の駆動部50用に駆動信号を作成する。そのとき、例えば次式(7)によって駆動信号Sを発生する。ある駆動部用の信号をS、所定の係数をαとし、次の時刻をi+1、現在をi、一つ前の時刻をi−1と表し、sign(x)をxの符号を表わす関数とする。
【0077】
(7)
【0078】
式(7)において、
(8)
なる項の効果はゆらぎ方程式と同じである。
【0079】
ゆらぎ方程式的に表わすと、
(9)
の方が近いが、式(8)のU(i)をU(i)×A(i)と設定すればよいだけのことなので、実質的に同じであり、式(8)は、式(9)を内包する。
【0080】
式(8)は、暫定目標位置から遠ければ、ランダム信号Rに、暫定目標位置に近ければ、軌道に連動した信号Uに支配される。
【0081】
ここで、式(8)の第1項に、マイナス符号をつけて、−U(i)と表記しているが、これは、物理的な意味と整合をとるためであり、U(i)と記載して、U(i)に−U(i)を使用してもよいことは勿論である。
【0082】
また、ランダムノイズ項R(i)も−U(i)とともに、絶対値で括らず、絶対値記号の外に出し、式(7)の右辺第3項目として記載することも可能である。
【0083】
(10)
【0084】
このように、本質的な効果が同じでありさえすれば、S(i+1)を規定する数式は適宜変更可能である。
【0085】
次に、式(7)における符号関数sign[]の[]内の式の意味を説明する。
【0086】
【0087】
過去の駆動信号の変化{S(i)−S(i−1)}が、Aの変化{A(i)−A(i−1)}を、プラス方向に導いたら、駆動信号を引き続き同じ方向に変化させ(すなわち、{S(i+1)−S(i)}を{S(i)−S(i−1)}と同じ極性とする)、
過去の駆動信号の変化{S(i)−S(i−1)}がAの変化{A(i)−A(i−1)}をマイナス方向に導いたら、駆動信号の変化の方向を逆方向にする(すなわち、{S(i+1)−S(i)}を{S(i)−S(i−1)}と逆極性とする)。
【0088】
Aの時間変化がプラスということは、システムが暫定目標位置に近づいていることを意味するので、駆動信号の方向を変えることはない。
【0089】
一方、Aの時間変化がマイナスなら、システムが暫定目標位置から遠ざかっているので、駆動信号の方向を変えようということである。このような駆動信号の制御により、システムは徐々に暫定目標位置に近づく。
【0090】
統合信号発生部40は、複数の駆動部501〜50nのそれぞれに駆動信号Sを用意する。その後、複数の駆動部501〜50nに対してそれぞれ用意された駆動信号Sは、複数の駆動部501〜50nにそれぞれ送られる。その結果、駆動部501〜50nを持ったシステムは動き出す。なお、図1では、複数の駆動部501〜50n(n≧2)を例示したが、本発明は1つの駆動部50(図1のn=1)を備えた構成にも適用可能であることは勿論である。
【0091】
軌道連動信号発生部20の暫定目標位置到達判定部22は、現在のシステムの位置と暫定目標の位置を常にモニタしており、システムが予め設定した基準まで暫定目標位置に近づいた場合、その旨を暫定目標位置設定部21に伝える。このようにすることで、暫定目標位置設定部21は、次の暫定目標位置を設定することができる。
【0092】
<制御動作>
上記した各部が一連の処理の中でどう動くのかについて以下に説明する。図5は、本実施形態の制御処理の流れを示す図である。
【0093】
軌道設定部10が所望の軌道を設定し(S1)、その軌道を軌道連動信号発生部20に送る。
【0094】
軌道連動信号発生部20の中の暫定目標位置設定部21は、軌道設定部10から送られた軌道をもとに、軌道上に、到達すべき暫定目標位置を設定する(S2)。
【0095】
軌道連動信号発生部20は、暫定目標位置設定部21が設定した暫定目標位置を用い、暫定目標位置に近づくにつれて絶対値が大きくなる信号Aと、暫定目標位置に近づくにつれて0に近づく信号Uを発生する(S3)。軌道連動信号発生部20はで生成した信号AとUは、統合信号発生部40に送られる。このとき、ランダム信号発生部30も、複数の駆動部50の各々に対してランダム信号Rを発生し(S4)、統合信号発生部40に送る。
【0096】
軌道連動信号発生部20からの信号AとUと、ランダム信号発生部30からの信号Rを受け取った統合信号発生部40は、それらの信号を基に、駆動部50それぞれに対して駆動信号Sを生成し、生成した駆動信号Sを駆動部50に送る(S5)。
【0097】
駆動部50は、統合信号発生部40から供給された駆動信号Sを受け取ると、該駆動信号Sに基づき、システムの動作をスタートする。その結果、駆動部50を持ったシステムは徐々に暫定目標位置に近づく。
【0098】
軌道連動信号発生部29の暫定目標位置到達判定部22は、駆動部50を持つシステムの現在位置と、設定されている暫定目標位置を常にモニタしており(S6)、暫定目標位置に近づかない場合(S7のNo分岐)、現在のシステムの位置と暫定目標位置をモニタする。システムが予め設定した基準まで暫定目標位置に近づいた場合(S7のYes分岐)、その旨を暫定目標位置設定部21に伝える。その結果を受け、暫定目標位置設定部21は新たな暫定目標位置を設定する。その様子を図6に示す。図6において、実際に腕が動いた軌道は実線で示されている。
【0099】
その後は、S2〜S7の各ステップを繰り返して実行し、暫定目標位置を徐々に目標位置に近づけていく。最終的に、システムは設定した軌道上を目標位置まで動いていくことになる。
【0100】
なお、図1の制御装置1を構成する軌道設定部10、軌道連動信号発生部20、ランダム信号発生部30、統合信号発生部40の各処理は、制御装置1(コンピュータ)上で実行させるプログラムで実現するようにしてもよいことは勿論である。本発明によれば、該プログラムは、該プログラムを記憶したコンピュータ読出し可能な記録媒体として提供してもよいことは勿論である。
【0101】
本実施形態のシステムによれば、ユーザは、CPUを介して軌道設定部10によって、所望の軌道と目標位置を設定するだけであって、軌道ごとに駆動部の動作を考える必要はない。
【0102】
また、本実施形態においては、暫定目標位置に引っ張られるように、システムが駆動されるので、最終目標位置しか設定せず、その途中はゆらぎにまかせる「ゆらぎ方程式」を用いたシステムよりも、スピーディにシステムを駆動させることができる。本実施形態と「ゆらぎ方程式」との効果の相違点については後述する。
【0103】
上記の通り、本発明によれば、「ゆらぎ方程式」による制御の課題であった迅速な動作を実現することができる。以下では、いくつかの実施例を図面を参照して説明する。
【0104】
<実施例1>
図6は、本発明を6筋2関節2リンクの冗長筋骨格系に適用した場合を説明する図である。6筋2関節2リンクの冗長筋骨格系とは、6つの筋肉部と、2つの関節がある人間の手のモデルである。2次元平面での腕の動きを良く再現するモデルである。
【0105】
本実施例では、このモデルをベースに、通常、6つの筋肉しか使わないこの系の筋肉を2重化し、12の筋肉を持つ形態にしたモデルで用いた。6種類の各筋肉部に対して、同じものを2つ形成する。そして、2重化された筋肉は、x方向への駆動担当と、y方向への駆動担当に分ける。
【0106】
x方向の筋肉に対しては、式(5)、式(6)をA、Uとして使用した。Aは前記暫定目標位置に近づくにつれて、絶対値が大きくなる信号であり、Uは暫定目標位置に近づくにつれて、0に近づく信号である。
【0107】
y方向の筋肉に対しては、式(5)、式(6)のxをyにしたものを使用した。
【0108】
最終的に筋肉に送られる信号は、式(7)と同じものを使用した。当然、12個の筋肉それぞれに対して駆動部と駆動信号を用意した。本実施例で使用したシステムは、図1に示したものと同じであり、処理の流れは図6に示したものと同じである。
【0109】
暫定目標位置は、初期位置から目標位置までの軌道を10分割した各位置とし、暫定目標が達成されたら、逐次暫定目標を変えていった。初期位置に近い方から、順次、暫定目標位置として設定した。図7に、本実施例で得られた軌道を示す。図7において、破線が設定軌道であり、実線が実際に動いた軌道である。
【0110】
設定軌道をかなり忠実に再現しながら、手を上げることに成功していることがわかる。初期位置から目標位置まで到達するのにかかった時間は、約4秒である。
【0111】
図8は、比較例を説明する図であり、実施例1と同様の骨格系を使い、「ゆらぎ方程式」を使用した場合の実験結果を示す。初期位置と目標位置は実施例1と同じである。図8の比較例では、暫定目標位置を設定する仕組みがなく、最初から目標位置のみが設定されている状態で駆動部を制御している。図8において、実際の手の軌道が実線で示されている。初期位置の近くでは、ぶれが大きく、だんだん目標位置に収束していくことがわかる。また、この比較例では、軌道を特に設定していないので、実施例1とは異なる軌道(やや直線的)を描いている。この軌道は、Activityの与え方に依存し、また、目標軌道自体がないので、毎回ばらついてしまう。目標位置までの到達時間は約20秒であった。
【0112】
以上説明したとおり、本実施例によれば、ゆらぎ方程式」を使用し初期位置と目標位置を与える比較例と比べ、スムーズで、スピーディなシステムの駆動を実現している。
【0113】
<実施例2>
図9は、本発明を飛行船に適用した場合を説明する図である。飛行船はヘリウムガスによって浮遊することができるようになっており、x、y、z方向用のプロペラを、それぞれ2重化し、計6個搭載した。2重化の仕方は、図9に示したように、x、y、zの各方向で相対させる方向とした。1対のプロペラは、各方向で反対方向を向いている。1対のプロペラのうち、一方がプラス方向の出力、他方がマイナス方向の出力を担当する。つまり、駆動信号Sの極性によって、1対のプロペラのいずれか一方のみ駆動し、その出力の大きさは駆動信号Sの絶対値に比例する。したがって、この実施例の場合、駆動信号としては、x、y、z方向の3種類となる。
【0114】
実施例1と同様に、使用したシステムは図1に示したものと同じであり、処理の流れは図5に示したものと同じである。
【0115】
x方向のプロペラに対しては、式(5)、式(6)をA、Uとして使用した。そして、y方向のプロペラに対しては、式(5)、式(6)のxをyにしたもの、z方向のプロペラに対しては、式(5)、式(6)のxをzにしたものを使用した。最終的にプロペラに送られる信号は、式(7)と同じものを使用した。前記実施例と同様、x、y、z方向用の3種類の駆動信号を用意した。暫定目標位置は、初期位置から目標位置までの軌道を10分割した位置とし、暫定目標が達成されたら、逐次、暫定目標位置を変えていった。初期位置に近い方から、順次、暫定目標位置として設定した。
【0116】
図9は、本実施例によって得られた軌道を示す。図9において、破線が設定軌道であり、実線が実際に動いた軌道である。設定軌道をかなり忠実に再現しながら、飛行船が動作しているのがわかる。初期位置から目標位置までは、直線で約1mであったが、到達するのにかかった時間は約10秒であった。
【0117】
上記実施例では、人間の手のモデル、飛行船に関して説明したが、本発明は、駆動系を具備した任意のシステムに適用できる。例えば人間の足のモデル、人間の体のモデル、車、ヘリコプター、飛行機、船など様々な駆動系を持つシステムに適用できる。
【0118】
また、上記実施例で用いた人間の手のモデル以外の人間の手のモデルにも、本発明は適用可能である。例えば、本実施例は腕と二の腕の2リンクであるが、手先、肩の筋肉まで入れたモデルでも良いし、2次元の動きを3次元に拡張しても良い。その際、使用する駆動部は30、40個と増えていくが、本発明を用いることで、所望の動作を容易に実現できる。
【0119】
また、上記実施例は、駆動部を多重化し、x、y、z方向それぞれを担当させたが、必ずしも多重化する必要はない。一つの駆動部に、各方向への駆動を担当させると、上記実施例より、若干、目標位置の到達まで時間がかかるようになるが、駆動部の個数の削減効果がある。
【0120】
また、上記実施例は、暫定目標位置を離散的に設定したが、暫定目標位置を増やしていけば、連続的に暫定目標位置が変わっていく制御も実現できる。
【0121】
本発明は、駆動部を持つシステムと当該システムの制御方法に適応することができ、複雑な駆動部を持つシステムに対して、スムーズ、スピーディに所望の動作を実現することができる。
【0122】
なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【0123】
さらに本発明として以下が付記される。
[付記1]
システムの駆動部を制御して前記システムの軌道を制御する制御方法であって、
起動設定部が前記システムの軌道を設定し、
軌道連動信号発生部が前記設定された軌道に基づく軌道連動信号を生成し、
ランダム信号発生部がランダムな信号を生成し、
統合信号発生部が前記ランダムな信号と前記軌道連動信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る、ことを特徴とする制御方法。
[付記2]
前記軌道連動信号発生部は、前記軌道連動信号を生成するにあたり、
前記設定された軌道上に、到達すべき暫定目標位置を設定し、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする付記1記載の制御方法。
[付記3]
前記軌道連動信号発生部は、前記軌道連動信号を生成するにあたり、
前記暫定目標位置への移動が達成されたか否かを判別し、
前記駆動部による駆動の結果、前記システムが前記暫定目標位置への移動が達成されたと判断された場合に、次の暫定目標位置を設定する、ことを特徴とする付記2記載の制御方法。
[付記4]
前記統合信号発生部から前記駆動部へ送る信号をS、
前記暫定目標位置で極大をとる関数をA、
前記ランダム信号をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置で曲率を反転させる値をとる関数をU、
とし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
前記統合信号発生部は、次の時刻i+1に前記駆動部へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
で与えられる信号S(i+1)を前記駆動部に送る、ことを特徴とする付記2又は3記載の制御方法。
[付記5]
前記関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数をx、y、zいずれかのパラメータで偏微分した関数である、ことを特徴とする付記4記載の制御方法。
[付記6]
前記暫定目標位置は、前記システムの初期位置と最終目標位置間の軌道を複数に分割した区間の1つに対応した位置に設定される、ことを特徴とする付記2乃至5のいずれか一に記載の制御方法。
[付記7]
駆動部を備えたシステムであって、
前記駆動部に駆動信号を与え前記駆動部を制御して前記システムの軌道を制御する制御装置を備え、
前記制御装置が、
前記システムの軌道を設定する軌道設定部と、
前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部と、
ランダムな信号を生成するランダム信号発生部と、
前記ランダム信号発生部で生成されたランダム信号と、前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動信号として前記駆動部に送る統合信号発生部と、
を備えている、ことを特徴とするシステム。
[付記8]
前記軌道連動信号発生部は、
前記軌道設定部にて設定された軌道上に、到達すべき暫定目標位置を設定する暫定目標位置設定部を有し、
前記暫定目標位置設定部は、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする付記7記載のシステム。
[付記9]
前記軌道連動信号発生部は、
前記暫定目標位置への移動が達成されたか否かを判別する暫定目標位置到達判別部を有し、
前記駆動部による駆動の結果、前記システムが前記暫定目標位置への移動が達成されたと前記暫定目標位置到達判別部が判断した場合に、前記暫定目標位置設定部が次の暫定目標位置を設定する、ことを特徴とする付記8記載のシステム。
[付記10]
前記統合信号発生部から前記駆動部へ送る信号をS、
前記暫定目標位置で極大をとる関数をA、
前記ランダム信号をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置で曲率を反転させる値をとる関数をU、
とし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
前記統合信号発生部は、次の時刻i+1に前記駆動部へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
で与えられる信号S(i+1)を前記駆動部に送る、ことを特徴とする付記8又は9記載のシステム。
[付記11]
前記関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数をx、y、zいずれかのパラメータで偏微分した関数である、ことを特徴とする付記10記載のシステム。
[付記12]
前記暫定目標位置は、前記システムの初期位置と最終目標位置間の軌道を複数に分割した区間の1つに対応した位置に設定される、ことを特徴とする付記8乃至11のいずれか一に記載のシステム。
[付記13]
システムの駆動部を制御して前記システムの軌道を制御する処理を実行するコンピュータに、
前記システムの軌道を設定する軌道設定処理と、
前記軌道設定処理によって設定された軌道に基づき信号を生成する軌道連動信号発生処理と、
ランダムな信号を生成するランダム信号発生処理と、
前記ランダム信号発生処理で生成されたランダム信号と、前記軌道連動信号発生処理で生成された信号とを統合した信号を生成し、前記生成した信号が駆動信号として前記駆動部に送る統合信号発生処理と、
を実行させるプログラム。
[付記14]
前記軌道連動信号発生処理は、
前記軌道設定処理にて設定された軌道上に、到達すべき暫定目標位置を設定する暫定目標位置設定処理を有し、
前記暫定目標位置設定処理は、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする付記13記載のプログラム。
[付記15]
前記軌道連動信号発生処理は、
前記暫定目標位置への移動が達成されたか否かを判別する暫定目標位置到達判別処理を有し、
前記駆動部による駆動の結果、前記システムが前記暫定目標位置への移動が達成されたと前記暫定目標位置到達判別処理が判断した場合に、前記暫定目標位置設定処理が次の暫定目標位置を設定する、ことを特徴とする付記14記載のプログラム。
[付記16]
前記統合信号発生処理から前記駆動部へ送る信号をS、
前記暫定目標位置で極大をとる関数をA、
前記ランダム信号をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置で曲率を反転させる値をとる関数をU、
とし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
前記統合信号発生処理は、次の時刻i+1に前記駆動部へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
で与えられる信号S(i+1)を前記駆動部に送る、ことを特徴とする付記14又は15記載のプログラム。
[付記17]
前記関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数をx、y、zいずれかのパラメータで偏微分した関数である、ことを特徴とする付記16記載のプログラム。
[付記18]
前記暫定目標位置は、前記システムの初期位置と最終目標位置間の軌道を複数に分割した区間の1つに対応した位置に設定される、ことを特徴とする付記14乃至17のいずれか一に記載のプログラム。
【符号の説明】
【0124】
1 制御装置
10 軌道設定部
20 軌道連動信号発生部
30 ランダム信号発生部
40 統合信号発生部
501〜50n 駆動部
【技術分野】
【0001】
本発明は、駆動部を持つシステム及びその制御方法と制御装置並びにプログラムに関する。
【背景技術】
【0002】
(A)複雑な駆動部(アクチュエータ)を持つシステムを快適に動かしたい、
あるいは、
(B)構造上は複雑ではない駆動部を持つシステムに複雑な動きをさせたい、
という要請は、古くから、存在する。
【0003】
上記(A)の代表的な例としては、人型ロボットが挙げられる。人型ロボットに人間のように自然な動きをさせようとすると、極めて多数の駆動部を調和的に動かす必要があり、難易度が高い。
【0004】
また(B)の例としては、車の自動運転などが挙げられる。車の場合、例えば4つの車輪(駆動部)を動かせばよいが、自在に変動する外部環境に適合させて4つの車輪を制御しようとすると、解決困難な問題となっている。
【0005】
上記問題を解く試みは、これまで多数為されてきたが、そのほとんどは失敗し、現在でも満足のいく結果が得られていないのが実情である。
【0006】
上記課題の解決を図ることを意図した代表的な技術を以下に示す。
【0007】
<モザイク>
人型ロボットを動かす技術としては、モザイク(MOSAIC)が知られている(非特許文献1)。図11にモザイクのブロック図を示す。
【0008】
図11において、
uAは運動の指令、
uDは運動指令の教師信号、
xAは実際の軌道、
xDは目標軌道、
u1、u2、・・・、unは逆モデル1〜nの出力、
x1、x2、・・・、xnは順モデル1〜nの出力
を表している。
【0009】
順モデル1〜nは、運動の指令uAを共通に入力し、x1、x2、・・・、xnを出力し、実際の軌道xAとの差分xA−x1、xA−x2、・・・、xA−xnをソフトマックス関数に入力し、各差分とそれぞれソフトマックス関数の出力λ1〜λnを乗じた値によって制御される(モデルが学習される)。逆モデル1〜nは、目標軌道xDを共通に入力し、u1、u2、・・・、unを出力し、運動指令の教師信号uDとの差分uD−u1、uD−u2、・・・、uD−unにそれぞれソフトマックス関数の出力λ1〜λnを乗じた値によって制御される(モデルが学習される)。
【0010】
順モデルと逆モデルは一対になっており、それらは、ソフトマックス関数で繋がれている。順モデルとは、アクチュエータの駆動パラメータを入力とし、軌道を出力とするモデルであり、通常、運動学、動力学が扱うモデルである。一方、逆モデルは、軌道を入力とし、アクチュエータの駆動パラメータを出力とするモデルであり、順モデルの逆である。
【0011】
アクチュエータの駆動パラメータの数は、通常、軌道の自由度よりも多いので、逆モデルは、境界条件等の拘束条件を設定しないと解けない不良設定問題となる。
【0012】
逆モデルを扱う計算方式を、逆運動学、逆動力学と呼ぶ。順動力学が、対象とする系の運動方程式に力を入力として与え運動を出力するのに対して、逆動力学は、運動方程式に運動を入力し運動の駆動力となる力を出力する。
【0013】
順モデルは、通常、拘束条件を設定しなくても解ける良設定問題となる。逆モデルは、トップダウンで軌道(目標軌道xD)を与えることができるので、使い勝手が良いが、不良設定問題となる。モザイクでは実際の軌道をフィードバックすることで、逆モデルに拘束条件を与えている。
【0014】
ソフトマックス関数とは、例えば次式(1)で与えられる。
【0015】
(1)
【0016】
あるいは、次式(1)’であってもよい。
(1)’
【0017】
ただし、σはxA-xiの標準偏差である。
【0018】
順モデル1〜nと逆モデル1〜nの各対のうち、どの対が最も現在の動作を記述しているか、あるいは、それぞれの対をどのような重みで重ね合わせればいいかを表したものである。
【0019】
モザイクでは、ある動作に対して、好適な動作、動作の組み合わせを、ソフトマックス関数により自動的に選択できる。順モデル1〜nは、自身の出力x1〜xnと実際の軌道xAの差をモデルにフィードバックすることで,モデルを学習する。一方、逆モデル1〜nは、運動指令の教師信号uDが存在すれば、自身の出力u1〜unと,運動指令の教師信号uDの差をモデルにフィードバックすることで、モデルを学習する。
【0020】
しかしながら、通常、所望の軌道を実現するアクチュエータへの入力はわからない。そこで、そのような場合、目標軌道xDと実際の軌道xAのずれを、運動指令uA(順モデルの入力)にフィードバックしながら、uDを運動指令の教師信号として、逆モデルにフィードバックして学習する。
【0021】
<モザイクの課題>
よく知られているように、モザイクは、数々のロボットを動かすことに成功してきた。しかしながら、モザイクには、複雑な動作をしようとすればするほどモデルの数が爆発的に増えていく、という問題点がある。
【0022】
一つのモデルを学習するにも、それなりの時間がかかる。複雑な動作を行おうとすると、モデルの数が増える。モデルの数の増加に伴い、モデルの学習の時間が爆発的に増える。その結果、複雑な動作の実行は、不可能となってくる。
【0023】
また、実環境では、予測不可能な事態が発生する。モザイクは、ある決められた実環境上での動作は得意であるが、実環境上で予測不可能な事態が起きると、適応的な動作ができない。これは、実環境上で予測不可能な事態に対応するモデルがないか、あるいは、直ちに、該モデルに対応した新しいモデルを構築することができないためである。したがって、予測不可能な実環境で適応的に動くロボットを、モザイクだけで作ることは、難しい。
【0024】
<ゆらぎ方程式>
モザイクにおいて、駆動部を制御するために複数のモデルを持つことで生じる問題、および、予測不可能な実環境に適応できないという問題を解決することが期待される技術に、「ゆらぎ方程式」を使った技術がある(非特許文献2(「ゆらぎで技術革新」、大阪大学ゆらぎプロジェクト、2008))。これは、次式(2)に示すゆらぎ方程式をベースに駆動部を制御する技術である。なお、式(2)中のf(x)は式(3)で与えられる。
【0025】
(2)
【0026】
(3)
【0027】
式(2)において、Activityはバイアスの一種であり、システムが快適と感じる位置xで大きな値をとる関数である。ηはランダムなノイズである。式(3)において、U(x)はシステムを駆動するポテンシャル(モデル化された目的関数)である。
【0028】
ゆらぎ方程式と似た方程式に、次式(4)に示すランジェバン方程式(Langevin Equation)がある。
【0029】
(4)
【0030】
なお、ゆらぎ方程式は、式(2)に式(3)を代入すると、次式が得られる。
【0031】
(2)’
【0032】
上式(2)’を、上式(4)のランジェバン方程式と比べると、Activityにしか違いがない。ゆらぎ方程式は、ポテンシャルを、UとActivityに分けて表現したに過ぎない印象を与えるが、これが決定的な差を生む。すなわち、工学的見地から決定的な違いがある。
【0033】
何かを駆動しようとして、ランジェバン方程式を使おうとすれば、ポテンシャルUを正確に求めなくてはならない。非線形な複雑な問題に対して、正確なポテンシャルを求めることは極めて難しく、解析的に解ける例は少ない。機械学習、強化学習等も、実は、物理的にみると、あるシステムのポテンシャルを求めているのと同じであるが、ニューラルネットワーク等を用い、ブラックボックス的にポテンシャルを求めている。
【0034】
非線形な複雑な問題のポテンシャルを求めようとすると、ブラックボックス的に求めざるを得ない、というのが現状である。
【0035】
ポテンシャルを求めるということは、モデルを設定することと同じである。このため、より複雑な動作を行おうとすると、モザイクのようにモデルの数が増えるか、ポテンシャル関数が非常に複雑になる。その結果、一つのポテンシャル関数では事象を表現しきれない、という問題が発生する。
【0036】
この問題を解決したのが、ゆらぎ方程式である。ゆらぎ方程式では、システムが感じる快適さを、Activityとして、ポテンシャル全体から切り離すことで、システムの動作をトップダウンで(階層的に)、ユーザ(人)側が指定することができるようになる。
【0037】
すなわち、システムに期待する動作を実現できるようにActivityの設定が行われる。例えば、ある位置にシステムを動かしたいとすると、所望の位置で値が最大となる関数を、Activityとして与える。所望の位置から遠い場合には、式(2)の右辺第1項は小さな値となり、右辺第2項のランダムノイズによってシステムが駆動される。システムを粒子と例えると、ブラウン運動のような状態である。所望の位置から遠い位置にあるシステムは、ブラウン運動のようなランダムな動き(ランダムウォーク)を行いながら、偶発的に所望の位置に近づくことがある。
【0038】
その際、式(2)の右辺第1項がActivity関数の作用により、大きな値を取る。すると、システムの動作を支配するのが、右辺第2項から右辺第1項に移る。右辺第1項がシステムを制御し始めると、後は自然と、Activity最大となるポテンシャル位置にシステムは落ち込む。つまり、所望の位置に到達する。ユーザ(人)は、トップダウンにActivityを決定しているだけであり、システムの駆動部に対して特別な指令、制御をしていない。
【0039】
階層的なゆらぎ制御により、最上位のActivityを与えるだけでシステム全体を制御することができる。
【0040】
式(2)には、システムを駆動する力は陽に記述されていないが、システムの駆動部には、式(2)の右辺の値に比例した出力を与えておけば良い。駆動部が複数あっても、同じように、式(2)の右辺に比例した出力を与えておけば良い。その際、各駆動部でのランダムノイズは独立にしておく。
【0041】
一方、Activityは、すべての駆動部で同じものを用いる。すると、各駆動部は、個々の式(2)に従って、単純に動作しているだけだが、全体を統括するActivityの作用で、Activity最大の位置に動くように、全体で協調動作するようになる。ゆらぎ方程式を使うと、複数の駆動部を持つシステムでも、モザイクのようなモデルを一切使わずに、所望の動作をシステムに実行させることができる。この技術を使って、26本もの筋肉アクチュエータを使った人工の手の制御(26次元の制御空間)が実現されている。例えば、手を挙げる動作をさせようとした場合、挙げたい手の位置でActivityを最大になるように設定しておくと、最初、手はランダムノイズのせいで、ブルブル震えているだけだが、徐々に、挙げたい手の位置(所望の位置)に到達する。Activityを設定するだけで、モデルもなしに、このような複雑な動作を実現することができる。
【0042】
また、実環境から予測不可能な外乱が入っても、特定のモデルベースで駆動されていないことから、しばらく、所望の動作からずれはするが、徐々に、所望の動作に戻ってくることができる。したがって、例えば、ゆらぎ方程式を使ってロボットを作ることで、予測不可能な実空間で適応的に動作するロボットが実現する可能性がある。
【0043】
<先行技術文献:特許文献>
本願出願人による先行技術文献サーチでサーチされたいくつかの特許文献について説明しておく。特許文献1には、軌道追従制御を行うロボットに対するロバスト制御装置として、ロボットの動特性モデルの不正確さ(モデル化誤差)や雑音などのランダムな外乱を考慮したロバスト制御装置が開示されている。この特許文献1では、雑音などのランダムな外乱を推定する機構を制御モデルに組み込む方式であり、システム内部に外乱を発生する機構を備えるものではない。また、特許文献2には、ロボット機構部の各関節の許容ピークトルク(許容値)を越えず、最短時間で動作が終了できる最適な各関節の加減速度を求めることができ、動作時間を短縮できるようにしたロボットシステムの制御装置が開示されている。特許文献1、2記載の発明はゆらぎ方程式に基づく制御とは全く別の発明であり、特許文献1、2には、ゆらぎ方程式に基づく制御の課題、該課題を解決するための手段はいっさい開示も示唆もされていない(後述される本発明とは全く相違した発明)。
【先行技術文献】
【特許文献】
【0044】
【特許文献1】特開平08−123507号公報
【特許文献2】特開2002−91572号公報
【非特許文献】
【0045】
【非特許文献1】「脳・身体性・ロボット 知能の創発をめざして」、土井利忠その他、シュプリンガー社、2005年
【非特許文献2】「ゆらぎで技術革新」、大阪大学ゆらぎプロジェクト、2008
【発明の概要】
【発明が解決しようとする課題】
【0046】
以下に関連技術の分析を与える。
【0047】
上記したゆらぎ方程式を用いた制御にも、なお、解決されるべき課題が存在する。それは、迅速な動作の実現ということである(本発明者による知見)。例えば前記した26本もの筋肉アクチュエータを使った人工の手の場合でも、所定の位置に到達するまで、しばらくの間、ブルブルと震えるランダムな動きを経なければならない。したがって、最終的に所定の位置まで手を挙げることはできるが、人間のように手を挙げたいと思ったときにすぐに手を挙げられるようにはなっていない。
【0048】
したがって、本発明は、上記課題に鑑みて創案されたものであって、その目的は、所望の動作を円滑、且つ高速に実現する装置、方法、システム並びにプログラムを提供することにある。
【課題を解決するための手段】
【0049】
本発明によれば、システムの駆動部を制御して前記システムの軌道を制御する制御装置であって、前記システムの軌道を設定する軌道設定部と、前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部と、ランダムな信号を生成するランダム信号発生部と、前記ランダム信号発生部で生成されたランダム信号と、前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る統合信号発生部と、を備えた制御装置が提供される。
【0050】
本発明によれば、システムの駆動部を制御して前記システムの軌道を制御する制御方法であって、
起動設定部が前記システムの軌道を設定し、
軌道連動信号発生部が前記設定された軌道に基づく軌道連動信号を生成し、
ランダム信号発生部がランダムな信号を生成し、
統合信号発生部が前記ランダムな信号と前記軌道連動信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る、
上記各工程を含む制御方法が提供される。
【0051】
本発明によれば、駆動部を備えたシステムであって、前記駆動部に駆動信号を与え前記駆動部を制御して前記システムの軌道を制御する制御装置を備え、前記制御装置が、前記システムの軌道を設定する軌道設定部と、前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部と、ランダムな信号を生成するランダム信号発生部と、前記ランダム信号発生部で生成されたランダム信号と、前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動信号として前記駆動部に送る統合信号発生部と、を備えたシステムが提供される。
【0052】
本発明の別の側面によれば、システムを駆動する駆動部を制御して前記システムの軌道を制御する処理を実行するコンピュータに、前記システムの軌道を設定する軌道設定処理と、前記軌道設定処理によって設定された軌道に基づき信号を生成する軌道連動信号発生処理と、ランダムな信号を生成するランダム信号発生処理と、前記ランダム信号発生処理からのランダム信号と前記軌道連動信号発生処理で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る統合信号発生処理と、を実行させるプログラムが提供される。さたに本発明の別の側面によれば、該プログラムを記憶したコンピュータ読出し可能な記録媒体が提供される。
【発明の効果】
【0053】
本発明によれば、所望の動作を円滑、且つ高速に実現することができる。
【図面の簡単な説明】
【0054】
【図1】本発明の一実施形態の構成を示す図である。
【図2】本発明の一実施形態における設定軌道の一例を示す図である。
【図3】本発明の一実施形態における暫定目標位置の一例を示す図である。
【図4】本発明の一実施形態の処理シーケンスを示す図である。
【図5】本発明の一実施形態における暫定目標位置の一例を示す図である。
【図6】本発明の第1の実施例のシステムの構成を示す図である。
【図7】本発明の第1の実施例の軌道制御の一例を示す図である。
【図8】比較例の軌道制御の一例を示す図である。
【図9】本発明の第2の実施例のシステムの構成を示す図である。
【図10】本発明の第2の実施例の軌道制御の一例を示す図である。
【図11】モザイクを説明する図である。
【発明を実施するための形態】
【0055】
本発明の実施形態について以下に説明する。はじめに発明の概要を説明する。本発明においては、システムの軌道を設定する軌道設定部(10)と、軌道設定部(10)によって設定された軌道に基づく信号を発生する軌道連動信号発生部(20)と、ランダムな信号を発生するランダム信号発生部(30)と、前記ランダム信号発生部(30)からのランダム信号と前記軌道連動信号発生部(20)で発生された信号を統合した信号を生成する統合信号発生部(40)と、を備える。統合信号発生部(40)からの信号(駆動信号)が駆動部(50)に送られ、駆動部(50)が、被駆動対象のシステムを駆動し、その軌道を制御する。
【0056】
本発明において、軌道連動信号発生部(20)は、軌道設定部(10)において設定された軌道上に到達すべき暫定目標位置を決定する暫定目標位置設定部(21)を有する。軌道連動信号発生部(20)は、暫定目標位置に近づくにつれて、絶対値が大きくなる信号と、前記暫定目標位置に近づくにつれて、0に近づく信号を発生する。暫定目標位置は、例えば初期位置と最終目標位置間の設定軌道を複数に分割した区間のうちの1つの区間の端部に設定される。
【0057】
本発明において、軌道連動信号発生部(20)は、暫定目標位置への移動が達成されたか否かを判別する暫定目標位置到達判定部(22)を有し、前記暫定目標位置への移動が達成されたと判断した場合は、次の暫定目標位置を設定する(ただし、最終目標位置に達した場合、移動を終了する)。次の暫定目標位置は、設定軌道を複数に分割した区間のうち、例えば只今移動が達成した暫定目標位置から最終目標位置側の最も近い区間の端部に設定される。
【0058】
統合信号発生部(40)を出力をS
暫定目標位置で極大を向かえる関数をA、
ランダム値を出す関数をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置に対して極性を反転させる値をとる関数をUとし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
統合信号発生部(40)は、次の時刻i+1に駆動部(50)へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
なる出力S(i+1)を、駆動部(50)に送る。
【0059】
また、本発明において、関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数を、x、y、zいずれかのパラメータで偏微分した関数である。以下、実施形態を説明する。
【0060】
<実施形態1>
図1は、本発明の一実施形態のシステムの構成を示す図である。図1を参照すると、制御装置(コントローラ)1は、システムの軌道を設定する軌道設定部10と、軌道設定部10により設定された軌道に基づいた信号を発生する軌道連動信号発生部20と、ランダムな信号を発生するランダム信号発生部30と、軌道連動信号発生部20からの信号とランダム信号発生部30からの信号を統合し、駆動部50に信号を送る統合信号発生部40と、を備えている。
【0061】
<軌道設定部>
軌道設定部10は、不図示のCPU等の上位装置とやりとりし、所望のシステムの動作を実現するためのシステムの軌道を設定する。
【0062】
筋肉アクチュエータを使用した人工の手の場合、軌道設定部10は、例えば初期の手のポジションから所望の手を挙げたい位置までの軌道を設定する。
【0063】
初期のポジションから、所望の位置(目標位置)までの軌道は無数考えられるが、軌道設定部10においては、最短距離で結ぶ軌道など、何らかの拘束条件を設定して決めれば良い。
【0064】
図3に、設定した軌道の例を示す。設定された軌道は破線で示している。実際は3次元になる場合が多いが、説明を簡略化するために2次元(X−Z座標)での動作としている。
【0065】
軌道設定部10は、設定した軌道情報を、軌道連動信号発生部20に転送する。
【0066】
<軌道連動信号発生部>
軌道連動信号発生部20は、軌道設定部10にて設定された軌道上に到達すべき暫定目標位置を決定する暫定目標位置設定部21と、暫定目標位置への移動が達成されたかどうかを判別する暫定目標位置到達判定部22とを有する。
【0067】
軌道連動信号発生部20の暫定目標位置設定部21は、軌道設定部10より得た軌道情報を用いて、到達すべき暫定目標位置を軌道上に設定する。その様子を図4に示す。軌道連動信号発生部20は、暫定目標位置設定部21が設定した暫定目標位置を用い、暫定目標位置に近づくにつれて、絶対値が大きくなる信号Aと、前記暫定目標位置に近づくにつれて、0に近づく信号Uを発生する。
【0068】
本発明を特に制限するものではないが、本実施形態において、AとUは、例えば、次式(5)、(6)のようなxの2次関数、1次関数で記述される。A0は正の定数である。
【0069】
(5)
【0070】
(6)
【0071】
この場合、x=0が暫定目標位置になる。
【0072】
一般に、駆動部50は複数あるので(図1の501〜50n)、軌道連動信号発生部20はいくつかのAおよびUを用意する。
【0073】
場合によっては、すべての駆動部501〜50nで同じA、Uを用いるが、例えば、ある駆動部50iには、上記式(5)、式(6)に基づいたものを用意し、他の駆動部50j(j≠i、1≦i、j≦n)には、式(5)、式(6)のxをyまたはzに変えたもの、あるいはx、y、zで記述される関数を用意するなど、様々な変形例(バリエーション)が適用可能である。
【0074】
いずれの場合も、Aは前記暫定目標位置に近づくにつれて、絶対値が大きくなる信号であればよく、Uは暫定目標位置に近づくにつれて、0に近づく信号であればよい。軌道連動信号発生部20で用意されたこれらの信号A、Uは、統合信号発生部40に送られる。
【0075】
<ランダム信号発生部>
一方、ランダム信号発生部30は、複数の駆動部501〜50n用にそれぞれ個別にランダム信号Rを用意し、統合信号発生部40に送る。
【0076】
<統合信号発生部>
統合信号発生部40は、軌道連動信号発生部20とランダム信号発生部30でそれぞれ用意された信号を用いて、個々の駆動部50用に駆動信号を作成する。そのとき、例えば次式(7)によって駆動信号Sを発生する。ある駆動部用の信号をS、所定の係数をαとし、次の時刻をi+1、現在をi、一つ前の時刻をi−1と表し、sign(x)をxの符号を表わす関数とする。
【0077】
(7)
【0078】
式(7)において、
(8)
なる項の効果はゆらぎ方程式と同じである。
【0079】
ゆらぎ方程式的に表わすと、
(9)
の方が近いが、式(8)のU(i)をU(i)×A(i)と設定すればよいだけのことなので、実質的に同じであり、式(8)は、式(9)を内包する。
【0080】
式(8)は、暫定目標位置から遠ければ、ランダム信号Rに、暫定目標位置に近ければ、軌道に連動した信号Uに支配される。
【0081】
ここで、式(8)の第1項に、マイナス符号をつけて、−U(i)と表記しているが、これは、物理的な意味と整合をとるためであり、U(i)と記載して、U(i)に−U(i)を使用してもよいことは勿論である。
【0082】
また、ランダムノイズ項R(i)も−U(i)とともに、絶対値で括らず、絶対値記号の外に出し、式(7)の右辺第3項目として記載することも可能である。
【0083】
(10)
【0084】
このように、本質的な効果が同じでありさえすれば、S(i+1)を規定する数式は適宜変更可能である。
【0085】
次に、式(7)における符号関数sign[]の[]内の式の意味を説明する。
【0086】
【0087】
過去の駆動信号の変化{S(i)−S(i−1)}が、Aの変化{A(i)−A(i−1)}を、プラス方向に導いたら、駆動信号を引き続き同じ方向に変化させ(すなわち、{S(i+1)−S(i)}を{S(i)−S(i−1)}と同じ極性とする)、
過去の駆動信号の変化{S(i)−S(i−1)}がAの変化{A(i)−A(i−1)}をマイナス方向に導いたら、駆動信号の変化の方向を逆方向にする(すなわち、{S(i+1)−S(i)}を{S(i)−S(i−1)}と逆極性とする)。
【0088】
Aの時間変化がプラスということは、システムが暫定目標位置に近づいていることを意味するので、駆動信号の方向を変えることはない。
【0089】
一方、Aの時間変化がマイナスなら、システムが暫定目標位置から遠ざかっているので、駆動信号の方向を変えようということである。このような駆動信号の制御により、システムは徐々に暫定目標位置に近づく。
【0090】
統合信号発生部40は、複数の駆動部501〜50nのそれぞれに駆動信号Sを用意する。その後、複数の駆動部501〜50nに対してそれぞれ用意された駆動信号Sは、複数の駆動部501〜50nにそれぞれ送られる。その結果、駆動部501〜50nを持ったシステムは動き出す。なお、図1では、複数の駆動部501〜50n(n≧2)を例示したが、本発明は1つの駆動部50(図1のn=1)を備えた構成にも適用可能であることは勿論である。
【0091】
軌道連動信号発生部20の暫定目標位置到達判定部22は、現在のシステムの位置と暫定目標の位置を常にモニタしており、システムが予め設定した基準まで暫定目標位置に近づいた場合、その旨を暫定目標位置設定部21に伝える。このようにすることで、暫定目標位置設定部21は、次の暫定目標位置を設定することができる。
【0092】
<制御動作>
上記した各部が一連の処理の中でどう動くのかについて以下に説明する。図5は、本実施形態の制御処理の流れを示す図である。
【0093】
軌道設定部10が所望の軌道を設定し(S1)、その軌道を軌道連動信号発生部20に送る。
【0094】
軌道連動信号発生部20の中の暫定目標位置設定部21は、軌道設定部10から送られた軌道をもとに、軌道上に、到達すべき暫定目標位置を設定する(S2)。
【0095】
軌道連動信号発生部20は、暫定目標位置設定部21が設定した暫定目標位置を用い、暫定目標位置に近づくにつれて絶対値が大きくなる信号Aと、暫定目標位置に近づくにつれて0に近づく信号Uを発生する(S3)。軌道連動信号発生部20はで生成した信号AとUは、統合信号発生部40に送られる。このとき、ランダム信号発生部30も、複数の駆動部50の各々に対してランダム信号Rを発生し(S4)、統合信号発生部40に送る。
【0096】
軌道連動信号発生部20からの信号AとUと、ランダム信号発生部30からの信号Rを受け取った統合信号発生部40は、それらの信号を基に、駆動部50それぞれに対して駆動信号Sを生成し、生成した駆動信号Sを駆動部50に送る(S5)。
【0097】
駆動部50は、統合信号発生部40から供給された駆動信号Sを受け取ると、該駆動信号Sに基づき、システムの動作をスタートする。その結果、駆動部50を持ったシステムは徐々に暫定目標位置に近づく。
【0098】
軌道連動信号発生部29の暫定目標位置到達判定部22は、駆動部50を持つシステムの現在位置と、設定されている暫定目標位置を常にモニタしており(S6)、暫定目標位置に近づかない場合(S7のNo分岐)、現在のシステムの位置と暫定目標位置をモニタする。システムが予め設定した基準まで暫定目標位置に近づいた場合(S7のYes分岐)、その旨を暫定目標位置設定部21に伝える。その結果を受け、暫定目標位置設定部21は新たな暫定目標位置を設定する。その様子を図6に示す。図6において、実際に腕が動いた軌道は実線で示されている。
【0099】
その後は、S2〜S7の各ステップを繰り返して実行し、暫定目標位置を徐々に目標位置に近づけていく。最終的に、システムは設定した軌道上を目標位置まで動いていくことになる。
【0100】
なお、図1の制御装置1を構成する軌道設定部10、軌道連動信号発生部20、ランダム信号発生部30、統合信号発生部40の各処理は、制御装置1(コンピュータ)上で実行させるプログラムで実現するようにしてもよいことは勿論である。本発明によれば、該プログラムは、該プログラムを記憶したコンピュータ読出し可能な記録媒体として提供してもよいことは勿論である。
【0101】
本実施形態のシステムによれば、ユーザは、CPUを介して軌道設定部10によって、所望の軌道と目標位置を設定するだけであって、軌道ごとに駆動部の動作を考える必要はない。
【0102】
また、本実施形態においては、暫定目標位置に引っ張られるように、システムが駆動されるので、最終目標位置しか設定せず、その途中はゆらぎにまかせる「ゆらぎ方程式」を用いたシステムよりも、スピーディにシステムを駆動させることができる。本実施形態と「ゆらぎ方程式」との効果の相違点については後述する。
【0103】
上記の通り、本発明によれば、「ゆらぎ方程式」による制御の課題であった迅速な動作を実現することができる。以下では、いくつかの実施例を図面を参照して説明する。
【0104】
<実施例1>
図6は、本発明を6筋2関節2リンクの冗長筋骨格系に適用した場合を説明する図である。6筋2関節2リンクの冗長筋骨格系とは、6つの筋肉部と、2つの関節がある人間の手のモデルである。2次元平面での腕の動きを良く再現するモデルである。
【0105】
本実施例では、このモデルをベースに、通常、6つの筋肉しか使わないこの系の筋肉を2重化し、12の筋肉を持つ形態にしたモデルで用いた。6種類の各筋肉部に対して、同じものを2つ形成する。そして、2重化された筋肉は、x方向への駆動担当と、y方向への駆動担当に分ける。
【0106】
x方向の筋肉に対しては、式(5)、式(6)をA、Uとして使用した。Aは前記暫定目標位置に近づくにつれて、絶対値が大きくなる信号であり、Uは暫定目標位置に近づくにつれて、0に近づく信号である。
【0107】
y方向の筋肉に対しては、式(5)、式(6)のxをyにしたものを使用した。
【0108】
最終的に筋肉に送られる信号は、式(7)と同じものを使用した。当然、12個の筋肉それぞれに対して駆動部と駆動信号を用意した。本実施例で使用したシステムは、図1に示したものと同じであり、処理の流れは図6に示したものと同じである。
【0109】
暫定目標位置は、初期位置から目標位置までの軌道を10分割した各位置とし、暫定目標が達成されたら、逐次暫定目標を変えていった。初期位置に近い方から、順次、暫定目標位置として設定した。図7に、本実施例で得られた軌道を示す。図7において、破線が設定軌道であり、実線が実際に動いた軌道である。
【0110】
設定軌道をかなり忠実に再現しながら、手を上げることに成功していることがわかる。初期位置から目標位置まで到達するのにかかった時間は、約4秒である。
【0111】
図8は、比較例を説明する図であり、実施例1と同様の骨格系を使い、「ゆらぎ方程式」を使用した場合の実験結果を示す。初期位置と目標位置は実施例1と同じである。図8の比較例では、暫定目標位置を設定する仕組みがなく、最初から目標位置のみが設定されている状態で駆動部を制御している。図8において、実際の手の軌道が実線で示されている。初期位置の近くでは、ぶれが大きく、だんだん目標位置に収束していくことがわかる。また、この比較例では、軌道を特に設定していないので、実施例1とは異なる軌道(やや直線的)を描いている。この軌道は、Activityの与え方に依存し、また、目標軌道自体がないので、毎回ばらついてしまう。目標位置までの到達時間は約20秒であった。
【0112】
以上説明したとおり、本実施例によれば、ゆらぎ方程式」を使用し初期位置と目標位置を与える比較例と比べ、スムーズで、スピーディなシステムの駆動を実現している。
【0113】
<実施例2>
図9は、本発明を飛行船に適用した場合を説明する図である。飛行船はヘリウムガスによって浮遊することができるようになっており、x、y、z方向用のプロペラを、それぞれ2重化し、計6個搭載した。2重化の仕方は、図9に示したように、x、y、zの各方向で相対させる方向とした。1対のプロペラは、各方向で反対方向を向いている。1対のプロペラのうち、一方がプラス方向の出力、他方がマイナス方向の出力を担当する。つまり、駆動信号Sの極性によって、1対のプロペラのいずれか一方のみ駆動し、その出力の大きさは駆動信号Sの絶対値に比例する。したがって、この実施例の場合、駆動信号としては、x、y、z方向の3種類となる。
【0114】
実施例1と同様に、使用したシステムは図1に示したものと同じであり、処理の流れは図5に示したものと同じである。
【0115】
x方向のプロペラに対しては、式(5)、式(6)をA、Uとして使用した。そして、y方向のプロペラに対しては、式(5)、式(6)のxをyにしたもの、z方向のプロペラに対しては、式(5)、式(6)のxをzにしたものを使用した。最終的にプロペラに送られる信号は、式(7)と同じものを使用した。前記実施例と同様、x、y、z方向用の3種類の駆動信号を用意した。暫定目標位置は、初期位置から目標位置までの軌道を10分割した位置とし、暫定目標が達成されたら、逐次、暫定目標位置を変えていった。初期位置に近い方から、順次、暫定目標位置として設定した。
【0116】
図9は、本実施例によって得られた軌道を示す。図9において、破線が設定軌道であり、実線が実際に動いた軌道である。設定軌道をかなり忠実に再現しながら、飛行船が動作しているのがわかる。初期位置から目標位置までは、直線で約1mであったが、到達するのにかかった時間は約10秒であった。
【0117】
上記実施例では、人間の手のモデル、飛行船に関して説明したが、本発明は、駆動系を具備した任意のシステムに適用できる。例えば人間の足のモデル、人間の体のモデル、車、ヘリコプター、飛行機、船など様々な駆動系を持つシステムに適用できる。
【0118】
また、上記実施例で用いた人間の手のモデル以外の人間の手のモデルにも、本発明は適用可能である。例えば、本実施例は腕と二の腕の2リンクであるが、手先、肩の筋肉まで入れたモデルでも良いし、2次元の動きを3次元に拡張しても良い。その際、使用する駆動部は30、40個と増えていくが、本発明を用いることで、所望の動作を容易に実現できる。
【0119】
また、上記実施例は、駆動部を多重化し、x、y、z方向それぞれを担当させたが、必ずしも多重化する必要はない。一つの駆動部に、各方向への駆動を担当させると、上記実施例より、若干、目標位置の到達まで時間がかかるようになるが、駆動部の個数の削減効果がある。
【0120】
また、上記実施例は、暫定目標位置を離散的に設定したが、暫定目標位置を増やしていけば、連続的に暫定目標位置が変わっていく制御も実現できる。
【0121】
本発明は、駆動部を持つシステムと当該システムの制御方法に適応することができ、複雑な駆動部を持つシステムに対して、スムーズ、スピーディに所望の動作を実現することができる。
【0122】
なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【0123】
さらに本発明として以下が付記される。
[付記1]
システムの駆動部を制御して前記システムの軌道を制御する制御方法であって、
起動設定部が前記システムの軌道を設定し、
軌道連動信号発生部が前記設定された軌道に基づく軌道連動信号を生成し、
ランダム信号発生部がランダムな信号を生成し、
統合信号発生部が前記ランダムな信号と前記軌道連動信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る、ことを特徴とする制御方法。
[付記2]
前記軌道連動信号発生部は、前記軌道連動信号を生成するにあたり、
前記設定された軌道上に、到達すべき暫定目標位置を設定し、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする付記1記載の制御方法。
[付記3]
前記軌道連動信号発生部は、前記軌道連動信号を生成するにあたり、
前記暫定目標位置への移動が達成されたか否かを判別し、
前記駆動部による駆動の結果、前記システムが前記暫定目標位置への移動が達成されたと判断された場合に、次の暫定目標位置を設定する、ことを特徴とする付記2記載の制御方法。
[付記4]
前記統合信号発生部から前記駆動部へ送る信号をS、
前記暫定目標位置で極大をとる関数をA、
前記ランダム信号をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置で曲率を反転させる値をとる関数をU、
とし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
前記統合信号発生部は、次の時刻i+1に前記駆動部へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
で与えられる信号S(i+1)を前記駆動部に送る、ことを特徴とする付記2又は3記載の制御方法。
[付記5]
前記関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数をx、y、zいずれかのパラメータで偏微分した関数である、ことを特徴とする付記4記載の制御方法。
[付記6]
前記暫定目標位置は、前記システムの初期位置と最終目標位置間の軌道を複数に分割した区間の1つに対応した位置に設定される、ことを特徴とする付記2乃至5のいずれか一に記載の制御方法。
[付記7]
駆動部を備えたシステムであって、
前記駆動部に駆動信号を与え前記駆動部を制御して前記システムの軌道を制御する制御装置を備え、
前記制御装置が、
前記システムの軌道を設定する軌道設定部と、
前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部と、
ランダムな信号を生成するランダム信号発生部と、
前記ランダム信号発生部で生成されたランダム信号と、前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動信号として前記駆動部に送る統合信号発生部と、
を備えている、ことを特徴とするシステム。
[付記8]
前記軌道連動信号発生部は、
前記軌道設定部にて設定された軌道上に、到達すべき暫定目標位置を設定する暫定目標位置設定部を有し、
前記暫定目標位置設定部は、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする付記7記載のシステム。
[付記9]
前記軌道連動信号発生部は、
前記暫定目標位置への移動が達成されたか否かを判別する暫定目標位置到達判別部を有し、
前記駆動部による駆動の結果、前記システムが前記暫定目標位置への移動が達成されたと前記暫定目標位置到達判別部が判断した場合に、前記暫定目標位置設定部が次の暫定目標位置を設定する、ことを特徴とする付記8記載のシステム。
[付記10]
前記統合信号発生部から前記駆動部へ送る信号をS、
前記暫定目標位置で極大をとる関数をA、
前記ランダム信号をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置で曲率を反転させる値をとる関数をU、
とし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
前記統合信号発生部は、次の時刻i+1に前記駆動部へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
で与えられる信号S(i+1)を前記駆動部に送る、ことを特徴とする付記8又は9記載のシステム。
[付記11]
前記関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数をx、y、zいずれかのパラメータで偏微分した関数である、ことを特徴とする付記10記載のシステム。
[付記12]
前記暫定目標位置は、前記システムの初期位置と最終目標位置間の軌道を複数に分割した区間の1つに対応した位置に設定される、ことを特徴とする付記8乃至11のいずれか一に記載のシステム。
[付記13]
システムの駆動部を制御して前記システムの軌道を制御する処理を実行するコンピュータに、
前記システムの軌道を設定する軌道設定処理と、
前記軌道設定処理によって設定された軌道に基づき信号を生成する軌道連動信号発生処理と、
ランダムな信号を生成するランダム信号発生処理と、
前記ランダム信号発生処理で生成されたランダム信号と、前記軌道連動信号発生処理で生成された信号とを統合した信号を生成し、前記生成した信号が駆動信号として前記駆動部に送る統合信号発生処理と、
を実行させるプログラム。
[付記14]
前記軌道連動信号発生処理は、
前記軌道設定処理にて設定された軌道上に、到達すべき暫定目標位置を設定する暫定目標位置設定処理を有し、
前記暫定目標位置設定処理は、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする付記13記載のプログラム。
[付記15]
前記軌道連動信号発生処理は、
前記暫定目標位置への移動が達成されたか否かを判別する暫定目標位置到達判別処理を有し、
前記駆動部による駆動の結果、前記システムが前記暫定目標位置への移動が達成されたと前記暫定目標位置到達判別処理が判断した場合に、前記暫定目標位置設定処理が次の暫定目標位置を設定する、ことを特徴とする付記14記載のプログラム。
[付記16]
前記統合信号発生処理から前記駆動部へ送る信号をS、
前記暫定目標位置で極大をとる関数をA、
前記ランダム信号をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置で曲率を反転させる値をとる関数をU、
とし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
前記統合信号発生処理は、次の時刻i+1に前記駆動部へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
で与えられる信号S(i+1)を前記駆動部に送る、ことを特徴とする付記14又は15記載のプログラム。
[付記17]
前記関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数をx、y、zいずれかのパラメータで偏微分した関数である、ことを特徴とする付記16記載のプログラム。
[付記18]
前記暫定目標位置は、前記システムの初期位置と最終目標位置間の軌道を複数に分割した区間の1つに対応した位置に設定される、ことを特徴とする付記14乃至17のいずれか一に記載のプログラム。
【符号の説明】
【0124】
1 制御装置
10 軌道設定部
20 軌道連動信号発生部
30 ランダム信号発生部
40 統合信号発生部
501〜50n 駆動部
【特許請求の範囲】
【請求項1】
システムの駆動部を制御して前記システムの軌道を制御する制御装置であって、
前記システムの軌道を設定する軌道設定部と、
前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部と、
ランダムな信号を生成するランダム信号発生部と、
前記ランダム信号発生部で生成されたランダム信号と、前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る統合信号発生部と、
を備えている、ことを特徴とする制御装置。
【請求項2】
前記軌道連動信号発生部は、
前記軌道設定部にて設定された軌道上に、到達すべき暫定目標位置を設定する暫定目標位置設定部を有し、
前記暫定目標位置設定部は、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする請求項1記載の制御装置。
【請求項3】
前記軌道連動信号発生部は、
前記暫定目標位置への移動が達成されたか否かを判別する暫定目標位置到達判別部を有し、
前記駆動部による駆動の結果、前記システムが前記暫定目標位置への移動が達成されたと前記暫定目標位置到達判別部が判断した場合に、前記暫定目標位置設定部が次の暫定目標位置を設定する、ことを特徴とする請求項2記載の制御装置。
【請求項4】
前記統合信号発生部から前記駆動部へ送る信号をS、
前記暫定目標位置で極大をとる関数をA、
前記ランダム信号をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置で曲率を反転させる値をとる関数をU、
とし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
前記統合信号発生部は、次の時刻i+1に前記駆動部へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
で与えられる信号S(i+1)を前記駆動部に送る、ことを特徴とする請求項2又は3記載の制御装置。
【請求項5】
前記関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数をx、y、zいずれかのパラメータで偏微分した関数である、ことを特徴とする請求項4記載の制御装置。
【請求項6】
前記暫定目標位置は、前記システムの初期位置と最終目標位置間の軌道を複数に分割した区間の1つに対応した位置に設定される、ことを特徴とする請求項2乃至5のいずれか1項に記載の制御装置。
【請求項7】
システムの駆動部を制御して前記システムの軌道を制御する制御方法であって、
起動設定部が前記システムの軌道を設定し、
軌道連動信号発生部が前記設定された軌道に基づく軌道連動信号を生成し、
ランダム信号発生部がランダムな信号を生成し、
統合信号発生部が前記ランダムな信号と前記軌道連動信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る、ことを特徴とする制御方法。
【請求項8】
前記軌道連動信号発生部は、前記軌道連動信号を生成するにあたり、
前記設定された軌道上に、到達すべき暫定目標位置を設定し、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする請求項7記載の制御方法。
【請求項9】
駆動部を備えたシステムであって、
前記駆動部に駆動信号を与え前記駆動部を制御して前記システムの軌道を制御する制御装置を備え、
前記制御装置が、請求項1乃至6のいずれか1項に記載の前記制御装置を備えた、ことを特徴とするシステム。
【請求項10】
システムの駆動部を制御して前記システムの軌道を制御する処理を実行するコンピュータに、
前記システムの軌道を設定する軌道設定処理と、
前記軌道設定処理によって設定された軌道に基づき信号を生成する軌道連動信号発生処理と、
ランダムな信号を生成するランダム信号発生処理と、
前記ランダム信号発生処理で生成されたランダム信号と、前記軌道連動信号発生処理で生成された信号とを統合した信号を生成し、前記生成した信号が駆動信号として前記駆動部に送る統合信号発生処理と、
を実行させるプログラム。
【請求項1】
システムの駆動部を制御して前記システムの軌道を制御する制御装置であって、
前記システムの軌道を設定する軌道設定部と、
前記軌道設定部によって設定された軌道に基づき信号を生成する軌道連動信号発生部と、
ランダムな信号を生成するランダム信号発生部と、
前記ランダム信号発生部で生成されたランダム信号と、前記軌道連動信号発生部で生成された信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る統合信号発生部と、
を備えている、ことを特徴とする制御装置。
【請求項2】
前記軌道連動信号発生部は、
前記軌道設定部にて設定された軌道上に、到達すべき暫定目標位置を設定する暫定目標位置設定部を有し、
前記暫定目標位置設定部は、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする請求項1記載の制御装置。
【請求項3】
前記軌道連動信号発生部は、
前記暫定目標位置への移動が達成されたか否かを判別する暫定目標位置到達判別部を有し、
前記駆動部による駆動の結果、前記システムが前記暫定目標位置への移動が達成されたと前記暫定目標位置到達判別部が判断した場合に、前記暫定目標位置設定部が次の暫定目標位置を設定する、ことを特徴とする請求項2記載の制御装置。
【請求項4】
前記統合信号発生部から前記駆動部へ送る信号をS、
前記暫定目標位置で極大をとる関数をA、
前記ランダム信号をR、
前記暫定目標位置で0をとり、3次元の空間座標x、y、zそれぞれに対して、前記暫定目標位置で曲率を反転させる値をとる関数をU、
とし、
sign(x)を、x>0の場合、1、x=0の場合、0、x<0の場合、−1をとる符号関数とし、
現在時刻をi、次の時刻をi+1、一つ前の時刻をi−1で表し、
前記統合信号発生部は、次の時刻i+1に前記駆動部へ送る信号Sとして、
現在時刻iと一つ前の時刻i−1の信号S(i)、S(i−1)、A((i)、A(i−1)、現在時刻iのU(i)、R(i)、予め定められた係数αにより、
で与えられる信号S(i+1)を前記駆動部に送る、ことを特徴とする請求項2又は3記載の制御装置。
【請求項5】
前記関数Uは、前記暫定目標位置において、3次元空間座標x、y、zそれぞれに対して極値を持つ関数をx、y、zいずれかのパラメータで偏微分した関数である、ことを特徴とする請求項4記載の制御装置。
【請求項6】
前記暫定目標位置は、前記システムの初期位置と最終目標位置間の軌道を複数に分割した区間の1つに対応した位置に設定される、ことを特徴とする請求項2乃至5のいずれか1項に記載の制御装置。
【請求項7】
システムの駆動部を制御して前記システムの軌道を制御する制御方法であって、
起動設定部が前記システムの軌道を設定し、
軌道連動信号発生部が前記設定された軌道に基づく軌道連動信号を生成し、
ランダム信号発生部がランダムな信号を生成し、
統合信号発生部が前記ランダムな信号と前記軌道連動信号とを統合した信号を生成し、前記生成した信号を前記駆動部に送る、ことを特徴とする制御方法。
【請求項8】
前記軌道連動信号発生部は、前記軌道連動信号を生成するにあたり、
前記設定された軌道上に、到達すべき暫定目標位置を設定し、
前記システムが前記暫定目標位置に近づくにつれて絶対値が大きくなる信号と、
前記システムが前記暫定目標位置に近づくにつれて0に近づく信号と、
を生成する、ことを特徴とする請求項7記載の制御方法。
【請求項9】
駆動部を備えたシステムであって、
前記駆動部に駆動信号を与え前記駆動部を制御して前記システムの軌道を制御する制御装置を備え、
前記制御装置が、請求項1乃至6のいずれか1項に記載の前記制御装置を備えた、ことを特徴とするシステム。
【請求項10】
システムの駆動部を制御して前記システムの軌道を制御する処理を実行するコンピュータに、
前記システムの軌道を設定する軌道設定処理と、
前記軌道設定処理によって設定された軌道に基づき信号を生成する軌道連動信号発生処理と、
ランダムな信号を生成するランダム信号発生処理と、
前記ランダム信号発生処理で生成されたランダム信号と、前記軌道連動信号発生処理で生成された信号とを統合した信号を生成し、前記生成した信号が駆動信号として前記駆動部に送る統合信号発生処理と、
を実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−148034(P2011−148034A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−10873(P2010−10873)
【出願日】平成22年1月21日(2010.1.21)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願日】平成22年1月21日(2010.1.21)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]