まず、本開示が解決しようとする課題について、詳細に説明する。
ロボットシステムについてのSIにおいて、キャリブレーション(校正)は、多くの工数を要する。キャリブレーションは、複数の座標系(例えば、ロボット座標系、カメラ座標系)の間を対応付ける処理である。さらに、キャリブレーションにかかる工数は、ロボットや、ロボット周囲の環境に依存して増加することもある。該工数は、たとえば、専用の標識(マーカー)や校正治具(器具)をロボットに取り付ける場合、または、キャリブレーションに必要なデータをロボットの姿勢を変えながら取得するための動作をロボットに設定する場合に必要である。該工数は、たとえば、撮像するカメラに起因する観測誤差や遮蔽などの環境に依存した影響、機械誤差、モデル誤差に起因して、データを再測定する場合、または、測定したデータを補正する場合等にも必要である。
特許文献1に開示されたロボットシステムにおいては、たとえば、ロボットに標識(マーカー)を取り付ける作業、及び、該標識とタスクの動作とが干渉し合う場合に、ロボットに装着されている標識を外す作業が必要である。さらに、特許文献1は、ロボットの動かし方に関する指針を開示していない。ロボットの位置座標と、ロボットの姿勢パラメータとが関連付けされた参照表を作成する場合に、ロボットの動かし方は、参照表を作成する効率を決める。そのため、このロボットシステムにおいては、熟練者が、ロボットの位置や関節の角度を見ながら、その参照表を作成する。したがって、このロボットシステムでは、これらの作業の工数を削減できない。
また、特許文献2に開示された情報処理装置においては、ロボットアームの先端を固定した状態で、複数の姿勢についての角度情報を取得することが必要である。そのため、この情報処理装置の場合には、ロボットアームの先端を固定することに配慮した環境や構造が必要である。また、特許文献2は、複数の姿勢の設定方法について開示していない。このため、熟練者がロボットの姿勢を見ながら適切に参照表を作成する作業が発生する。したがって、この情報処理装置では、これらの環境構築や作業が工数を増加させてしまう。
さらに、現実のロボットシステムでは、キャリブレーションが完了した後にロボットシステムに生じる物理的な衝撃や電気的な不具合等により、複数の座標系の間の対応関係に変化が生じる場合がある。このような場合には、再キャリブレーションが必要である。再キャリブレーションには、ロボットのタスクの停止、マーカーの再取付け、および再測定等、非常に大きな工数が必要である。
発明者は、係る課題を見出すとともに、係る課題を解決する手段を導出するに至った。発明者は、標識(マーカー)や校正治具を必要とすることなく、かつ人手によるロボットの動作設定無しにキャリブレーションが可能なことを見出した。さらに、人手を介さないことで、再キャリブレーションが必要な場合であっても、自動的に実行でき、常にキャリブレーションされた状態を保つことができる。以降、このような課題を解決可能な実施形態について、図面を参照しながら詳細に説明する。
以下、本開示を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本開示を実施するために技術的に好ましい限定がされているが、開示の範囲を以下に限定するものではない。なお、以下の実施形態の説明で用いられている全ての図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成や動作に関しては、繰り返しの説明を省略する場合がある。また、図面中の矢印の向きは、一例を示すものであり、構成要素間の信号の向きなどを限定するものではない。
(第1の実施形態)
まず、本開示の第1の実施形態に係るロボットシステム10について図面を参照しながら説明する。
(システム構成)
図1を参照しながら、ロボットシステム10の構成について説明する。図1は、第1の実施形態に係るロボットシステム10の構成の概略を示す模式図である。
ロボットシステム10は、観測装置11、ロボット12、および、制御装置13を備える。
観測装置11は、ロボット12の作業空間を観測し、観測結果がカメラ座標系または画像座標系に従い表されている観測情報を出力する。なお、本実施形態では、観測装置11ごとに決まっている観測座標系のことを、説明の便宜上、カメラ座標系と呼ぶこととする。観測座標系(またはカメラ座標系)とは、観測装置11を原点とする座標系である。ただし、観測装置11は、たとえば、カメラであるが、カメラに限定されない。カメラ座標系は、観測装置11が、デプスカメラ、対象までの距離を光学測定する装置、例えばライダー(Lidar:Light Detection and Ranging)や、電波測定する装置、例えばレーダー(Radar:Radio Detection and Ranging)などの場合に用いられる。
また、画像座標系は、観測装置11が、対象を画像データとして取得するカメラ、例えば、単眼、複眼、モノクロ、RGBおよびビデオカメラなどの装置の場合に用いられる。画像座標系は、たとえば、取得した画像の上左隅を原点とする座標系である。観測装置11の具体的な構成は、本実施形態では制限されない。
観測情報は、観測装置11によって撮像された画像データ、および、観測装置11の特性に基づいて決まる距離データである。該距離データは、たとえば、観測地点から、光学測定または電波測定で得られる測定対象までの距離等である。これらのデータの種類、時間的な測定周期、および、解像度等に関しては、本実施形態では制限されない。
ロボット12は、ロボット座標系にて表されている制御計画を外部から受け取り、該制御計画に従い動作する。制御計画(制御入力ともいう)は、たとえば、アクチュエータ等の制御器が所望の状態(回転角やトルク)になるよう、制御器に入力する制御値を表す。
ロボット12は、ロボット座標系にて表されている制御情報を出力する。制御情報は、制御器から出力された情報、つまり、制御器の回転角やトルクなどをモニタした制御値である。
図2は、第1の実施形態のロボット12の構成の一例を示す模式図である。ロボット12は、図2に示すように、ロボット12を固定する台座(ベース)と、複数のリンクが接続された多関節アームと、アームの先端に接続されたロボットハンドと、駆動部(アクチュエータ)とを備える。ロボットハンドには、実行タスクに応じて、任意の機構(エンドエフェクタ)を取り付け可能である。また、ロボットの関節の数やリンクの長さ、ロボットの種類や数などの構成は、本明細書では特に制限されない。
また、本実施形態では、ロボット座標系にて制御計画および制御情報が表されているが、例えば、世界座標系など他の座標系にて表されていてもよい。
制御装置13は、カメラ座標系または画像座標系にて表される観測情報を観測装置11から受け取る。制御装置13は、ロボット座標系にて表される制御情報をロボット12から受け取る。そして、制御装置13は、カメラ座標系(または画像座標系)とロボット座標系とを対応付けるキャリブレーションを実行する。したがって、ロボット12は、キャリブレーションされた環境でタスクを実行できる。
なお、本実施の形態において、ロボット12は、ロボット12の動作を表す制御計画を、外部の制御計画装置(図示せず)から受け取ってもよい。または、ロボット12は、制御計画を生成してもよい。
(装置構成)
図3は、第1の実施形態のロボットシステム10の概要を示すブロック図である。図3に示すように、制御装置13は、制御対象であるロボット12をキャリブレーションするキャリブレーション部2と、キャリブレーションされた状態のロボットを制御する制御部3とを含む。
図4を用いて、第一の実施の形態におけるロボットシステム10の制御装置13の構成をより具体的に説明する。図4は、ロボットシステム10の制御装置13の構成の一例を示すブロック図である。
制御装置13のキャリブレーション部2は、観測情報取得部14、対象モデル蓄積部15、位置抽出部16、制御情報取得部17、位置演算部18、およびパラメータ推定部19を備える。
制御装置13は、カメラ座標系または画像座標系にて表されている画像情報と、ロボット座標系にて表されている制御情報とに基づいて、カメラ座標系または画像座標系とロボット座標系とを対応付けるキャリブレーションを実行する。以下、観測装置11が対象を画像データとして取得して観測情報として画像情報を出力する装置、すなわち観測情報が、画像座標系にて表されている画像であるとして、キャリブレーションの詳細を説明する。ただし、観測情報は、画像座標系でもカメラ座標系でもどちらでもよい。
観測情報取得部14は、観測装置11から出力された、画像座標系にて表されている観測情報を取得する。取得する観測情報は、各観測装置11の特性、例えば、内部パラメータに基づいて決まる。そのため、観測情報の詳細な仕様は、本実施形態では制限されない。観測情報取得部14は、取得した観測情報を、位置抽出部16に出力する。
対象モデル蓄積部15には、制御対象とするロボット、すなわち本実施形態におけるロボット12に関するモデルデータが蓄積される。このモデルデータは、少なくとも次に示す2種類のデータを含む。
1つ目は、対象とするロボット12の外観に関するCAD(Computer Aided Design)モデルのようなデータであり、表現モデルデータと呼ぶ。具体的には、ロボット12の形状を表すデータおよび、パターン、色、テクスチャなどの表面の特徴を表すデータ等を表す。ただし、表現モデルデータは、標識(マーカー)や校正治具を含んでいなくてもよい。このことは、ロボットに専用の標識等を付加する必要がないことを意味する。なお、ここでは例として、ロボット12の形状と表面の特徴を例示したが、この限りではない。
2つ目は、対象とするロボット12の機構を表すモデルデータ(「機構モデルデータ」と表す)である。本実施形態において、この機構モデルデータは、ロボット12の幾何学的パラメータと、順運動学(FK:Forward Kinematics)パラメータとを含む。
幾何学的パラメータは、例えば、ロボット12の各パーツの形状および大きさ等を示す。また、順運動学パラメータは、例えば、各関節の変位(回転や直動など)からロボットアームやロボットハンドの位置と姿勢とを求める処理において、第1時刻における状態と、第2時刻における状態との関係を決めるパラメータである。具体的には、関節(軸、ジョイント)の個数、リンクの長さ、リンクの並び方(シリアル/パラレル)などがあるが、これらに限らない。
なお、表現モデルデータおよび機構モデルデータともに、ロボット12の実寸(またはその拡大・縮小・回転)で表されるので、座標系には依存しない。
位置抽出部16は、観測情報取得部14によって取得された観測情報と、対象モデル蓄積部15に格納されている表現モデルデータとを入力する。該表現モデルデータは、対象であるロボット12のモデルデータを表す。位置抽出部16は、該表現データモデルに基づき、該観測情報からロボット12の位置(以降、「抽出位置」と表す)を抽出する。
ロボット12の位置の抽出は、例えば、観測情報(たとえば、画像)に含まれているロボット12と、ロボット12の表現モデルデータとをマッチングさせることにより実現できる。観測情報におけるロボット12の検出は、深層学習(ディープラーニング)、特に畳み込みニューラルネットワーク(CNN)やディープニューラルネットワーク(DNN)を使った画像を分類(セグメンテーション)する技術を適用し、ロボット12の領域(位置)を他の領域と分離することで実現できる。あるいは、ロボット12の検出は、動きを検出するモーションキャプチャや姿勢(ポーズ)を検出する技術を適用し、ロボット12の領域(位置)を検出することによっても実現できる。
観測情報が動画や時系列の3Dデータの場合、当該観測情報に加えて、さらに制御情報取得部17によって取得されたロボット12の制御情報を用いることで、制御計画におけるロボットの動きに対応する、ロボット12の位置を抽出することができる。例えば、動画や時系列データにおいて隣接しているフレーム間の動き情報(オプティカルフロー)と、ロボット12についての制御情報の類似性や相関に基づいて、位置を抽出することができる。この方法により、観測情報にロボット12以外の物が含まれていて、ロボット12と他の領域との分離が困難であったり、ロボット12が遮蔽されたりする場合であっても、ロボット12の位置を抽出することができる。なお、ロボット12の位置の抽出は、相対的な関係を使っているので、座標系が異なっていてもよい。これらの抽出方法は、画像から対象を抽出することに限らず、上述したような画像以外の観測情報から対象を抽出することに対しても適用可能である。
このように、本実施形態では、ロボット12の位置姿勢の抽出方法は制限されない。位置抽出部16は、観測情報に基づいてロボット12の位置を抽出する処理を実行する。また、ロボット12の表現モデルデータに代えて、機構モデルデータを用いて、ロボット12の位置を抽出してもよい。その理由は、機構モデルデータが、幾何学的パラメータを含んでいるため、位置抽出部16が、表現モデルデータと同様の方法で、ロボット12の位置を抽出できるからである。また、本実施形態に係る位置抽出部16によれば、モーションキャプチャなどで使われる対象とするロボット12への標識(マーカー)の貼り付けが必須ではない。
制御情報取得部17は、ロボット12の動作を制御する制御器(アクチュエータ等、ただし図示せず)から出力される制御情報を取得する。制御情報の詳細やフォーマット、取得頻度などは、特に制限されない。各多関節(多軸・多リンク)を構成する制御器の変位(回転、角度等)に類する制御情報が、逐次、得られてもよい。制御情報取得部17は、取得した制御情報を、位置演算部18に出力する。
位置演算部18は、制御情報取得部17から入力された制御情報と、対象モデル蓄積部15に格納されている機構モデルデータとに基づき、ロボット12の位置(以降、「算出位置」と表す)を算出する。ここでは、ロボット12の算出位置を計算するためには、ロボット12の位置および姿勢(動きの方向)が必要となる。これは、ロボット12の位置の算出は、順運動学が用いられているため、ロボット12の移動量とその方向に基づいて行われるためである。位置演算部18は、算出位置を、パラメータ推定部19に出力する。
具体的には、ロボット12の算出位置の演算は、ロボット12の位置を表す基準点(例えば台座(ベース))を原点とするロボット座標系にて、ロボット12の関節やリンク等の各パーツの位置姿勢を表し、該位置姿勢に対して順運動学(FK:Forward Kinematics)を適用することにより実現できる。
パラメータ推定部19には、位置抽出部16から出力されたロボット12の抽出位置と、位置演算部18から出力されたロボット12の算出位置とが入力される。抽出位置は、たとえば、画像座標系にて表されている位置である。算出位置は、機構モデルデータ等を用いてロボット座標系にて表されている位置である。
パラメータ推定部19は、入力された算出位置に、誤差やシステムノイズを表す擾乱項をそれぞれ加えることによって、位置の分布を作成することもできる。このような分布については、以降、確率分布と記載することもある。
パラメータ推定部19は、算出位置と、抽出位置に対する、パラメータの関係性を、たとえば、ニューラルネットや、SVM(Support Vector Machine:サポートベクターマシン)等の機械学習を用いて算出することもできる。パラメータ推定部19は、たとえば、算出位置と抽出位置、またはそれらの差分を説明変数とし、変換パラメータを目的変数とする訓練データを入力し、入力した訓練データを用いて、関係性を表すモデルを作成する。
当該モデルを作成する処理においては、たとえば、ある算出位置が出現する場合にある抽出位置が出現するという条件付き確率を尤度として、該尤度が大きくなる場合(または、尤度が最大の場合)のモデルにおけるパラメータ(変換パラメータの一例)を算出する。
あるいは、パラメータ推定部19は、最小二乗法に従い、抽出位置と、算出位置との差分(誤差)が小さくなる場合(または、最小である場合)の変換パラメータを算出してもよい。ここで、変換パラメータとは、抽出位置の座標系と算出位置の座標系とを関係付けるパラメータである。
パラメータ推定部19が変換パラメータを算出する処理は、上述した例に限定されない。
次に、第1の実施形態の動作について説明する。
はじめに、制御装置13における動作について説明する。図5は、第1の実施形態における、変換パラメータ推定処理を示すフローチャートである。変換パラメータ推定処理は、例えば、ロボット12のオペレータが、ロボット12を起動して、所定の動作をロボット12に指示する前に、オペレータの指示によるキャリブレーション実行時に行われる。
位置抽出部16は、観測情報取得部14が観測装置11から取得した観測情報と、対象モデル蓄積部15の表現モデルデータとを用いて、観測情報内のロボット12の位置を抽出して、抽出位置を取得する(ステップS11)。例えば、位置抽出部16は、観測情報と、表現モデルデータとをマッチングすることにより、該抽出位置を取得してもよい。抽出位置を取得する処理は、上述した例に限定しない。
なお、位置抽出部16から出力された抽出位置は、観測装置11から出力された観測情報に含まれる、例えば、画像情報に基づくロボット12の各パーツの位置を表す位置情報、ロボット上の特徴的な箇所を表す特徴点(characteristic point)またはロボットと背景の境界(エッジ)や模様、テクスチャなど画像上の特徴を表す特徴量(feature value)の位置情報の集合を用いて表すことができる、あるいは3次元データの場合は点群(Point Cloud)データ、3次元格子(グリッド)の占有率情報などで表現された位置情報を用いて表すことができる。この抽出位置(たとえば、位置情報または位置情報の集合)は、例えば、観測装置11における画像座標系にて表される情報である。
位置演算部18は、制御情報取得部17がロボット12から取得した制御情報と、対象モデル蓄積部15の機構モデルデータとに基づいて、順運動学を用いて、実際のロボット12の位置を算出して、算出位置を取得する(ステップS12)。
なお、位置演算部18から出力された算出位置は、ロボット12の制御器の制御情報に基づいて、ロボット12の各パーツの位置を表す位置情報、ロボット上の特徴的な箇所を表す特徴点またはロボットと背景の境界(エッジ)や模様、テクスチャなど画像上の特徴を表す特徴量の位置情報を用いて表すことができる。この算出位置(たとえば、位置情報)は、ロボット座標系にて表される情報である。
ここで、これら2種類の位置情報は、異なる情報源(ソース)から得られる情報である。言い換えると、これら2種類の位置情報は、ロボット12の位置を画像座標系にて表す情報であるのか、または、ロボット12の位置をロボット座標系にて表す情報であるのかという点について異なる。すなわち、パラメータ推定部19に入力される抽出位置および算出位置は、座標系の違いを除いて、一つの事象、または、一つの位置を表す情報である。
パラメータ推定部19は、算出位置と抽出位置とを用いて、それらの位置に関する座標系の対応関係を表す行列hのパラメータθを推定する(ステップS13)。ステップS13については、図5を参照しながら詳細に後述する。
ステップS12とステップS13との間で、分布を算出する処理を実行してもよい。その処理について、図6および図7を参照しながら説明する。図6は、算出位置の分布を算出する処理の詳細を示すフローチャートである。また、図7は、抽出位置の分布を算出する処理の詳細を示すフローチャートである。
パラメータ推定部19は、後述する式1に基づいて、位置演算部18が算出した算出位置にノイズを表す値を加える。ノイズは、たとえば、平均を0とし、分散をμ(μ>0)とする正規分布からランダムに抽出される1つの値である。パラメータ推定部19は、このようなノイズを算出位置に加える処理を複数回実施する。言い換えると、パラメータ推定部19は、算出位置から、例えば正規分布に従う分布を作成する処理を実行するということもできる。パラメータ推定部19は、算出位置を後述する式2に例示する処理によって変換する。具体的には、パラメータ推定部19は、算出位置を、パラメータに依存する抽出位置に相当する値に変換する。
以下の説明では、説明の便宜上、t(t≧0)は、時刻を表すとする。i(iは、正の整数)は、ロボットの各パーツの位置を表す位置情報、ロボット上の特徴的な箇所を表す特徴点またはロボットと背景の境界(エッジ)や模様、テクスチャなど画像上の特徴を表す特徴量を表すとする。ある時刻t、または、ある時系列観測データのフレームtにて、位置抽出部16から出力された抽出位置(位置情報)をytとする。たとえば、「時刻t=0」は、ロボットの動作を開始する時刻を表すとする。この場合に、時刻tは、動作の開始からの経過時間を表しているということもできる。また、同様に、ある時刻tにて、位置演算部18から出力された算出位置(位置情報)をxtとする。この場合に、算出位置xtは、ロボット座標系にて表される情報である。抽出位置ytは、画像座標系にて表される情報である。
また、算出位置xtおよび抽出位置ytは、複数の要素を有するベクトルであってもよい。算出位置xtは、ロボット12の各パーツ、上述した特徴点または特徴量を識別する添え字をi(iは1以上n以下の整数、ただしnはパーツまたは特徴点の個数)とすると、xi,tと表すこともできる。同様に、時刻tにて撮像された画像から抽出される領域(各パーツ)は、yi,tと表すことができる。yi,tは、複数の要素を有するベクトルであってもよい。
図6を参照すると、パラメータ推定部19は、位置演算部18から、ロボット座標系で表された算出位置xi,tを取得する(ステップS131)。パラメータ推定部19は、正規乱数からランダムに擾乱項の値を複数取得する(ステップS132)。
ロボット12についての機構モデルデータは、関数fと表すとする。制御情報取得部17で取得された制御情報に含まれる制御値の実績をutと表すとする。この場合に、ある時刻「t-1」における算出位置が位置xi,t-1である場合に、時刻tにおける位置xi,tを、f(xi,t-1,ut)に示す処理に従い算出する。この算出位置xi,tに、時刻tにおける当該算出位置xi,tの不確実性(誤差)を考慮すると、例えば、以下に示す式1のように表すことができる。
なお、式1は、いわゆる、時間発展問題、つまり位置x’
i,tという時刻tの値を、算出位置xi,t-1という時刻tよりも前の値をもとに算出する。関数fは、線型でも非線形でもよい。また、制御値の実績utは関数fの変数となっているが、これらの表記は例である。また、βは、算出位置xi,tの不確実性を表す擾乱項(システムノイズ)である。
位置x’
i,tは、算出位置xi,t-1を用いて表されているが、時刻(t-1)以前の複数時刻における算出位置を用いて表されていてもよい。すなわち、位置x’
i,tは、時刻tよりもk(ただし、k≧2)時刻前における算出位置を用いて表されていてもよい。位置x’
i,tは、時刻tよりも前における、少なくとも1つの時刻における算出位置を用いて算出されればよい。
算出位置xi,tは、ロボットが動作を複数回繰り返すことによって得られる値を用いてもよい。式1で表されるように誤差を考慮すると、ランダムにサンプリングされた擾乱項βにより、算出位置が1つの値にはならず、この場合には、算出位置xi,tを分布として扱うことができる。
この擾乱項βは、確定的な変数に不確実性を考慮させる、つまり確率として扱うために付与する擾乱(許容させるノイズの値)を表す。この不確実性は、ロボット12についての機構モデルデータの関数f(すなわち、ロボット12の幾何学的パラメータおよび順運動学パラメータ)の誤差など、ロボット12の機構を表す機構モデルデータと制御値の実績値とに含まれる誤差を表す。
擾乱項βは、例えば、乱数であってもよい。擾乱項βには、乱数として、例えば正規乱数を用いることができる。つまり、パラメータ推定部19は、正規乱数(正規分布に従う乱数)を擾乱項βの値として、m(ただし、mは自然数)個取得する。
パラメータ推定部19は、算出位置xi,tの各々(x1,t,x2,t,・・xn,t)に、m個の擾乱項βの値それぞれを加算する(ステップS133)。そして、パラメータ推定部19は、パーツごとにm個の位置x’
i,tを取得する(ステップS134)。また、パラメータ推定部19は、パーツごとにm個の擾乱項βの値を取得して、パーツごとにm個の位置x’
i,tを取得してもよい。取得した正規分布に従うm個の位置x’
i,tは、確率分布p(x’
i,t)とみなすことができる。
ここで、正規分布を使用する場合には、当該正規分布を適宜決定してもよい。例えば、正規分布は、最初に、標準偏差(または分散)を大きくし、データが蓄積されるに連れて徐々に標準偏差(または分散)を小さくしていくようにしてもよい。あるいは、正規分布は、過去のデータに基づいて、所定の標準偏差(または分散)にしてもよい。
図7を参照すると、パラメータ推定部19は、位置抽出部16から、画像座標系で表された抽出位置yi,tを取得する(ステップS141)。パラメータ推定部19は、正規乱数からランダムに擾乱項の値を複数取得する(ステップS142)。
ここで、算出位置を表すxi,tと、抽出位置を表すyi,tとは、時刻tにおけるロボット位置を表す位置である。算出位置を表すxi,tと、抽出位置を表すyi,tとは、解像度(データ数)などのデータの性質の違いと、座標系の違いとを除いて1つの情報を表している。
そこで、算出位置xi,tと抽出位置yi,tとの間の関係を表す関数または行列をhとする(行列hとする)と、この関数または行列hは、各座標系におけるデータの対応関係を表す情報であるということもできる。行列hにおいて、座標系の対応関係を表すパラメータをθとする。そうすると、抽出位置yi,tはh(xi,t,θ)と表せる。この抽出位置yi,tに、時刻tにおける当該抽出位置yi,tの不確実性を考慮すると、例えば、以下に示す式2のように表すことができる。
ここで、wは、領域(各パーツの位置、ロボット上の特徴的な箇所を表す特徴点またはロボットと背景の境界(エッジ)や模様、テクスチャなど画像上の特徴を表す特徴量)i、時刻tで抽出された領域の位置y’
i,tの不確実性を表す擾乱項(観測ノイズ)である。この擾乱項wは、確定的な変数についての不確実性を表す。擾乱項wは、擾乱項βと同様に、確定的な変数に付与されることで、当該確定的な変数を確率として扱うための擾乱(許容させるノイズ、分布の幅)を表す。この不確実性は、観測装置11における物理的及び電気的な誤差やノイズ、位置抽出部16でロボット12の各パーツの位置が抽出される際の誤差、そして解像度(データ数)の性質の違いを関連付ける関数(行列)hの表現誤差等の少なくともいずれかを含む。
擾乱項wは、正規乱数からサンプリングされた値であってもよい。パラメータ推定部19は、たとえば、正規乱数(正規分布に従う乱数)からサンプリングされた擾乱項wの値をm(ただし、mは自然数)個取得する。
パラメータ推定部19は、算出位置xi,tの各々(x1,t,x2,t,・・xn,t)を変換処理hに従い変換した位置を求める。パラメータ推定部19は、算出位置xi,tのパーツごとに変換処理hを適用した位置に対して、それぞれm個の擾乱項wの値を加える(ステップS143)。これの処理によって、パラメータ推定部19は、画像座標系にて表されるパーツごとにm個のy’
i,tを取得する(ステップS144)。取得した正規分布に従うm個の位置y’
i,tは、確率分布p(y’
i,t)とみなすことができる。
次に、ステップS13のパラメータθの推定処理について、図5を参照して詳細に説明する。図5は、第1の実施形態における、変換パラメータ推定処理を示すフローチャートである。座標系の対応関係を表すパラメータθは、例えば、回転を表す回転行列の要素、平行移動を表す並進行列の要素、または、それらの組み合わせ等を表す。また、本実施形態では、このθの値が被推定値である。すなわち、θの値を求めることによって、たとえば、ロボット座標系と、画像座標系との間の対応関係を求めることができる。
モデルにおけるパラメータθを推定する処理(ステップS13)は、たとえば、ロボット座標系にて表される位置x’
i,tについての確率分布p(x’
i,t)と、画像座標系にて表される位置y’
i,tとに関する条件付き確率(すなわち、尤度)p(y’
i,t|x’
i,t)が大きくなる場合の値を求める処理である。
p(x’
i,t)を変換することによって得られる分布と、p(y’
i,t)の分布とが類似しているほど、尤度は高い。p(x’
i,t)を変換することによって得られる分布と、p(yi,t)の分布とが類似していないほど、尤度が低い。よって、したがって、尤度が高いほど対応関係(関数、行列等によって表される)hの質が高い。尤度が低いほど、対応関係(関数、行列等によって表される)hの質が低い。
言い換えると、本実施形態では、上述したように定義される尤度は、対応関係を表すパラメータθに依存する。すなわち、尤度は、θの関数(以降、「関数L(θ)」と表す)である。この場合に、最適な関数(行列)hは、式3に例示するように、尤度が最大である場合におけるθ*を求める処理によって決定される。
言い換えると、最適なパラメータθ*は、確率分布p(x’
i,t)が最も確からしい場合におけるθを求める処理によって決定される。式3に示す処理は、たとえば、より尤度が高くなるようにθを更新する処理によって実現することができる。言い換えると、式3に示す処理は、たとえば、より尤度が高い場合におけるθを求める処理であるということもできる。
式3に従う処理を実行することによって求められるパラメータθ*を、行列hに用いることで、ロボット座標系の位置と画像座標系の位置とは、互いが有する誤差も含めて、最適に対応付けすることができる。すなわち、式3に従う処理を実行することによって、ロボットシステムにおいて、キャリブレーション(校正)を実現することができる。
なお、上記のような擾乱項(システム及び観測ノイズ)を加えた確率分布に対する尤度の計算には、分布の正規性や関数f及び関数(行列)hの線形性を仮定した場合に、カルマンフィルタを使ってもよい。また、上述した線形性を仮定しない場合に、その計算には、粒子フィルタなどを使ってもよい。また、上述した尤度による計算方法はあくまでも例示であって、例えば、尤度として、確率分布間の距離を評価するカルバック・ライブラー情報量(KLダイバージェンス)などを用いることもできる。ただし、上記の計算方法は、例示であって、本実施形態では制限されない。
パラメータθ*の算出方法としては、例えば探索的な方法、つまり尤度(条件付き確率)を最大にする方法も適用できる。パラメータθ*は、パラメータを未知数として、変換の結果として得られる差分が最小になる値を探索することで求めることができる。この算出方法では、例えば、パラメータに対する尤度または差分の勾配を使った最急降下法などの勾配法や、粒子フィルタ(モンテカルロフィルタ)、MCMC(Markov chain Monte Carlo methods:マルコフ連鎖モンテカルロ法)などのモンテカルロ法ベースの方法、またガウス過程回帰などを使ったベイズ最適化が考えられる。また、他の算出方法では、距離の値を使って、ABC(Approximate Bayesian Computation)の枠組みで距離が小さくなるように推定することもできる。
なお、パラメータθ*の算出にあたって、それぞれの座標系における位置情報の解像度や探索範囲、探索ステップ幅などは、段階的に変化させることもできる。例えば、最初は低い解像度で広い探索範囲から粗に推定し、その後、高い解像度で狭い探索範囲から密に推定することで、初期の座標間のズレが大きい場合であっても、短時間で精度の高い推定が可能となる。特に、前述したABCの手法では、距離のしきい値を段階的に変えながら推定することで、実現できる。
最後に、図5を参照して、制御部3は、推定したパラメータθを用いて、座標系の異なる、画像情報におけるロボット12の位置と、制御情報におけるロボット12の位置とを一致させることにより、画像情報内の空間において精密にロボット12を制御する(ステップS14)。
本実施形態に係る処理によれば、画像座標系にて計測される抽出位置と、ロボット座標系にて計測される算出位置とを用いることで、ロボットの一部を標識(マーカー)とすることができるという効果も奏する。画像座標系にて計測される抽出位置は、例えば、観測情報取得部14によって取得される観測情報と、対象モデル蓄積部15に格納されている表現モデルデータとに、位置抽出部16のマッチング処理を施すことによって算出される。ロボット座標系にて計測される算出位置は、制御情報取得部17によって取得される制御情報と、対象モデル蓄積部15に格納される機構モデルデータとに基づいて、位置演算部18により算出される。
言い換えると、本実施形態に係る処理は、ロボットの外部からのセンシングや画像認識の情報に基づき抽出される位置(抽出位置)と、該ロボットの内部における情報に基づき算出される位置(算出位置)と、の類似性を照合する処理である。よって、当該処理によれば、必ずしも標識(マーカー)を使用せずに、ロボットシステムのキャリブレーションを容易に行うことができるという効果を奏する。そのため、本実施形態に係る処理によれば、標識の取り付けに関わる工数が無くなり、標識の取り付けのためにタスクを中断することを避けることができる。
さらに、本実施形態に係る処理は、位置を分布で表すことで、大別して次のような2種類の不確実性がある環境下でも実施可能である。
1つ目は、ロボットの幾何学的パラメータや機構モデルデータに起因した誤差、時間発展を表す関数の誤差、および各関節の変位(回転や直動など)など制御値の実績値に含まれる誤差などである。
2つ目は、観測装置における物理的及び電気的な誤差やノイズ、ロボットの位置姿勢が抽出される際の誤差、およびデータの性質の違いを関連付ける関数(行列)の表現誤差などである。これらの誤差には、先行技術で挙げたロボットの機構モデルデータと実機との間の機械誤差も含まれる。
上記の2種類の不確実性は、現実のシステムでは無視することができない。
本実施形態に係る処理は、これらの2種類の誤差をそれぞれ考慮して、上述したような確率統計の手法を用いて、複数の座標系にて表された位置を確率的に表すことによって、変換パラメータを確率的に推定する処理である。係る処理によれば、治具等の特殊な計測手段の使用、現場の環境に依存した困難性、および、人手によるロボット動作の適切な設定などの追加のSI工数を低減する。本実施形態に係る処理によれば、少ないデータ、すなわち、少なくとも1組の算出位置および抽出位置から、それぞれの位置に基づく分布を算出することにより、ロボット座標系と画像座標系との間の関係性を決めるパラメータを正確に推定することができる。
なお、本実施形態では、画像座標系にて計測される位置と、ロボット座標系にて計測される位置との間の変換を用いたが、それに限らない。例えば、世界座標系にて計測される位置と、ロボット座標系にて計測される位置との変換を用いるような構成にしてもよい。また、画像座標系にて計測される位置と、ロボット座標系にて計測される位置との変換に、世界座標系にて計測される位置を介するような構成にしてもよい。また、カメラ座標系にて計測される位置と、ロボット座標系にて計測される位置とを変換するような構成にしてもよい。
以上のように、本実施形態のロボットシステムは、ロボット自身を標識として、観測と制御という異なる手段で算出されたロボットの位置を一致させる変換パラメータを推定することで、異なる座標系間のキャリブレーション(校正)を容易に実現することができる。さらに、本実施形態のロボットシステムは、それぞれの位置を、現実システムにおける誤差を考慮して確率的に表すことで、変換パラメータを確率的に推定することができる。
(第2の実施形態)
次に、本開示の第2の実施形態に係るロボットシステム20について図面を参照しながら説明する。図8は、第2の実施形態に係る制御装置13の構成の概略を示す模式図である。本開示の第2の実施形態に係るロボットシステム20は、制御装置13のキャリブレーション部2に座標変換部101を備える点で、第1の実施形態に係るロボットシステム10と異なる。また、第2の実施形態に係るロボットシステム20は、第1の実施形態における観測装置11に相当する撮像装置21と、第1の実施形態における観測情報取得部14に相当する画像情報取得部100と、第1の実施形態におけるパラメータ推定部19の機能に相当する、比較部102および修正部103と、を備える。
なお、第2の実施形態は、第1の実施形態と同様の部分については、同じ符号を付して、説明を省略し、異なる部分についてのみ説明する。本実施形態のロボットシステムの適用対象は、この例に限定されない。例えば、キャリブレーションが必要なカメラやセンサなどの観測装置と、制御情報に基づいて動作する機構が含まれているシステムであれば、任意のシステムに適用することができる。
本実施形態では、カメラ座標系と世界座標系との間で変換することとして、ロボットシステム20を説明する。また、本実施形態の世界座標系は、原点が、ロボット座標系の原点である台座と一致するとする。
撮像装置21は、ロボット12の作業空間を撮像し、カメラ座標系にて表された画像情報を出力する。撮像装置21は、たとえば、カメラ(単眼、複眼、モノクロ、RGB、デプスカメラなどを含む)やビデオカメラ等である。撮像装置21は、第1の実施形態における画像情報を取得する観測装置11に相当し、画像が取得できるデバイスであれば特に制限されない。また、画像情報は、静止画であっても、動画であってもよい。
キャリブレーション部2の画像情報取得部100は、撮像装置21から出力された画像情報を取得する。上述したように、画像情報について、情報の種類や頻度などは特に制限されない。画像情報取得部100は、取得した画像情報を、座標変換部101に出力する。
キャリブレーション部2の座標変換部101は、画像情報取得部100から出力された画像情報を取得する。座標変換部101は、当該画像情報の座標を、所定の変換行列を用いて変換する。座標変換部101は、座標変換した画像情報を、位置抽出部16に出力する。
座標系の変換について、具体的に説明する。まず、画像座標系とカメラ座標系との間の変換処理について説明する。これらの座標系間の変換処理においては、大別して、内部パラメータと、外部パラメータとを用いる。内部パラメータは、カメラの焦点距離、当該カメラが撮像した画像の中心、画像のサイズ、及び、歪曲収差係数等である。外部パラメータは、カメラの位置姿勢等である。
内部パラメータは、画像上の点と、カメラを中心としたカメラ座標の関係を表す。内部パラメータは、例えば、焦点距離を(fx、fy)、光学的中心(主点)を(cx、cy)、せん断係数をsとすると、式4に例示するように、行列(Kと記載)形式にて表すことができる。
なお、この行列Kの表記は、例示であって、この例に限定されない。式4に例示されるK行列を使って、画像上の点、すなわち画像座標系にて計測される点(ximage、yimage)と、カメラ座標系にて計測される点(xcamera、ycamera、zcamera)との間の関係性は、式5のように表すことができる。
wは、スケールファクタで、zcameraを表す。ここでは、同次座標系を用いて表しているが、この限りではない。
次いで、世界座標系とカメラ座標系との間の変換処理について説明する。世界座標系にて計測される点(xworld、yworld、zworld)と、カメラ座標系にて計測される点(xcamera、ycamera、zcamera)との間の関係性は、式6のように表すことができる。
カメラ座標系にて計測される点(xcamera、ycamera、zcamera)は、たとえば、世界座標系にて計測される点(xworld、yworld、zworld)と、回転行列Rと、並進行列twとを用いて算出できる。式6において、rij(i、jは、1から3までの整数)は回転行列Rの各成分を表し、tk(k=x、y、z)は並進行列の各成分を表す。また、式6では、回転行列Rおよび並進行列tk、すなわち外部パラメータを行列Cと定義する。
式5と式6とを用いて、画像座標系にて計測される点(ximage、yimage)と、世界座標系にて計測される点(xworld、yworld、zworld)との間の関係性は、式7のように表すことができる。
式7では、スケールファクタwの逆数と、内部パラメータである行列Kと、外部パラメータである行列Cとの積を表す行列をPと定義する。
上述した説明では、画像情報取得部100で取得した画像情報が、画像座標系で表されていても、カメラ座標系で表されていても、世界座標系に変換できることを示した。ただし、画像座標系からカメラ座標系への変換、すなわち行列Kは、装置の出荷時パラメータとして設定済であることも多い。特に3D(デプス・深度)カメラのような複合的なカメラでは設定済みであることが多いので、以降、本開示では、カメラ行列Kは所与として、カメラ座標系から世界座標系への変換、すなわち式6で表される行列に着目する。
つまり、本実施形態では、座標変換部101は、式6で表されるカメラ座標系から世界座標系への変換の関係を示す行列Cに基づいて、画像情報取得部100から取得する画像情報の座標系を変換する。第1の実施形態では、起点となる台座と世界座標との関係性は既知であるとしたが、その限りではない。なぜなら、例えば、この関係性に誤差があるとした場合、その誤差をカメラ座標系の座標変換、すなわち変換行列Cに含めることができるからである。
比較部102は、算出位置と、抽出位置とを比較し、その結果である比較情報が出力される。ここで、比較情報とは、いずれも、ロボット12の1つの状態から生成された情報である。すなわち、算出位置と抽出位置とは、同じ種類の情報であって、同じ次元の情報に揃えて表すことができる。この場合に、これらの情報にてそれぞれ表されているデータの差異を算出することができる。たとえば、それぞれ情報が2次元データで表されている場合に、データの差異は、そのピクセル間の距離として算出することができる。それぞれの情報が3次元点群(Point Cloud)データで表されている場合に、データの差異は、点群間の距離として算出することができる。比較部102は、このような処理によって、算出した差異を算出する。なお、上記の比較方法、及び比較情報である差分は、あくまでも一例であって、この限りではない。
仮に、算出位置と抽出位置とに、誤差がなければ一致し、差分は0である。差分としては、撮像されたロボット12の各部分(パーツ)の差分の合計値であってもよい。しかし、算出位置および抽出位置は、実際には、誤差やノイズ等を含む。そのため、算出位置および抽出位置の差分は0とならない。
ここで、差分について、図9を用いて説明する。図9は、第2の実施形態における差分について説明する概略図である。本実施形態では、前述したように、ロボット座標系の原点と世界座標系の原点とが一致していることが前提である。つまり、本実施形態では、カメラ座標系の位置を世界座標系に変換することで、ロボット座標系の位置に変換されることになる。
図9(a)では、ロボット12は、制御値と機構モデルデータに基づく各関節とリンクの位置を黒丸と実線で表し、撮像された画像情報、すなわちロボット12の画像を点線で囲うように区別して描いている。
図9(a)では、これらの装置の構成と、それぞれの装置の座標を規定する変換行列が示されている。まず、撮像装置21で撮像される画像情報は、世界座標の原点に対して、式7で表された変換行列Pで関係付けられている。次に、この画像情報が撮像されたカメラ座標系と、画像情報内のロボット12とが変換行列Aで関係付けられている。この関係は、位置抽出部16で推定される。なお、本来は撮像された画像の領域、または点ごとに異なる行列が対応するが、図9では簡略化のために代表して行列Aとして表している。
また、ロボット12の基準となる台座(ベース)は、世界座標系の原点に一致している。最後に、この台座に対してロボット12の各関節やリンクの位置は、変換行列Tで関係付けられている。なお、本来は関節ごとに変換行列Tが対応するが、図9では簡略化のために代表して行列Tとして表している。
次に、図9(b)について説明する。図9(b)は、撮像装置21で撮像された画像情報の例を模式的に表した図である。図9(b)には、位置抽出部16から出力される値、すなわちロボット12の画像と、位置演算部18から出力される値、すなわち制御値に基づくロボット12の位置に差分がある状態を表している。図9(b)からも明らかなように、黒丸と実線とで表された制御値に基づくロボット12と、点線で囲われた撮像されたロボット12の位置がズレていることがわかる。このような状態においては、前述した変換行列の関係は、図示したように、T≠APとなる。すなわち、左辺のロボット12の制御値と機構モデルデータとに基づく関係と、右辺の画像情報に基づく関係が一致しない。したがって、図示したように、両者の位置関係が一致しないので、ズレとして画像情報上に現れることとなる。なお、撮像されたロボット12において、本来あるべき関節の位置を模式的に点線の丸で表し、制御値に基づく位置を示す黒丸との差を矢印で記載した。この矢印が差分の一例であって、関節ごとに全て足し合わせることで、ロボット12全体の差分を定量的に得ることができる。なお、この図9の画像情報の例では、2次元画像を想定して模式的に描いたが、この限りではなく、前述したように3次元の点群データなどであっても同様に差分を算出することが可能である。また、差分の算出方法についても、関節間の差のみならず、リンク間の差なども含めることができるため、具体的な差分の算出方法については本実施形態で限定されない。
さらに、差分の他の表現例として、制御値に基づく関節やリンクの位置と、対象モデル蓄積部15に蓄積されたロボットの構造を表すパラメータ、例えばパーツの外径など、から算出されるロボットが占めている空間(体積)内に含まれる、撮像されたロボットの3次元点群データの割合で表すこともできる。ロボットが占める空間内に含まれる撮像されたロボットの3次元点群データが多いほど差分は小さく、含まれる点群データが少ないほど差分が大きくなる。これは、図9(b)に示した、制御値に基づくロボットと撮像されたロボットの重なり度合を表すこととなる。このような指標を利用することで、直接距離を算出せずに、点群データをカウントすることで差分を算出することもできる。
次に、図9(c)について説明する。この図9(c)は、撮像装置21で撮像された画像情報の例を模式的に表した図である。図9(b)とは対照的に、差分が無い状態を現している。図からも明らかなように、黒丸と実線で表された制御値に基づくロボット12と、点線で囲われた撮像されたロボット12の位置が一致していることがわかる。このような状態においては、前述した変換行列の関係は、図示したように、T=APとなる。すなわち、左辺の制御値と機構モデルに基づく関係と、右辺の画像情報に基づく関係が一致する。一般に、この様な差分の無い状態が、ロボットシステムとして理想的にキャリブレーションされた状態と言える。
修正部103(図8に記載)は、比較部102によって出力された比較情報(すなわち、差異)を入力し、各変換行列の値を調整することによって、比較情報が小さくなるときの変換行列の値を修正値として出力する。この調整方法、つまり修正値の求め方は後述する。
修正部103による変換行列の修正と、その変換行列を採用して比較部102による差分の算出を、例えば、差分があるしきい値より小さくなるまで繰り返すことで、差分が小さくなる変換行列を求めることができる。すなわち、図9(b)に示す差分の有る状態から、図9(c)に示す差分の無い状態へ近づけることができる。なお、しきい値は、繰り返し差分の値を計算して設定、及び修正しても良いし、または過去の実績値などを基に定めても良く、特に制限されない。
なお、式4に記載した内部パラメータである行列Kは、上述したように、撮像装置21の個体ごとに決まるため、予め適切な値を求めておくことができる。したがって、この修正値については、式6で表される撮像装置21の世界座標に対する回転行列Rおよび並進行列tkを用いて、前述した差分が0に近づくように定めれば良い。ここで、式6では、一般的な回転行列の形で表したが、回転は最小で軸ごとの回転、すなわち3つの自由度(ロール、ピッチ、ヨー)で表すことができる。ただし、この表し方では回転の順序に依存するので、式6に示したような9要素の回転行列か、四元数(クォータニオン)という4要素で表すのが望ましい。一方、並進の自由度は、各軸方向の移動であるので、3次元である。したがって、最小で、回転の自由度3と並進の自由度3の計6変数を定めれば良い。または回転順序も考慮すれば、7または12変数を求めることとなる。以下、この求め方の例について説明する。ただし、この方法はあくまでも例示であって、この限りではない。
この変数を求める処理は、例えば、カメラ座標系から世界座標系に変換した位置と、ロボット座標系の位置との差異が少なくなるように求める方法が適用できる。一般に、入力と出力を関係付ける変換行列のN個の変数(自由度)を決める問題は、PnP(Perspective-n-Point Problem)問題と呼ばれ、N個の既知の入出力ペアに対して方程式を立てて解くことで、解析的に求めることができる。なお、方程式の数が足りなくても、不定性は残るが原理的には解くことができる。このN個の既知の入出力ペアを、例えば、図2に示した関節ごとの関係に基づいて作ることができる。すなわち、画像上の関節を表す座標と制御値に基づく関節の座標が一致するとして、方程式を立てる。ただし、この時点では座標が一致していないので、例えば、画像上の座標に擾乱を与えて変換行列を求め、その変換の結果として得られる差分(すなわち、実際の値と算出値との差である誤差)が最小になるまで、擾乱を変えながら変換行列を繰り返す、いわゆる反復法(イタレーション)により求めてもよい。
または、第1の実施形態で例示した方法と同様に、差分が最小になる値を探索的に求めることができる。例えば、粒子フィルタ(モンテカルロフィルタ)、MCMC(Markov chain Monte Carlo methods:マルコフ連鎖モンテカルロ法)などのモンテカルロ法ベースの方法などが適用できる。
以上が、本実施形態のロボットシステム20の構成についての説明である。続いて、本実施形態のロボットシステム20の動作について図面を参照しながら説明する。
(動作)
図10は、本実施形態のロボットシステム20における動作を示すフローチャートである。なお、図10のフローチャートに沿った説明においては、ロボットシステム20を動作の主体として説明する。
まず、ロボットシステム20は、対象となるロボット12の少なくとも一部が撮像装置21の視野に入るように画像情報を取得し、既定の変換行列で座標を変換する(ステップS101)。ここでは、式7で表される行列Pを用いて、画像情報を画像座標系から世界座標系(ロボット座標系)に変換する。なお行列Pのうち、外部パラメータ(行列C)は被推定値であるので、初回の変換(ステップS101)においては、規定の値(任意の初期値)を用いる。なお、撮像方法は、少なくともロボット12を構成する部分についての画像情報が取得できれば良く、その他は制限されない。
次に、ロボットシステム20は、座標変換された画像情報とロボット12についての表現モデルデータを位置抽出部16に入力し、ロボット12の抽出位置を取得する(ステップ102)。
次に、ロボットシステム20は、ロボット12から制御情報を取得する(ステップS103)。制御情報の取得は、少なくともロボット12についての画像情報が取得された部分が含まれていればよく、その他は制限されない。
次に、ロボットシステム20は、制御情報とロボット12についての機構モデルデータを位置演算部18に入力し、ロボット12の算出位置を取得する(ステップS104)。
次に、ロボットシステム20は、ロボット12についての算出位置と抽出位置とを、比較部102に入力し、算出位置と抽出位置とを比較部102に比較させる。ロボットシステム20は、比較結果として、定量化された差分を比較部102に出力させる(ステップS105)。差分については、例えば、ロボット12を構成する特定の部分についての、それぞれの位置情報の差、具体的には、2次元画像上のピクセル間や3次元点群間の距離などを用いることができるが、これに限定されない。
最後に、ロボットシステム20は、比較部102から出力された差分が、しきい値未満であるか否かを判定する(ステップS106)。ロボットシステム20は、差分がしきい値未満であれば(ステップS106/YES)、処理を終了する。すなわち、この時に実行された座標変換(ステップS101)が正しかったと判定され、その変換行列が変換座標部101においてそのまま使われる。一方、ロボットシステム20は、差分がしきい値以上の場合(ステップS106/NO)、修正部103に比較部102の出力を入力する。修正部103において、修正値である新たなパラメータθが算出され、当該修正値が座標変換部101の変換行列に適用される(ステップS107)。なお、変換行列の修正値は、差分が小さくなるように算出される。そして、ロボットシステム20は、ステップS106を繰り返す。
以上においては、本実施形態では、第1の実施形態のような不確実性(誤差)を考慮せずに、本実施形態における被推定値である外部パラメータ(行列C)を求める例を記載した。次に、パラメータを確率的に求める場合の例を記載する。1つは、上述した探索的に推定する方法で、粒子フィルタ(モンテカルロフィルタ)、MCMC(マルコフ連鎖モンテカルロ法)などのモンテカルロ法ベースの方法を使う場合である。これらは、式6、及び式7で表される外部パラメータ(行列C)による変換に、式2と同様に不確実性を表す擾乱項が入ったとみなし、差分を尤度で表すことで、算出位置や抽出位置の不確実性(誤差)をパラメータの分布として含めた推定ができる。例えば、擾乱項が分散σ2の正規分布からサンプリングされたと仮定し、画像座標系で得られた抽出位置を表すベクトルXimageと、世界座標系(ロボット座標系)で得られた算出位置を表すベクトルXworldの差分(距離)を出す非負の関数をdとし、また推定する外部パラメータ(行列C)に含まれる被推定値(前述のとおり少なくとも6変数)をθとして
と表すと、尤度は、
のように表すことができる。なお上付きの(i)は、(i)番目のパーツ(iは整数)を表す。第1の実施形態の式3と同様に、この尤度が最大となるようにパラメータθを探索的に求めることで、不確実性を考慮した確率的な推定ができる。行列C(θ)は、式6の外部パラメータを表し、世界座標系(ロボット座標系)で得られた算出位置を表すベクトルXworldに作用させて画像座標へ変換している。なお、ここでは画像座標系にそろえて差分を算出したが、行列Cの逆行列C-1を用いて世界座標系(ロボット座標系)で差分を算出しても良い。
また他の方法としては、式9のように誤差が正規分布で表されると仮定して尤度を求めることができない場合に、式8の差分(距離)の値だけを使って、ABC(Approximate Bayesian Computation:近似ベイズ計算)の枠組みで推定することもできる。ABCでは、前述した方法と同様に、粒子フィルタ(モンテカルロフィルタ)、MCMC(マルコフ連鎖モンテカルロ法)などを用いて被推定値であるパラメータの候補をサンプリングし、式8で求められる距離(差分)がしきい値ε未満となるときのパラメータの値、
を求めることができる。p(θ)は、距離(差分)dがしきい値ε未満という条件を満たす事後確率(事後分布)を表す。なおこれらの方法は例示であって、この限りではない。
以上が、図10のフローチャートに沿ったロボットシステム20の動作に関する説明である。なお、この動作は、ロボットシステム20が与えられた本来のタスクと並行して実行することができる。なぜなら、ロボット12への標識(マーカー)の設置や、人手による位置姿勢の設定などが不要であるので、タスクを中断する必要がない。すなわち、この動作を継続することで、常にロボット座標系とカメラ座標系とが関係付けられた状態、すなわちロボットシステム20がキャリブレーション(校正)された状態を保つことができる。
本実施形態の応用先として、カメラなどの撮像装置とロボットアームを含むシステムが考えられる。特に、撮像装置により対象物や場所などの位置情報を取得し、ロボットアームで特定のタスクを行う用途であって、典型的には、ピック・アンド・プレイス(Pick & Place)と呼ばれる、特定の位置にある対象物をつまみ上げ、指定位置まで移送し、そこに下ろすという一連の作業や、パレタイズ・デパレタイズ(Palletize・De-palletize)と呼ばれる、パレットに梱包済み商品を積む、もしくはパレットから降ろす作業などがある。なお、これらは例示であって、応用先として制限されない。
ここまでに述べてきたように、関連技術では、ロボットに標識(マーカー)を取り付けたり、予め人手で複数の姿勢についての角度情報を取得したりする必要があったため、ロボット座標系とカメラ座標系とを関係付ける動作、すなわちキャリブレーションを、与えられた本来のタスクと並行して行うことができない。そのため、結果として、関連技術では、システムインテグレーション(SI)の工数が増加することが課題であった。本実施形態のロボットシステムは、以下に示す特徴によって、この課題を克服できる。
本実施形態の特徴は、標識(マーカー)をロボット自身にすることで、課題であった、標識の取り付けに関わる工数を無くし、取り付けのためにタスクを中断しなければならない状態も避けることができた。この標識をロボット自身にする方法は、撮像装置、すなわち画像情報から得られるロボット自身の位置と、ロボットの制御値と機構モデルデータとに基づくロボット自身の位置という、異なる手段で算出された同種の情報を比較することで実現できる。本実施形態は、画像認識の技術と制御の技術を融合させることで、この解決手段を発明するに至った。したがって、関連する画像認識、または制御の一方に頼った手段では実現することができない。
以上のように、本実施形態のロボットシステムは、ロボット自身を標識として、画像と制御という異なる手段で算出されたロボットの位置情報の差分を減らすように、ロボット座標系とカメラ座標系の関係を修正することで、キャリブレーション(校正)を容易に実行することができる。
(変形例)
図11は、第2の実施形態の変形例に係るロボットシステム25の構成の一例を示す概念図である。第2の実施形態におけるロボットシステム20では、撮像装置21を1台備える構成であった。それに対して、ロボットシステム25は、少なくとも2つ以上の撮像装置21,22を備える。
図12は、第2の実施形態の変形例に係るロボットシステム25の構成の一例を示すブロック図である。図12では、撮像装置が2台であるが、本実施形態では、2台に限られず、少なくとも2台あればよい。また、図12では、複数の撮像装置に対して1つの座標変換部を用いているが、1つに限られない。本実施形態では、複数の撮像装置に対して複数の座標変換部を用いてもよい。
第2の実施形態の変形例に係るロボットシステム25では、上述した構成を備えることにより、それぞれの撮像装置21,22とロボット12との間の座標関係、すなわち変換行列が得られる。つまり、ロボットシステム25では、同一のロボット12が視界に入るl個(lは2以上の整数)の撮像装置21,22のそれぞれについて、そのロボット12の基準に対する座標関係が得られる。そのため、ロボットシステム25では、それぞれの撮像装置21,22とロボット12とは、キャリブレーションされた状態になる。
複数の撮像装置21,22は、それぞれが、ロボットの全体、または一部がその撮像範囲(視界)に入るように設置される。複数の撮像装置21,22は、キャリブレーションの前後で固定されて動かない機構を備えていることが必要である。また、複数の撮像装置21,22は、手動または電動の稼働部を持っていて、その位置や姿勢を任意に変化させることができる機構を備えていても良い。
ロボット12は、キャリブレーションの前後で、台座(ベース)が固定されて動かない機構を備えていることが必要である。また、ロボット12は、手動または電動の稼働部により、台座を移動可能な機構を備えていてもよい。このような構成の例としては、無人搬送車(AGV: Automatic Guided Vehicle)が挙げられる。なお、撮像装置21,22とロボット12の相対的な関係は、本開示で実施されるキャリブレーション後、すなわち座標変換部101の変換が定まった後は変化しないとするが、変化した場合であっても、本開示の処理をその都度実行することで、常にキャリブレーションされた状態に保つことができる。
上述した構成を備えることで、第2の実施形態の変形例に係るロボットシステム25は、1台の撮像装置では観測できない領域の情報を、他の撮像装置によって取得して、共通となる座標系に変換することができる。そのため、第2の実施形態の変形例に係るロボットシステム25は、複数の撮像装置とロボットとを容易にキャリブレーションできる。したがって、第2の実施形態の変形例に係るロボットシステム25は、例えば、障害物やロボット自身によって遮蔽されやすい環境においても、正確にロボット12を動作させることができるという新たな効果が得られる。
また、第2の実施形態の変形例に係るロボットシステム25は、異なる位置姿勢からの撮像装置の情報を共通の座標系に変換しているので、異なる視点の情報を統合する、すなわち、対象とする空間の3次元的な可視化の用途にも適用することができる。
(第3の実施形態)
次に、本開示の第3の実施形態に係るロボットシステムについて図面を参照しながら説明する。
図13は、本実施形態のロボットシステム30の構成の一例を示すブロック図である。図13に示すように、ロボットシステム30は、第2の実施形態における制御装置13のキャリブレーション部2に、動作結果蓄積部200と、動作更新部201とが加えられた構成である。したがって、他の部分の構成は、第2の実施形態と同様であるので説明を省略する。
ロボットシステム30の構成要素として、動作結果蓄積部200と動作更新部201を加えた目的について説明する。本開示は、ロボットシステムにおける課題として、異なる座標系の間を関係付ける変換行列を推定する処理、すなわちキャリブレーションに関わるシステムインテグレーション(SI)の工数増加を解決する手法を示した。関連技術の課題の1つとして、キャリブレーションに必要なデータを取得するために、熟練者がロボットを見ながら複数の適切な姿勢に設定する作業があった。
本開示の第2の実施形態を適用することで、複数の姿勢に設定することは必須ではないが、より広いキャリブレーションされた作業空間の確保と、精度を高めるためには、有効となる場合がある。以上より、本実施形態では、キャリブレーションされた空間の拡大と精度向上を阻む、熟練者によるロボットの動作設定の工数を削減することを目的とする。
(構成)
動作結果蓄積部200は、現在のロボット12の、ロボット座標系とカメラ座標系との関係を得るための動作(キャリブレーション動作)を規定する動作指針(ポリシー)と、比較部102の出力である比較情報(差分)とが蓄積される。なお、上述したように、ここでの動作とは、ロボットに与えられたタスクではなく、キャリブレーションのための動作を指す。
第2の実施形態では、ロボット12から出力される制御情報に変化がない、すなわちロボットが動いていないタイミングを例として、比較部102から出力される差分に基づき、修正部103にて変換行列を修正する構成であった。本実施形態では、ロボット12が、ある動作指針(ポリシー)に基づいて、キャリブレーションのための特定の動作をおこなっているものとする。この動作指針とは、その特定の動作を記述するパラメータとして与えることができ、動作指針と動作とが1対1に対応する。例えば、反復的な動作であれば、その振れ幅や周期などが、例えば、円や楕円といったある軌道上の動作であれば、その軌道の方程式などが動作指針に相当する。
ロボットシステム30は、この動作指針が与えられてロボットシステム20と同様の処理を行い、比較部102から比較情報である差分が出力される。したがって、この差分は、与えられた動作指針の結果と1対1に対応するものである。動作結果蓄積部200には、この動作指針と差分との対応が保存される。なお、動作指針を変更することで差分の結果も変わるため、動作指針の変更の都度、動作結果蓄積部200に動作指針が蓄積されていくものとする。したがって、この蓄積された過去の動作指針と差分との関係、すなわち過去のデータセットも、次に示す動作更新に用いることができる。
動作更新部201は、動作結果蓄積部200に蓄積された動作指針(ポリシー)と比較情報(差分)とに基づき、動作指針を更新してロボット12へ出力する。なお、ロボット12は、この動作指針に基づいて、キャリブレーション動作をする。当該キャリブレーション動作の具体的な制御計画、例えば、動作軌道の生成や制御器に入力する制御値の算出などは、一般的な制御計画装置(図示せず)で行うものとする。また、ロボット12にタスクを実行させるための制御計画も、同様に一般的な制御計画装置(図示せず)で行うものとする。なお、これら両方の制御計画が与えられている状況において、どちらの制御計画を優先するかなどが課題となりうるが、本開示で解決する課題ではなく、例えば、オンラインで逐次選択的にスケジューリングする、または予めルールを定めておくことなで可能であるので、本実施形態では制限しない。
動作更新部201は、動作結果蓄積部200に蓄積された、その時点までの動作指針と差分との関係から、この動作指針を更新する。具体的には、例えば、動作指針がパラメータθで記述されているとすると、次のようにパラメータθの更新によって、動作更新することができる。ただし、ここでのパラメータθは、前述の第1及び第2の実施形態のθとは異なる。
この式11において、δθはパラメータの更新量、ηはその更新量を決める係数(ステップサイズ、学習率などとも呼ばれる)、Jは比較情報である差分を表す。この差分Jは、前述したパラメータθの定義から、動作指針を表すパラメータθの関数として表すことができ、そのパラメータθの変化に対する差分の変化(Jの傾き、偏微分)に基づいて、パラメータθを更新する。このJの傾きは、動作結果蓄積部200に蓄積された様々なパラメータθ、すなわち様々な動作指針と差分Jとの組み合わせデータから算出することができる。
一般的には、データ量が増えるほど、局所的な変化やノイズ、誤差の影響を受けにくいため、適切な値を算出することができる。すなわち、パラメータθの更新の精度が向上する。また係数ηは、任意に設定できるが、大きい値に設定するとパラメータθの更新が早くなるが、パラメータθの値の変化量が大きいため、不適切な値、すなわち本来は差分が小さくなる方向に更新されるが、大きくなることも発生し易くなる。
一方、小さい値に設定するとパラメータθの更新が遅くなるが、前述した不適切な更新は相対的にされにくくなる。したがって、係数ηは適切に選択する必要がある。ただし、何度か更新をしながら定めたり、過去の傾向から決定したりすることができるので、本実施形態では限定しない。なお、係数ηを正の数とすれば、差分が小さくなる方向、すなわちJの傾きと逆方向にパラメータθを動かすために、係数ηの前にマイナス(-)が付いている。ただし、ここに示した式11は、その定義も含めて例示であって、この限りではない。
動作更新部201の上述した処理は、差分が小さくなるように、すなわち動作の結果が良くなることを報酬として動作指針を更新することから、強化学習の枠組みとして捉えることができる。具体的には、動作指針が方策(ポリシー)、パラメータθがそのパラメータに相当するため、式11で表される更新は、方策勾配に基づく強化学習と言える。なお、他の代表的な強化学習の手法として、価値反復に基づく手法や、深層学習(ディープラーニング)を使った手法(DQN:Deep Q-Network)なども適用することができ、本実施形態では制限されない。
この様な強化学習の手法を用いることの効果は、与えられた環境で、ロボット自身が自律的に望ましい動作を獲得できる点である。したがって、課題であった熟練者によるロボットの動作設定は不要となる。また、報酬、すなわち式11の比較情報であるJの設定によって、望ましい動作を指定することができる。上記では、差分の例であったが、例えば、情報の不確実性(情報量)に相当するエントロピーに設定すれば、情報量が増えるような動作、例えば、撮像される範囲が制限されていたり、他の物体で遮蔽されていたりする場合でも、より撮像される範囲が増えるような動作を獲得することができる。従ってキャリブレーションのデータが増えるので、結果として精度が向上(差分が減少)することが期待できる。
(動作)
図14は、本実施形態のロボットシステム30の動作について説明するためのフローチャートである。なお、図14のフローチャートに沿った説明においては、ロボットシステム30を動作の主体として説明する。
第2の実施形態では、例として、ロボット12から出力される制御情報に変化がない、すなわちロボットが動いていないタイミングで、修正部103による変換行列の修正と、比較部102による差分の算出を繰り返す動作(ステップS101~ステップS107)を示した。本実施形態は、この繰り返し(ループ)の外側に、ロボットの位置姿勢を動作指針に基づいて更新する処理が加わった動作となる。したがって、図14のフローチャートには、第2の実施形態のフローチャート部分を波線で囲って示している。
本実施形態では、まず、ロボットを規定の動作指針で制御する(ステップS201)が加わる。このステップS201によって、ロボット12は、動作指針に対応する動作を開始する。この状態で、第2の実施形態と同様に、ロボット12を撮像して差分情報を出力する(ステップS101~S105)。なお、本実施形態ではロボット12が動いている状態となるが、上記は、第2の実施形態と同様に処理することができる。例えば、ロボット12の撮像を動画として取得しておき、フレームごとに静止画とみなして処理をする、または一定時間の動画データを一連の時系列データとみなして、すなわちデータの次元(量)が増えたものとみなして処理をすることができる。
次に、第2の実施形態と同様に、差分が、予め定めたしきい値未満か判定をし(ステップS106)、その結果がしきい値以上であれば、変換行列を修正する(ステップS107)。ただし、第3の実施形態で変換行列を修正する場合には、ロボット12が動作しているので、再度撮像装置21から画像情報を取得し、その取得した画像情報に対して、修正値を適用した変換行列を用いる必要がある。また、このとき、ロボットの動作指針は変更しないので、動作も変わらない。まず、この状態で最適な変換行列を求める。
差分がしきい値未満となったら、このときの動作指針と差分の組を、動作結果蓄積部200に保存する(ステップS202)。次いで、動作指針の更新が、予め定めた規定回数に達しているか否かを判定する(ステップS203)。ここで、達していれば処理を終了し、達していなければ、差分が小さくなるように動作指針を更新する(ステップS204)。なお、この規定回数は、例えば差分の結果を見ながら設定しても良いし、過去の傾向から定めても良いので、本実施形態では限定しない。ただし、この規定回数を増やすことは、現在の与えられた環境で、動作結果蓄積部200に蓄積される、動作指針と差分の組み合わせデータの量を増やすことに相当する。また、動作指針の更新回数も増えるため、これらの作用により、動作指針の更新精度、すなわち変換行列の精度向上に寄与する。
ここで、第2の実施形態にはない、第3の実施形態に特有の効果について説明する。本実施形態では、構成上の差異として、制御装置13が、動作結果蓄積部200と、動作更新部201をさらに有することで、熟練者(人手)によるロボットの動作設定の工数を増やすことなく、より広く、精度の高いキャリブレーションされたロボットシステムを提供することができる。
さらに、本実施形態では、動作指針とその動作結果に基づく比較情報(差分)を蓄積、すなわち学習し、次の動作へ更新する。すなわち、本実施形態は、新しい動作を自律的に生成するという特徴に着目すると、熟練者(人手)に頼る性能以上のキャリブレーションをされたロボットシステムを、自動的(自律的)に、環境が変化しても維持し続けることができる。関連技術において、熟練者による動作設定が必要となる理由の1つは、キャリブレーションを行いたい領域の中で、できるだけ広い体積を適切にカバーするように動かす必要があるためである。なぜなら、一般に撮像装置は、その視野の端においてレンズの歪等の影響が出やすい。また、デプスカメラなどの測距が可能な撮像装置は、その距離が測定できる方向(角度)が限定的で、また対象物の形状や材質によって誤差の影響も受ける。そのため、関連技術では、撮像装置に対して適した位置や角度でロボットを動かす必要がある。
このことは、複数台カメラで構成されたモーションキャプチャーシステムにおいて、人がペンライトなどの輝点を動かし、その軌跡からキャリブレーションをする際、精度が軌跡、すなわち輝点の動かし方に依存するという事例からも明らかである。さらに、ロボットシステムを対象とした場合、ロボットの動かし方は、対象のロボット自身や撮像装置、そして場所ごとに異なる周辺環境に依存するため、熟練者であっても最適な動作設定ができるとは限らない。また、ロボットの内部機構(アクチュエータ)の経時的なズレや、時間ごとに変化しうる周辺環境に対して、精度を保つためには、定期的なキャリブレーションが必要となる。以上を踏まえ、本実施形態では、ロボットの動作環境が変化しても、自動的(自律的)にキャリブレーションを行うことができ、キャリブレーションされた状態を維持し続けることができる。したがって、本実施形態は、熟練者(人手)によるロボットの動作設定の工数を削減できる、ロボットシステムを提供できる。
(変形例)
第3の実施形態におけるロボットシステム30では、撮像装置21を1台備える構成であった。それに対して、第3の実施形態の変形例に係るロボットシステム35は、第2の実施形態ロボットシステム25(図11および図12)と同様に、少なくとも2つ以上の撮像装置21,22を備える。
このような構成により、第2の実施形態の変形例に係るロボットシステム25と同様に、第3の実施形態の変形例に係るロボットシステム35は、1台の撮像装置では観測できない領域の情報を、他の撮像装置によって取得して、共通となる座標系に変換することができる。そのため、第3の実施形態の変形例に係るロボットシステム35は、複数の撮像装置とロボットとを容易にキャリブレーションできる。したがって、第3の実施形態の変形例に係るロボットシステム35は、例えば、障害物やロボット自身によって遮蔽されやすい環境においても、正確にロボット12を動作させることができるという新たな効果が得られる。
また、第3の実施形態の変形例に係るロボットシステム35は、異なる位置姿勢からの撮像装置の情報を共通の座標系に変換しているので、異なる視点の情報を統合する、すなわち、対象とする空間の3次元的な可視化の用途にも適用することができる。
(第4の実施形態)
次に、本開示の第4の実施形態に係るロボットシステム40について図面を参照しながら説明する。図15は、本実施形態のロボットシステム40の構成の一例を示すブロック図である。図15に示すように、本実施形態のロボットシステム40は、第2の実施形態と同じ構成要素を含んでいる。本実施形態では、撮像装置側の画像情報取得部100から画像情報が座標変換部101に入力されているのではなく、ロボット側の制御情報取得部17から画像情報が座標変換部101に入力される点において、第2の実施形態と異なっている。他の部分の構成や動作は、第2の実施形態と同様であるので説明を省略する。
ロボットシステム40は、撮像装置で得られた情報、すなわちカメラ座標系の情報はそのまま利用する。その一方で、ロボットシステム40は、ロボット12から得られる情報、すなわちロボット12のロボット座標系における情報を座標変換する。これにより、ロボットシステム40は、撮像装置21とロボット12との座標系の関係を対応付ける。
このような構成により、ロボットシステム40は、撮像装置21を基準にして、すなわちカメラ座標系の原点を原点とする世界座標系に、ロボット12のロボット座標系の情報を変換する。つまり、ロボットシステム40は、撮像装置21とロボット12との間のキャリブレーションを行う。したがって、本実施形態は、撮像装置と複数ロボットとの間のキャリブレーションが容易なロボットシステムを提供することができる。
(変形例)
図16は、第4の実施形態の変形例に係るロボットシステム45の概念図である。第4の実施形態の変形例に係るロボットシステム45は、ロボット側の制御情報取得部17から画像情報が座標変換部101に入力される構成となっている。図16では、ロボットが2台であるが、本実施形態では、2台に限られず、少なくとも2台あればよい。また、図16では、複数のロボットに対して1つの座標変換部を用いているが、1つに限られない。本実施形態では、複数の撮像装置に対して複数の座標変換部を用いてもよい。また、図16では、複数のロボットに対して1つの制御装置を用いているが、1つに限られない。本実施形態では、複数のロボットに対して複数の制御装置を用いてもよい。
このような構成により、ロボットシステム45は、少なくとも2台のロボット121,122と、撮像装置21との間の座標系の関係を取得することができる。このように、ロボットシステム45では、カメラ座標系の原点を原点とする世界座標系に、ロボット12のロボット座標系の情報を変換することにより、複数ロボット121,122と撮像装置21とのキャリブレーションが可能となる。ただし、撮像装置をそれぞれのロボットで共有している必要がある。すなわち、撮像装置21の視野に、複数ロボット121、122の少なくとも一部が入っている必要がある。
この構成によって、ロボットシステム45は、複数の異なるロボットを利用する環境において、共通の撮像装置を1台設置して、その撮像装置の座標系の原点を原点とする世界座標系にそれぞれ変換することができる。そのため、ロボットシステム45では、複数のロボットと、当該複数のロボットを撮像する1台の撮像装置との間で、容易にキャリブレーションできる。したがって、ロボットシステム45では、例えば、1台のロボットでは実現できないタスク、または複数のロボットによる共同・協調作業を実行できるという新たな効果を奏することができる。
なお、本実施形態も、第3の実施形態の構成である動作結果蓄積部200および動作更新部201を備えてもよい。本実施形態では、複数ロボットのそれぞれに対応する動作更新部20を設けてもよい。このような構成により、本実施形態では、動作結果蓄積部200は、現在のロボット12の、ロボット座標系とカメラ座標系との関係を得るための動作(キャリブレーション動作)を規定する動作指針(ポリシー)と、比較部102の出力である比較情報(差分)とが蓄積される。したがって、本実施形態では、複数ロボットの動作環境が変化しても、自動的(自律的)に、複数ロボットと撮像装置との間でキャリブレーションを行い、このキャリブレーションされた状態を維持し続けることができる。よって、本実施形態は、容易に熟練者(人手)によるロボットの動作設定の工数を削減できる。
(第5の実施形態)
次に、本開示の第5の実施形態に係るロボットシステム50について図面を参照しながら説明する。図17は、本実施形態のロボットシステム50の構成の一例を示すブロック図である。図17に示すように、ロボットシステム50では、座標変換部101を、撮像装置21側と、ロボット12側との両方を備えた構成となっている。他の部分の構成や基本的な動作は、第2の実施形態、及び第4の実施形態と同様であるので説明を省略する。
第2の実施形態では、撮像装置21側に座標変換部101を備えることで、ロボット12のロボット座標系の原点を原点とする世界座標系に、撮像装置の座標系を変換することができる。また、第4の実施形態では、ロボット12側に座標変換部101を備えることで、撮像装置21のカメラ座標系の原点を原点とする世界座標系に、ロボットの座標系を変換することができる。
本実施形態では、これら双方を備えることで、任意のある基準、すなわち任意の点を原点とする世界座標系に対して、撮像装置21とロボット12の座標系をそれぞれ合わせるように変換することができる。このように構成することで、撮像装置21とロボット12から構成される全体のロボットシステム50において、ロボット12がタスクを実行する(動作をする)のに適した基準点(原点)、または人と協同作業をする場合に人が認識しやすい点、例えばタスク空間の中心など任意に設定することができる。したがって、本実施形態では、任意の基準点を原点とすることができるので、キャリブレーションの自由度が高くなる、という効果を奏することができる。
また、本実施形態では、図18に示すような、複数の撮像装置21,22および複数のロボット121,122を備える構成においても、それぞれの座標系を、任意の基準点を原点とする世界座標系に変換することができる。すなわち、本実施形態によって、複数の撮像装置と複数のロボットとを任意の基準点に対して容易にキャリブレーションすることができる。
また、このような構成の実現によって、本実施形態は、第2の実施形態で得られた1つの撮像装置では観測できない領域を複数の撮像装置でカバーする効果と、第4の実施形態で得られた1つのロボットでは実現できないタスク、または複数のロボットによる共同・協調作業を行うことができる効果と、を同時に得ることができる。
(第6の実施形態)
次に、本開示の第6の実施形態に係る制御装置1について図面を参照しながら説明する。図19は、本実施形態の制御装置1の構成の一例を示すブロック図である。図19に示すように、制御装置1は、キャリブレーション部2と、制御部3とを含む。キャリブレーション部2と、制御部3とは、それぞれ、キャリブレーション手段と、制御手段との一実施形態である。なお、第6の実施形態に係る制御装置1は、上述した実施形態の最小の構成要素を示している。
キャリブレーション部2は、制御対象である図示しないロボットが撮像された画像情報についての第1座標系である画像座標系またはカメラ座標系と、制御対象の動作を規定する第2座標系であるロボット座標系または世界座標系との間の変換を表すパラメータを、第1座標系における制御対象の位置、及び、第2座標系における制御対象の位置を用いて算出する。
制御部3は、制御対象が含まれる画像情報と、算出したパラメータとを用いて、第2座標系における制御対象の位置を算出し、算出した制御対象の位置に基づいて制御対象を制御する。
本実施形態では、第1座標系における制御対象の位置および第2座標系における制御対象の位置に基づいて、画像情報についての第1座標系と制御対象の動作を規定する第2座標系との間の変換を表すパラメータ算出することにより、キャリブレーション(校正)が容易にできるという効果を奏することができる。
以上、上述した実施形態を例として本発明を説明した。しかし本発明は、上述した実施形態には限定されない。すなわち本発明は、本発明のスコープ内において、当業者が理解し得る様々な形態に適用することが可能である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
制御対象が撮像された画像情報についての第1座標系と、前記制御対象の動作を規定する第2座標系との間の変換を表すパラメータを、前記第1座標系における前記制御対象の位置を表す位置情報、及び、前記第2座標系における前記制御対象の位置を表す位置情報を用いて算出するキャリブレーション手段と、
前記制御対象が含まれる画像情報と、算出した前記パラメータとを用いて、前記第2座標系における前記制御対象の位置情報を算出し、算出した前記制御対象の位置情報に基づいて前記制御対象を制御する制御手段と
を備える制御装置。
(付記2)
前記キャリブレーション手段は、
前記パラメータを、前記画像情報における前記制御対象の位置と、制御情報に基づく前記制御対象の位置とに対して所定の演算を施し、前記第1座標系における前記制御対象の位置の分布および前記第2座標系における前記制御対象の位置の分布を算出する
付記1に記載の制御装置。
(付記3)
前記キャリブレーション手段は、
前記第1座標系における前記制御対象の位置の分布および前記第2座標系における前記制御対象の位置の分布を、前記画像情報における前記制御対象の位置と、制御情報に基づく前記制御対象の位置とに、それぞれ乱数を加えて、算出する
付記1または2に記載の制御装置。
(付記4)
前記乱数は、正規分布に従う乱数である
付記3に記載の制御装置。
(付記5)
画像座標系またはカメラ座標系における位置を世界座標系における位置に変換する座標変換手段を備え、
前記キャリブレーション手段は、前記座標変換手段により変換された前記世界座標系にて表される画像情報を用いて、前記画像情報における前記制御対象の位置を抽出する
付記1~4のいずれか1項に記載の制御装置。
(付記6)
ロボット座標系における位置を世界座標系における位置に変換する座標変換手段を備え、
前記キャリブレーション手段は、前記座標変換手段により変換された前記世界座標系にて表される制御情報を用いて、前記制御対象の位置を算出する
付記1~4のいずれか1項に記載の制御装置。
(付記7)
画像座標系における位置またはカメラ座標系における位置を、世界座標系における位置に変換する第1座標変換手段と、
ロボット座標系における位置を、前記世界座標系における位置に変換する第2座標変換手段と、を備え、
前記キャリブレーション手段は、
前記第1座標変換手段により変換された前記世界座標系にて表される画像情報を用いて、前記画像情報における前記制御対象の位置を抽出し、
前記第2座標変換手段により変換された前記世界座標系にて表される制御情報を用いて、前記制御対象の位置を算出する
付記1~4のいずれか1項に記載の制御装置。
(付記8)
第1座標系における前記制御対象の位置を表す位置情報が、前記パラメータを用いて変換された位置を表す位置情報と、前記第2座標系における前記制御対象の位置を表す位置情報と、の差分が小さくなることを報酬として動作指針を更新する更新手段をさらに備える
付記1~7のいずれか1項に記載の制御装置。
(付記9)
制御対象が撮像された画像情報についての第1座標系と、前記制御対象の動作を規定する第2座標系との間の変換を表すパラメータを、前記第1座標系における前記制御対象の位置を表す位置情報、及び、前記第2座標系における前記制御対象の位置を表す位置情報を用いて算出するキャリブレーション手段と、
前記制御対象が含まれる画像情報と、算出した前記パラメータとを用いて、前記第2座標系における前記制御対象の位置情報を算出し、算出した前記制御対象の位置情報に基づいて前記制御対象を制御する制御手段と
を備える制御装置と、
前記制御装置により制御される制御対象と、を備える
制御システム。
(付記10)
制御対象が撮像された画像情報についての第1座標系と、前記制御対象の動作を規定する第2座標系との間の変換を表すパラメータを、前記第1座標系における前記制御対象の位置を表す位置情報、及び、前記第2座標系における前記制御対象の位置を表す位置情報を用いて算出し、
前記制御対象が含まれる画像情報と、算出した前記パラメータとを用いて、前記第2座標系における前記制御対象の位置情報を算出し、
算出した前記制御対象の位置情報に基づいて前記制御対象を制御する
制御方法。
(付記11)
コンピュータに、
制御対象が撮像された画像情報についての第1座標系と、前記制御対象の動作を規定する第2座標系との間の変換を表すパラメータを、前記第1座標系における前記制御対象の位置を表す位置情報、及び、前記第2座標系における前記制御対象の位置を表す位置情報を用いて算出する処理と、
前記制御対象が含まれる画像情報と、算出した前記パラメータとを用いて、前記第2座標系における前記制御対象の位置情報を算出する処理と、
算出した前記制御対象の位置情報に基づいて前記制御対象を制御する処理と、を
実行させる制御プログラムを記録する記録媒体。