説明

軌道探索装置

【課題】動作を学習させ、それを実行するロボットにおいて、単に学習した動作しか実行できないロボットでは応用範囲が閉ざされてしまう。環境の変化に柔軟に対応し、学習した動作よりも発展した動作を行えるロボットが必要とされている。
【解決手段】本発明の軌道探索装置は、学習した動作を確率モデルで表し、それら確率モデルのうちの複数を結合することで得られる複合的な動作を表す確率モデルの下で、最も確からしい軌道を探索する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットに人間の動作のまねをさせるという技術において、ロボットが動作を行うための軌道を探索する軌道探索装置の改良に関する。
【背景技術】
【0002】
ユーザが何らかの動作を実演することにより、ロボットにその動作を学習させることを見真似学習と呼ぶ。ロボットが学習した動作は、ロボットが行い得る基本的な動作であるので動作プリミティブと呼ぶ。ロボットに学習させる動作プリミティブとしては、物を操作する動作と物を操作しない動作とに分類できるが、実用上重要となるのは物を操作する動作である。このとき、操作される物をトラジェクタと呼ぶ。
【0003】
動作プリミティブの学習において、ロボットは、ユーザが実演する動作をカメラで撮影し、トラジェクタの軌跡をキャプチャする。このようなキャプチャを何度も行うことで、動作プリミティブのもつ一般的な特性を抽出する。これは、キャプチャしたトラジェクタの軌跡を確率モデルによってモデル化することでなされる。確率モデルとしては、例えば、隠れマルコフモデル(HMM: Hidden Markov Model)が用いられ、これはトラジェクタの状態が時間経過と共にどのように遷移すべきかを、時刻と共に変化する位置、速度、加速度の確率分布と状態間の遷移確率を用いて表現したモデルである。
【0004】
学習後、ユーザから動作プリミティブを命じられた際、ロボットは、命じられた動作プリミティブを表す確率モデルの下で最も確からしい軌道を探索することで、トラジェクタが描くべき最適な軌道を得る。
関連する先行技術文献として、以下の非特許文献が挙げられる。
【非特許文献1】Iwahashi, N.: Robots That Learn Language: Developmental Approach to Human-Machine Conversations, Symbol Grounding and Beyound: Proceedings of the Third International Workshop on the Emergence and Evolution of Linguistic Communication (Vogt, P. et al.(eds.)), Springer, pp 143-167 (2006).
【非特許文献2】羽岡哲郎, 岩橋直人:「言語獲得のための参照点に依存した空間的移動の概念の学習」, 信学技報, PRMU2000-105, pp.39-46 (2000).
【非特許文献3】Tokuda,K., Kobayashi, T. and Imai, S. Speech parameter generation from HMM using dynamic features,Procceedings of International Conference in Acoustics, Speech, and Signal Processing, pp.660-663 (1995).
【発明の開示】
【発明が解決しようとする課題】
【0005】
ロボットは、学習した動作プリミティブが命じられれば、それを実行することができる。しかし、学習した動作プリミティブだけしか実行できないのならば、ロボットとして実用性に乏しいものとなる。
例えば、工場内で多数の部品を種別毎に仕分けして所望の宛先の生産ラインに送り出すという作業をロボットに学習させて自動化を図る場合、そのような配送には様々なパターンが存在するため、ユーザは多数の動作プリミティブを学習させておく必要があり、個々の作業についてカメラの前で実演を行うという手間で、多くの工数が発生する。これでは、日々に厳しい生産スケジュールに追われる生産現場において、実用化は不可能であり、見真似学習の応用はせいぜいおもちゃや遊戯施設のアトラクション程度に限られてしまう。結果として応用範囲が閉ざされてしまうという問題がある。
【0006】
本発明の目的は、学習した限られた動作プリミティブを基に、更に発展した動作を実現するトラジェクタの軌道を探索する軌道探索装置を提供することである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明に係る軌道探索装置はトラジェクタを移動するための軌道の探索を行う軌道探索装置であって、トラジェクタを移動するための駆動装置が行い得る動作プリミティブを含んだトラジェクタの移動指示をユーザから受け付ける受付手段と、前記受付手段で受け付けたユーザからの指示に含まれる動作プリミティブからなる動作列を生成して、生成された動作列の範囲内で、最尤軌道の探索を行う探索手段とを備え、駆動装置が行い得る各々の動作プリミティブは、確率モデルによって表され、確率モデルは、トラジェクタの状態が時間経過と共にどのように遷移すべきかを、時点毎の確率分布と状態間の遷移確率を用いて定義したモデルであり、前記探索手段による軌道探索は、前記動作列について、動作プリミティブを表す確率モデルの結合を行い、結合により得られた結合確率モデルの下で、尤度が最大となる軌道を探索することを特徴とする。
【発明の効果】
【0008】
本発明の軌道探索装置は、学習した動作プリミティブを表す確率モデルを結合してできる結合確率モデルの下で、トラジェクタの最尤軌道を探索する。動作プリミティブの結合の仕方はいくらでもあるので、少数の動作プリミティブを学習させるだけで、ロボットに多様な動作を実行させることができる。すなわち、ロボットに様々な応用力を具備させることができる。複数の動作を連続して行わせるには、単に動作プリミティブを順番に実行させることでも可能であるが、この場合1つの動作プリミティブを終了するたびに動作が止まることになり、動作と動作の間で加速度を急激に変化させる場合があるため危険である。本発明の軌道探索装置では、動作プリミティブを表す確率モデルの段階で結合を行い、結合確率モデル上でトラジェクタの軌道を探索する。つまり、動作全体が1つの結合動作として実行され、動作プリミティブと動作プリミティブの間のつなぎ目ができないので、人間が動作を連続して行う場合のような自然な動作をロボットにさせることができる。
【0009】
ここで、動作プリミティブを表す確率モデルの結合は、動作列の2番目以降に実行すべき動作プリミティブの各状態におけるトラジェクタの位置、速度、加速度の平均を、その状態におけるトラジェクタの位置、速度、加速度の平均と、その動作プリミティブの初期状態におけるトラジェクタの位置の平均と、直前の動作プリミティブの最終状態における位置の平均とを用いて算出されるとすることができる。確率モデルの結合において、確率モデルを特徴づけるパラメータである平均のうち、位置の平均に関して、当該動作プリミティブの初期状態と、直前の動作プリミティブの最終状態とが連続するように座標変換することができるので、トラジェクタの軌道の連続性を確保することができる。
【0010】
ここで、前記軌道探索装置は、トラジェクタの軌道をキャプチャするキャプチャ手段と、駆動装置が動作する空間に配置されている静止オブジェクトの認識を行う認識手段とを備え、動作プリミティブを表す確率モデルの結合は、結合の対象となる動作プリミティブの基準となる参照点が、認識した静止オブジェクトの位置の何れかに合致するか否かの判定を行い、動作プリミティブの基準となる参照点が、認識した静止オブジェクトの位置の何れかに合致すれば、前記結合において、動作列の2番目以降に実行すべき動作プリミティブの各状態における分散を、その動作プリミティブの各状態における分散とし、動作プリミティブの基準となる参照点が、認識した静止オブジェクトの位置の何れにも合致しなければ、前記結合において、動作列の2番目以降に実行すべき動作プリミティブの各状態における分散を、その動作プリミティブの各状態における分散と、その直前の動作プリミティブの最終状態における分散との和とすることでなされるとすることができる。結合の対象となる動作プリミティブの参照点が静止オブジェクトの位置に一致しない場合に分散を拡大するので、結合動作全体において取り得る軌道に広がりをもたせることができる。また、結合の対象となる動作プリミティブの参照点が静止オブジェクトの位置に一致する場合は、元の確率モデルの分散をそのまま用いるので、参照点からぶれずにトラジェクタを移動させることができる。
【0011】
トラジェクタの移動指示には、トラジェクタの初期位置と目標位置とを含み、前記探索手段は、トラジェクタの初期位置から目標位置までの経路に対応する動作プリミティブの動作列を複数生成して、それらの動作列毎に、確率モデルの結合を行うとすることができる。指定されたトラジェクタの初期位置と目標位置とを結ぶ軌道の探索において、学習した動作プリミティブからなる動作列を複数生成し、それらを結合した動作を表す確率モデル上でそれぞれ軌道の探索を行うので、単純な動作プリミティブに限らない柔軟な軌道を探索することができる。
【0012】
トラジェクタの移動指示は、動作プリミティブの動作名とランドマークの組みを複数含み、前記探索手段による確率モデルの結合の対象となる動作プリミティブは、移動指示に含まれる複数の動作名に対応した動作プリミティブであるとすることができる。トラジェクタの移動を命じる際に、どの動作プリミティブをどの順に行うかを細かく指定できるので、障害物の回避など、探索して得られた最尤軌道では不都合がある場合でも、別の軌道で動作を実行させることができる。
【0013】
前記結合において、結合対象となる2つの確率モデルが定義されている座標系を統一するように座標変換を行うとすることができる。確率モデルの平均の結合において、異なる座標系で定義された確率モデルの座標軸を変換することで、座標系を統一することができる。結合時に座標系が統一されるので、確率モデルは動作プリミティブに固有の座標系で定義することができる。従って、座標変換により等価となる動作プリミティブを複数学習させる必要がなくなる。
【0014】
前記座標変換は、直前の動作プリミティブを表す確率モデルが定義されている座標系に対して、当該動作プリミティブを表す確率モデルが定義されている座標系をアフィン変換することでなされるとすることができる。結合対象となる2つの動作プリミティブのうち、後で実行される動作プリミティブを表す確率モデルが定義された座標系を、前に実行される動作プリミティブを表す確率モデルが定義された座標系に合わせるように座標系のアフィン変換を行うことで、動作列内のすべての動作プリミティブを表す確率モデルの座標系が一致するように逐次変換される。
【0015】
前記動作プリミティブを表す確率モデルは、ユーザが実演した動作に基づいて決定されるとすることができる。動作プリミティブの学習は、ユーザが実演した動作を再現するようになされるので、ロボットの動作も人間が行う滑らかな動作に似せることができる。
前記尤度が最大となる軌道で表される動作を、前記駆動装置が行う前に、ユーザに確認を求め、ユーザが同意しなかった場合には前記軌道を出力しないとすることができる。軌道探索装置が探索した最尤軌道を駆動装置に動作させる前に、ユーザに確認させることにより、意図せぬ危険な動作を事前に防ぐことができる。
【発明を実施するための最良の形態】
【0016】
本実施形態では、図1に示すようなロボットのアーム型のマニピュレータを動かして、物を操作するシステムを考える。図1は、本実施形態における軌道探索装置300を用いたマニピュレータ制御システムの構成を示す図である。マニピュレータ制御システムは、命令された動作を行うマニピュレータ500、命令を音声で入力するためのマイクロフォン、入力された命令を解析する音声認識エンジン100、命令を実行する周囲の状況を撮影するためのカメラ、撮影された映像を解析するための画像認識エンジン200、入力された命令と映像から動作を行う軌道の探索および動作の学習を行う軌道探索装置300、軌道探索装置300によって探索された軌道を実現するためにマニピュレータ500を制御する制御パラメータを生成する制御装置400によって構成されている。
【0017】
本実施形態の軌道探索装置300は、動作を学習させるための学習モードと、学習した動作を結合した結合動作を行う軌道を探索する軌道探索モードとを有している。
各モードの構成の具体的説明に入る前に、本明細書で用いられる用語等の概念を説明しておく。
ロボットが行う動作には、「歩く」、「飛ぶ」、「回る」のように物を操作しない動作と、図2の(a)「ペンをあげる」、(b)「ペンを箱にのせる」、(c)「ペンに箱をとびこえさせる」のように物を操作する動作とがある。実際に、ロボットに何か仕事をさせることを考えると、物を操作しない動作よりも物を操作する動作の方がはるかに有用であるので、ここでは、物を操作する動作を学習させることを考える。認知言語学では、外部世界を解釈する主体のプロセスにおいて焦点化される存在のうち、相対的に際立って認知される対象をトラジェクタ、これを背景的に位置付けるオブジェクトをランドマークと呼ぶ。物を操作する動作においては、動作の対象となり移動する物がトラジェクタ、それ以外の物がランドマークとなる。図2の例では、「ペン」がトラジェクタであり、「箱」がランドマークである。
【0018】
動作を学習するとは、ユーザによって実演された動作を一般化し、同じような動作を再現できるようにすることである。ここで、全く同じ動作ではなく、同じような動作という点が重要である。全く同じ動作であれば、物が動く軌跡を座標として記憶しておけばロボットがそれを再現することは容易である。しかし、「ペンを箱にのせる」という動作を考えた場合、「ペン」と「箱」の位置関係は状況によって様々であり、単に記憶した軌跡を再現するだけでは「ペンを箱にのせる」ことはできない。この場合、「ペン」と「箱」の位置を認識し、「ペン」を持ち上げつつ、「箱」の上部に近付け、「箱」の上面に向かって下げるという一般化された動作を記憶することが学習である。
【0019】
本マニピュレータ制御システムは、まず、学習モードにおいて、マニピュレータ500が行う基本的な動作となる動作プリミティブを学習させる。その上で、軌道探索モードでは、マイクロフォンからのユーザによる音声入力、あるいは、カメラによって撮影されたユーザのジェスチャによって命令が与えられたことを検知し、学習した動作プリミティブのうちの複数を結合して、与えられた命令を実行するのに最適な動作を行える軌道を探索する。探索で見つかった軌道は制御装置400に送られ、マニピュレータ500を制御する制御パラメータに変換され、実際に、マニピュレータ500を動かすことになる。尚、学習した動作プリミティブのうちの1つが、与えられた命令を実行するのに最適な動作であれば、動作プリミティブの結合を行わず、その動作プリミティブを表す確率モデルの下で軌道を探索すればよい。
【0020】
ここで、命令とは、例えば、「人形を箱にのせる」というものである。ユーザがマイクロフォンに向かって、「人形を箱にのせる」と命令すれば、音声認識エンジン100は、「のせる」という動作名を抽出し、動作の対象となる物、すなわち、トラジェクタが「人形」であり、動作の目標位置が「箱」であると認識する。本実施形態では、動く物はトラジェクタのみを考える。トラジェクタ以外の静止している物は静止オブジェクトと呼ぶ。トラジェクタや静止オブジェクトがどこにあるかを認識するために、カメラによる撮影が行われ、撮影された映像は、画像認識エンジン200によって解析される。
【0021】
以下、学習モードおよび軌道探索モードのそれぞれの構成について説明する。
《学習モードの構成》
本節では、マニピュレータ制御システムの学習モードの構成について説明する。
動作の学習は、ユーザが命令を発し、ロボットに行って欲しい動作を何度も実演することでなされる。例えば、「のせる」という動作を学習させる場合、「ペンを箱にのせる」、「人形を棚にのせる」、「赤い箱を青い箱にのせる」など「のせる」動作を何度も見せ、ロボットはそれらの動作を一般化することで学習する。これは、入力映像から、トラジェクタの運動および静止オブジェクトの位置を抽出し、トラジェクタの運動を一般化するように座標軸とその原点を探索し、トラジェクタの運動を与える確率モデルを決定することでなされる。
【0022】
図3に入力映像の例を示す。図3(a)は、赤、青、緑の3つの箱が並んでおいてあるときに、「赤い箱を青い箱にのせる」という動作を実演した例である。図3(b)は、続いて、
「緑の箱を赤い箱にのせる」という動作を実演した例である。どちらも「のせる」という動作の実演ではあるが、目標位置、動きの方向に違いがある。しかし、どちらも動きの方向は目標位置に近付ける方向であるという点では共通している。
〈確率モデル〉
ここで、動作の確率モデルによる表現について説明しておく。動作は、トラジェクタの運動であり、トラジェクタの位置、速度、加速度の時間的変化で表すことができる。しかし、動作をトラジェクタの位置、速度、加速度の時間的変化で特定してしまうと、動作のもつ曖昧さが失われてしまう。例えば、人は「ペンをあげる」という動作を行う場合、「ペン」の座標の鉛直成分が時間とともに大きくなるような軌跡を描くが、途中のある時刻に必ず特定の位置まで上昇していなければならいという制約はないし、水平方向に多少のぶれがあっても、「あげる」という動作の範疇を越えることにならない。このような曖昧さを加味して、ある時刻にトラジェクタがある位置を中心とするある範囲内の状態に存在している確率と、状態間の遷移確率を与えることで、トラジェクタの運動を表現したモデルが確率モデルである。
【0023】
図4は、確率モデルλで表した動作プリミティブの概念図である。図4には、確率モデルλの下での、3次元空間上で、トラジェクタの状態sを、時刻t_sにおいて位置x_s(λ)の平均Eを楕円体の中心の黒丸で、分散Vを楕円体の大きさで表現した図である。トラジェクタは、時刻t_0には原点の近くに存在する確率が高く、時刻がt_1,t_2,...と進むにつれて原点から離れた位置に存在する確率が高くなることを示している。運動を指定するには、位置だけでなく、速度、加速度についても同様に、平均と分散を考える必要がある。図4は、図面の都合で3次元の空間座標のみを示しているが、実際には位置、速度、加速度を含めた9次元空間上での確率モデルとして定義される。
【0024】
尚、本明細書では、下付き添字を表すために「_」を用い、上付き添字を表すために「^」を用いている。
図5は、確率モデルλのデータ構造を示した図である。確率モデルλは、各時刻t_sに状態sにある確率分布を与えるパラメータの列と、状態間の遷移確率とで定義されている。各時刻t_sにおけるパラメータは、位置x_s、速度x'_s、加速度x''_sのそれぞれについての平均Eおよび分散Vで構成されている。位置の平均を(p,q,r)、速度の平均を(v_p,v_q,v_r)、加速度の平均を(a_p,a_q,a_r)、位置の分散を(V_p,V_q,V_r)、速度の分散を(V'_p,V'_q,V'_r)、加速度の分散を(V''_p,V''_q,V''_r)とおく。これらのパラメータのうち、位置に関しては、図4の楕円体で示した通りである。
【0025】
尚、本明細書中では、位置xの時間に関する1階微分および2階微分を表すのに、速度x'、および、加速度x''のように「ダッシュ」を用いているが、分散V、および、確率モデルΛに付した「ダッシュ」は、時間微分を意味するものではないことに注意されたい。
〈軌道探索装置300の学習モードにおける内部構成〉
図6は、本実施形態の軌道探索装置300の学習モードにおける内部構成を示す図である。本実施形態の軌道探索装置300は、入出力インターフェース1、データベース格納部2、プロセッサ3、ワークメモリ4、プログラム格納部5から構成される。データベース格納部2は学習結果を記憶するためのハードディスク等の記録装置であり、ワークメモリ4は演算を行うためのRAMであり、プログラム格納部5は学習プログラムおよび軌道探索プログラムを記録したROMである。
【0026】
学習において、ユーザは、図1に示したマイクロフォンに向かってロボットに学習させる動作の動作名を発し、その動作名は音声認識エンジン100を介して、図6の入出力インターフェース1からプロセッサ3へと入力される。その後、ユーザは動作を実演し、実演した動作は、図1に示したカメラによって撮影され、画像認識エンジン200によって、トラジェクタが描く軌道と周辺の静止オブジェクトの位置集合とが、図6の入出力インターフェース1からプロセッサ3へと入力される。ユーザはロボットに動作を学習させるために何度も実演を行うので、それぞれについてトラジェクタの軌道Y_iと静止オブジェクトの位置集合O_iとが入力される。
【0027】
学習モードでは、軌道探索装置300は、プログラム格納部5に格納された学習プログラムをプロセッサ3に実行させる。学習プログラムは、入出力インターフェース1から入力された動作名に対応する複数のトラジェクタの軌道Y_iと静止オブジェクトの位置集合O_iとの組から、トラジェクタの軌道を一般化するような座標系と原点、および、その動作を表す確率モデルを、ワークメモリ4上で探索する。探索で見つかった確率モデルのパラメータは動作名と関連付けて、データベース格納部2に格納される。
〈確率モデルを用いた動作の学習の定式化〉
本節では、学習の定式化について説明する。
【0028】
ロボットに動作を学習させるためにユーザが実演した動作を撮影したN個の入力映像からなる集合をV={V_1,V_2,...,V_N}とする。各映像V_iは、移動するオブジェクトが1つで、背景に静止しているオブジェクトが複数ある映像であるとする。例えば「のせる」という動作を学習させる場合、図3の(a)赤い箱を青い箱にのせる、(b)緑の箱を赤い箱にのせる、といった動作を映した映像がそれぞれの映像V_iに対応する。
【0029】
各映像V_iから、移動する物と止まっている物を抽出することでトラジェクタと静止オブジェクトとが認識される。映像V_iからキャプチャされたトラジェクタの軌道をY_i、静止オブジェクトの位置集合をO_iとする。図3(a)では、左から右へ移動しながら一旦持ち上げて下げるという赤い箱の軌道がY_iであり、青い箱と緑の箱の位置がO_iである。図3(b)では、右から左へ移動しながら一旦持ち上げて下げるという緑の箱の軌道がY_iであり、青い箱と赤い箱の位置がO_iである。
【0030】
トラジェクタの軌道Y_iは、トラジェクタの位置x_t、速度x'_t、加速度x''_tの時系列であり、これらをまとめてy_t=[x_t,x'_t,x''_t]^Tと書く。ここで、Tは転置行列をとることを表す記号である。
トラジェクタの軌道を数値化するためには、座標系の原点と座標軸の向きを決めることが必要である。座標系の原点は、軌道を数値化する上での基準となるので、参照点と呼ぶ。参照点はランドマークの中から選ばれる。ランドマークは、静止オブジェクトの位置集合O_i、および、トラジェクタの初期位置x_0、映像の中心位置からなる集合をL_i={l^(i)_1,l^(i)_2,...,l^(i)_M_i}である。ここで、M_iは、映像V_iにおけるランドマークの数である。座標軸の向きkは、予め用意されたK種類の候補から選択する。座標軸の具体的なとり方については後述する。
【0031】
トラジェクタの軌道Yと、座標軸の向きkと、参照点lで決まる軌道をF(Y,k,l)と書く。トラジェクタの運動に関する確率モデルλの下で、映像V_iに示されるトラジェクタの軌道をY_i、座標軸の向きをk、映像V_iにおけるM_i個のランドマークのうちm_i番目のランドマークl^(i)_m_iを参照点としたときの軌道F(Y_i,k,l^(i)_m_i)を描く確率を尤度P(F(Y_i,k,l^(i)_m_i);λ)とする。このとき各映像V_iに関する対数尤度の、すべての入力映像に渡る和が最大になるように、確率モデルλ*、座標軸の向きk*、入力映像ごとの参照点を示すインデックスの集合m*を決定することにより、動作の学習を行う。これを式で表すと(数1)となる。
【0032】
【数1】

ここで、argmaxの下にλ,k,mを書いた記号は、引数部分が最大になるようなλ,k,mを返す関数であり、m=(m_1,m_2,...,m_N)である。また、「*」は、推定値を意味する記号である。
【0033】
要するに、確率モデルλを与えれば、その確率モデルの上でトラジェクタがある軌道Fを描く確率が決まるので、ユーザによる実演を撮影した入力映像に示された軌道Y_iのすべてを再現するのに最も確からしい座標系のとり方を決定するというのが、(数1)の意味するところである。
この問題は、例えば、確率モデルとしてHMMを用いることで解くことができる。解法の詳細は、非特許文献2に示されている。
【0034】
尚、本明細書では、確率モデルとしてHMMを用いることを念頭において説明を行っているが、これは確率モデルをHMMに限定するものではない。
《動作プリミティブの学習》
本節では、いくつかの動作プリミティブを学習させたときの学習結果の具体例を示す。学習させた動作プリミティブは、「あげる」、「ちかづける」、「はなす」、「まわす」、「のせる」、「さげる」、「とびこえさせる」の7種類である。座標系のとり方としては、次のK=3種類を採用した。
k_1:ランドマークを原点とし、鉛直下向きにy軸、水平方向にx軸をとり、トラジェクタの初期位置のx座標が負になるようにx軸の向きを決めた座標系。
【0035】
k_2:ランドマークを原点とし、原点からトラジェクタの初期位置に向かう方向にx軸、それに垂直な方向にy軸をとった座標系。
k_3:トラジェクタの初期位置を原点とし、鉛直下向きにy軸、水平方向にx軸をとった座標系。
図7に、それぞれの動作プリミティブを学習させたときにユーザが実演した動作の軌道と、そのときに選択された座標系kおよび、参照点lを示す。図7における(a)から(g)は、上の7種類のそれぞれの動作プリミティブごとの学習結果を示している。
【0036】
まず、図7(a)を例に記号の意味を説明する。図7(a)における、四角や丸は静止オブジェクトを表しており、Tを付した中黒丸はトラジェクタを表している。静止オブジェクトがいくつか置かれた状況で、太い矢印の始点から終点へと、ユーザがトラジェクタを上方に持ち上げ、「あげる」という命令をマイクロフォンに向かって発する作業を4回行ったことを示している。各入力動作ごとに、静止オブジェクトの数や位置、トラジェクタの初期位置および目標位置は異なっており、それぞれの入力動作は、カメラで撮影され、入力映像V_iとして認識される。入力映像V_iから、動いている物体をトラジェクタとして認識し、トラジェクタの初期位置および静止オブジェクトの位置がランドマークとして認識される。このとき、(数1)に基づいて座標系と参照点を決定した結果、細い矢印で示した方向に座標軸をとり、それらの交点が参照点Rに選択されたことを示している。すなわち、「あげる」という動作に対ては、座標系k_3が選択されたことを示している。
【0037】
図7(b)から(g)の各動作に関しても同様で、「のせる」、「とびこえさせる」に対しては座標系k_1、「ちかづける」、「はなす」に対しては座標系k_2、「あげる」、「まわす」、「さげる」に対しては座標系k_3が選択されたことを示している。
《軌道探索モードの構成》
本節では、本実施形態の軌道探索装置300の軌道探索モードにおける内部構成について説明する。
【0038】
軌道探索とは、ユーザからの命令された動作を実行するのに最も確からしい軌道を、学習した動作プリミティブを結合することで生成される結合動作を表す結合確率モデルの下で探索することである。
図8は、本実施形態の軌道探索装置300の軌道探索モードにおける内部構成である。これは、図6で示した学習モードのおける構成と基本的に同じであるが、プロセッサ3が実行するプログラムが異なるため、入出力されるデータ、および、ワークメモリ4で展開される演算内容が異なる。
【0039】
入出力インターフェース1は、図1に示したマイクロフォンに向かってユーザが発した命令を音声認識エンジン100が解析した指示内容を示すコード列を受け取る。コード列は、ユーザが指を指して「これをあそこに動かす」と命じた場合のように、トラジェクタの初期位置x_0と移動後の目標位置x_nとを指定したコード列、もしくは、「ペンをあげてから、箱にのせる」と命じた場合のように、「あげる」「のせる」といった動作プリミティブを実行する順番に指定したコード列である。
【0040】
また、入出力インターフェース1は、図1に示したカメラで撮影された映像を画像認識エンジン200で解析し、トラジェクタの初期位置x_0と目標位置x_n、静止オブジェクトの位置集合Oを取得する。トラジェクタの初期位置は、画像認識エンジン200によって特定されるので、命令ではユーザはトラジェクタを名前あるいはジェスチャで指定するだけでよい。
【0041】
プロセッサ3は、プログラム格納部5に格納されている軌道探索プログラムを実行する。軌道探索プログラムは、学習によってデータベース格納部2に格納された動作プリミティブを表す確率モデルのパラメータλのうち2つ以上を読み込み、それらを結合した結合確率モデルのパラメータΛ'をワークメモリ4上に保有する。ここで、2つ以上の確率モデルのパラメータを読み込むのは、確率モデルの結合を行う例を示すためであり、結合が不要な場合は、1つの確率モデルのパラメータを読み込めばよい。どの動作プリミティブに対応する確率モデルのパラメータを読み込むかは、ユーザによって指示された命令の形式によって異なる。すなわち、トラジェクタの初期位置と目標位置だけが指定された場合は、軌道探索プログラムは、学習した動作プリミティブの何種類ものパターンの結合を考慮するが、動作の順序まで指定して命令された場合は、指定された動作プリミティブに対応する確率モデルのパラメータだけを読み込み、それらの結合だけを生成する。
【0042】
軌道探索プログラムは、結合された確率モデルの下で、最も確からしい軌道Y*を探索し、その結果を入出力インターフェース1を介して、制御装置400へと送る。この最も確からしい軌道とは、確率モデルを与えた上での、初期位置から目標位置までの遷移確率が最大となる軌道という意味であり、最短距離をとる軌道であるとか、運動に要するエネルギーが最小になる軌道という意味は特にはない。確率モデルはユーザの動作に基づいて学習されたものであるので、最も確からしい軌道は、人間の自然な動作を再現したもの近い軌道となる。
〈確率モデルの結合〉
本節では、学習した動作プリミティブを表す確率モデルを結合し、結合確率モデルの下で軌道を探索する方法の具体的処理内容ついて説明する。
【0043】
学習した動作プリミティブをロボットに命じることで、ロボットにその動作プリミティブを行わせることができる。しかし、単純に学習した動作プリミティブだけしか行えないのであれば、あらゆる動作を動作プリミティブとして学習させなければ多様な命令に応じることはできない。本発明では、学習した動作プリミティブを結合することにより得られる複合的な動作を表す結合確率モデルの下で軌道を探索する。
【0044】
本実施形態では、結合動作の軌道探索方法として次の2種類を考える。
1.トラジェクタの初期位置x_0と目標位置x_nを入力として、最も尤度の高い〈動作プリミティブ、ランドマーク〉の組の列からなる動作列A*と軌道Y*を探索する。
2.トラジェクタと〈動作プリミティブ、ランドマーク〉の組の列からなら動作列Aを入力として、最も尤度の高い軌道Y*を探索する。
軌道探索法1は、「ペンをここにもってくる」のように、ユーザがトラジェクタと目標位置を指定して命令した場合に採用される。トラジェクタの初期位置は、トラジェクタを指定すれば画像認識エンジン200によって特定される。この場合は、動作列と軌道の両方の探索を行う。
【0045】
軌道探索法2は、「ペンをあげてから、ちかづける」のように、ユーザが動作プリミティブの順序を指定して命令した場合に採用される。この場合は、動作列が指定されるので、その動作列の下で、軌道の探索だけを行う。
動作プリミティブの学習では、各動作プリミティブごとに座標系が決められるので、異なる動作プリミティブを結合するにあたって座標系を統一する必要がある。例えば、図9のように、「あげる」という動作プリミティブと、「ちかづける」という動作プリミティブを結合し、「ぬいぐるみ」を「だるま」の左上位置に近付ける動作を生成する場合を考える。図9(a)は、「あげる」という動作プリミティブを表す確率モデルλ_1を示しており、これは、トラジェクタの初期位置を参照点とし、水平方向にx軸、鉛直上向きにy軸をとった座標系で定義されている。図9(b)は、「ちかづける」という動作プリミティブを表す確率モデルλ_2を示しており、これは、トラジェクタを近付ける対象となるランドマークの位置を参照点とし、参照点からトラジェクタの初期位置に向かう方向にx軸、それに直交する方向にy軸をとった座標系で定義されている。この2つの動作プリミティブから、「あげてから、ちかづける」という結合動作を生成するためには、図9(c)のように、「あげる」という動作プリミティブの終点が「ちかづける」という動作プリミティブの始点に一致し、「ちかづける」という動作プリミティブの終点が「だるま」の左上位置に一致するように座標変換するように、「ちかづける」という動作プリミティブの定義されている座標系を座標変換する必要がある。
【0046】
以下、動作プリミティブの結合における座標変換の定式化について説明する。
今、動作列Aがn個の動作プリミティブを結合することで生成され、それぞれの動作プリミティブは確率モデルλ_i(i=1,2,...,n)で表されるものとする。動作列Aに含まれる動作プリミティブのそれぞれの座標系で定義された確率モデルの列をΛ=(λ_1,λ_2,...,λ_n)と書く。
【0047】
確率モデルを特徴づけるパラメータは平均と分散である。平均は、その確率モデルにおける位置、速度、加速度の平均であり、分散は平均からのばらつきを与えるパラメータである。連続する動作の終点と始点を合わせるということは、それぞれの確率モデルの終点と始点の平均位置を合わせることに相当する。
〈平均の結合〉
まず、平均の結合について説明する。
【0048】
確率モデルλ_jで表されるj番目の動作プリミティブにおいて、ある状態sにおける、位置の平均値をE_x_s(λ_j)、速度の平均値をE_x'_s(λ_j)、加速度の平均値をE_x''_s(λ_j)とする。すなわち、j番目の動作プリミティブにおいて、状態sにおける平均は、E_y_s(λ_j)=[E_x_s(λ_j),E_x'_s(λ_j),E_x''_s(λ_j)]^Tである。j番目の動作プリミティブの初期状態s=0における位置は、E_x_0(λ_j)なので、初期位置が原点になるように座標を平行移動すると、状態sにおける位置に関する平均は、(E_x_s(λ_j)-E_x_0(λ_j))となる。この平均は、j番目の動作プリミティブに対応する座標系で定義されているので、動作プリミティブを結合するためには、これを世界座標系へ変換する必要がある。世界座標系は、動作列の最初の動作プリミティブを表す確率モデルが定義されている座標系とする。この世界座標系へ変換をW_k,lとすると、W_k,lは、座標軸の向きkと参照点lに依存したアフィン変換である。参照点を原点に平行移動した上でW_k,lを作用することで座標系を統一し、直前の(j-1)番目の動作プリミティブの最終状態S_j-1における平均位置E_x_S_j-1(λ_j-1)だけ原点を平行移動すれば、j番目の動作に対応する確率モデルの世界座標系での平均が得られる。ここで、S_jはj番目の動作プリミティブにおける最終状態であり、トラジェクタの初期位置としてE_x_S_0(λ_0)=x_0、目標位置としてE_x_S_n(λ_n)=x_nとする。以上を式で表すと、(数2)から(数5)のように書ける。
【0049】
【数2】

【0050】
【数3】

【0051】
【数4】

【0052】
【数5】

〈分散の結合〉
次に分散の結合について説明する。分散は平均からのばらつきを示すパラメータであり、トラジェクタが描く軌道のゆらぎを与える。複数の動作プリミティブを結合するにあたって、各動作プリミティブが静止オブジェクトに対して相対的な動作かそうでないかによって、軌道のゆらぎの許容範囲は変わる。すなわち、静止オブジェクトに対して相対的な動作の場合は、静止オブジェクトとの位置関係をある程度正確に保つ必要があるのに対して、そうでない動作の場合は、多少軌道の位置がずれていても問題になることはない。このような理由から、分散の結合においては、結合する動作が静止オブジェクトに依存していない場合は、位置に関する分散を拡大するように結合する。こうすることで、結合動作による滑らかな軌道を生成することができる。
【0053】
確率モデルλ_jで表されるj番目の動作プリミティブにおいて、ある状態sにおける分散V_y_s(λ_j)を次のように変換する。すなわち、j番目の動作プリミティブの参照点l_jが、静止オブジェクトの位置集合Oに含まれる場合は、j番目の動作プリミティブの分散は変更せず、そうでない場合は、直前の(j-1)番目の動作プリミティブの最終状態S_j-1における分散のうち位置に関するものV_x_S_j-1(λ_j-1)を付加する。分散のうち速度および加速度に関しては何も変換しない。これを式で表すと(数6)および(数7)となる。
【0054】
【数6】

【0055】
【数7】

平均の結合の際にはアフィン変換を行ったが、分散の結合においてはアフィン変換を行っていない。これは、HMMの結合においては、共分散行列の対角成分のみを用いることが一般的であるためであるが、分散に関しても平均の場合と同様にアフィン変換を行って計算してもよい。
〈確率モデルの結合〉
上述した確率モデルの結合を模式的に表すと図10から図12のようになる。
【0056】
図10は、結合される3つの動作プリミティブを表している。図10(a)は、参照点から離す動作プリミティブを表す確率モデルλ_1、図10(b)は、水平方向に平行移動させる動作プリミティブを表す確率モデルλ_2、図10(c)は、参照点に近づける動作プリミティブを表す確率モデルλ_3である。図10(a)の参照点は、ランドマーク集合のうちのトラジェクタの初期位置である。図10(c)の参照点は、ランドマーク集合のうちのいずれかの静止オブジェクトの位置である。それぞれ独立した座標系で定義されているこれらの3つの動作プリミティブを結合して、トラジェクタを初期位置から、一旦離して、水平移動させたあと、静止オブジェクトに近づけるという結合動作を生成する。
【0057】
図11は、図10に示した3つの動作プリミティブを結合する際の、各確率モデルλ_1,λ_2,λ_3の変換の様子を示している。確率モデルの列Λ=(λ_1,λ_2,λ_3)において、確率モデルλ_1は、1番目の確率モデルであるので何も変換されない。確率モデルλ_2は、2番目の確率モデルであるので、(数3)に従って、原点をずらした上で、直前の動作プリミティブを表す確率モデルλ_1が定義された座標系へのアフィン変換を行い、かつ、確率モデルλ_2の原点が、直前の確率モデルλ_1の最終状態の平均位置に一致するように平行移動させる。また、速度と加速度については、W_k,lによるアフィン変換だけを行う。分散に関しては、(数7)に従って、確率モデルλ_2は、静止オブジェクトの位置を参照点にもたないので、直前の動作プリミティブを表す確率モデルλ_1の分散を加える。これにより、確率モデルλ_2の分散は、図11に示したように、点線から実線のように拡大し、軌道の探索に広がりをもたせることができる。確率モデルλ_3も、確率モデルλ_2の場合と同様に、(数3)に従って、座標変換が行われる。確率モデルλ_3は、目標位置に近づける動作プリミティブを表しており、静止オブジェクトの位置を参照点としてもつ確率モデルであるので、(数7)に従って、分散は何も変換されない。
【0058】
以上のようにして、変換された確率モデル全体が結合確率モデルΛ'であり、図12のようになる。この結合確率モデルΛ'の下で、最も確からしい軌道の探索を行う。
〈最尤軌道の探索〉
最尤軌道の探索は、結合確率モデルΛ'の下で、トラジェクタが軌道Yを描く確率を尤度P(Y;Λ')とし、その対数尤度が最大となるように、確率モデルΛ'*と軌道Y*を決定することでなされる。これを式で表すと、(数8)である。この解は、非特許文献3で提案されている最適化法によって求めることができる。
【0059】
【数8】

上式は、トラジェクタの目標位置を指定した命令がなされ、軌道探索方法1が採用された場合の式である。軌道探索方法1が用いられるのは、ロボットに「赤い箱を青い箱の上にのせる」と命令すれば、適切な軌道を計算するような場合である。この場合、始点と終点を与え、学習した動作プリミティブと認識されるランドマークからあらゆる〈動作プリミティブ、ランドマーク〉の組を生成し、生成された組を並べてできる動作列Aを作る。動作プリミティブの結合に制限を設けなければ、動作列Aは無限個存在するので、実際には、n個の動作プリミティブの結合までに制限する。このnを結合の深さと呼ぶ。生成される動作列Aの個数は、結合の深さをn、ランドマークの数をM、学習した動作プリミティブの数をZとすると、最大でもMZ^iをi=1からnまで足したもので表され、これは結合の深さnのべき乗で増大する。このため、動作プリミティブの数Zが少なくても、非常に多様な動作が可能となる。
【0060】
例えば、深さn=3までで、考えうるすべての〈動作プリミティブ、ランドマーク〉の組の列からなる動作列Aを生成すると、上述の動作プリミティブを表す確率モデルの結合により、動作列Aに対応する確率モデルΛ'が決定する。その確率モデルΛ'の下で、トラジェクタが軌道Yを描く確率Pが決まるので、確率Pが最大となるような、Λ'とYを決める、つまり、〈動作プリミティブ、ランドマーク〉の組の列と、そのときの最も確からしい軌道を決めるのが軌道探索方法1である。
【0061】
軌道探索方法2が用いられるのは、ロボットに「赤い箱をあげてから、箱をとびこえ、さげる」のように、軌道を指定して命令するような場合である。この場合、軌道探索方法1における動作列Aが与えられるので、〈動作プリミティブ、ランドマーク〉の組の列に関する探索は行わない。つまり、軌道Y*は、(数9)に従って生成される。
【0062】
【数9】

上述の、(数8)および(数9)のいずれにおいても、トラジェクタが静止オブジェクトに衝突する効果は考慮していないが、これは、例えば、軌道Yのうち静止オブジェクトに衝突する軌道は除外した上で、最尤軌道を選択するという条件を入れることで回避できる。
【0063】
図15は、結合確率モデルΛ'の下での最尤軌道の探索の様子を示した図である。結合確率モデルΛ'の下で、初期位置から目標位置までトラジェクタを動かす軌道Yは、図15に実線および点線で表したようにいくつもある。これらの軌道Yのそれぞれについて、結合確率モデルΛ'の下での、トラジェクタが軌道Yを描く確率P(Y;Λ')を計算し、例えば、図15の実線で表した軌道を描く確率が最大であれば、実線の軌道を最尤軌道Y*とする。
【0064】
軌道探索法2で動作を指示した場合のように、動作列Aが与えらえれ、結合確率モデルΛ'が唯一つに決まれば、その結合確率モデルΛ'の中だけで最尤軌道を探索すれば済むが、軌道探索法1で命令を行った場合は、どの動作プリミティブをどんな順番で結合するかまで探索する必要がある。図14は、初期位置x_0にあるトラジェクタを目標位置x_nにある静止オブジェクトの上にのせるという動作を、いくつかの動作プリミティブの結合により実現する例を示した図である。
【0065】
図14(a)は、図12で示したものと同じ、「はなす」「水平移動させる」「ちかづける」の3つの動作プリミティブを結合した結合動作を表す結合確率モデルΛ'_1である。図14(b)は、「とびこえる」という動作を2回続けて行った場合の結合動作を表す結合確率モデルΛ'_2である。図14(c)は、「あげる」「水平移動させる」「さげる」の3つの動作プリミティブを結合した結合動作を表す結合確率モデルΛ'_3である。図14(d)は、「はなす」「さげる」の2つの動作プリミティブを結合した結合動作を表す結合確率モデルΛ'_4である。
【0066】
初期位置x_0から目標位置x_nまでトラジェクタを移動させるような動作プリミティブからなる動作列は他にも考えられる。最尤軌道の探索では、定められた深さまでのすべての動作列を生成し、それぞれの動作列ごとに、軌道Yを描く確率を計算する。それぞれの結合確率モデルΛ'の下で計算したトラジェクタが軌道軌道Yを描く確率P(Y;Λ')が最大となる軌道Y*と結合確率モデルΛ'*を探索した結果、例えば、図14(d)の結合確率モデルΛ'_4の下で軌道Y_4を描く確率P(Y_4;Λ'_4)が最大とわかったならば、最尤軌道はY*=Y_4と決定される。これを図15(d)の実線で示す。
《目標位置を指定した移動指示》
図16は、目標位置を指定してトラジェクタの移動を指示した場合に、本実施形態の軌道探索装置により探索された最尤軌道の例をいくつか示してある。この場合は、軌道探索法1に従い、最尤軌道と最尤動作列を探索する。図16において、トラジェクタは1であり、2から5の静止オブジェクトがある空間において、(a)から(g)で示した目標位置に移動するよう指示した場合に、探索された最尤軌道がそれぞれ点線で示されている。図17は、これらの最尤軌道を与える動作列を示している。
【0067】
例えば、(a)の場合、静止オブジェクト2から「はなす」という動作プリミティブで移動が行われる。(b)の場合、静止オブジェクト5に「のせる」という動作プリミティブで移動が行われる。(c)は2つの動作プリミティブからなる動作列により移動が行われ、一旦、静止オブジェクト2に「のせて」から、静止オブジェクト5に「ちかづける」ことで移動が行われる。(d)は静止オブジェクト2に「のせて」るまでは(c)と同じ軌道をたどり、そのあと、静止オブジェクト2から「はなす」ことで移動が行われる。(e)は静止オブジェクト2を「とびこえさせ」てから、静止オブジェクト3から「はなす」ことで移動が行われる。(f)は静止オブジェクト2から「はなし」てから、静止オブジェクト4を「とびこえさせる」ことで移動が行われる。(g)は静止オブジェクト2に「ちかづけ」てから、静止オブジェクト3に「ちかづける」ことで移動が行われる。(g)の軌道が静止オブジェクト2を通過していることからわかるように、この例では、トラジェクタと静止オブジェクトの衝突は考慮していない。しかし、これは上述したように、衝突のある軌道は最尤軌道から除外するなどして容易に回避できる。
《動作列を指定した移動指示》
図18は、動作列を指定してトラジェクタの移動を指示した場合に、本実施形態の軌道探索装置により探索された最尤軌道の例をいくつか示してある。この場合は、軌道探索法2に従い、与えられた動作列を表す結合確率モデルの下で、最尤軌道の探索を行う。図18(a)は、「オブジェクト1を、オブジェクト2をとびこえさせてから、さげて、オブジェクト4にちかづける」と命じた場合に探索された最尤軌道である。図18(b)は、「オブジェクト2を、オブジェクト1をとびこえさせ、再びオブジェクト1をとびこえさせ、オブジェクト5にのせる」と命じた場合に探索された最尤軌道である。
《マニピュレータ制御システムの動作》
本節では、本実施形態の軌道探索装置を用いたマニピュレータ制御システムの軌道探索モードにおける動作を、図19のフローチャートを参照しながら説明する。
【0068】
まず、軌道探索モードでは、ユーザの音声及びジェスチャによる動作指示を待つ(ステップS101)。マイクロフォンからの音声入力とカメラで撮影された映像にユーザからの指示が確認されたら(ステップS101 Y)、音声認識エンジン100が指示内容を認識する(ステップS102)。すなわち、ユーザが発した命令からトラジェクタやランドマーク、指示に含まれる動作プリミティブを抽出する。
【0069】
以下からは、ユーザがトラジェクタの目標位置を指定して命令したのか、あるいは、動作列を指定して命令をしたのかによって処理を分岐する。これは、入力された命令にトラジェクタの目標位置x_nが含まれているかどうかによって判定する(ステップS103)。トラジェクタの目標位置x_nが含まれている場合は(ステップS103 Y)、目標位置を指定した命令と判定されステップS111に進む。トラジェクタの目標位置x_nが含まれていない場合は(ステップS103 N)、動作列を指定した命令と判定され(ステップS103 N)ステップS104に進む。
【0070】
動作列を指定した命令の処理では、まず、〈動作プリミティブ、ランドマーク〉の組の列からなる動作列Aが入力されたかどうかを判別する(ステップS104)。動作列Aが入力されていなければ(ステップS104 N)、ステップS101の指示待ち状態に戻る。動作列Aが入力されていれば(ステップS104 Y)、動作列Aに含まれる動作プリミティブを表す確率モデルの結合を行う(ステップS105)。次に、結合確率モデルΛ'の下で最尤軌道Y*の探索を行い(ステップS106)、探索された最尤軌道Y*を、制御装置400を介して、マニピュレータ側に送信する(ステップS107)。
【0071】
目標位置をを指定した命令の処理では、まず、画像認識エンジン200がカメラで撮影した画像を解析し、トラジェクタの初期位置x_0と目標位置x_nを認識する(ステップS111)。次に、初期位置x_0から目標位置x_nへとトラジェクタを移動するような動作プリミティブの動作列を複数生成し(ステップS112)、生成された動作列毎に、動作列に含まれる各動作プリミティブを表す確率モデルの結合を行う(ステップS113)。結合された確率モデルのそれぞれの下で最尤軌道の探索を行い、生成した動作列の中での最尤軌道Y*とそのときの結合動作を表す結合確率モデルΛ'を探索する(ステップS114)。
【0072】
探索された結合動作の軌道は、必ずしもユーザの意図した動作であるとは限らないので、実際にマニピュレータ側に探索された最尤軌道Y*を送信する前に、行動予定動作名をを音声でアナウンスする(ステップS115)。行動予定動作名は、結合動作に含まれる動作プリミティブの名称を実行する順に含んだ動作名である。アナウンスは、例えば、図15(d)の例では、「トラジェクタを初期位置から箱の上方まで離してから、下げます。」というようなものである。アナウンスに対して、ユーザがOKの指示を出せば(ステップS116 Y)、探索された最尤軌道Y*を、制御装置400を介して、マニピュレータ側に送信する(ステップS107)。アナウンスに対して、ユーザがOKの指示を出さなければ(ステップS116 N)、ステップS101の指示待ち状態に戻る。
【0073】
以上が、本実施形態の軌道探索装置を用いたマニピュレータ制御システムの軌道探索モードにおける動作である。
《確率モデルの結合方法》
本節では、本実施形態の軌道探索装置の軌道探索モードにおける確率モデルの結合方法を、図20のフローチャートを参照しながら説明する。
【0074】
ここでは、n個の動作プリミティブを表す確率モデルλ_j(j=1,2,...,n)からなる確率モデルの列Λ=(λ_1,λ_2,...,λ_n)を結合して結合確率モデルΛ'を作ることを考える。
まず、位置に関する平均および分散の初期値として、E_x_S_0(λ_0)=x_0、V_x_S_0(λ_0)=0とする(ステップS201)。ここで、x_0はトラジェクタの初期状態における位置である。
【0075】
各動作プリミティブを表す確率モデルを指定するためのインデックスをj=1と初期化し(ステップS202)、動作プリミティブに関するループ処理に入る。確率モデルλ_j-1で表される直前の動作プリミティブの最終状態S_j-1における位置から連続的に確率モデルを結合するために、(数3)に従ってE'_jを算出する(ステップS203)。分散の拡大量V'_jを決めるために、(数7)に従って、確率モデルλ_jで表される動作プリミティブの参照点が、静止オブジェクトの位置集合Oに属するかどうか判定する(ステップS204)。参照点が、静止オブジェクトの位置集合Oに属している場合は(ステップS204 Y)、分散を拡大しないので、V'_jを0とする(ステップS205)。参照点が、静止オブジェクトの位置集合Oに属していない場合は(ステップS204 N)、V'_jの位置に関する成分を、確率モデルλ_j-1で表される直前の動作プリミティブの最終状態S_j-1における位置の分散V_x_S_j-1にする(ステップS206)。
【0076】
次に、状態を示すインデックスをs=0と初期化し(ステップS207)、各確率モデルに関する処理内での状態に関するループ処理に入る。まず、各状態s毎に、(数2)に従って、平均の変換を行う(ステップS208)。続いて、(数6)に従って、分散の変換を行う。
状態を示すインデックスsが、処理中の確率モデルλ_jで表される動作プリミティブの最終状態を示すインデックスS_jより大きくなければ(ステップS210 N)、sをインクリメントして(ステップS211)、ステップS208に戻る。状態を示すインデックスsが、処理中の確率モデルλ_jで表される動作プリミティブの最終状態を示すインデックスS_jより大きければ(ステップS210 Y)、状態に関するループを抜け、ステップS212に進む。
【0077】
動作プリミティブを表す確率モデルを指定するためのインデックスjが、確率モデルの列Λに含まれる動作プリミティブの数nより大きくなければ(ステップS212 N)、jをインクリメントし(ステップS213)、ステップS203に戻る。動作プリミティブを表す確率モデルを指定するためのインデックスjが、確率モデルの列Λに含まれる動作プリミティブの数nより大きければ、(ステップS212 Y)、動作プリミティブに関するループを抜け、ステップS214に進む。
【0078】
最後に、軌道の終点を目標位置x_nに合わせるために、最後の動作プリミティブを表す確率モデルλ_nの最終状態S_nにおける位置に関する平均および分散をE_x_S_n(λ_n)=x_n、V_x_S_n(λ_n)=0とする(ステップS214)。
以上が、本実施形態の軌道探索装置の軌道探索モードにおける確率モデルの結合方法である。
【産業上の利用可能性】
【0079】
本発明の軌道探索装置は、産業用ロボットに組み込むことで、様々な現場の状況に柔軟に対応して作業をこなす、応用力のあるロボットを実現することができる。また、自動車に搭載することで、ユーザの要求に応えながら目的地に到達するまでの経路を探索するという用途に利用することができる。
【図面の簡単な説明】
【0080】
【図1】マニピュレータ制御システムの構成を示す図。
【図2】物を操作する動作の例を示す図。
【図3】ロボットに学習させるための入力映像の例を示す図。
【図4】動作プリミティブを表す確率モデルλ_jを模式的に示す図。
【図5】確率モデルのパラメータのデータ構造を示す図。
【図6】学習モードにおける軌道探索装置の内部構成を示す図。
【図7】動作プリミティブの学習結果の例を示す図。
【図8】軌道探索における軌道探索装置の内部構成を示す図。
【図9】動作プリミティブの結合における座標変換の例。
【図10】結合前の動作プリミティブの例を示す図。
【図11】動作プリミティブの結合における平均および分散の関係を示す図。
【図12】結合確率モデルにおけるパラメータを示す図。
【図13】結合確率モデルの下での軌道の探索を示す図。
【図14】いくつかの確率モデルの結合パターンを示す図。
【図15】いくつかの確率モデルの結合パターンの中から探索した最尤軌道を示す図。
【図16】目標位置を指定して移動指示を行った場合の最尤軌道の例を示す図。
【図17】目標位置ごとの探索された動作列を示す図。
【図18】動作列を指定して移動指示を行った場合の最尤軌道の例を示す図。
【図19】マニピュレータ制御システムの動作を示すフローチャート。
【図20】確率モデルの結合方法を示すフローチャート。
【符号の説明】
【0081】
100:音声認識エンジン
200:画像認識エンジン
300:軌道探索装置
400:制御装置
500:マニピュレータ
1:入出力インターフェース
2:データベース格納部
3:プロセッサ
4:ワークメモリ
5:プログラム格納部

【特許請求の範囲】
【請求項1】
トラジェクタを移動するための軌道の探索を行う軌道探索装置であって、
トラジェクタを移動するための駆動装置が行い得る動作プリミティブを含んだトラジェクタの移動指示をユーザから受け付ける受付手段と、
前記受付手段で受け付けたユーザからの指示に含まれる動作プリミティブからなる動作列を生成して、生成された動作列の範囲内で、最尤軌道の探索を行う探索手段とを備え、
駆動装置が行い得る各々の動作プリミティブは、確率モデルによって表され、
確率モデルは、トラジェクタの状態が時間経過と共にどのように遷移すべきかを、時点毎の確率分布と状態間の遷移確率を用いて定義したモデルであり、
前記探索手段による軌道探索は、
前記動作列について、動作プリミティブを表す確率モデルの結合を行い、結合により得られた結合確率モデルの下で、尤度が最大となる軌道を探索する
ことを特徴とする軌道探索装置。
【請求項2】
動作プリミティブを表す確率モデルの結合は、
動作列の2番目以降に実行すべき動作プリミティブの各状態におけるトラジェクタの位置、速度、加速度の平均を、その状態におけるトラジェクタの位置、速度、加速度の平均と、その動作プリミティブの初期状態におけるトラジェクタの位置の平均と、直前の動作プリミティブの最終状態における位置の平均とを用いて算出される
ことを特徴とする請求項1記載の軌道探索装置。
【請求項3】
前記軌道探索装置は、
トラジェクタの軌道をキャプチャするキャプチャ手段と、
駆動装置が動作する空間に配置されている静止オブジェクトの認識を行う認識手段とを備え、
動作プリミティブを表す確率モデルの結合は、
結合の対象となる動作プリミティブの基準となる参照点が、認識した静止オブジェクトの位置の何れかに合致するか否かの判定を行い、
動作プリミティブの基準となる参照点が、認識した静止オブジェクトの位置の何れかに合致すれば、前記結合において、動作列の2番目以降に実行すべき動作プリミティブの各状態における分散を、その動作プリミティブの各状態における分散とし、
動作プリミティブの基準となる参照点が、認識した静止オブジェクトの位置の何れにも合致しなければ、前記結合において、動作列の2番目以降に実行すべき動作プリミティブの各状態における分散を、その動作プリミティブの各状態における分散と、その直前の動作プリミティブの最終状態における分散との和とすることでなされる
ことを特徴とする請求項1記載の軌道探索装置。
【請求項4】
トラジェクタの移動指示には、トラジェクタの初期位置と目標位置とを含み、
前記探索手段は、トラジェクタの初期位置から目標位置までの経路に対応する動作プリミティブの動作列を複数生成して、それらの動作列毎に、確率モデルの結合を行う
ことを特徴とする請求項1記載の軌道探索装置。
【請求項5】
トラジェクタの移動指示は、動作プリミティブの動作名とランドマークの組みを複数含み、
前記探索手段による確率モデルの結合の対象となる動作プリミティブは、
移動指示に含まれる複数の動作名に対応した動作プリミティブである
ことを特徴とする請求項1記載の軌道探索装置。
【請求項6】
前記結合において、
結合対象となる2つの確率モデルが定義されている座標系を統一するように座標変換を行う
ことを特徴とする請求項2記載の軌道探索装置。
【請求項7】
前記座標変換は、
直前の動作プリミティブを表す確率モデルが定義されている座標系に対して、当該動作プリミティブを表す確率モデルが定義されている座標系をアフィン変換することでなされる
ことを特徴とする請求項6記載の軌道探索装置。
【請求項8】
前記動作プリミティブを表す確率モデルは、
ユーザが実演した動作に基づいて決定される
ことを特徴とする請求項1記載の軌道探索装置。
【請求項9】
前記尤度が最大となる軌道で表される動作を、前記駆動装置が行う前に、ユーザに確認を求め、
ユーザが同意しなかった場合には前記軌道を出力しない
ことを特徴とする請求項1記載の軌道探索装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate