(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154891
(43)【公開日】2024-10-31
(54)【発明の名称】制御装置
(51)【国際特許分類】
B25J 13/08 20060101AFI20241024BHJP
【FI】
B25J13/08 A
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023069103
(22)【出願日】2023-04-20
(71)【出願人】
【識別番号】000000262
【氏名又は名称】株式会社ダイヘン
(74)【代理人】
【識別番号】100115749
【弁理士】
【氏名又は名称】谷川 英和
(74)【代理人】
【識別番号】100121223
【弁理士】
【氏名又は名称】森本 悟道
(72)【発明者】
【氏名】久保 正樹
(72)【発明者】
【氏名】北野 豊和
(72)【発明者】
【氏名】古川 直樹
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS11
3C707BS10
3C707HS27
3C707KS06
3C707KT01
3C707KT05
3C707KT06
3C707KT11
3C707LT06
3C707LV19
(57)【要約】
【課題】移動するマーカを継続して撮影することができる制御装置を提供する。
【解決手段】マーカ5を撮影するためのカメラ20を移動させるためのマニピュレータ10を有するロボット1を制御する制御装置3は、カメラ部2によって撮影された撮影画像を取得する撮影画像取得部31と、撮影画像を用いて、マーカ5の一部が遮蔽物によって遮蔽されている場合に、マーカの遮蔽領域を特定する特定部32と、マーカ5の一部が遮蔽物によって遮蔽されている場合に、特定部32によって特定された遮蔽領域に基づいて、マーカ5の全体が撮影されるようにするためのカメラ部2の移動方向を決定する決定部33と、決定部33によって決定された移動方向にカメラ部2が移動するようにロボット1を制御する制御部34とを備える。このようにして、マーカ5を継続して撮影することができるようになる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
マーカを撮影するためのカメラを有するカメラ部を移動させるためのマニピュレータを有するロボットを制御する制御装置であって、
前記カメラ部によって撮影された撮影画像を取得する撮影画像取得部と、
前記撮影画像を用いて、前記マーカの一部が遮蔽物によって遮蔽されている場合に、前記マーカの遮蔽領域を特定する特定部と、
前記マーカの一部が遮蔽物によって遮蔽されている場合に、前記特定部によって特定された遮蔽領域に基づいて、前記マーカの全体が撮影されるようにするための前記カメラ部の移動方向を決定する決定部と、
前記決定部によって決定された移動方向に前記カメラ部が移動するように前記ロボットを制御する制御部と、を備えた制御装置。
【請求項2】
前記撮影画像取得部によって取得されたマーカの撮影画像を用いて、当該マーカに応じた位置を取得する位置取得部をさらに備えた、請求項1記載の制御装置。
【請求項3】
前記マーカは、複数のサブマーカを有し、
前記特定部は、前記撮影画像に少なくとも一部が含まれないサブマーカの領域を特定することによって、前記遮蔽領域を特定する、請求項1記載の制御装置。
【請求項4】
前記カメラ部の位置の履歴を蓄積する蓄積部をさらに備え、
前記決定部は、前記マーカの全体が遮蔽された場合に、前記蓄積部によって蓄積された前記カメラ部の位置の履歴によって示される最新の移動が継続されるように、前記カメラ部の移動方向を決定する、請求項1から請求項3のいずれか記載の制御装置。
【請求項5】
前記カメラ部は、深度画像を取得する深度カメラをも有しており、
前記決定部は、前記深度画像によって示される前記遮蔽物までの距離が長いほど、前記カメラ部の移動量が大きくなるように、前記カメラ部の移動量をも決定し、
前記制御部は、前記決定部によって決定された移動量に応じて前記カメラ部が移動するように前記ロボットを制御する、請求項1から請求項3のいずれか記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マーカの撮影が継続されるように、マーカを撮影するカメラを移動させるためのロボットを制御する制御装置に関する。
【背景技術】
【0002】
従来、移動し得る対象物の位置を、対象物に関する撮影等のセンシングを行うことによって取得することが行われている。例えば、その対象物にマーカを付与し、そのマーカを撮影することによって、マーカの位置を取得することが行われている。このような位置の取得を行うことによって、マーカの付与された対象物が移動する場合であっても、その移動に応じたマーカの位置の変化を取得することができる。
【0003】
なお、移動し得る対象物と、その対象物の位置を撮影等のセンシングによって取得する装置との間に遮蔽物が存在する場合には、対象物の位置を取得することができなくなる。そのような問題を解決するために、対象物に関する測定を行う装置を移動させることも行われている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載されたシステムは、自走可能な第1移動体の位置を、自走可能な第2移動体によって計測するシステムにおいて、第1移動体が第2移動体によって計測できない領域に移動した際に、第2移動体が基準点間を移動して、第1移動体の位置を計測するものである。このようにして、第1移動体が第2移動体の不可視領域に進入した場合であっても、第2移動体が移動することによって、第1移動体の位置を計測することができる。
【0006】
しかしながら、特許文献1に記載されたシステムでは、あらかじめ第2移動体の移動先の位置である複数の基準点を設定しておく必要があり、そのための事前の準備が煩雑であるという問題があった。
【0007】
一般的に言えば、より簡単な手法によって、例えば、移動し得るマーカの位置の取得などのために、マーカの撮影を継続して行いたいという要望があった。
【0008】
本発明は、上記状況に応じてなされたものであり、移動するマーカを継続して撮影できるようにするための制御装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明の一態様による制御装置は、マーカを撮影するためのカメラを有するカメラ部を移動させるためのマニピュレータを有するロボットを制御する制御装置であって、カメラ部によって撮影された撮影画像を取得する撮影画像取得部と、撮影画像を用いて、マーカの一部が遮蔽物によって遮蔽されている場合に、マーカの遮蔽領域を特定する特定部と、マーカの一部が遮蔽物によって遮蔽されている場合に、特定部によって特定された遮蔽領域に基づいて、マーカの全体が撮影されるようにするためのカメラ部の移動方向を決定する決定部と、決定部によって決定された移動方向にカメラ部が移動するようにロボットを制御する制御部と、を備えたものである。
【発明の効果】
【0010】
本発明の一態様による制御装置によれば、マーカの一部が遮蔽された場合に、マーカの全体が撮影されるように、マーカを撮影するためのカメラを有するカメラ部を移動させることによって、移動するマーカを継続して撮影することができるようにできる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施の形態によるロボット制御システムの構成を示す模式図
【
図3】同実施の形態におけるマーカの支持体の一例を示す図
【
図4】同実施の形態における一部の遮蔽されたマーカの撮影画像一例を示す図
【
図5】同実施の形態における移動方向の決定について説明するための図
【
図6】同実施の形態による制御装置の動作を示すフローチャート
【
図7】同実施の形態におけるマーカの他の一例を示す図
【発明を実施するための形態】
【0012】
以下、本発明による制御装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態による制御装置は、マーカの全体が継続して撮影されるように、カメラを移動させるためのロボットを制御するものである。
【0013】
図1は、本実施の形態によるロボット制御システム100の構成を示すブロック図である。本実施の形態によるロボット制御システム100は、マニピュレータ10を有するロボット1と、マーカ5を撮影するためのカメラ20を有するカメラ部2と、ロボット1を制御する制御装置3とを備える。カメラ部2は、マニピュレータ10によって移動される。本実施の形態では、ロボット1がマニピュレータ10そのものであり、カメラ部2がカメラ20そのものである場合について主に説明し、それ以外の場合については後述する。
【0014】
マニピュレータ10は、カメラ部2を移動させるためのものであり、一例として、モータによって駆動される関節によって連結された複数のアームを有するものであってもよい。マニピュレータ10は、例えば、垂直多関節ロボットのマニピュレータであってもよく、水平多関節ロボットのマニピュレータであってもよいが、より高い自由度を実現できるという観点からは、マニピュレータ10は、垂直多関節ロボットのマニピュレータであることが好適である。このマニピュレータ10の軸数は問わない。カメラ部2は、一例として、マニピュレータ10の先端に取り付けられてもよく、または、それ以外の位置に取り付けられてもよい。マニピュレータ10の基端側は、例えば、床面や壁、天井などに固定されていてもよい。また、マニピュレータ10は、カメラ部2を移動させる以外の用途にも使用されてもよい。例えば、マニピュレータ10は、溶接を行うためのマニピュレータであってもよい。この場合には、溶接用のマニピュレータ10に、カメラ部2が装着されていると考えてもよい。
【0015】
カメラ20は、例えば、単眼のカメラであってもよく、ステレオカメラであってもよい。本実施の形態では、カメラ20が単眼のカメラである場合について主に説明する。また、カメラ20によって取得される撮影画像は、例えば、グレースーケール画像であってもよく、カラー画像であってもよい。例えば、マーカ5が複数の色を有している場合には、撮影画像がカラー画像であることが好適である。また、カメラ20は、例えば、静止画を撮影してもよく、動画を撮影してもよい。後者の場合には、動画に含まれる1フレームが、撮影画像として制御装置3で用いられてもよい。
【0016】
制御装置3は、撮影画像取得部31と、特定部32と、決定部33と、制御部34と、蓄積部35と、位置取得部36と、記憶部37と、出力部38とを備える。制御装置3は、カメラ部2によって撮影された撮影画像を取得することができ、ロボット1の動作を制御することができるように、カメラ部2やロボット1に有線または無線で接続されていることが好適である。
【0017】
撮影画像取得部31は、カメラ部2によって撮影された撮影画像を取得する。撮影画像取得部31は、撮影画像を繰り返して取得することが好適である。撮影画像取得部31は、例えば、撮影画像を定期的に取得してもよい。撮影画像取得部31は、例えば、撮影画像を取得する旨の指示をカメラ部2に送信し、それに応じてカメラ部2から送信された撮影画像を受信することによって撮影画像を取得してもよい。また、撮影画像取得部31は、例えば、定期的にまたは不定期にカメラ部2から撮影画像を受け付けることによって撮影画像を取得してもよい。取得された撮影画像は、例えば、記憶部37などの記録媒体で記憶されてもよい。撮影画像には、マーカ5が含まれていることが好適である。
【0018】
マーカ5は、一例として、
図2(a)で示されるように、シート状部材に記載された複数のサブマーカ6-1~6-4を有していてもよい。なお、サブマーカ6-1~6-4を特に区別しない場合には、サブマーカ6と呼ぶこともある。後述するサブマーカ6-5等についても同様であるとする。複数のサブマーカ6は、例えば、それぞれ異なる属性を有する図形であり、撮影画像において区別できるようになっていてもよい。属性は、例えば、色、形状、大きさ、模様などであってもよい。マーカ5に属性の異なるサブマーカ6が含まれることによって、例えば、あるサブマーカ6が遮蔽物によって遮蔽されて撮影画像に含まれない場合において、そのサブマーカ6の位置を、他の属性の異なるサブマーカ6の位置に基づいて推定することができる。
図2(a)では、それぞれ異なる形状の4個のサブマーカ6-1~6-4を有するマーカ5を示しており、
図2(b)では、それぞれ異なる色の4個のサブマーカ6-5~6-8を有するマーカ5を示している。なお、
図2(b)では、色の違いを網掛けの違いによって示している。また、マーカ5が有する複数のサブマーカ6は、それぞれ異なる模様を有していてもよい。模様は、例えば、ハッチングや網掛けなどの模様であってもよい。マーカ5が有するサブマーカ6の個数は、例えば、2個以上であってもよく、3個以上であってもよく、4個以上であってもよい。本実施の形態では、マーカ5が4個のサブマーカ6を有する場合について主に説明する。
【0019】
マーカ5は、例えば、3個以上の特徴点を有していてもよい。例えば、
図2(a)、
図2(b)で示されるマーカ5のように、特徴点は、サブマーカ6ごとに配置されている点状の図形P1~P8によって示されてもよい。すなわち、一例として、1個のサブマーカ6が1個の特徴点を有していてもよい。また、マーカ5に含まれるサブマーカ6が多角形である場合に、その多角形であるサブマーカ6の頂点が特徴点となってもよい。また、平面状のマーカ5は、例えば、
図2で示されるように正方形状であってもよく、矩形状であってもよく、または、その他の形状であってもよい。マーカ5は、一例として、向きを一意に特定することができるものであってもよい。例えば、マーカ5がそれぞれ異なる属性の複数のサブマーカ6を有する場合には、通常、向きを一意に特定することができると考えられる。
【0020】
平面状のマーカ5は、一例として、
図3(a)、
図3(b)で示されるように、支持体7によって支持されてもよい。支持体7は、平面状のマーカ5が貼り付けられる板状部材7aと、その板状部材7aに接続された棒状部材7bとを有していてもよい。棒状部材7bは、例えば、板状部材7aのマーカ5が貼り付けられる面と反対側の面の重心に、その面と垂直になるように取り付けられていてもよい。
【0021】
特定部32は、撮影画像取得部31によって取得された撮影画像を用いて、マーカ5の一部が遮蔽物によって遮蔽されている場合に、マーカ5の遮蔽領域を特定する。マーカ5の遮蔽領域は、例えば、マーカ5の領域のうち、遮蔽物によって遮蔽されている領域の全体であってもよく、または、遮蔽物によって遮蔽されている領域の一部であってもよい。特定部32は、例えば、撮影画像においてマーカ5の領域を特定し、その特定した領域の画像である比較対象画像と、あらかじめ記録媒体で記憶されているマーカ5の画像である基準画像とを比較し、比較対象画像において、基準画像に対して欠けている領域を、遮蔽領域として特定してもよい。撮影画像におけるマーカ5の領域の特定は、例えば、基準画像をパターンとして用いたパターンマッチングによって行われてもよく、マーカ5が特徴的な色を有している場合に、撮影画像においてその色の領域を特定することによって行われてもよく、その他の方法によって行われてもよい。また、特定部32は、例えば、撮影画像に少なくとも一部が含まれないサブマーカ6の領域を特定することによって、遮蔽領域を特定してもよい。例えば、マーカ5に含まれる複数のサブマーカ6の属性がそれぞれ異なっている場合に、特定部32は、比較対象画像に特定の属性のサブマーカ6(例えば、
図2(a)の円形状のサブマーカ6-1)の全体が含まれないときに、そのサブマーカ6の領域を遮蔽領域として特定してもよい。また、特定部32は、例えば、比較対象画像に特定の属性のサブマーカ6の一部が含まれない場合に、そのサブマーカ6の一部の領域を遮蔽領域としてもよい。この場合には、例えば、
図4で示される撮影画像のようにマーカ5の一部が遮蔽物50によって遮蔽されている際に、サブマーカ6-1の図中の左半分の領域を遮蔽領域として特定してもよい。マーカ5に含まれる複数のサブマーカ6の属性がそれぞれ異なっている場合には、特定部32は、例えば、撮影画像に含まれるサブマーカ6の属性と、マーカ5における複数のサブマーカ6の位置関係とを用いることによって、撮影画像に含まれないサブマーカ6の領域を特定することができる。また、特定部32は、例えば、比較対象画像に特定のサブマーカ6の少なくとも一部が含まれない場合に、比較対象画像において輪郭抽出を行い、比較対象画像に含まれない、その特定のサブマーカ6の少なくとも一部の領域と同じ輪郭内に含まれる領域を、遮蔽領域としてもよい。
【0022】
決定部33は、マーカ5の一部が遮蔽物によって遮蔽されている場合に、特定部32によって特定された遮蔽領域に基づいて、マーカ5の全体が撮影されるようにするためのカメラ部2の移動方向を決定する。決定される移動方向は、例えば、移動の向きであってもよく、移動後のカメラ部2の位置であってもよい。後者の場合でも、結果として、カメラ部2の移動の向きが決定されたことになるからである。特定された遮蔽領域に基づいた移動方向の決定は、例えば、遮蔽領域から、遮蔽されていないマーカ5の領域に向かう方向である移動方向を決定することによって行われてもよい。カメラ部2が、遮蔽領域から遮蔽されていないマーカ5の領域に向かう方向に移動することによって、マーカ5のより多くの領域を撮影することができるようになると考えられるからである。移動の向きや、移動後の位置は、例えば、ロボット1の座標系によって示されてもよい。移動方向の決定は、例えば、次のようにして行われてもよい。ここでは、
図4で示される撮影画像のように、サブマーカ6-1の一部、例えば、サブマーカ6の左半分が遮蔽物50によって遮蔽されている場合に、そのサブマーカ6-1の左半分の領域を遮蔽領域とし、右半分の領域を遮蔽されていない領域として移動方向を決定する処理について説明する。
【0023】
まず、
図5の左側で示されるサブマーカ6-1のように、遮蔽領域のピクセルを不可視ピクセルとし、遮蔽されていない領域のピクセルを可視ピクセルとする。
図5の右側では、カメラ20を上下左右の4方向にそれぞれ1ピクセル分だけ移動させた後の各ピクセルの状態の推定結果を示している。その移動に応じて可視ピクセルから不可視ピクセルに変更されるピクセルは、不可視変更ピクセルとなる。また、その移動に応じて不可視ピクセルから可視ピクセルに変更されるピクセルは、可視変更ピクセルとなる。また、その移動に応じて可視ピクセルか不可視ピクセルかが不明になるピクセルは、未知ピクセルとなる。
【0024】
例えば、カメラ20を1ピクセルだけ下方向に移動させると、サブマーカ6-1の下側の各ピクセルが未知ピクセルとなる。また、カメラ20を1ピクセルだけ左方向に移動させると、左側の各ピクセルが未知ピクセルになると共に、可視ピクセルの一部が不可視変更ピクセルとなる。また、カメラ20を1ピクセルだけ上方向に移動させると、上側の各ピクセルが未知ピクセルとなる。また、カメラ20を1ピクセルだけ右方向に移動させると、右側の各ピクセルが未知ピクセルになると共に、不可視ピクセルの一部が可視変更ピクセルとなる。
【0025】
そして、決定部33は、カメラ20を1ピクセル分だけ移動させた後のサブマーカ6-1の各ピクセルの状態において、可視変更ピクセルが最も多い方向をカメラ部2の移動方向に決定してもよい。
図5の例では、可視変更ピクセルが最も多いのは、カメラ20が右方向に移動した場合であるため、決定部33は、カメラ部2の移動方向を右方向に決定してもよい。なお、決定部33は、例えば、カメラ20を上下左右だけでなく、斜め方向にも移動させる場合に、移動の前後における可視ピクセル及び不可視ピクセルの変化を特定し、可視変更ピクセルが最も多い方向をカメラ部2の移動方向に決定してもよい。
【0026】
なお、このようにして決定された移動方向は、撮影画像における移動方向、すなわちカメラ20の座標系における移動方向である。したがって、決定部33は、このカメラ20の座標系における移動方向を、ロボット1の座標系における移動方向に変換してもよい。通常、カメラ20の座標系と、ロボット1の座標系との関係(例えば、両座標系の間の変換を示す同次変換行列など)は既知であるため、決定部33は、その両座標系の関係を用いて、カメラ20の座標系における移動方向を、ロボット1の座標系における移動方向に変換してもよい。
【0027】
決定部33は、別の方法によって移動方向を決定してもよい。例えば、
図5の左側のサブマーカ6-1で示されるように可視ピクセルと不可視ピクセルとが特定された場合に、決定部33は、可視ピクセルの領域の重心の位置と、不可視ピクセルの領域の重心の位置とを特定し、不可視ピクセルの領域の重心の位置から、可視ピクセルの領域の重心の位置に向かう方向を、カメラ部2の移動方向としてもよい。
【0028】
ここでは、1個のサブマーカ6-1に含まれる可視ピクセルと不可視ピクセルとを用いて移動方向を決定する場合について説明したが、決定部33は、1個のマーカ5に含まれる可視ピクセルと、不可視ピクセルとを用いて、同様にして、移動方向を決定してもよい。決定された移動方向における移動量は、例えば、あらかじめ決まっていてもよく、または、決定部33によって決定されてもよい。前者の場合には、例えば、あらかじめ決められた移動量に応じたカメラ部2の移動が繰り返されることによって、マーカ5の全体が撮影画像に含まれるようになってもよい。また、後者の場合には、決定部33によって決定される移動量は、例えば、マーカ5が、遮蔽物で遮蔽されている割合に応じて決められてもよい。一例として、マーカ5における遮蔽物で遮蔽されている割合が大きいほど、決定される移動量は大きくなってもよい。
【0029】
また、決定部33は、例えば、カメラ部2の向きも決定してもよい。カメラ部2の向きは、例えば、カメラ20の光軸の向きであってもよい。決定部33は、一例として、マーカ5が撮影画像の中心に位置するようにカメラ部2の向きを決定してもよい。カメラ部2の向きは、例えば、ロボット1の座標系におけるカメラ部2の姿勢を決定することによって行われてもよい。また、マーカ5の全体が撮影画像に含まれる場合であっても、決定部33は、例えば、マーカ5の移動に応じてカメラ部2の移動方向を決定してもよい。この場合には、一例として、マーカ5とカメラ部2との相対的な位置関係が一定となるように、カメラ部2の移動方向が決定されてもよい。マーカ5とカメラ部2との相対的な位置関係は、例えば、位置取得部36によって取得された、後述するマーカ5の座標系とカメラ部2の座標系との間の変換を示す同次変換行列を用いて特定されてもよい。
【0030】
制御部34は、決定部33によって決定された移動方向にカメラ部2が移動するようにロボット1を制御する。制御部34は、例えば、あらかじめ決められた移動量、または、決定部33によって決定された移動量に応じてカメラ部2が移動するように、ロボット1を制御してもよい。ロボット1の制御は、例えば、マニピュレータ10の各関節の角度の制御であってもよい。例えば、ロボット1の座標系における移動方向及び移動量が決まっている場合には、制御部34は、例えば、移動後のカメラ部2の位置に応じたマニピュレータ10の各関節の角度を逆運動学によって算出し、各関節の角度が算出した値となるように、マニピュレータ10の各関節のモータを制御してもよい。
【0031】
蓄積部35は、カメラ部2の位置の履歴を記憶部37に蓄積する。蓄積部35によって、カメラ部2の最新の位置の蓄積が繰り返されることによって、カメラ部2の位置の履歴が記憶部37で記憶されるようになってもよい。カメラ部2の位置は、例えば、ロボット1の座標系における位置であってもよい。蓄積部35は、カメラ部2の位置を制御部34から受け取ってもよい。蓄積部35は、例えば、カメラ部2の位置が所定の距離だけ移動するごとに、カメラ部2の位置を記憶部37に蓄積してもよく、定期的にカメラ部2の位置を記憶部37に蓄積してもよい。蓄積部35によって蓄積されたカメラ部2の位置の履歴は、例えば、決定部33によって用いられてもよい。決定部33は、マーカ5の全体が遮蔽された場合に、蓄積部35によって蓄積されたカメラ部2の位置の履歴によって示される最新の移動が継続されるように、カメラ部2の移動方向を決定してもよい。マーカ5の全体が遮蔽された場合とは、例えば、特定部32によって撮影画像中のマーカ5を検出できない場合であってもよい。また、カメラ部2の位置は、例えば、ロボット1の座標系におけるカメラ部2の位置であってもよい。より具体的には、決定部33は、蓄積されたカメラ部2の位置の履歴のうち、最新の所定の時間分の履歴、または最新の所定の距離分の履歴を外挿することによって、カメラ部2の移動方向を決定してもよい。
【0032】
位置取得部36は、撮影画像取得部31によって取得されたマーカ5の撮影画像を用いて、マーカ5に応じた位置を取得する。また、マーカ5に応じた位置と共に、マーカ5に応じた姿勢も取得されてもよい。この位置や姿勢は、通常、実空間における位置や姿勢である。実空間における位置や姿勢は、一例として、ロボット1の座標系における位置や姿勢であってもよい。本実施の形態では、この場合について主に説明する。マーカ5に応じた位置や姿勢は、例えば、マーカ5の位置や姿勢であってもよく、マーカ5と所定の位置関係にある箇所の位置や姿勢であってもよい。前者の場合には、例えば、マーカ5の重心の位置P0や、マーカ5の法線方向の姿勢(角度)が取得されてもよい。後者の場合には、例えば、
図3で示されるように支持体7で支持されているマーカ5に応じて、支持体7の棒状部材7bにおける先端部7cの位置、及び棒状部材7bの長手方向の姿勢が取得されてもよい。
【0033】
位置取得部36は、例えば、撮影画像に含まれるマーカ5の3個以上の特徴点を用いて、マーカ5に応じた位置や姿勢を取得してもよい。この場合には、例えば、マーカ5の3個以上の特徴点間の距離は既知であってもよい。より具体的には、位置取得部36は、撮影画像に含まれる3個以上の特徴点を用いることによって、カメラ20の座標系と、マーカ5の座標系との間の変換を示す同次変換行列を取得してもよい。なお、特徴点を用いた同次変換行列の取得については公知であるため、その詳細な説明を省略する。また、上記したように、カメラ20の座標系と、ロボット1の座標系との間の変換を示す同次変換行列は既知であるため、位置取得部36は、マーカ5の座標系と、ロボット1の座標系との間の変換を示す同次変換行列を取得することができる。この同次変換行列を用いることによって、位置取得部36は、例えば、マーカ5の位置や姿勢を取得したり、マーカ5と、あらかじめ決められた位置関係にある箇所(例えば、支持体7の先端部7cなど)の位置や姿勢を取得したりすることができる。位置取得部36によって取得されたマーカ5に応じた位置や姿勢は、記憶部37に蓄積されてもよい。
【0034】
記憶部37では、例えば、カメラ部2の位置の履歴や、位置取得部36によって取得されたマーカ5に応じた位置や姿勢が記憶されてもよい。また、撮影画像取得部31によって取得された撮影画像や、各処理において用いられる情報、例えば、カメラ20の座標系とロボット1の座標系との関係を示す情報などが記憶部37で記憶されていてもよい。記憶部37に情報が記憶される過程は問わない。例えば、蓄積部35や位置取得部36などによって情報が記憶部37に蓄積されてもよく、記録媒体を介して情報が記憶部37で記憶されるようになってもよく、通信回線等を介して送信された情報が記憶部37で記憶されるようになってもよく、または、入力デバイスを介して入力された情報が記憶部37で記憶されるようになってもよい。記憶部37は、不揮発性の記録媒体によって実現されることが好適であるが、揮発性の記録媒体によって実現されてもよい。記録媒体は、例えば、半導体メモリや磁気ディスクなどであってもよい。
【0035】
出力部38は、例えば、位置取得部36によって取得されたマーカ5に応じた位置や姿勢を出力してもよい。また、出力部38は、その他の情報、例えば、撮影画像取得部31によって取得された撮影画像などを出力してもよい。出力部38は、例えば、出力の指示が制御装置3で受け付けられた際に、指示された情報を出力してもよい。ここで、この出力は、例えば、表示デバイス(例えば、液晶ディスプレイや有機ELディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、出力部38は、出力を行うデバイス(例えば、表示デバイスや通信デバイスなど)を含んでもよく、または含まなくてもよい。また、出力部38は、ハードウェアによって実現されてもよく、または、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【0036】
なお、特定部32は、例えば、位置取得部36によって取得されたマーカ5の座標系と、カメラ20の座標系との関係を示す情報を用いて、マーカ5の画像である基準画像(例えば、
図2(a)のような画像など)を変換して、撮影画像に含まれるマーカ5の画像を再現し、その再現したマーカ5の画像と、撮影画像に含まれるマーカ5とを比較することによって、遮蔽領域を特定してもよい。
【0037】
また、決定部33は、例えば、マーカ5の座標系において、移動方向を決定してもよい。例えば、
図4で示されるようにマーカ5の一部が遮蔽物50によって隠れている場合に、決定部33は、
図4のマーカにおいて、左側から右側に向かう方向の移動方向を決定してもよい。この場合には、決定部33は、例えば、位置取得部36によって取得されたマーカ5の座標系と、カメラ20の座標系との関係を示す情報、及び既知であるカメラ20の座標系と、ロボット1の座標系との関係を示す情報を用いて、マーカ5の座標系における移動方向を、ロボット1の座標系における移動方向に変換してもよい。
【0038】
次に、ロボット制御システム100の動作について
図6のフローチャートを用いて説明する。
【0039】
(ステップS101)撮影画像取得部31は、撮影画像を取得するかどうか判断する。そして、撮影画像を取得する場合には、ステップS102に進み、そうでない場合には、撮影画像を取得すると判断するまで、ステップS101の処理を繰り返す。なお、撮影画像取得部31は、例えば、撮影画像を取得すると定期的に判断してもよい。
【0040】
(ステップS102)撮影画像取得部31は、カメラ20から撮影画像を取得する。
【0041】
(ステップS103)位置取得部36は、取得された撮影画像に含まれるマーカ5を特定し、その特定したマーカ5の特徴点を用いて、マーカ5に応じた位置や姿勢を取得する。この取得された位置や姿勢は、例えば、記憶部37に蓄積されてもよい。なお、撮影画像にマーカ5が含まれない場合には、この処理はスキップされてもよい。
【0042】
(ステップS104)特定部32は、取得された撮影画像に含まれるマーカ5を特定し、そのマーカ5の遮蔽領域を特定する。なお、マーカ5の全体が撮影画像に含まれている場合には、このステップはスキップされてもよい。また、撮影画像にマーカ5が含まれない場合には、マーカ5の全体が遮蔽されているとされてもよい。
【0043】
(ステップS105)決定部33は、ステップS104で遮蔽領域が特定されたかどうか判断する。そして、遮蔽領域が特定された場合には、ステップS106に進み、そうでない場合、すなわちマーカ5の全体が撮影画像に含まれている場合には、ステップS101に戻る。なお、マーカ5の全体が遮蔽されている場合には、遮蔽領域が特定されたとして、ステップS106に進むものとする。
【0044】
(ステップS106)決定部33は、マーカ5の全体が遮蔽されているかどうか判断する。そして、マーカ5の全体が遮蔽されている場合、すなわち撮影画像にマーカ5が含まれない場合には、ステップS108に進み、そうでない場合には、ステップS107に進む。
【0045】
(ステップS107)決定部33は、特定された遮蔽領域に基づいて、マーカ5の全体が撮影されるようにするためのカメラ部2の移動方向を決定する。
【0046】
(ステップS108)決定部33は、蓄積部35によって蓄積されたカメラ部2の位置の履歴によって示される最新の移動が継続されるように、カメラ部2の移動方向を決定する。
【0047】
(ステップS109)制御部34は、決定部33によって決定された移動方向にカメラ部2が移動するようにロボット1を制御する。それに応じて、ロボット1は、カメラ部2を移動させる。
【0048】
(ステップS110)蓄積部35は、移動後のカメラ部2の位置を記憶部37に蓄積する。そして、ステップS101に戻る。
【0049】
なお、
図6のフローチャートでは、遮蔽領域がない場合に、ロボット1の制御が行われずに撮影画像の取得が繰り返されるとしているが、そうでなくてもよい。遮蔽領域がない場合でも、撮影画像においてマーカ5の位置が中央付近となるように、カメラ20の位置や方向が変化するようにロボット1が制御されてもよい。また、
図6のフローチャートには含まれないが、出力部38は、例えば、記憶部37で記憶されている位置や姿勢の出力の指示が制御装置3で受け付けられることに応じて、位置や姿勢を出力してもよい。
図6のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。また、
図6のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0050】
次に、本実施の形態によるロボット制御システム100の動作について、具体例を用いて説明する。この具体例では、溶接経路を
図3で示される支持体7を用いて教示する場合について説明する。この場合には、教示の作業を行う作業者は、支持体7を手で持って、支持体7の先端部7cが溶接経路の位置となり、棒状部材7bの姿勢が溶接トーチの先端の姿勢となるように支持体7を移動させてもよい。なお、ロボット制御システム100が用いられる際には、カメラ20の向きが、マーカ5を撮影できる向きとなるように調整されていてもよい。
【0051】
カメラ20によって撮影された撮影画像は、制御装置3の撮影画像取得部31によって定期的に取得され、特定部32、及び位置取得部36に渡される(ステップS101、S102)。撮影画像を受け取ると、位置取得部36は、撮影画像に含まれるマーカ5を特定し、そのマーカ5の特徴点を用いて、支持体7の先端部7cの位置、及び支持体7の棒状部材7bの姿勢の組を記憶部37に蓄積する(ステップS103)。また、特定部32は、撮影画像に含まれるマーカ5を特定し、そのマーカ5の遮蔽領域を特定する(ステップS104)。この場合には、マーカ5に遮蔽された領域はなかったとする。すると、ロボット1は制御されないで、撮影画像の取得と、位置や姿勢の取得の処理が繰り返されることになる(ステップS101~S105)。なお、この場合にも、上記したように、撮影画像においてマーカ5の位置が中央付近となるようにロボット1が制御されてもよい。
【0052】
作業者が支持体7を移動させている際に、マーカ5の一部が遮蔽物によって遮蔽されたとする。すると、撮影画像においてマーカ5の遮蔽領域が特定され(ステップS101~S104)、それに応じて、カメラ部2の移動方向が決定される(ステップS105~S107)。この移動方向の決定は、例えば、
図5を用いて説明したように行われてもよい。そして、制御部34は、決定された移動方向にカメラ部2が移動するようにロボット1と制御する(ステップS109)。また、蓄積部35は、移動後のカメラ部2の位置を記憶部37に蓄積する(ステップS110)。このカメラ部2の移動に応じてマーカ5の遮蔽領域がなくなれば、撮影画像の取得などの処理が繰り返されることになる(ステップS101~S105)。一方、移動後のカメラ部2の位置においても、マーカ5の一部が遮蔽されている場合には、カメラ部2の移動等の処理が繰り返されることになる(ステップS101~S107、S109、S110)。
【0053】
また、作業者が支持体7を移動させている際に、マーカ5の全体が遮蔽物によって遮蔽された場合には、決定部33は、記憶部37で記憶されているカメラ部2の位置の履歴を用いて、今後のカメラ部2の移動方向を推定する。そして、制御部34は、その推定された移動方向にカメラ部2が移動するようにロボット1を制御し、その移動後の位置が蓄積される(ステップS101~S106、S108~S110)。例えば、遮蔽物によってマーカ5が徐々に遮蔽されていき、最終的にマーカ5の全体が遮蔽された場合には、このような処理が行われることによって、再度、マーカ5を撮影することができるようになる。
【0054】
このようにして、マーカ5の位置や姿勢を順次、記録することによって、溶接経路に関する教示データが蓄積されることになる。そして、出力部38が、その教示データを出力することによって、外部の装置において、その教示データが用いられてもよく、または、マニピュレータ10が溶接用のものである場合には、制御部34が、その教示データに応じてロボット1を制御することによって、溶接作業が行われてもよい。後者の場合には、例えば、ロボット制御システム100に溶接電源等の溶接に必要な構成が含まれていてもよい。
【0055】
以上のように、本実施の形態によるロボット制御システム100によれば、移動するマーカ5を継続して撮影することができるようにすることができ、その結果として、マーカ5に応じた位置や姿勢を継続して記録することができるようになる。マーカ5を撮影できなくなる場合であっても、マーカ5の全体が瞬間的に撮影できなくなるのではなく、マーカ5の一部が徐々に隠れていくことになると考えられる。そのため、マーカ5の一部が隠れ始めた場合に、カメラ20によって撮影できるマーカ5の領域を拡大するようにロボット1を制御することによって、マーカ5の撮影や、位置や姿勢の取得を継続できるようになる。さらに、マーカ5の全体が遮蔽された場合であっても、カメラ部2の位置の履歴を用いることによって、マーカ5を再度、撮影できるようにカメラ部2を移動させることもできる。また、マーカ5の継続した撮影を、上記特許文献1のように基準点を事前に準備することなく実現できるため、ユーザの利便性が向上されることになる。
【0056】
なお、本実施の形態では、カメラ部2が撮影画像を撮影するカメラ20のみを有する場合について主に説明したが、カメラ部2は、深度画像を取得する深度カメラをさらに有していてもよい。また、カメラ20と深度カメラとは、同じ領域について撮影画像や深度画像を取得することが好適である。すなわち、撮影画像における各位置において、深度画像によって距離(深度)を特定できることが好適である。深度カメラの種類は問わないが、例えば、ステレオカメラによって距離を測定するものであってもよく、ToF(Time of Flight)によって距離を測定するものであってもよく、その他の方法によって距離を測定するものであってもよい。例えば、カメラ20及び深度カメラがステレオカメラである場合には、撮影画像を取得するカメラ20と深度カメラとは、一体に構成されていてもよい。
【0057】
カメラ部2が深度カメラを有する場合には、位置取得部36は、例えば、撮影画像を用いたマーカ5に応じた位置や姿勢の取得と、深度カメラによって取得された深度画像を用いたマーカ5に応じた位置や姿勢の取得との両方を行ってもよい。そして、両者の位置や姿勢の代表値を最終的な位置や姿勢としてもよく、両者について、それぞれの信頼度に応じた重み付け加算を行った結果を最終的な位置や姿勢としてもよい。代表値は、例えば、平均値であってもよい。また、信頼度は、例えば、取得された位置や姿勢を用いて再現したマーカ5と、撮影画像や深度画像に含まれるマーカ5との差が大きいほど、信頼度が低くなるように取得されてもよい。
【0058】
カメラ部2が深度カメラを有する場合には、決定部33は、深度画像によって示されるマーカ5の遮蔽物までの距離が長いほど、カメラ部2の移動量が大きくなるように、カメラ部2の移動量をも決定してもよい。遮蔽物までの距離とは、特定部32によって特定された遮蔽領域に対応する遮蔽物までの距離であってもよい。この場合には、例えば、遮蔽物によって遮蔽されているマーカ5の領域が同じであっても、カメラ部2から遮蔽物までの距離が長いほど、カメラ部2の移動量が大きくなり、カメラ部2から遮蔽物までの距離が短いほど、カメラ部2の移動量が短くなるように移動量が決定されてもよい。カメラ部2により近い位置に存在する遮蔽物については、より短い移動量によって回避することができ、より遠い位置に存在する遮蔽物については、より長い移動量によって回避することができると考えられるからである。
【0059】
また、本実施の形態では、ロボット1がマニピュレータ10のみを有している場合について主に説明したが、そうでなくてもよい。ロボット1は、マニピュレータ10の基端側の端部を水平方向に移動させることができるXYステージや、マニピュレータ10の基端側の端部を水平方向及び垂直方向に移動させることができるXYZステージなどをさらに有していてもよい。そして、制御部34は、このXYステージやXYZステージなども制御してもよい。この場合には、XYステージやXYZステージを用いることによって、マニピュレータ10に装着されているカメラ部2を、より広い範囲で移動させることができるようになる。
【0060】
また、本実施の形態では、平面状のマーカ5について主に説明したが、立体的なマーカ5が用いられてもよい。
図7(a)~
図7(c)は、それぞれ立体的なマーカ5の一例を示す平面図、正面図、斜視図である。立体的なマーカ5は、例えば、球形状のサブマーカ6-9~6-12と、サブマーカ6-9~6-12を支持する支持体8とを有してもよい。支持体8は、放射状に延びており、先端側の端部でサブマーカ6をそれぞれ支持する支持部8aと、支持部8aの中心に接続された棒状部材8bとを備えてもよい。また、立体的なマーカ5が有する複数の立体的なサブマーカ6も、それぞれ異なる属性を有していてもよい。属性は、例えば、色、形状、大きさ、模様などであってもよい。
図7において、例えば、各サブマーカ6の色や模様が異なっていてもよい。このような立体的なマーカ5を用いた場合でも、マーカ5の撮影画像を用いて、マーカ5に応じた位置や姿勢を取得することができる。マーカ5に応じた位置や姿勢は、例えば、棒状部材8bの先端部8cの位置や、棒状部材8bの長手方向の姿勢であってもよい。立体的なマーカ5を用いた場合にも、平面状のマーカ5と同様に、ロボット1の制御や、位置や姿勢の取得を行うことができる。例えば、
図7で示される立体的なマーカ5が用いられる場合には、例えば、撮影画像において、球形状のサブマーカ6に対応する円形状または楕円形状の中心の位置が特徴点として用いられてもよい。この場合にも、立体的なマーカ5を用いて、3個以上の特徴点を特定できることが好適である。また、立体的なマーカ5が有するサブマーカ6の個数は4個以外の個数、例えば、2個や3個であってもよく、5個以上であってもよい。また、
図7で示される立体的なマーカ5と異なる形状の立体的なマーカ5が用いられてもよい。
【0061】
また、本実施の形態では、マーカ5が複数のサブマーカ6を有する場合について主に説明したが、そうでなくてもよい。マーカ5は、複数のサブマーカを有していなくてもよい。例えば、平面状のマーカ5は、1個の図形(例えば、多角形状の図形など)を有しており、その図形の頂点などが特徴点として用いられてもよい。また、その1個の図形を用いて、
図5の説明と同様にして移動方向が決定されてもよい。
【0062】
また、本実施の形態では、カメラ部2の位置の履歴が蓄積されており、マーカ5の全体が遮蔽された際に、その蓄積されたカメラ部2の位置の履歴を用いて移動方向が決定される場合について説明したが、そうでなくてもよい。例えば、マーカ5の全体が遮蔽された場合に、制御部34は、ランダムにカメラ部2の位置を変化させることによって、マーカ5が撮影されるようにしてもよい。このように、カメラ部2の位置の履歴が用いられない場合には、制御装置3は、蓄積部35を備えていなくてもよい。
【0063】
また、マーカ5の全体が遮蔽された場合に、決定部33は、例えば、蓄積されたカメラ部2の位置の履歴以外を用いてカメラ部2の移動方向を決定してもよい。例えば、決定部33は、マーカ5の移動方向を推定することによって、カメラ部2の移動方向を決定してもよい。この場合には、決定部33は、例えば、記憶部37で記憶されているマーカ5の位置の履歴を用いて、マーカ5の現在の位置を推定し、その推定した現在の位置から、記憶部37で記憶されているマーカ5の最新の位置に向かう方向を、カメラ部2の移動方向に決定してもよい。記憶部37で記憶されているマーカ5の位置は、例えば、位置取得部36によって取得された位置であってもよい。
【0064】
また、本実施の形態では、マーカ5に応じた位置や姿勢が取得される場合について主に説明したが、そうでなくてもよい。マーカ5の応じた位置等の取得が行われない場合には、制御装置3は、位置取得部36を備えていなくてもよい。この場合には、マーカ5を継続して撮影するために制御装置3が用いられてもよい。
【0065】
また、本実施の形態では、位置取得部36によって取得された位置等を出力する出力部38を制御装置3が備える場合について主に説明したが、そうでなくてもよい。情報の出力が行われない場合には、制御装置3は、出力部38を有していなくてもよい。
【0066】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【0067】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【0068】
また、以上の実施の形態は、本発明を具体的に実施するための例示であって、本発明の技術的範囲を制限するものではない。本発明の技術的範囲は、実施の形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲の文言上の範囲及び均等の意味の範囲内での変更が含まれることが意図される。
【符号の説明】
【0069】
1 ロボット、2 カメラ部、3 制御装置、5 マーカ、6 サブマーカ、10 マニピュレータ、20 カメラ、31 撮影画像取得部、32 特定部、33 決定部、34 制御部、35 蓄積部、36 位置取得部