(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下で説明される実施例の一つの例では、アームを有するロボット(作業用ロボット)を含むロボットシステムであって、作業環境あるいはロボット自体に設置された非接触センサを用いる。非接触センサとしては、例えばステレオカメラがある。アームには複数のマーカが配置されており、ロボットシステムは、マーカを非接触センサで検知することで、アームの姿勢を把握する。この構成によれば、放射線耐性に優れる構成によって、ロボットの姿勢を把握することができる。
【0016】
そして、非接触センサでアームの検知ができなくなった場合には、その前の姿勢あるいは基本姿勢に復帰する。基本姿勢とは、例えば前述の特許文献1に開示される作業用ロボットでは、液圧を最大または最小とした場合の姿勢である。基本姿勢は、液圧などの制御パラメータを所定条件あるいは所定値にした場合、一意に定まる姿勢と定義できる。当該構成によれば、非接触センサでアームの検知ができず、姿勢が認識できない場合であっても、認識可能な姿勢に復帰することができる。
【0017】
また、アームの検知ができなくなった位置を記憶し、その後の動作では、その位置を避けてアームを駆動する。非接触センサでアームの検知ができなくなった場合には、例えば障害物などにより、カメラからマーカが見えない場合が想定される。そこで、そのような位置をあらかじめ避けるようにして、アームの姿勢を制御することにより、継続的にアームの姿勢を把握することを可能とする。
【0018】
(1.システムの全体ハードウェア構成)
図1は、本発明の実施例である、ロボットのアーム姿勢制御システムの、ハードウェアの全体構成を示す斜視図である。
【0019】
アーム1001を有するロボット1は、例えば移動機構1002で移動が可能である。アーム1001は、一つあるいは複数の関節1003を備え、関節1003は角度を変化させたり、回転させたりすることが可能である。アーム1001は、遠隔地にいるオペレータ等の指示により姿勢を変化させることができ、作業対象物7に対して保持部1004等により作業を行うことが可能である。アーム1001の機械的な構造については、例えば特許文献1に開示がある。特許文献1に開示される作業用ロボットは、液圧で動作する構造となっており、特に水圧は、ロボットからの油漏れなどによる、作業環境への影響が小さいことが期待できる。
【0020】
アーム1001には一つまたは複数のマーカ3が配置されている。本実施例では、マーカは視認性の良い構成を持つ。マーカ3は例えば、所定の大きさの白色の円盤であり、アーム1001の各部に取り付けられる。マーカ3は発光ダイオード等で発光させてもよい。また、部位ごとにマーカの大きさや色を変えてもよい。マーカ3の構成としては、ロボットの作業環境で、マーカ3が十分に検出できるように、背景に対してコントラストが明確な色や形を選択することが望ましい。
【0021】
アーム1001にとりつけられたマーカ3は、ステレオカメラ2により撮影される。ステレオカメラ2は、例えば2台のビデオカメラである。ステレオカメラ2で撮影された画像は、画像解析装置6に送信される。画像解析装置6の出力は、アーム姿勢推定装置5に入力され、アーム姿勢推定装置5の出力は、アーム姿勢制御装置4に入力される。アーム姿勢制御装置4からの出力は、アーム1001に入力され、アーム1001の姿勢を制御する。
【0022】
例えば特許文献1の技術では、アームの姿勢を制御するために液圧を用いている。この方式を採用する場合には、アーム姿勢制御装置4は液体の圧力を制御するためのポンプを含むものとし、ポンプから送出される液体自体をアーム姿勢制御装置4からの出力と考えてよい。
【0023】
(2.システムの全体処理フロー)
図2は、本実施例のロボットのアーム姿勢制御システムの全体の処理の流れを示す図である。
【0024】
処理S101では、ステレオカメラ2でロボット1のアーム1001およびマーカ3を撮影し、ステレオカメラ画像を取得する。
【0025】
処理S102では、画像解析装置6により、画像解析処理が行われる。後に
図4で詳しく説明する。
【0026】
処理S103では、アーム姿勢推定装置5により、アーム姿勢推定処理が行われる。当該処理により、オペレータあるいはシステムは、ロボット1やアーム1001の姿勢を把握することができる。後に
図5で詳しく説明する。
【0027】
処理S104では、アーム姿勢制御装置4により、アーム姿勢制御処理が行われる。当該処理は、オペレータあるいはシステムが、ロボット1やアーム1001に次の姿勢を指示する処理である。後に
図6で詳しく説明する。
【0028】
処理S105では、アーム姿勢制御装置4から、ロボット1に対して、アーム動作指示が出力される。
【0029】
(3.システムの機能ブロック構成)
図3は、本発明の一実施例である、ロボットのアーム姿勢制御システムの機能ブロックを示すブロック図である。アーム姿勢制御装置4、アーム姿勢推定装置5、画像解析装置6は、信号ケーブルあるいは無線リンクで接続されており、信号の送信あるいは受信が可能である。
【0030】
本実施例では、アーム姿勢制御装置4、アーム姿勢推定装置5、画像解析装置6は、プロセッサ、メモリ、入力インタフェースおよび出力インタフェースを備える、通常のサーバで実現することにした。各装置の計算や制御等の機能は、メモリに格納されたプログラムがプロセッサによって実行されることで、定められた処理を他のハードウェアと協働して実現される。計算機などが実行するプログラム、その機能、あるいはその機能を実現する手段を、「機能」、「手段」、「部」、「ユニット」、「モジュール」等と呼ぶ場合がある。以上の構成は、単体のコンピュータで構成してもよいし、あるいは、プロセッサ、メモリ、入力インタフェースおよび出力インタフェースの任意の部分が、相互に接続された他のコンピュータで構成されてもよい。
【0031】
図1や
図3では、アーム姿勢制御装置4、アーム姿勢推定装置5、画像解析装置6は別個の装置として説明しているが、一つの装置としてもよい。すなわち、3台のサーバで構成してもよいし、複数の機能を持つ1台のサーバで構成してもよい。
【0032】
図3に示した構成のうち、ロボット1およびロボット1を撮影するステレオカメラ2は、高放射線の作業環境に配置される場合がある。この場合には、通常のサーバの構成部品、特にSRAM(Static Random Access Memory)などの電子デバイス、は耐放射線性能に乏しいので、アーム姿勢制御装置4、アーム姿勢推定装置5、画像解析装置6を構成するサーバは、作業環境から遠隔地に設置することが望ましい。サーバとステレオカメラ2との間には、画像データを送信する信号ケーブルを配置して距離を確保することができる。
【0033】
また、サーバとロボット1との間には、ロボット1にアーム動作指示信号を送る信号線を配置して距離をとることができる。あるいは、前述のように、アーム1001が水や油など液体の圧力で動作する場合には、液体を送るためのパイプを設置することもできる。この場合には、アーム動作制御部703からの信号によって、図示しないポンプ等を制御し、ポンプ等の働きにより、アーム1001の各部に供給される液体の圧力を制御するものとする。
【0034】
(3-1.ステレオカメラ)
ステレオカメラ2は、一般には電子部品の素子スケールが小さいほど耐放射線性能が低下するので、マーカ3が認識できる程度の解像度があればよく、高精細画像は必要ではない。ステレオカメラ2は、ステレオカメラ画像信号Vを生成し、画像解析装置6に送信する。また、ステレオカメラ2は、画像解析管理部601からの指示信号Cによって、撮影の開始、終了、あるいは撮影角度の変更を行うものとする。
【0035】
ステレオカメラの個数は1または複数である。アーム1001の画像に死角がないことが理想的なので、3個以上設置しても良い。ステレオカメラの相対的な位置関係や光軸方向は、設置時に設定する、設定後実測する、あるいはカメラ画像から推定するなどの方法により、データ化しておくものとする。
【0036】
(3-2.画像解析装置(概要))
図4に画像解析装置6の処理フローを示し、
図3を参照しつつ処理内容を説明する。本実施例の画像解析装置6は、画像解析管理部601が全体の動作を制御するものとする。画像解析装置6の画像解析管理部601は、ステレオカメラ2からのステレオカメラ画像信号Vを受信すると、ステレオカメラ画像信号Vをマーカ検出部602に入力する(S201)。ステレオカメラ画像は、2以上のカメラからの画像を含むものとする。
【0037】
マーカ検出部602は、ステレオカメラ画像信号Vから画像処理によりマーカ部分を検出し、ステレオカメラの原理に従って、各マーカの3次元座標を検出する。さらに、必要によりマーカ3次元予測座標3DEを用いてマーカ座標を補完する(S202)。処理S202の結果得られた、マーカ3次元座標3Dは、画像解析管理部601に送られる。座標変換部603、マーカ3次元予測座標3DE、およびマーカ座標の補完については、後に説明する。
【0038】
マーカを検出する画像処理では、例えばマーカ3が白色の円形である場合には、高コントラストの円形の部分を検出する。マーカの色や反射率を変更し、色の検出や反射光の検出によって検出してもよい。そして、2次元画像中のマーカ3の座標を示すマーカ2次元座標を生成する。
【0039】
画像解析装置6はデータとして、センサ配置情報604を持つ。センサ配置情報604は、センサ例えばカメラの位置座標および画角(カメラの光軸の方向および視野角)である。マーカ検出部602は、センサ配置情報604を用いて、カメラからみた2次元座標を、3次元座標に変換し、マーカ3次元座標3Dとして、画像解析管理部601に出力する。この際、前述のように必要に応じてマーカ3次元座標の補完を行う。
【0040】
複数の画像から3次元を復元する方法としては、SfM(Structure from Motion)として知られている手法がある。3次元座標の原点や座標系は任意でよい。画像解析管理部601は、マーカ3次元座標3Dをアーム姿勢推定装置5に送信する(S203)。
【0041】
(3-3.アーム姿勢推定装置)
図5にアーム姿勢推定装置5における、アーム姿勢推定処理の処理フローを示し、
図3を参照しつつ処理内容を説明する。
図5に示すように、アーム姿勢推定装置5の姿勢更新部501は、画像解析装置6の画像解析管理部601からマーカ3次元座標3Dを受信する。ステレオカメラ画像信号Vは、時系列の複数のフレーム画像を含み、各フレームからマーカ3次元座標3Dを生成することにより、マーカ3の動きを追跡することができる。
【0042】
アーム姿勢推定装置5の姿勢更新部501は、アーム姿勢を推定し、アーム姿勢データAPとして更新する処理を行う。アーム姿勢推定装置5は、アーム姿勢データAPを時系列にアーム姿勢履歴データ503として蓄積する。アーム姿勢データAPの推定の処理の内容については後述するが、本実施例では、検出したマーカに基づくマーカ3次元座標3Dと、アーム姿勢履歴データ503(過去のアーム姿勢データAP)から予測したアーム姿勢予測データAPEの両方を利用する。
【0043】
図3に示すように、アーム姿勢履歴データ503は、姿勢予測部504に入力される。姿勢予測部504では、アームの運動モデル505を用いて、アーム姿勢履歴データ503からアーム姿勢予測データAPEを生成する(S301)。アームの運動モデル505は例えば、アームの各関節が所定の等角速度で動作するというような制約条件に従うモデルである。このような予測は、例えばカルマンフィルターを用いて行うことができる。
【0044】
姿勢更新部501には、画像解析管理部601から、マーカ3次元座標3Dが入力される(S302)。姿勢更新部501は、アームモデル502を用いて、マーカ3次元座標3Dからアームの姿勢を算出する。ここで、アームモデル502は、アーム1001の関節と関節の接続関係、関節と関節の間隔、関節の可動範囲、各関節軸を基準としたマーカの位置の情報等を含む。アームが液体の圧力で駆動される場合には、当該姿勢に対応した液体の圧力としてもよい。
【0045】
姿勢更新部501は、アームモデル502とマーカ3次元座標3Dから、アームの姿勢を一意に特定するためのパラメータを算出する。このパラメータは、例えばアームの各関節の角度、あるいはその角度を取るための液体の圧力である。アーム1001が伸縮機能を持つ場合には、伸縮長を含んでもよい。本実施例では、アーム1001を液体の圧力で駆動することにし、アームの姿勢およびアームを駆動するための制御信号は、アームの各部に供給される液体の圧力で規定することにする。
【0046】
姿勢更新部501では、マーカ3次元座標3Dとアームモデル502から算出したアームの姿勢と、姿勢予測部504で予測したアーム姿勢予測データAPEとから、アーム姿勢を推定し、アーム姿勢データAPとして、アーム姿勢推定管理部506に入力する。
【0047】
アーム姿勢の具体的な推定手法としては、例えば、マーカ3次元座標3Dから算出したアームの姿勢から尤度関数を評価し、カルマンフィルターのパラメータを補正して、アーム姿勢データAPを推定し更新する(S303)。アーム姿勢データAPはアーム姿勢推定管理部506から、アーム姿勢制御装置4に送信される。
【0048】
なお、アーム姿勢履歴データ503が十分に蓄積されていない間は、マーカ3次元座標3Dから算出したアームの姿勢をそのままアーム姿勢データAPとしてよい。
【0049】
一方、本実施例では
図3に示すように、姿勢予測部504で生成されたアーム姿勢予測データAPEは、画像解析装置6の画像解析管理部601にフィードバックされている。アーム姿勢予測データAPEを用いると、マーカ検出もれの補完を行うことができる。
【0050】
(3-4.画像解析装置(マーカ座標の補完))
図4に戻ってマーカ検出もれの補完処理を説明する。アーム姿勢予測データAPEは座標変換部603に入力され(S204)、アームモデル605(アームモデル502と同一内容でよい)に基づいて、マーカ3次元予測座標3DEに変換される(S205)。マーカ3次元予測座標3DEは、画像解析管理部601を経由してマーカ検出部602に送られる。
【0051】
マーカ検出部602では、ステレオカメラ2の画像によって検出された信号に基づくマーカ3次元座標を、マーカ3次元予測座標3DEによって補完し、マーカ3次元座標3Dを生成する。すなわち、マーカ3次元予測座標3DEは、姿勢予測部504によって予測されたアームの姿勢に基づく、あるべきマーカの座標であり、障害物や水蒸気によりマーカ3が隠れた場合でも、データの欠落に起因するマーカの検出漏れを補完することができる。例えば、ステレオカメラ2の画像によって2つのマーカが検出され、その間のマーカが検出されなかった場合、マーカ3次元予測座標3DEはその間のマーカの存在を示唆することができる。ただし、例えばアーム先端部のマーカの補完は、アーム角度を知り得ない状況では難しい。
【0052】
以上説明したように、
図4に示すごとく、マーカ検出部602では、マーカ3次元予測座標3DEを用いて、ステレオカメラ2の画像から得られたマーカの情報を補完する(S202)。そして、マーカ3次元座標3Dを生成し、画像解析管理部601に出力する(S203)。本実施例では、以上のように姿勢予測部504でのアーム姿勢予測データAPEを、画像解析装置6でのマーカ検出の補完に用いているが、補完処理は場合によっては省略してもよい。
【0053】
ロボット1の作業環境では、以上の補完を行った場合であっても、周辺の障害物や水蒸気などにより、十分にロボット1の姿勢の一部または全部を認識できない場合がある。例えば、画像解析管理部601は、所定の個数以上のマーカの座標を認識できなかった場合や、アーム先端のマーカを見失った場合には、マーカ3次元座標3Dの代わりに、もしくはこれに付加して、ロボットの姿勢を認識できないことを示すエラー信号をアーム姿勢推定装置5に送信する。エラー信号を受信したアーム姿勢推定装置5は、アーム姿勢データAPの代わりに、もしくはこれに付加して、エラー信号をアーム姿勢履歴データ503に格納し、また、アーム姿勢制御装置4に送信する。このとき、エラー信号には、直前のマーカ3次元座標3D、あるいは直前のアーム姿勢データAPをさらに付加してもよい。
【0054】
また、エラー信号は、上記のように画像解析管理部601が生成する代わりに、姿勢更新部501において、アーム姿勢が推定できなかった場合に生成することにしてもよい。アーム姿勢が推定できない場合とは、例えばマーカ3次元座標3Dとアームモデル502から算出したアームの姿勢と、姿勢予測部504で予測したアーム姿勢予測データAPEが所定以上異なる場合である。
【0055】
(3-5.アーム姿勢制御装置)
図6にアーム姿勢制御装置4における、アーム姿勢制御処理の処理フローを示し、
図3を参照しつつ処理内容を説明する。アーム姿勢制御装置4のアーム動作計画部701は、アーム姿勢データAPをアーム姿勢推定装置5から受け取る。アーム動作計画部701は、最終目標設定部702にアーム姿勢データAPを送る。
【0056】
アームの姿勢制御の初期設定において、最終目標設定部702は、アーム1001の最終目標となる最終目標姿勢FPを設定する(S401)。最終目標姿勢FPは、例えばアーム姿勢データAPからアーム1001の姿勢を画像で再現して画像表示装置(図示せず)に表示し、オペレータが確認して、例えば保持部1004を移動させたい位置を画像上で指定するようにしてもよい。あるいは他の公知の方法でもよい。またこのとき、ステレオカメラ画像信号Vによる画像をあわせて表示してもよい。なお、説明上、最終目標姿勢FPを設定する時点ではアーム1001は見えているものとする。
【0057】
システムが扱うデータとして設定される最終目標姿勢FPは、例えばその姿勢をとるためのアーム1001の各関節の角度や液圧で定義される。本実施例では最終目標姿勢FPは、アームの姿勢およびアームを駆動するための制御信号と同じく、アーム1001の各部に供給される液体の圧力で規定することにする。このときオペレータから指示されたアームの姿勢は、その姿勢をとるためにアームの各部に供給される液体の圧力に変換すればよい。設定された最終目標姿勢FPは、アーム動作計画部701に送信される。
【0058】
アーム動作計画部701では、現在のアーム姿勢データAPと最終目標姿勢FPから、動作計画を生成する(S402)。ロボットの制御においては、環境の変化や、目標姿勢の変更に対応するために、環境や初期姿勢・目標姿勢にあわせて動的に軌道を生成する動作計画法という技術が知られている。動作計画とは、初期姿勢と目標姿勢と周囲環境の情報を入力に、何らかの基準に基づいてロボットの動作の軌道を決定する技術である。動作計画問題は産業用腕型ロボットにおいては、どのように腕を動かせば指定の姿勢になるのかを探す問題である。このような動作計画法の一例は、特許文献2にも開示がある。
【0059】
アーム動作計画部701では、最新のアーム姿勢データAPを入力する(S403)。そして、アーム1001の姿勢が把握できているかを判定する(S404)。この判定は、画像解析管理部601、あるいは、姿勢更新部510で生成されたアーム姿勢データAPの内容、あるいはエラー信号(上述)の有無に基づいて可能である。最終目標姿勢FPを設定する時点ではアームが見えていることが保証されている場合には、最初の微小移動前において、このステップは省略してよい。
【0060】
アーム動作計画部701は、最新のアーム姿勢データAPに基づいて、アーム1001の姿勢が最終目標姿勢FPであるかどうかを判定する(S405)。アームの姿勢が把握できており、現在のアームの姿勢が最終目標姿勢である場合には、アーム動作制御を終了する。
【0061】
アーム動作計画部701は、アームの姿勢が把握できており、現在のアームの姿勢が最終目標姿勢に到達していない場合には、アームの微小移動を継続する。アーム動作計画部701は、アーム動作計画に基づいてアーム微小移動目標量TAを求める(S406)。アーム微小移動目標量は、例えばアーム動作計画に基づいて定められたアーム1001の軌道を、所定量ずつ区分したものに相当する。
【0062】
アーム動作計画部701は、アーム微小移動目標量TAをアーム動作制御部703に指示し、アーム動作制御部703は、ロボット1にアーム微小移動目標量TAに応じたアーム動作指示CONTを行う(S407)。これらの制御により、アーム1001の微小移動が実行される(S408)。本実施例では、アーム動作指示CONTは、アーム1001各部に供給される液圧である。
【0063】
微小移動実行後、微小移動を反映した最新のアーム姿勢データAPを入力し(S403)、アーム1001の姿勢が把握できているかを判定し(S404)、微小移動を継続する。
【0064】
一方、判断S404にてアームが認識されていない場合、すなわちエラー信号の入力がある場合等では、アーム動作計画部701は、アームが以前の状態(例えば直前の状態)に戻るようにアーム微小移動目標量TAを設定し、アーム微小移動目標量TAを制御変数(例えば液圧)に変換し、アーム動作を指示することにより、アーム1001は以前の状態に戻る(S409)。
【0065】
アーム1001が直前の状態に戻ることにより、アーム1001の姿勢を見失う前の状態に復帰することができ、安定した制御が可能となる。また、直前の状態に復帰する以外、所定ステップ前の状態に復帰してもよい。また、アーム1001の基本姿勢(前述)に復帰してもよい。
【0066】
アーム1001が前述のように液体の圧力で姿勢を制御されている場合には、直前の状態に戻るためには、例えば前記エラー信号の前後の液圧あるいは液量の差分を検出し、差分にもとづいて制御することができる。また、基本姿勢に復帰するためには、例えば、液圧で駆動される関節のすべてのシリンダーの液圧あるいは液量を最小にすることで制御することができる。この場合には、アーム1001は例えば最も縮めた状態をとる。また、基本姿勢に復帰するためには、例えば、液圧で駆動される関節のすべてのシリンダーの液圧あるいは液量を最大にすることで制御することができる。この場合には、アーム1001は例えば最も伸ばした状態をとる。また、基本姿勢に復帰するためには、例えば、液圧で駆動される関節1つ以上のシリンダーの液圧あるいは液量を最大にし、1つ以上のシリンダーの液圧あるいは液量を最小にすることで制御することができる。この場合には、アーム1001は例えば曲げた状態をとる。
【0067】
一方、アーム動作計画部701が生成したアーム微小移動目標量TAは、アーム微小移動目標量履歴705として蓄積される。あるアーム微小移動目標量TAによって制御された結果、アーム1001を見失った場合、すなわちエラー信号を受信した場合等には、アーム微小移動目標量履歴705にその履歴を記録する(S410)。
【0068】
判断S404にてアームが認識されていない場合は、処理S409,S410を経て、アーム動作計画の修正を行う。すなわち、例えば、処理409で直前の状態に復帰した場合であれば、当該処理409で復帰した姿勢を起点として、処理S401で設定した最終目標姿勢FAをとるための動作計画を再作成する。ただし、この動作計画では、アーム1001を見失う状態を避けるように、動作計画を作成する。そのためには、アーム微小移動目標量履歴705を用いて、アーム1001を見失った直前のアーム微小移動目標量TAを用いないように制御を行う。あるいは、直前のアーム姿勢データAPの姿勢を避けるように制御を行ってもよい。
【0069】
また、あるいは、エラー信号の受信の直前に対応したマーカ3次元座標3Dを記録して、マーカが見えないエリアの外縁をマッピングすることにより、当該エリアを避けるようにアーム1001を制御することもできる。
【0070】
本実施例によれば、従来の産業用ロボットに搭載されているような、関節の角度を直接計測するエンコーダなどのセンサを用いずに、アームの姿勢を把握することが可能となる。また、放射線や水蒸気などの影響により、高画質のカメラ画像の取得が期待できない環境下でもアームの姿勢を把握することが可能となる。さらに、周囲の未知の構造物などにより、ロボットやアームを見失う可能性のある状況でも、周囲の構造物との干渉を避け、安全かつ確実にアーム姿勢を制御することができる。
【0071】
本実施例中、ソフトウエアで構成した機能と同等の機能は、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などのハードウェアで置換することでも実現できる。
【0072】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。