ロボットシステム
【課題】カメラ、制御装置および通信手段の能力に依存することなく、ロボットに搭載されたカメラの正確な位置合わせが容易なロボットシステムを提供する。
【解決手段】画像合成部36は、記憶部34に記憶されている平面画像データ40に基づいて合成画像55を作成する。そのため、カメラ19、制御装置12あるいは通信部13の能力によって撮影している画像と表示している画像との間に時間差が生じるときでも、操作者30は表示部37に表示されている合成画像55を参照してロボット11を操作可能である。データ更新部38は、新たな平面画像データ40のための記憶領域が不足するとき、記憶部34のデータグループのうち属する平面画像データ40の数が最も多い最多データグループ62を選択し、この最多データグループ62から合成画像55の作成のために選択された選択時刻が最も古い平面画像データ65を削除する。
【解決手段】画像合成部36は、記憶部34に記憶されている平面画像データ40に基づいて合成画像55を作成する。そのため、カメラ19、制御装置12あるいは通信部13の能力によって撮影している画像と表示している画像との間に時間差が生じるときでも、操作者30は表示部37に表示されている合成画像55を参照してロボット11を操作可能である。データ更新部38は、新たな平面画像データ40のための記憶領域が不足するとき、記憶部34のデータグループのうち属する平面画像データ40の数が最も多い最多データグループ62を選択し、この最多データグループ62から合成画像55の作成のために選択された選択時刻が最も古い平面画像データ65を削除する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステムに関し、特に対象物品を撮影するカメラが設けられたロボットシステムに関する。
【背景技術】
【0002】
従来、例えば対象物品の外観などを検査する場合、アームの先端にカメラを有するロボットが利用される。対象物品は、ロボットのアームの先端に搭載されたカメラによって撮影される。このようなカメラが搭載されたロボットを備えるロボットシステムの場合、検査の対象となる位置に正確にカメラが移動するように設定する、いわゆるティーチングを実施する必要がある(カメラのティーチングについて特許文献1参照)。カメラの位置は、カメラの外観的な位置だけでは正確性に欠けるため、カメラで撮影された撮影画像に基づいて適切であるか否かが判断される。
【0003】
しかしながら、例えばカメラや制御装置の性能、あるいはカメラと制御装置とを接続する通信手段によっては、撮影画像の伝送および取得に時間を要し、カメラによる画像の撮影と表示手段による画像の表示との間に時間的な差が生じることがある。このように実際の画像の撮影と表示との間に時間的な差が生じると、制御装置からロボットに対する操作の指示にも遅れが生じる。そのため、ロボットに搭載されたカメラの操作に過剰な入力が行われ、いわゆるオーバーシュートやアンダーシュートが生じやすくなる。その結果、ロボットに搭載されたカメラの位置の微調整が困難になるという問題が生じる。一方、カメラの位置を精密に調整するためには、カメラ、制御装置および通信手段に高い性能が要求される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9−321080号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
そこで、本発明の目的は、カメラ、制御装置および通信手段の能力に依存することなく、ロボットに搭載されたカメラの正確な位置合わせが容易なロボットシステムを提供することにある。
【課題を解決するための手段】
【0006】
請求項1、2または3記載の発明では、画像合成手段は、グループ化された複数のデータグループとして記憶手段に記憶されている平面画像データに基づいて合成画像を作成する。ロボットに搭載されたカメラの位置を微調整する場合、その直前に少なくとも一枚は対象物品を含む撮影画像が取得されている。画像合成手段は、この対象物品を含む撮影画像を用いて、現在カメラで撮影している画像に近似する合成画像を作成する。そのため、現在カメラで撮影している画像が表示手段に表示できないとき、すなわちカメラ、制御装置あるいは通信手段の能力によってカメラで撮影している画像と表示手段に表示している画像との間に時間差が生じるときでも、カメラで現在撮影した画像に対応して表示手段に表示されている合成画像を参照してロボットへ操作の指示が可能となる。したがって、カメラ、制御装置および通信手段の能力に依存することなく、ロボットに搭載されたカメラの正確な位置合わせを容易に行うことができる。
【0007】
また、請求項1記載の発明では、データ更新手段は、記憶手段に新たな平面画像データを記憶するための記憶領域が不足するとき、所定の平面画像データを削除して、空いた記憶領域に新たな平面画像データを記憶する。すなわち、データ更新手段は、記憶手段に複数記憶されているデータグループのうち属する平面画像データの数が最も多い最多データグループから合成画像の作成のために選択された選択時刻が最も古い平面画像データを削除する。属する平面画像データの数が最も多い最多データグループは、焦点座標が近似する平面画像データ、すなわち類似の画像を多く含んでいる可能性が高い。そして、その中でも最も選択時刻が古い、すなわち選択頻度が最も低い平面画像データが削除される。つまり、合成画像の作成に対する寄与度が低い平面画像データが削除され、新たな平面画像データが追加される。これにより、記憶領域を増大させなくても、ロボットの操作に必要な合成画像の基となる平面画像データが確保される。また、上述の条件に基づいて平面画像データを削除することにより、合成画像の作成に対する寄与度が低い平面画像データが減少し、合成画像の作成のために所望の平面画像データを選択する時間は短縮される。したがって、迅速に作成される合成画像によって撮影画像を代用することができ、ロボットに搭載されたカメラの正確な位置合わせを容易に行うことができる。
【0008】
請求項2記載の発明では、データ更新手段は、記憶手段に新たな平面画像データを記憶するための記憶領域が不足するとき、所定の平面画像データを削除して、空いた記憶領域に新たな平面画像データを記憶する。すなわち、データ更新手段は、記憶手段に複数記憶されているデータグループのうち新たな平面画像データが属する特定データグループを選択する。そして、データ更新手段は、特定データグループに属する全ての平面画像データにおける焦点座標の平均値に焦点座標が最も近い平面画像データを削除する。特定データグループの焦点座標の平均値に近い範囲には、焦点座標が近似した多くの平面画像データが存在している可能性が高い。そのため、焦点座標が特定データグループにおける平均値に最も近い平面画像データは、焦点座標が近い他の平面画像データによって代用可能と考えられる。すなわち、合成画像の作成に対する影響が小さい平面画像データが削除され、新たな平面画像データが追加される。これにより、記憶領域を増大させなくても、ロボットの操作に必要な合成画像の基となる平面画像データが確保される。また、合成画像の作成への影響が小さい平面画像データを削除することにより、合成画像の作成に与える影響が小さい平面画像データが減少し、合成画像の作成のために所望の平面画像データを選択する時間は短縮される。したがって、迅速に作成される合成画像によって撮影画像を代用することができ、ロボットに搭載されたカメラの正確な位置合わせを容易に行うことができる。
【0009】
請求項3記載の発明では、データ更新手段は、記憶手段に新たな平面画像データを記憶するための記憶領域が不足するとき、所定の平面画像データを削除して、空いた記憶領域に新たな平面画像データを記憶する。すなわち、データ更新手段は、記憶手段に複数記憶されているデータグループのうち新たな平面画像データが属する特定データグループを選択する。そして、データ更新手段は、特定データグループに平面画像データのうち撮影時刻が最も古い画像を削除する。撮影時刻が最も古い平面画像データは、その後の画像の撮影によって近い位置で平面画像データが取得されている可能性が高い。そのため、特定データグループにおいて最も古い平面画像データは、その後に撮影された平面画像データによって代用可能と考えられる。すなわち、合成画像の作成に対する影響が小さい平面画像データが削除され、新たな平面画像データが追加される。これにより、記憶領域を増大させなくても、ロボットの操作に必要な合成画像の基となる平面画像データが確保される。また、合成画像の作成への影響が小さい平面画像データを削除することにより、合成画像の作成に与える影響が小さい平面画像データが減少し、合成画像の作成のために所望の平面画像データを選択する時間は短縮される。したがって、迅速に作成される合成画像によって撮影画像を代用することができ、ロボットに搭載されたカメラの正確な位置合わせを容易に行うことができる。
【図面の簡単な説明】
【0010】
【図1】本発明の第1実施形態によるロボットシステムを示すブロック図
【図2】第1実施形態によるロボットシステムを示す概略図
【図3】平面画像データのデータ構造を示す模式図
【図4】カメラ、ワークおよび視野平面の関係を示す模式図
【図5】カメラ、ワーク、視野平面、交差画像および合成画像の関係を示す模式図
【図6】第1実施形態による表示部の表示を示す模式図
【図7】第1実施形態によるロボットシステムにおけるデータグループを示す模式図
【図8】第1実施形態によるロボットシステムにおける処理の流れを示す概略図
【図9】第1実施形態によるロボットシステムにおけるデータ更新の処理の流れを示す概略図
【図10】第2実施形態によるロボットシステムにおけるデータ更新の処理の流れを示す概略図
【図11】第2実施形態によるロボットシステムにおけるデータグループを示す模式図
【図12】第3実施形態によるロボットシステムにおけるデータ更新の処理の流れを示す概略図
【図13】第3実施形態によるロボットシステムにおけるデータグループを示す模式図
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を図面に基づいて説明する。なお、複数の実施形態において実質的に同一の構成部位には同一の符号を付し、説明を省略する。
(第1実施形態)
第1実施形態によるロボットシステムを図1および図2に示す。ロボットシステム10は、ロボット11、制御装置12および通信手段としての通信部13を備える。第1実施形態のロボット11は、例えば対象物品であるワーク14の組み付けが正しく行われているか否かなどを検査するための視覚検査に適用される。ロボット11は、制御装置12とは遠隔に配置された検査設備15に設けられている。検査設備15は、例えばトンネル状に形成され、下部に搬送部16を有している。ワーク14は、この搬送部16によって検査設備15の所定の位置へ運搬される。ワーク14が所定の位置まで運搬されると、搬送部16は停止する。これにより、ワーク14は、ロボット11によって外観の検査が行われる。ロボット11は、検査設備15の天側に設けられている。
【0012】
ロボット11は、例えば六軸の垂直多関節型のロボットとして構成されている。ロボット11は、周知の通り、アーム17を有している。アーム17は、それぞれアクチュエータであるサーボモータ18などからの駆動力で駆動される。アーム17は、先端にエンドエフェクタとしてのカメラ19を有している。サーボモータ18からアーム17のカメラ19までの間には、図示しない減速機構やリンクなどの駆動力伝達機構が設けられている。これにより、先端にカメラ19が設けられているアーム17は、サーボモータ18からの駆動力によって駆動される。
【0013】
制御装置12は、ロボットコントローラ21および電子計算機であるパーソナルコンピュータ(以下、「パソコン」)22で構成されている。ロボットコントローラ21およびパソコン22は、図1に示すように制御装置12を構成している。制御装置12を構成するロボットコントローラ21とパソコン22とは、図2に示すようにロボットコントローラ21がロボット11の近傍にあるように互いに離れて配置してもよく、一体的に構成して近接して配置してもよい。制御装置12は、図1に示すように制御部23を有している。制御部23は、図示しないCPU、ROMおよびRAMなどからなるマイクロコンピュータを主体として構成されている。制御部23は、予め入力および記憶されたロボット制御プログラムに基づいてロボットコントローラ21のサーボ制御部24を経由してロボット11の各軸のサーボモータ18を駆動する。これにより、制御装置12は、ロボット11の動作を制御する。制御装置12は、パソコン22に接続されている入力部25を有している。入力部25は、例えばキーボード26、マウス27およびジョイスティック28などの手動で入力される機器、ならびにHDDやDVDなどの磁気的あるいは光学的な入力機器29などを有している。操作者30は、プログラミングソフトをパソコン22で実行することにより、アプリケーションに応じてロボット11の動作手順などを記述したロボット制御プログラムを作成可能である。この場合、操作者30は、アプリケーションに応じてパッケージ命令を組み合わせたり、修正を加えたりすることにより、比較的簡単にロボット制御プログラムを作成することができる。
【0014】
通信部13は、ロボット11と制御装置12との間を通信可能に接続している。本実施形態の場合、通信部13は、図2に示すようにロボット11とロボットコントローラ21とを接続する第一ケーブル31、およびロボットコントローラ21とパソコン22とを接続する第二ケーブル32を有し、ロボット11と制御装置12との間を有線によって接続している。なお、通信部13は、有線による通信に限らず、例えば無線による通信を採用してもよい。ロボット11と制御装置12との間を通信部13によって接続することにより、ロボット11の各軸を駆動するサーボモータ18およびワーク14を撮影するカメラ19は、制御装置12によって制御される。また、カメラ19で撮影された画像は、通信部13を経由して制御装置12へ送信される。
【0015】
制御装置12のロボットコントローラ21は、パソコン22で実行される検査プログラムにしたがって、ロボット11のアーム17の移動を制御する。搬送部16を流れるワーク14は、検査設備15の所定位置に停止すると、カメラ19によって撮影される。ロボットコントローラ21は、アーム17を駆動してカメラ19を予め設定された三次元的な位置や向きの異なる複数の目標点に移動させつつ撮影を実行する。ロボット11に取り付けられたカメラ19が駆動される目標点は、予めティーチングされ、位置データとしてロボットコントローラ21またはパソコン22に記憶されている。また、ティーチングの際には、ロボット11の進入禁止領域もあわせて設定される。
【0016】
カメラ19は、例えばCCDイメージセンサ(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)イメージセンサを有しており、ワーク14を撮影する。カメラ19は、撮影した画像を画素ごとの電気信号として通信部13を経由して制御装置12へ出力する。カメラ19は、例えば視野の大きさ、焦点あるいは絞りなどの撮影時の光学的な条件が自動で調整される。また、カメラ19が撮影する画像の座標系であるカメラ座標系とロボット11の位置の座標系であるロボット座標系とは、座標変換すなわちキャリブレーションによって互いに相関が設定されている。
【0017】
制御装置12は、上記に加え、図1に示すように平面画像データ作成部33、記憶部34、グループ特定部35、画像合成部36、表示部37およびデータ更新部38を備えている。これら平面画像データ作成部33、グループ特定部35、画像合成部36およびデータ更新部38は、制御部23で実行されるコンピュータプログラムによってソフトウェア的に機能する構成でもよく、ハードウェアとして機能する構成でもよい。また、本実施形態では、平面画像データ作成部33、記憶部34、グループ特定部35、画像合成部36、表示部37およびデータ更新部38をパソコン22に設ける例について説明しているが、機能の一部または全部をロボットコントローラ21に設けてもよい。
【0018】
平面画像データ作成部33は、図3に示すような平面画像データ40を作成する。平面画像データ40は、カメラ19で撮影した撮影画像の焦点座標41を中心として、カメラ19で撮影された撮影画像42と、この撮影画像42が撮影されたときの焦点座標41を示す座標データ43および撮影画像42を撮影した向きを示す方向データ44とを関連づけて作成される。平面画像データ作成部33は、通信部13を経由して画素ごとの電気信号から作成される撮影画像42をカメラ19から取得する。また、このとき、平面画像データ作成部33は、ロボット11またはロボットコントローラ21からアーム17の位置と相関するカメラ19の焦点座標41を座標データとして、およびアーム17の角度に相関する撮影画像42を撮影した向きを方向データとしてあわせて取得する。さらに、平面画像データ作成部33は、撮影画像42が撮影された時刻を時刻データ45として取得する。なお、図3は、平面画像データ40のデータ構造を模式的に示したものであり、実際の平面画像データ40とは異なる。
【0019】
記憶部34は、例えば不揮発性メモリやHDDなどを有している。記憶部34は、平面画像データ作成部33で作成された平面画像データ40を記憶する。この場合、グループ特定部35は、予め設定された設定範囲で近似する焦点座標を有する平面画像データ40をグループ化して複数のデータグループとして記憶部34へ記憶する。平面画像データ40は、ロボット11の可動領域の全体で取得される。そのため、グループ特定部35は、取得された平面画像データ40について、互いに焦点座標が近似するもの同士をグループ化して記憶部34に記憶する。なお、記憶部34は、制御部23のROMやRAMとともに構成してもよい。また、グループ特定部35によるグループ化は、焦点座標が近似するもの同士をグループ化するだけでなく、カメラ19で撮影する領域すなわち撮影対象となる空間を予め複数のグループ領域に分割し、そのグループ領域に含まれる焦点座標を有する平面画像データ40を一つのグループとするようなグループ化を行ってもよい。
【0020】
画像合成部36は、記憶部34に記憶されている平面画像データ40から合成画像を作成する。具体的には、画像合成部36は、記憶部34に記憶されている複数の平面画像データ40から選択平面画像データを選択する。選択平面画像データは、図4に示すようにカメラ19で撮影している仮想的な視野平面51を光軸延長方向へ移動させたときに、図5に示すようにこの視野平面51に交差する交差画像52、53、54の平面画像データである。すなわち、画像合成部36は、記憶部34に記憶されている複数の平面画像データから、視野平面51に交差する交差画像52、53、54の平面画像データを選択平面画像データとして選択する。そして、画像合成部36は、選択した選択した選択平面画像データに基づく交差画像52、53、54の焦点座標および交差画像52、53、54を撮影した向きを交差画像52、53、54が撮影されたときのまま、視野平面51に投影する。画像合成部36は、この視野平面51に投影した画像を撮影したワーク14の合成画像55として作成する。画像合成部36は、合成画像55を作成するとともに、交差画像52、53、54として選択平面画像データを選択した選択時刻を、選択した平面画像データに付与して記憶部34に記憶する。表示部37は、例えばパソコン22と一体または別体の液晶ディスプレイなどである。表示部37は、図6に示すようにカメラ19で撮影された画像、あるいは画像合成部36で作成された合成画像を表示画像371として表示する。
【0021】
データ更新部38は、記憶部34に記憶された平面画像データ40を更新しつつ記憶する。第1実施形態の場合、データ更新部38は、記憶部34に新たな平面画像データ40を記憶する記憶領域が不足するとき、データグループのうち属する平面画像データの数が最も多い最多データグループから選択時刻が最も古い平面画像データを削除して、空いた記憶領域に新たな平面画像データ40を記憶する。カメラ19は刻々と新たな画像を撮影するため、撮影された画像は次々に制御装置12へ送られる。一方、記憶部34の記憶領域は有限であるため、すべての平面画像データ40を記憶することはできない。そのため、データ更新部38は、記憶部34の記憶容量が不足するとき、最多データグループから選択時刻が最も古い平面画像データを削除する。
【0022】
平面画像データ作成部33で作成された平面画像データ40は、その焦点座標41に基づいてグループ特定部35によって例えば図7に示すようにデータグループ61、62、63のいずれかに特定され、記憶部34に記憶される。複数のデータグループ61、62、63のうち含まれる平面画像データが最多のものが最多データグループ62となる。そのため、最多データグループ62には、互いに焦点座標が近似する平面画像データ40が多く含まれていると考えられる。この最多データグループ62には、画像合成部36で選択された選択時期が最も古い平面画像データ65から最も新しい平面画像データ66まで含まれる。このうち選択された選択時刻が最も古い平面画像データ65は、最多データグループ62の中でも最も利用頻度が低く、焦点座標41が近似する他の平面画像データ40で代用可能であると考えられる。すなわち、最多データグループ62において最も選択時期の古い平面画像データ65は、画像合成部36における合成画像の作成への利用価値が低いと考えられる。そこで、データ更新部38は、記憶部34の記憶容量が不足するとき、最多データグループ62から選択時刻が最も古い平面画像データ65を削除し、記憶領域を確保する。データ更新部38は、この確保した記憶領域に取得した新たな平面画像データ40を記憶する。
【0023】
次に、上記の構成によるロボットシステム10の作動について図8に基づいて説明する。
ロボットシステム10は、検査対象であるワーク14の検査に先立って、ワーク14の撮影位置を設定するティーチングが実施される。ティーチングは、パソコン22で検査プログラムに含まれるティーチングプログラムを実行することにより実施される。操作者30は、パソコン22でティーチングプログラムを実行しつつ入力部25のジョイスティック28を操作することにより、ロボット11のアーム17に取り付けられたカメラ19を所定の撮影位置に移動させる。この場合、カメラ19は、数分の1または数十分の1秒ごとに画像を撮影する。そのため、カメラ19で撮影された撮影画像は、制御装置12の表示部37に動画として表示される。
【0024】
一方、カメラ19の性能、通信部13の通信速度、あるいは制御装置12の性能などによって、カメラ19で撮影している撮影画像と表示部37に表示している画像との間には、時間的なずれが生じる。例えばカメラ19を用いて焦点座標(x1,y1,z1)で撮影しているにも関わらず、表示部37には焦点座標(x0,y0,z0)で撮影された画像が表示される場合がある。操作者30は、表示部37に表示されている画像を見ながらロボット11を操作するため、このカメラ19での撮影と表示部37への表示との間に生じる時間的な差が拡大すると、入力部25であるジョイスティック28の操作と表示部37に表示されている画像との齟齬が大きくなる。その結果、入力部25であるジョイスティック28への入力が過大となってロボット11の動作にいわゆるオーバーシュートが生じたり、操作の違和感が増大する。そこで、第1実施形態では、図8に基づく処理によってカメラ19で撮影した画像と表示部37に表示される画像との差の低減を図っている。
【0025】
ロボット11のアーム17、すなわちアーム17に取り付けられたカメラ19は、操作者30による入力部25の操作によって移動する(S101)。入力部25からの入力は、制御装置12のパソコン22からロボットコントローラ21を経由してロボット11へ伝達される。ロボットコントローラ21は、入力部25からの入力に応じてサーボ制御部24によってロボット11のサーボモータ18を駆動する。これにより、ロボット11のアーム17は、サーボモータ18によって入力部25からの入力に対応する位置へ移動する。その結果、アーム17に取り付けられたカメラ19も、入力に対応する撮影位置へ移動する。
【0026】
カメラ19は、アーム17とともに移動しながら例えば数十分の1秒ごとなど所定の時間間隔でワーク14を撮影する(S102)。このとき、カメラ19はワーク14を撮影した撮影画像とともに、撮影画像の焦点座標および撮影した向きを取得する(S103)。カメラ19は、例えばロボットコントローラ21などから撮影画像の焦点座標および撮影した向きを取得する。カメラ19は、所定の時間間隔でワーク14が撮影されるごとに、撮影画像の焦点座標および撮影した向きを取得する。
【0027】
取得された撮影画像ならびにこの撮影画像の焦点位置および撮影した向きは、通信部13を経由して制御装置12へ転送される(S104)。平面画像データ作成部33は、カメラ19から通信部13を経由して撮影画像ならびにこの撮影画像の焦点座標および撮影した向きを取得して、平面画像データ40を作成する。平面画像データ作成部33は、図3に示すように焦点座標41を中心として、撮影画像42と、この撮影画像42の焦点座標である座標データ43および撮影画像42を撮影した向きである方向データ44とを関連づけて平面画像データ40を作成する。また、このとき、平面画像データ作成部33は、撮影画像42を撮影した時刻を時刻データとして平面画像データ40に加える。平面画像データ40が作成されると、画像合成部36は上記の撮影画像42が所定の時間内に制御装置12で取得されたか否かを判断する(S105)。すなわち、画像合成部36は、カメラ19でワーク14を撮影してから所定の時間内に、撮影されたワーク14の撮影画像42が制御装置12へ転送されたか否かを判断する。
【0028】
ワーク14を撮影した撮影画像がカメラ19での撮影から所定の時間内に制御装置12へ転送されると、カメラ19で撮影しているワーク14の撮影画像と表示部37に表示されている画像との間に生じる差は小さい。すなわち、カメラ19で撮影している撮影画像と表示部37に表示している画像との間の差は、操作者30が認識できない程度に小さくなる。この場合、上述のようなカメラ19が取り付けられたアーム17のオーバーシュートや操作の違和感はほとんど生じない。そのため、画像合成部36は、カメラ19で撮影した撮影画像のデータが撮影から所定の時間内に制御装置12で取得されたとき(S105:Yes)、カメラ19で撮影し制御装置12へ転送された撮影画像をそのまま表示部37に表示する(S106)。このとき、オーバーシュートや違和感を生じさせないための時間差は、例えば数ミリ秒以下程度である。平面画像データ40を構成するデータのうち、座標データ43、方向データ44および時刻データ45はテキストデータであるのに対し、撮影画像42は画像データである。そのため、座標データ43、方向データ44および時刻データ45は、撮影画像42に比較して短時間でカメラ19から制御装置12へ転送される。これにより、画像合成部36は、例えばカメラ19から転送された時刻データ45などに基づいて、カメラ19における画像の撮影から撮影画像42に係るデータの転送までの時間を取得する。
【0029】
一方、ワーク14を撮影した撮影画像がカメラ19での撮影から所定の時間内に制御装置12で取得されないと、カメラ19で撮影しているワーク14の撮影画像と表示部37に表示されている画像との間にはオーバーシュートや違和感を生じさせる差が生じる。そのため、画像合成部36は、カメラ19で撮影した撮影画像のデータが撮影から所定の時間内に制御装置12で取得されないとき(S105:No)、撮影画像の焦点座標41および撮影の向きに基づいて合成画像を作成する(S107)。
【0030】
上述のようにカメラ19での撮影画像の撮影から表示部37での撮影画像の表示までの時間に差が大きくなると、カメラ19の操作においてオーバーシュートなどの操作不良が生じやすくなる。そのため、画像合成部36は、撮影画像のデータがカメラ19での撮影から所定の時間内に制御装置12で取得されないとき、記憶部34に既に記憶している平面画像データを利用してカメラ19で撮影した撮影画像に対応する仮想的な合成画像を作成する。この場合、合成画像は、カメラ19で撮影した撮影画像と完全に一致する必要はなく、あくまでの入力部25からの入力によるカメラ19の操作においてオーバーシュートなどの操作不良が生じない程度の仮想的なものであればよい。
【0031】
具体的には、画像合成部36は次の手順で合成画像を作成する。画像合成部36は、図4に示すようにカメラ19で撮影している視野平面51を光軸延長方向へ移動させる。ここでカメラ19で撮影している視野平面51は、S104においてカメラ19から制御装置12へ転送される撮影画像42の視野平面51に対応する。画像合成部36は、記憶部34に記憶されている複数の平面画像データ40から、図5に示すようにこの視野平面51に交差する交差画像52、53、54の平面画像データを選択平面画像データとして選択する。すなわち、画像合成部36は、カメラ19の視野平面51に交差する交差画像52、53、54を選択し、この交差画像52、53、54の平面画像データを選択平面画像データとして設定する。そして、画像合成部36は、この選択された選択平面画像データに含まれている交差画像52、53、54の焦点座標に関する座標データおよび撮影した向きに関する方向データを取得する。ここで、交差画像52、53、54は、記憶部34に記憶されている撮影画像の平面画像データ40に基づいて選択される。そのため、選択された交差画像52、53、54に対応する平面画像データは、過去に撮影された際に取得された焦点座標データおよび方向データを含んでいる。画像合成部36は、取得した交差画像52、53、54を、この交差画像52、53、54が撮影されたときのまま視野平面51に投影して合成画像55を作成する。これにより、S102においてカメラ19で撮影された撮影画像と近似する合成画像55が擬似的に作成される。また、画像合成部36は、選択した交差画像52、53、54に対応する選択平面画像データに、図3に示すように選択した選択時刻を選択時刻データ46として付与して記憶部34に記憶させる。
【0032】
画像合成部36において合成画像55が作成されると、表示部37は作成された合成画像55を表示する(S108)。これにより、操作者30は、表示部37に表示されているS102において撮影した撮影画像に対応する合成画像55を参照して入力部25を操作する。表示部37に表示されている合成画像55は、上述のようにS102において撮影したワーク14の撮影画像を擬似的に表現している。そのため、S108において表示部37に表示されている画像は、少なくともワーク14を撮影した位置すなわち焦点座標および撮影した向きが近似する。その結果、S102においてカメラ19で実際に撮影している撮影画像とS108において表示部37に表示している合成画像とは、厳密には異なるものの、撮影した焦点座標および向きが近似する。すなわち、カメラ19で撮影した動画にいわゆるコマ落ちが生じる場合、画像合成部36はコマ落ちしたコマに対応する擬似的な画像を作成して挿入する。したがって、カメラ19を操作する操作者30は、表示部37に表示されている画像から時間的な差による違和感を受けることなく入力部25の操作が可能となる。
【0033】
グループ特定部35は、撮影した画像すなわち撮影画像42のグループを特定する(S109)。カメラ19での画像の撮影から表示部37での表示までに時間的な差がある場合でも、制御装置12はいずれかの時期にS102においてカメラ19で撮影した撮影画像をカメラ19から受信する。グループ特定部35は、このようにカメラ19から受け取った撮影画像に対応する平面画像データ40をグループ分けする。具体的には、グループ特定部35は、予め設定された設定範囲で近似する焦点座標41を有する平面画像データ40をグループ化する。グループ特定部35は、図7に示すようにグループ化した平面画像データ40を複数のデータグループ61、62、63として記憶する。平面画像データ40は、ロボット11の可動領域の全体で取得される。そのため、グループ特定部35は、取得された平面画像データ40について、互いに焦点座標が近似するもの同士をグループ化する。グループ特定部35は、S102において撮影した撮影画像についてカメラ19から取得するごとにグループを特定し、いずれかのデータグループ61、62、63に分類して記憶部34に記憶する。
【0034】
撮影画像のグループが特定されると、データ更新部38は、記憶部34の記憶領域に、S102において撮影しS109においてグループを特定した撮影画像の平面画像データを記憶可能であるか否かを判断する(S110)。上述のように記憶部34の記憶領域は有限である。そのため、カメラ19で撮影された撮影画像42を含む平面画像データ40の記憶を繰り返すと、記憶部34の記憶領域はいずれかの時期に飽和する。そのため、データ更新部38は、カメラ19から撮影画像の平面画像データ40を取得するごとに、記憶部34にこの平面画像データ40を記憶可能な記憶領域が残存しているか否かを判断する。データ更新部38は、S110において記憶部34に記憶領域が残存していると判断すると(S110:Yes)、S102において撮影しS109においてグループが特定された撮影画像の平面画像データ40を記憶部34の空いている記憶領域に記憶する。
【0035】
一方、データ更新部38は、S110において記憶部34に記憶領域が残存していないと判断すると(S110:No)、図9に基づいて処理を実行する。すなわち、データ更新部38は、記憶部34の複数のデータグループ61、62、63から最多データグループ62を選択し、選択時刻が最古の平面画像データ65を削除する(S201)。具体的には、次の通りである。S109で説明したように、カメラ19で撮影された平面画像データ40は、グループ特定部35において互いに焦点座標41が近似するもの同士がグループ化される。そこで、データ更新部38は、記憶部34に記憶されている平面画像データ40のデータグループ61、62、63から、含まれる平面画像データ40の数が最多となる最多データグループ62を選択する。焦点座標41に応じて複数のデータグループ61、62、63が設定されているため、このうちのいずれかは最多データグループ62となる。
【0036】
データ更新部38は、選択した最多データグループ62に含まれる平面画像データ40のうち選択時刻が最も古い平面画像データ65を抽出する。最多データグループ62をはじめとする各データグループ61、63は、複数の平面画像データ40を含んでいる。選択時刻は、選択時刻データ46として平面画像データ40に含まれている。そこで、データ更新部38は、最多データグループ62に含まれる複数の平面画像データ40から、S107における合成画像55の作成において選択平面画像データとして選択された時刻が最も古い平面画像データ65を抽出する。データ更新部38は、抽出した選択時刻が最も古い平面画像データ65を記憶部34の記憶領域から削除する。この場合、削除とは、該当する記憶領域に例えば「0データ」を書き込んで平面画像データ40そのものを削除すること、および単に該当する記憶領域を上書き可能とすることなどを含む。上述のように、最多データグループ62に含まれる平面画像データ40のうち選択時刻が最も古い平面画像データ65は、最多データグループ62に含まれる他の平面画像データで代用可能であり、削除しても合成画像55の作成に与える影響が小さいと考えられる。そのため、データ更新部38は、記憶部34に残存する新たな記憶領域が不足するとき、最多データグループ62に含まれる複数の平面画像データ40のうち選択時刻が最も古い平面画像データ65を削除する。
【0037】
データ更新部38は、最多データグループ62に含まれる選択時刻が最も古い平面画像データ65を削除することにより、記憶部34の空いた記憶領域にS102において撮影した画像の平面画像データ40を記憶する(S202)。これにより、S102において撮影され、S109においてグループが特定された平面画像データ40は、記憶部34の記憶領域に記憶される。S202において平面画像データ40が記憶部34に記憶されると、S101へリターンし上記の処理が繰り返される。
【0038】
以上説明した第1実施形態では、画像合成部36は、グループ化された複数のデータグループ61、62、63として記憶部34に記憶されている平面画像データ40に基づいて合成画像55を作成する。ロボット11に搭載されたカメラ19の位置を微調整する場合、その直前に少なくとも一枚はワーク14を含む画像が撮影されている。画像合成部36は、このワーク14を含む撮影画像を用いて、現在カメラ19で撮影している画像に近似する合成画像55を作成する。そのため、現在カメラ19で撮影している画像が表示部37に表示できないとき、すなわちカメラ19、制御装置12あるいは通信部13の能力によって撮影している画像と表示している画像との間に時間差が生じるときでも、操作者30はカメラ19で現在撮影した画像に対応して表示部37に表示されている合成画像55を参照してロボット11の操作が可能となる。その結果、例えば入力部25に対する過剰入力など、ロボット11の操作の違和感が低減される。したがって、カメラ19、制御装置12および通信部13の能力に依存することなく、ロボット11に搭載されたカメラ19の正確な位置合わせを容易に行うことができる。
【0039】
また、第1実施形態では、データ更新部38は、記憶部34に新たな平面画像データ40を記憶するための記憶領域が不足するとき、記憶部34に複数記憶されているデータグループ61、62、63のうち属する平面画像データ40の数が最も多い最多データグループ62を選択する。そして、データ更新部38は、この最多データグループ62から合成画像55の作成のために選択された選択時刻が最も古い平面画像データ65を抽出して、これを削除する。最多データグループ62は、焦点座標41が近似、および撮影方向が近似する平面画像データ40、すなわち類似の画像を多く含んでいる可能性が高い。そして、その中でも最も選択時刻が古い、すなわち選択頻度が最も低い平面画像データ40が削除される。つまり、合成画像55の作成に対する寄与度が低い平面画像データ40が削除され、S102で撮影された画像に対応する新たな平面画像データ40が追加される。これにより、記憶部34の記憶領域を増大させなくても、ロボット11の操作に必要な合成画像55の基となる平面画像データ40が確保される。また、上述の条件に基づいて平面画像データ40を削除することにより、合成画像55の作成に対する寄与度が低い平面画像データ40が減少し、合成画像55の作成のために所望の平面画像データ40を選択する時間は短縮される。さらに、合成画像55の作成に対する寄与度の低い平面画像データ40を削除することにより、カメラ19の操作中に合成画像55が不意に消えることもない。したがって、迅速に作成される合成画像55によって撮影画像を代用することができ、ロボット11に搭載されたカメラ19の正確な位置合わせを容易に行うことができる。
【0040】
(第2実施形態)
第2実施形態によるロボットシステムについて説明する。第2実施形態によるロボットシステム10は、構成が第1実施形態と同一であるものの、データ更新部38における処理の流れが第1実施形態と異なる。したがって、図10に基づいて第2実施形態のデータ更新部38における処理の流れについて説明する。
図10に示すロボットシステム10の作動におけるS101からS111までの処理は、第1実施形態と同様である。データ更新部38は、S110において記憶部34に記憶領域が残存していないと判断すると(S110:No)、特定データグループを選択し、この特定データグループの焦点座標の平均値に最も近い平面画像データを削除する(S301)。具体的には、次の通りである。S109で説明したように、カメラ19で撮影された平面画像データ40は、グループ特定部35において互いに焦点座標が近似するもの同士がグループ化される。そこで、データ更新部38は、図11に示すように記憶部34に記憶されている平面画像データ40のデータグループ71、72、73から、S102において撮影されS109においてグループが特定された最新の平面画像データ40aが属するデータグループ72を特定データグループ72として選択する。
【0041】
データ更新部38は、選択した特定データグループ72に含まれる平面画像データ40から、焦点座標41がこの特定データグループ72に含まれる全ての平面画像データ40の焦点座標の平均値に最も近い平面画像データ74を抽出する。そして、データ更新部38は、特定データグループ72から焦点座標が平均値に最も近い抽出した平面画像データ74を削除する。特定データグループ72に複数含まれる平面画像データ40は、焦点座標の平均値付近により多く分布していると考えられる。そのため、焦点座標の平均値に最も近い平面画像データ74は、他の平面画像データ40によって代用可能であると考えられる。そこで、データ更新部38は、特定データグループ72に含まれる複数の平面画像データ40から焦点座標がその特定データグループ72の平均値に最も近い平面画像データ74を削除する。
【0042】
データ更新部38は、特定データグループ72の焦点座標の平均値に最も近い平面画像データ74を削除することにより、記憶部34の空いた記憶領域にS102において撮影した最新の平面画像データ40aを記憶する(S302)。これにより、S102において撮影され、S109においてグループが特定された最新の平面画像データ40aは、記憶部34の記憶領域に記憶される。S302において平面画像データ40が記憶部34に記憶されると、S101へリターンし上記の処理が繰り返される。
【0043】
以上説明した第2実施形態では、データ更新部38は、記憶部34に最新の平面画像データ40aを記憶するための記憶領域が不足するとき、記憶部34に複数記憶されているデータグループ71、72、73のうち最新の平面画像データ40aが属する特定データグループ72を選択する。そして、データ更新部38は、特定データグループ72に属する全ての平面画像データ40における焦点座標の平均値に焦点座標が最も近い平面画像データ74を削除する。特定データグループ72の焦点座標の平均値に近い範囲には、焦点座標が近似した多くの平面画像データ40が存在している可能性が高い。そのため、焦点座標が特定データグループ72における平均値に最も近い平面画像データ74は、焦点座標が近い他の平面画像データ40によって代用可能と考えられる。すなわち、記憶部34の記憶領域には、合成画像55の作成に対する影響が小さい平面画像データ74が削除され、最新の平面画像データ40aが追加される。これにより、記憶部34の記憶領域を増大させなくても、ロボット11の操作に必要な合成画像55の基となる平面画像データ40が確保される。また、合成画像55の作成への影響が小さい平面画像データ74を削除することにより、合成画像55の作成に与える影響が小さい平面画像データ40が減少し、合成画像55の作成のために所望の平面画像データ40を選択する時間は短縮される。さらに、合成画像55の作成に対する寄与度の低い平面画像データ74を削除することにより、カメラ19の操作中に合成画像55が不意に消えることもない。したがって、迅速に作成される合成画像55によって撮影画像を代用することができ、ロボット11に搭載されたカメラ19の正確な位置合わせを容易に行うことができる。
【0044】
(第3実施形態)
第3実施形態によるロボットシステムについて説明する。第3実施形態によるロボットシステム10は、構成が第1実施形態と同一であるものの、データ更新部38における処理の流れが第1実施形態と異なる。したがって、図12に基づいて第3実施形態のデータ更新部38における処理の流れについて説明する。
図10に示すロボットシステム10の作動におけるS101からS111までの処理は、第1実施形態と同様である。データ更新部38は、S110において記憶部34に記憶領域が残存していないと判断すると(S110:No)、特定データグループを選択し、この特定データグループのうち最も古い平面画像データを削除する(S401)。具体的には、次の通りである。S109で説明したように、カメラ19で撮影された平面画像データ40は、グループ特定部35において互いに焦点座標が近似するもの同士がグループ化される。そこで、データ更新部38は、図13に示すように記憶部34に記憶されている平面画像データ40のデータグループ81、82、83から、S102において撮影されS109においてグループが特定された最新の平面画像データ40bが属するデータグループ82を特定データグループ82として選択する。
【0045】
データ更新部38は、選択した特定データグループ82に含まれる平面画像データ40から、撮影時刻が最も古い最古の平面画像データ84を抽出する。そして、データ更新部38は、特定データグループ82から撮影時刻が最も古い平面画像データ84を削除する。特定データグループ82に複数含まれる平面画像データ40は、古いものほどカメラ19によるその後の画像の撮影によって近い位置で撮影が繰り返されている可能性が高い。そのため、撮影時刻の最も古い平面画像データ84は、他の平面画像データ40によって代用可能であると考えられる。そこで、データ更新部38は、特定データグループ82に含まれる複数の平面画像データ40から撮影時刻が最も古い平面画像データ84を削除する。
【0046】
データ更新部38は、特定データグループ82に含まれる撮影時刻が最も古い平面画像データ84を削除することにより、記憶部34の空いた記憶領域にS102において撮影した最新の画像の平面画像データ40bを記憶する(S402)。これにより、S102において撮影され、S109においてグループが特定された最新の平面画像データ40bは、記憶部34の記憶領域に記憶される。S402において平面画像データ40が記憶部34に記憶されると、S101へリターンし上記の処理が繰り返される。
【0047】
第3実施形態では、データ更新部38は、記憶部34に最新の平面画像データ40bを記憶するための記憶領域が不足するとき、記憶部34に複数記憶されているデータグループ81、82、83のうち最新の平面画像データ40bが属する特定データグループ82を選択する。そして、データ更新部38は、特定データグループ82に平面画像データ40のうち撮影時刻が最も古い平面画像データ84を削除する。撮影時刻が最も古い平面画像データ84は、その後の画像の撮影によって近い位置で平面画像データ40が取得されている可能性が高い。そのため、特定データグループ82において最も古い平面画像データ84は、その後に撮影された平面画像データ40によって代用可能と考えられる。すなわち、記憶部34では、合成画像55の作成に対する影響が小さい平面画像データ84が削除され、最新の平面画像データ40bが追加される。これにより、記憶部34の記憶領域を増大させなくても、ロボット11の操作に必要な合成画像55の基となる平面画像データ40が確保される。また、合成画像55の作成への影響が小さい平面画像データ84を削除することにより、合成画像55の作成に与える影響が小さい平面画像データ40が減少し、合成画像55の作成のために所望の平面画像データ40を選択する時間は短縮される。さらに、合成画像55の作成に対する寄与度の低い平面画像データ84を削除することにより、カメラ19の操作中に合成画像55が不意に消えることもない。したがって、迅速に作成される合成画像55によって撮影画像を代用することができ、ロボット11に搭載されたカメラ19の正確な位置合わせを容易に行うことができる。
【0048】
以上説明した本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【0049】
10はロボットシステム、11はロボット、12は制御装置、13は通信部(通信手段)、17はアーム、19はカメラ、21はロボットコントローラ(制御装置)、22はパソコン(制御装置)、33は平面画像データ作成部(平面画像データ作成手段)、34は記憶部(記憶手段)、36は画像合成部(画像合成手段)、37は表示部(表示手段)、38はデータ更新部(データ更新手段)を示す。
【技術分野】
【0001】
本発明は、ロボットシステムに関し、特に対象物品を撮影するカメラが設けられたロボットシステムに関する。
【背景技術】
【0002】
従来、例えば対象物品の外観などを検査する場合、アームの先端にカメラを有するロボットが利用される。対象物品は、ロボットのアームの先端に搭載されたカメラによって撮影される。このようなカメラが搭載されたロボットを備えるロボットシステムの場合、検査の対象となる位置に正確にカメラが移動するように設定する、いわゆるティーチングを実施する必要がある(カメラのティーチングについて特許文献1参照)。カメラの位置は、カメラの外観的な位置だけでは正確性に欠けるため、カメラで撮影された撮影画像に基づいて適切であるか否かが判断される。
【0003】
しかしながら、例えばカメラや制御装置の性能、あるいはカメラと制御装置とを接続する通信手段によっては、撮影画像の伝送および取得に時間を要し、カメラによる画像の撮影と表示手段による画像の表示との間に時間的な差が生じることがある。このように実際の画像の撮影と表示との間に時間的な差が生じると、制御装置からロボットに対する操作の指示にも遅れが生じる。そのため、ロボットに搭載されたカメラの操作に過剰な入力が行われ、いわゆるオーバーシュートやアンダーシュートが生じやすくなる。その結果、ロボットに搭載されたカメラの位置の微調整が困難になるという問題が生じる。一方、カメラの位置を精密に調整するためには、カメラ、制御装置および通信手段に高い性能が要求される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9−321080号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
そこで、本発明の目的は、カメラ、制御装置および通信手段の能力に依存することなく、ロボットに搭載されたカメラの正確な位置合わせが容易なロボットシステムを提供することにある。
【課題を解決するための手段】
【0006】
請求項1、2または3記載の発明では、画像合成手段は、グループ化された複数のデータグループとして記憶手段に記憶されている平面画像データに基づいて合成画像を作成する。ロボットに搭載されたカメラの位置を微調整する場合、その直前に少なくとも一枚は対象物品を含む撮影画像が取得されている。画像合成手段は、この対象物品を含む撮影画像を用いて、現在カメラで撮影している画像に近似する合成画像を作成する。そのため、現在カメラで撮影している画像が表示手段に表示できないとき、すなわちカメラ、制御装置あるいは通信手段の能力によってカメラで撮影している画像と表示手段に表示している画像との間に時間差が生じるときでも、カメラで現在撮影した画像に対応して表示手段に表示されている合成画像を参照してロボットへ操作の指示が可能となる。したがって、カメラ、制御装置および通信手段の能力に依存することなく、ロボットに搭載されたカメラの正確な位置合わせを容易に行うことができる。
【0007】
また、請求項1記載の発明では、データ更新手段は、記憶手段に新たな平面画像データを記憶するための記憶領域が不足するとき、所定の平面画像データを削除して、空いた記憶領域に新たな平面画像データを記憶する。すなわち、データ更新手段は、記憶手段に複数記憶されているデータグループのうち属する平面画像データの数が最も多い最多データグループから合成画像の作成のために選択された選択時刻が最も古い平面画像データを削除する。属する平面画像データの数が最も多い最多データグループは、焦点座標が近似する平面画像データ、すなわち類似の画像を多く含んでいる可能性が高い。そして、その中でも最も選択時刻が古い、すなわち選択頻度が最も低い平面画像データが削除される。つまり、合成画像の作成に対する寄与度が低い平面画像データが削除され、新たな平面画像データが追加される。これにより、記憶領域を増大させなくても、ロボットの操作に必要な合成画像の基となる平面画像データが確保される。また、上述の条件に基づいて平面画像データを削除することにより、合成画像の作成に対する寄与度が低い平面画像データが減少し、合成画像の作成のために所望の平面画像データを選択する時間は短縮される。したがって、迅速に作成される合成画像によって撮影画像を代用することができ、ロボットに搭載されたカメラの正確な位置合わせを容易に行うことができる。
【0008】
請求項2記載の発明では、データ更新手段は、記憶手段に新たな平面画像データを記憶するための記憶領域が不足するとき、所定の平面画像データを削除して、空いた記憶領域に新たな平面画像データを記憶する。すなわち、データ更新手段は、記憶手段に複数記憶されているデータグループのうち新たな平面画像データが属する特定データグループを選択する。そして、データ更新手段は、特定データグループに属する全ての平面画像データにおける焦点座標の平均値に焦点座標が最も近い平面画像データを削除する。特定データグループの焦点座標の平均値に近い範囲には、焦点座標が近似した多くの平面画像データが存在している可能性が高い。そのため、焦点座標が特定データグループにおける平均値に最も近い平面画像データは、焦点座標が近い他の平面画像データによって代用可能と考えられる。すなわち、合成画像の作成に対する影響が小さい平面画像データが削除され、新たな平面画像データが追加される。これにより、記憶領域を増大させなくても、ロボットの操作に必要な合成画像の基となる平面画像データが確保される。また、合成画像の作成への影響が小さい平面画像データを削除することにより、合成画像の作成に与える影響が小さい平面画像データが減少し、合成画像の作成のために所望の平面画像データを選択する時間は短縮される。したがって、迅速に作成される合成画像によって撮影画像を代用することができ、ロボットに搭載されたカメラの正確な位置合わせを容易に行うことができる。
【0009】
請求項3記載の発明では、データ更新手段は、記憶手段に新たな平面画像データを記憶するための記憶領域が不足するとき、所定の平面画像データを削除して、空いた記憶領域に新たな平面画像データを記憶する。すなわち、データ更新手段は、記憶手段に複数記憶されているデータグループのうち新たな平面画像データが属する特定データグループを選択する。そして、データ更新手段は、特定データグループに平面画像データのうち撮影時刻が最も古い画像を削除する。撮影時刻が最も古い平面画像データは、その後の画像の撮影によって近い位置で平面画像データが取得されている可能性が高い。そのため、特定データグループにおいて最も古い平面画像データは、その後に撮影された平面画像データによって代用可能と考えられる。すなわち、合成画像の作成に対する影響が小さい平面画像データが削除され、新たな平面画像データが追加される。これにより、記憶領域を増大させなくても、ロボットの操作に必要な合成画像の基となる平面画像データが確保される。また、合成画像の作成への影響が小さい平面画像データを削除することにより、合成画像の作成に与える影響が小さい平面画像データが減少し、合成画像の作成のために所望の平面画像データを選択する時間は短縮される。したがって、迅速に作成される合成画像によって撮影画像を代用することができ、ロボットに搭載されたカメラの正確な位置合わせを容易に行うことができる。
【図面の簡単な説明】
【0010】
【図1】本発明の第1実施形態によるロボットシステムを示すブロック図
【図2】第1実施形態によるロボットシステムを示す概略図
【図3】平面画像データのデータ構造を示す模式図
【図4】カメラ、ワークおよび視野平面の関係を示す模式図
【図5】カメラ、ワーク、視野平面、交差画像および合成画像の関係を示す模式図
【図6】第1実施形態による表示部の表示を示す模式図
【図7】第1実施形態によるロボットシステムにおけるデータグループを示す模式図
【図8】第1実施形態によるロボットシステムにおける処理の流れを示す概略図
【図9】第1実施形態によるロボットシステムにおけるデータ更新の処理の流れを示す概略図
【図10】第2実施形態によるロボットシステムにおけるデータ更新の処理の流れを示す概略図
【図11】第2実施形態によるロボットシステムにおけるデータグループを示す模式図
【図12】第3実施形態によるロボットシステムにおけるデータ更新の処理の流れを示す概略図
【図13】第3実施形態によるロボットシステムにおけるデータグループを示す模式図
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を図面に基づいて説明する。なお、複数の実施形態において実質的に同一の構成部位には同一の符号を付し、説明を省略する。
(第1実施形態)
第1実施形態によるロボットシステムを図1および図2に示す。ロボットシステム10は、ロボット11、制御装置12および通信手段としての通信部13を備える。第1実施形態のロボット11は、例えば対象物品であるワーク14の組み付けが正しく行われているか否かなどを検査するための視覚検査に適用される。ロボット11は、制御装置12とは遠隔に配置された検査設備15に設けられている。検査設備15は、例えばトンネル状に形成され、下部に搬送部16を有している。ワーク14は、この搬送部16によって検査設備15の所定の位置へ運搬される。ワーク14が所定の位置まで運搬されると、搬送部16は停止する。これにより、ワーク14は、ロボット11によって外観の検査が行われる。ロボット11は、検査設備15の天側に設けられている。
【0012】
ロボット11は、例えば六軸の垂直多関節型のロボットとして構成されている。ロボット11は、周知の通り、アーム17を有している。アーム17は、それぞれアクチュエータであるサーボモータ18などからの駆動力で駆動される。アーム17は、先端にエンドエフェクタとしてのカメラ19を有している。サーボモータ18からアーム17のカメラ19までの間には、図示しない減速機構やリンクなどの駆動力伝達機構が設けられている。これにより、先端にカメラ19が設けられているアーム17は、サーボモータ18からの駆動力によって駆動される。
【0013】
制御装置12は、ロボットコントローラ21および電子計算機であるパーソナルコンピュータ(以下、「パソコン」)22で構成されている。ロボットコントローラ21およびパソコン22は、図1に示すように制御装置12を構成している。制御装置12を構成するロボットコントローラ21とパソコン22とは、図2に示すようにロボットコントローラ21がロボット11の近傍にあるように互いに離れて配置してもよく、一体的に構成して近接して配置してもよい。制御装置12は、図1に示すように制御部23を有している。制御部23は、図示しないCPU、ROMおよびRAMなどからなるマイクロコンピュータを主体として構成されている。制御部23は、予め入力および記憶されたロボット制御プログラムに基づいてロボットコントローラ21のサーボ制御部24を経由してロボット11の各軸のサーボモータ18を駆動する。これにより、制御装置12は、ロボット11の動作を制御する。制御装置12は、パソコン22に接続されている入力部25を有している。入力部25は、例えばキーボード26、マウス27およびジョイスティック28などの手動で入力される機器、ならびにHDDやDVDなどの磁気的あるいは光学的な入力機器29などを有している。操作者30は、プログラミングソフトをパソコン22で実行することにより、アプリケーションに応じてロボット11の動作手順などを記述したロボット制御プログラムを作成可能である。この場合、操作者30は、アプリケーションに応じてパッケージ命令を組み合わせたり、修正を加えたりすることにより、比較的簡単にロボット制御プログラムを作成することができる。
【0014】
通信部13は、ロボット11と制御装置12との間を通信可能に接続している。本実施形態の場合、通信部13は、図2に示すようにロボット11とロボットコントローラ21とを接続する第一ケーブル31、およびロボットコントローラ21とパソコン22とを接続する第二ケーブル32を有し、ロボット11と制御装置12との間を有線によって接続している。なお、通信部13は、有線による通信に限らず、例えば無線による通信を採用してもよい。ロボット11と制御装置12との間を通信部13によって接続することにより、ロボット11の各軸を駆動するサーボモータ18およびワーク14を撮影するカメラ19は、制御装置12によって制御される。また、カメラ19で撮影された画像は、通信部13を経由して制御装置12へ送信される。
【0015】
制御装置12のロボットコントローラ21は、パソコン22で実行される検査プログラムにしたがって、ロボット11のアーム17の移動を制御する。搬送部16を流れるワーク14は、検査設備15の所定位置に停止すると、カメラ19によって撮影される。ロボットコントローラ21は、アーム17を駆動してカメラ19を予め設定された三次元的な位置や向きの異なる複数の目標点に移動させつつ撮影を実行する。ロボット11に取り付けられたカメラ19が駆動される目標点は、予めティーチングされ、位置データとしてロボットコントローラ21またはパソコン22に記憶されている。また、ティーチングの際には、ロボット11の進入禁止領域もあわせて設定される。
【0016】
カメラ19は、例えばCCDイメージセンサ(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)イメージセンサを有しており、ワーク14を撮影する。カメラ19は、撮影した画像を画素ごとの電気信号として通信部13を経由して制御装置12へ出力する。カメラ19は、例えば視野の大きさ、焦点あるいは絞りなどの撮影時の光学的な条件が自動で調整される。また、カメラ19が撮影する画像の座標系であるカメラ座標系とロボット11の位置の座標系であるロボット座標系とは、座標変換すなわちキャリブレーションによって互いに相関が設定されている。
【0017】
制御装置12は、上記に加え、図1に示すように平面画像データ作成部33、記憶部34、グループ特定部35、画像合成部36、表示部37およびデータ更新部38を備えている。これら平面画像データ作成部33、グループ特定部35、画像合成部36およびデータ更新部38は、制御部23で実行されるコンピュータプログラムによってソフトウェア的に機能する構成でもよく、ハードウェアとして機能する構成でもよい。また、本実施形態では、平面画像データ作成部33、記憶部34、グループ特定部35、画像合成部36、表示部37およびデータ更新部38をパソコン22に設ける例について説明しているが、機能の一部または全部をロボットコントローラ21に設けてもよい。
【0018】
平面画像データ作成部33は、図3に示すような平面画像データ40を作成する。平面画像データ40は、カメラ19で撮影した撮影画像の焦点座標41を中心として、カメラ19で撮影された撮影画像42と、この撮影画像42が撮影されたときの焦点座標41を示す座標データ43および撮影画像42を撮影した向きを示す方向データ44とを関連づけて作成される。平面画像データ作成部33は、通信部13を経由して画素ごとの電気信号から作成される撮影画像42をカメラ19から取得する。また、このとき、平面画像データ作成部33は、ロボット11またはロボットコントローラ21からアーム17の位置と相関するカメラ19の焦点座標41を座標データとして、およびアーム17の角度に相関する撮影画像42を撮影した向きを方向データとしてあわせて取得する。さらに、平面画像データ作成部33は、撮影画像42が撮影された時刻を時刻データ45として取得する。なお、図3は、平面画像データ40のデータ構造を模式的に示したものであり、実際の平面画像データ40とは異なる。
【0019】
記憶部34は、例えば不揮発性メモリやHDDなどを有している。記憶部34は、平面画像データ作成部33で作成された平面画像データ40を記憶する。この場合、グループ特定部35は、予め設定された設定範囲で近似する焦点座標を有する平面画像データ40をグループ化して複数のデータグループとして記憶部34へ記憶する。平面画像データ40は、ロボット11の可動領域の全体で取得される。そのため、グループ特定部35は、取得された平面画像データ40について、互いに焦点座標が近似するもの同士をグループ化して記憶部34に記憶する。なお、記憶部34は、制御部23のROMやRAMとともに構成してもよい。また、グループ特定部35によるグループ化は、焦点座標が近似するもの同士をグループ化するだけでなく、カメラ19で撮影する領域すなわち撮影対象となる空間を予め複数のグループ領域に分割し、そのグループ領域に含まれる焦点座標を有する平面画像データ40を一つのグループとするようなグループ化を行ってもよい。
【0020】
画像合成部36は、記憶部34に記憶されている平面画像データ40から合成画像を作成する。具体的には、画像合成部36は、記憶部34に記憶されている複数の平面画像データ40から選択平面画像データを選択する。選択平面画像データは、図4に示すようにカメラ19で撮影している仮想的な視野平面51を光軸延長方向へ移動させたときに、図5に示すようにこの視野平面51に交差する交差画像52、53、54の平面画像データである。すなわち、画像合成部36は、記憶部34に記憶されている複数の平面画像データから、視野平面51に交差する交差画像52、53、54の平面画像データを選択平面画像データとして選択する。そして、画像合成部36は、選択した選択した選択平面画像データに基づく交差画像52、53、54の焦点座標および交差画像52、53、54を撮影した向きを交差画像52、53、54が撮影されたときのまま、視野平面51に投影する。画像合成部36は、この視野平面51に投影した画像を撮影したワーク14の合成画像55として作成する。画像合成部36は、合成画像55を作成するとともに、交差画像52、53、54として選択平面画像データを選択した選択時刻を、選択した平面画像データに付与して記憶部34に記憶する。表示部37は、例えばパソコン22と一体または別体の液晶ディスプレイなどである。表示部37は、図6に示すようにカメラ19で撮影された画像、あるいは画像合成部36で作成された合成画像を表示画像371として表示する。
【0021】
データ更新部38は、記憶部34に記憶された平面画像データ40を更新しつつ記憶する。第1実施形態の場合、データ更新部38は、記憶部34に新たな平面画像データ40を記憶する記憶領域が不足するとき、データグループのうち属する平面画像データの数が最も多い最多データグループから選択時刻が最も古い平面画像データを削除して、空いた記憶領域に新たな平面画像データ40を記憶する。カメラ19は刻々と新たな画像を撮影するため、撮影された画像は次々に制御装置12へ送られる。一方、記憶部34の記憶領域は有限であるため、すべての平面画像データ40を記憶することはできない。そのため、データ更新部38は、記憶部34の記憶容量が不足するとき、最多データグループから選択時刻が最も古い平面画像データを削除する。
【0022】
平面画像データ作成部33で作成された平面画像データ40は、その焦点座標41に基づいてグループ特定部35によって例えば図7に示すようにデータグループ61、62、63のいずれかに特定され、記憶部34に記憶される。複数のデータグループ61、62、63のうち含まれる平面画像データが最多のものが最多データグループ62となる。そのため、最多データグループ62には、互いに焦点座標が近似する平面画像データ40が多く含まれていると考えられる。この最多データグループ62には、画像合成部36で選択された選択時期が最も古い平面画像データ65から最も新しい平面画像データ66まで含まれる。このうち選択された選択時刻が最も古い平面画像データ65は、最多データグループ62の中でも最も利用頻度が低く、焦点座標41が近似する他の平面画像データ40で代用可能であると考えられる。すなわち、最多データグループ62において最も選択時期の古い平面画像データ65は、画像合成部36における合成画像の作成への利用価値が低いと考えられる。そこで、データ更新部38は、記憶部34の記憶容量が不足するとき、最多データグループ62から選択時刻が最も古い平面画像データ65を削除し、記憶領域を確保する。データ更新部38は、この確保した記憶領域に取得した新たな平面画像データ40を記憶する。
【0023】
次に、上記の構成によるロボットシステム10の作動について図8に基づいて説明する。
ロボットシステム10は、検査対象であるワーク14の検査に先立って、ワーク14の撮影位置を設定するティーチングが実施される。ティーチングは、パソコン22で検査プログラムに含まれるティーチングプログラムを実行することにより実施される。操作者30は、パソコン22でティーチングプログラムを実行しつつ入力部25のジョイスティック28を操作することにより、ロボット11のアーム17に取り付けられたカメラ19を所定の撮影位置に移動させる。この場合、カメラ19は、数分の1または数十分の1秒ごとに画像を撮影する。そのため、カメラ19で撮影された撮影画像は、制御装置12の表示部37に動画として表示される。
【0024】
一方、カメラ19の性能、通信部13の通信速度、あるいは制御装置12の性能などによって、カメラ19で撮影している撮影画像と表示部37に表示している画像との間には、時間的なずれが生じる。例えばカメラ19を用いて焦点座標(x1,y1,z1)で撮影しているにも関わらず、表示部37には焦点座標(x0,y0,z0)で撮影された画像が表示される場合がある。操作者30は、表示部37に表示されている画像を見ながらロボット11を操作するため、このカメラ19での撮影と表示部37への表示との間に生じる時間的な差が拡大すると、入力部25であるジョイスティック28の操作と表示部37に表示されている画像との齟齬が大きくなる。その結果、入力部25であるジョイスティック28への入力が過大となってロボット11の動作にいわゆるオーバーシュートが生じたり、操作の違和感が増大する。そこで、第1実施形態では、図8に基づく処理によってカメラ19で撮影した画像と表示部37に表示される画像との差の低減を図っている。
【0025】
ロボット11のアーム17、すなわちアーム17に取り付けられたカメラ19は、操作者30による入力部25の操作によって移動する(S101)。入力部25からの入力は、制御装置12のパソコン22からロボットコントローラ21を経由してロボット11へ伝達される。ロボットコントローラ21は、入力部25からの入力に応じてサーボ制御部24によってロボット11のサーボモータ18を駆動する。これにより、ロボット11のアーム17は、サーボモータ18によって入力部25からの入力に対応する位置へ移動する。その結果、アーム17に取り付けられたカメラ19も、入力に対応する撮影位置へ移動する。
【0026】
カメラ19は、アーム17とともに移動しながら例えば数十分の1秒ごとなど所定の時間間隔でワーク14を撮影する(S102)。このとき、カメラ19はワーク14を撮影した撮影画像とともに、撮影画像の焦点座標および撮影した向きを取得する(S103)。カメラ19は、例えばロボットコントローラ21などから撮影画像の焦点座標および撮影した向きを取得する。カメラ19は、所定の時間間隔でワーク14が撮影されるごとに、撮影画像の焦点座標および撮影した向きを取得する。
【0027】
取得された撮影画像ならびにこの撮影画像の焦点位置および撮影した向きは、通信部13を経由して制御装置12へ転送される(S104)。平面画像データ作成部33は、カメラ19から通信部13を経由して撮影画像ならびにこの撮影画像の焦点座標および撮影した向きを取得して、平面画像データ40を作成する。平面画像データ作成部33は、図3に示すように焦点座標41を中心として、撮影画像42と、この撮影画像42の焦点座標である座標データ43および撮影画像42を撮影した向きである方向データ44とを関連づけて平面画像データ40を作成する。また、このとき、平面画像データ作成部33は、撮影画像42を撮影した時刻を時刻データとして平面画像データ40に加える。平面画像データ40が作成されると、画像合成部36は上記の撮影画像42が所定の時間内に制御装置12で取得されたか否かを判断する(S105)。すなわち、画像合成部36は、カメラ19でワーク14を撮影してから所定の時間内に、撮影されたワーク14の撮影画像42が制御装置12へ転送されたか否かを判断する。
【0028】
ワーク14を撮影した撮影画像がカメラ19での撮影から所定の時間内に制御装置12へ転送されると、カメラ19で撮影しているワーク14の撮影画像と表示部37に表示されている画像との間に生じる差は小さい。すなわち、カメラ19で撮影している撮影画像と表示部37に表示している画像との間の差は、操作者30が認識できない程度に小さくなる。この場合、上述のようなカメラ19が取り付けられたアーム17のオーバーシュートや操作の違和感はほとんど生じない。そのため、画像合成部36は、カメラ19で撮影した撮影画像のデータが撮影から所定の時間内に制御装置12で取得されたとき(S105:Yes)、カメラ19で撮影し制御装置12へ転送された撮影画像をそのまま表示部37に表示する(S106)。このとき、オーバーシュートや違和感を生じさせないための時間差は、例えば数ミリ秒以下程度である。平面画像データ40を構成するデータのうち、座標データ43、方向データ44および時刻データ45はテキストデータであるのに対し、撮影画像42は画像データである。そのため、座標データ43、方向データ44および時刻データ45は、撮影画像42に比較して短時間でカメラ19から制御装置12へ転送される。これにより、画像合成部36は、例えばカメラ19から転送された時刻データ45などに基づいて、カメラ19における画像の撮影から撮影画像42に係るデータの転送までの時間を取得する。
【0029】
一方、ワーク14を撮影した撮影画像がカメラ19での撮影から所定の時間内に制御装置12で取得されないと、カメラ19で撮影しているワーク14の撮影画像と表示部37に表示されている画像との間にはオーバーシュートや違和感を生じさせる差が生じる。そのため、画像合成部36は、カメラ19で撮影した撮影画像のデータが撮影から所定の時間内に制御装置12で取得されないとき(S105:No)、撮影画像の焦点座標41および撮影の向きに基づいて合成画像を作成する(S107)。
【0030】
上述のようにカメラ19での撮影画像の撮影から表示部37での撮影画像の表示までの時間に差が大きくなると、カメラ19の操作においてオーバーシュートなどの操作不良が生じやすくなる。そのため、画像合成部36は、撮影画像のデータがカメラ19での撮影から所定の時間内に制御装置12で取得されないとき、記憶部34に既に記憶している平面画像データを利用してカメラ19で撮影した撮影画像に対応する仮想的な合成画像を作成する。この場合、合成画像は、カメラ19で撮影した撮影画像と完全に一致する必要はなく、あくまでの入力部25からの入力によるカメラ19の操作においてオーバーシュートなどの操作不良が生じない程度の仮想的なものであればよい。
【0031】
具体的には、画像合成部36は次の手順で合成画像を作成する。画像合成部36は、図4に示すようにカメラ19で撮影している視野平面51を光軸延長方向へ移動させる。ここでカメラ19で撮影している視野平面51は、S104においてカメラ19から制御装置12へ転送される撮影画像42の視野平面51に対応する。画像合成部36は、記憶部34に記憶されている複数の平面画像データ40から、図5に示すようにこの視野平面51に交差する交差画像52、53、54の平面画像データを選択平面画像データとして選択する。すなわち、画像合成部36は、カメラ19の視野平面51に交差する交差画像52、53、54を選択し、この交差画像52、53、54の平面画像データを選択平面画像データとして設定する。そして、画像合成部36は、この選択された選択平面画像データに含まれている交差画像52、53、54の焦点座標に関する座標データおよび撮影した向きに関する方向データを取得する。ここで、交差画像52、53、54は、記憶部34に記憶されている撮影画像の平面画像データ40に基づいて選択される。そのため、選択された交差画像52、53、54に対応する平面画像データは、過去に撮影された際に取得された焦点座標データおよび方向データを含んでいる。画像合成部36は、取得した交差画像52、53、54を、この交差画像52、53、54が撮影されたときのまま視野平面51に投影して合成画像55を作成する。これにより、S102においてカメラ19で撮影された撮影画像と近似する合成画像55が擬似的に作成される。また、画像合成部36は、選択した交差画像52、53、54に対応する選択平面画像データに、図3に示すように選択した選択時刻を選択時刻データ46として付与して記憶部34に記憶させる。
【0032】
画像合成部36において合成画像55が作成されると、表示部37は作成された合成画像55を表示する(S108)。これにより、操作者30は、表示部37に表示されているS102において撮影した撮影画像に対応する合成画像55を参照して入力部25を操作する。表示部37に表示されている合成画像55は、上述のようにS102において撮影したワーク14の撮影画像を擬似的に表現している。そのため、S108において表示部37に表示されている画像は、少なくともワーク14を撮影した位置すなわち焦点座標および撮影した向きが近似する。その結果、S102においてカメラ19で実際に撮影している撮影画像とS108において表示部37に表示している合成画像とは、厳密には異なるものの、撮影した焦点座標および向きが近似する。すなわち、カメラ19で撮影した動画にいわゆるコマ落ちが生じる場合、画像合成部36はコマ落ちしたコマに対応する擬似的な画像を作成して挿入する。したがって、カメラ19を操作する操作者30は、表示部37に表示されている画像から時間的な差による違和感を受けることなく入力部25の操作が可能となる。
【0033】
グループ特定部35は、撮影した画像すなわち撮影画像42のグループを特定する(S109)。カメラ19での画像の撮影から表示部37での表示までに時間的な差がある場合でも、制御装置12はいずれかの時期にS102においてカメラ19で撮影した撮影画像をカメラ19から受信する。グループ特定部35は、このようにカメラ19から受け取った撮影画像に対応する平面画像データ40をグループ分けする。具体的には、グループ特定部35は、予め設定された設定範囲で近似する焦点座標41を有する平面画像データ40をグループ化する。グループ特定部35は、図7に示すようにグループ化した平面画像データ40を複数のデータグループ61、62、63として記憶する。平面画像データ40は、ロボット11の可動領域の全体で取得される。そのため、グループ特定部35は、取得された平面画像データ40について、互いに焦点座標が近似するもの同士をグループ化する。グループ特定部35は、S102において撮影した撮影画像についてカメラ19から取得するごとにグループを特定し、いずれかのデータグループ61、62、63に分類して記憶部34に記憶する。
【0034】
撮影画像のグループが特定されると、データ更新部38は、記憶部34の記憶領域に、S102において撮影しS109においてグループを特定した撮影画像の平面画像データを記憶可能であるか否かを判断する(S110)。上述のように記憶部34の記憶領域は有限である。そのため、カメラ19で撮影された撮影画像42を含む平面画像データ40の記憶を繰り返すと、記憶部34の記憶領域はいずれかの時期に飽和する。そのため、データ更新部38は、カメラ19から撮影画像の平面画像データ40を取得するごとに、記憶部34にこの平面画像データ40を記憶可能な記憶領域が残存しているか否かを判断する。データ更新部38は、S110において記憶部34に記憶領域が残存していると判断すると(S110:Yes)、S102において撮影しS109においてグループが特定された撮影画像の平面画像データ40を記憶部34の空いている記憶領域に記憶する。
【0035】
一方、データ更新部38は、S110において記憶部34に記憶領域が残存していないと判断すると(S110:No)、図9に基づいて処理を実行する。すなわち、データ更新部38は、記憶部34の複数のデータグループ61、62、63から最多データグループ62を選択し、選択時刻が最古の平面画像データ65を削除する(S201)。具体的には、次の通りである。S109で説明したように、カメラ19で撮影された平面画像データ40は、グループ特定部35において互いに焦点座標41が近似するもの同士がグループ化される。そこで、データ更新部38は、記憶部34に記憶されている平面画像データ40のデータグループ61、62、63から、含まれる平面画像データ40の数が最多となる最多データグループ62を選択する。焦点座標41に応じて複数のデータグループ61、62、63が設定されているため、このうちのいずれかは最多データグループ62となる。
【0036】
データ更新部38は、選択した最多データグループ62に含まれる平面画像データ40のうち選択時刻が最も古い平面画像データ65を抽出する。最多データグループ62をはじめとする各データグループ61、63は、複数の平面画像データ40を含んでいる。選択時刻は、選択時刻データ46として平面画像データ40に含まれている。そこで、データ更新部38は、最多データグループ62に含まれる複数の平面画像データ40から、S107における合成画像55の作成において選択平面画像データとして選択された時刻が最も古い平面画像データ65を抽出する。データ更新部38は、抽出した選択時刻が最も古い平面画像データ65を記憶部34の記憶領域から削除する。この場合、削除とは、該当する記憶領域に例えば「0データ」を書き込んで平面画像データ40そのものを削除すること、および単に該当する記憶領域を上書き可能とすることなどを含む。上述のように、最多データグループ62に含まれる平面画像データ40のうち選択時刻が最も古い平面画像データ65は、最多データグループ62に含まれる他の平面画像データで代用可能であり、削除しても合成画像55の作成に与える影響が小さいと考えられる。そのため、データ更新部38は、記憶部34に残存する新たな記憶領域が不足するとき、最多データグループ62に含まれる複数の平面画像データ40のうち選択時刻が最も古い平面画像データ65を削除する。
【0037】
データ更新部38は、最多データグループ62に含まれる選択時刻が最も古い平面画像データ65を削除することにより、記憶部34の空いた記憶領域にS102において撮影した画像の平面画像データ40を記憶する(S202)。これにより、S102において撮影され、S109においてグループが特定された平面画像データ40は、記憶部34の記憶領域に記憶される。S202において平面画像データ40が記憶部34に記憶されると、S101へリターンし上記の処理が繰り返される。
【0038】
以上説明した第1実施形態では、画像合成部36は、グループ化された複数のデータグループ61、62、63として記憶部34に記憶されている平面画像データ40に基づいて合成画像55を作成する。ロボット11に搭載されたカメラ19の位置を微調整する場合、その直前に少なくとも一枚はワーク14を含む画像が撮影されている。画像合成部36は、このワーク14を含む撮影画像を用いて、現在カメラ19で撮影している画像に近似する合成画像55を作成する。そのため、現在カメラ19で撮影している画像が表示部37に表示できないとき、すなわちカメラ19、制御装置12あるいは通信部13の能力によって撮影している画像と表示している画像との間に時間差が生じるときでも、操作者30はカメラ19で現在撮影した画像に対応して表示部37に表示されている合成画像55を参照してロボット11の操作が可能となる。その結果、例えば入力部25に対する過剰入力など、ロボット11の操作の違和感が低減される。したがって、カメラ19、制御装置12および通信部13の能力に依存することなく、ロボット11に搭載されたカメラ19の正確な位置合わせを容易に行うことができる。
【0039】
また、第1実施形態では、データ更新部38は、記憶部34に新たな平面画像データ40を記憶するための記憶領域が不足するとき、記憶部34に複数記憶されているデータグループ61、62、63のうち属する平面画像データ40の数が最も多い最多データグループ62を選択する。そして、データ更新部38は、この最多データグループ62から合成画像55の作成のために選択された選択時刻が最も古い平面画像データ65を抽出して、これを削除する。最多データグループ62は、焦点座標41が近似、および撮影方向が近似する平面画像データ40、すなわち類似の画像を多く含んでいる可能性が高い。そして、その中でも最も選択時刻が古い、すなわち選択頻度が最も低い平面画像データ40が削除される。つまり、合成画像55の作成に対する寄与度が低い平面画像データ40が削除され、S102で撮影された画像に対応する新たな平面画像データ40が追加される。これにより、記憶部34の記憶領域を増大させなくても、ロボット11の操作に必要な合成画像55の基となる平面画像データ40が確保される。また、上述の条件に基づいて平面画像データ40を削除することにより、合成画像55の作成に対する寄与度が低い平面画像データ40が減少し、合成画像55の作成のために所望の平面画像データ40を選択する時間は短縮される。さらに、合成画像55の作成に対する寄与度の低い平面画像データ40を削除することにより、カメラ19の操作中に合成画像55が不意に消えることもない。したがって、迅速に作成される合成画像55によって撮影画像を代用することができ、ロボット11に搭載されたカメラ19の正確な位置合わせを容易に行うことができる。
【0040】
(第2実施形態)
第2実施形態によるロボットシステムについて説明する。第2実施形態によるロボットシステム10は、構成が第1実施形態と同一であるものの、データ更新部38における処理の流れが第1実施形態と異なる。したがって、図10に基づいて第2実施形態のデータ更新部38における処理の流れについて説明する。
図10に示すロボットシステム10の作動におけるS101からS111までの処理は、第1実施形態と同様である。データ更新部38は、S110において記憶部34に記憶領域が残存していないと判断すると(S110:No)、特定データグループを選択し、この特定データグループの焦点座標の平均値に最も近い平面画像データを削除する(S301)。具体的には、次の通りである。S109で説明したように、カメラ19で撮影された平面画像データ40は、グループ特定部35において互いに焦点座標が近似するもの同士がグループ化される。そこで、データ更新部38は、図11に示すように記憶部34に記憶されている平面画像データ40のデータグループ71、72、73から、S102において撮影されS109においてグループが特定された最新の平面画像データ40aが属するデータグループ72を特定データグループ72として選択する。
【0041】
データ更新部38は、選択した特定データグループ72に含まれる平面画像データ40から、焦点座標41がこの特定データグループ72に含まれる全ての平面画像データ40の焦点座標の平均値に最も近い平面画像データ74を抽出する。そして、データ更新部38は、特定データグループ72から焦点座標が平均値に最も近い抽出した平面画像データ74を削除する。特定データグループ72に複数含まれる平面画像データ40は、焦点座標の平均値付近により多く分布していると考えられる。そのため、焦点座標の平均値に最も近い平面画像データ74は、他の平面画像データ40によって代用可能であると考えられる。そこで、データ更新部38は、特定データグループ72に含まれる複数の平面画像データ40から焦点座標がその特定データグループ72の平均値に最も近い平面画像データ74を削除する。
【0042】
データ更新部38は、特定データグループ72の焦点座標の平均値に最も近い平面画像データ74を削除することにより、記憶部34の空いた記憶領域にS102において撮影した最新の平面画像データ40aを記憶する(S302)。これにより、S102において撮影され、S109においてグループが特定された最新の平面画像データ40aは、記憶部34の記憶領域に記憶される。S302において平面画像データ40が記憶部34に記憶されると、S101へリターンし上記の処理が繰り返される。
【0043】
以上説明した第2実施形態では、データ更新部38は、記憶部34に最新の平面画像データ40aを記憶するための記憶領域が不足するとき、記憶部34に複数記憶されているデータグループ71、72、73のうち最新の平面画像データ40aが属する特定データグループ72を選択する。そして、データ更新部38は、特定データグループ72に属する全ての平面画像データ40における焦点座標の平均値に焦点座標が最も近い平面画像データ74を削除する。特定データグループ72の焦点座標の平均値に近い範囲には、焦点座標が近似した多くの平面画像データ40が存在している可能性が高い。そのため、焦点座標が特定データグループ72における平均値に最も近い平面画像データ74は、焦点座標が近い他の平面画像データ40によって代用可能と考えられる。すなわち、記憶部34の記憶領域には、合成画像55の作成に対する影響が小さい平面画像データ74が削除され、最新の平面画像データ40aが追加される。これにより、記憶部34の記憶領域を増大させなくても、ロボット11の操作に必要な合成画像55の基となる平面画像データ40が確保される。また、合成画像55の作成への影響が小さい平面画像データ74を削除することにより、合成画像55の作成に与える影響が小さい平面画像データ40が減少し、合成画像55の作成のために所望の平面画像データ40を選択する時間は短縮される。さらに、合成画像55の作成に対する寄与度の低い平面画像データ74を削除することにより、カメラ19の操作中に合成画像55が不意に消えることもない。したがって、迅速に作成される合成画像55によって撮影画像を代用することができ、ロボット11に搭載されたカメラ19の正確な位置合わせを容易に行うことができる。
【0044】
(第3実施形態)
第3実施形態によるロボットシステムについて説明する。第3実施形態によるロボットシステム10は、構成が第1実施形態と同一であるものの、データ更新部38における処理の流れが第1実施形態と異なる。したがって、図12に基づいて第3実施形態のデータ更新部38における処理の流れについて説明する。
図10に示すロボットシステム10の作動におけるS101からS111までの処理は、第1実施形態と同様である。データ更新部38は、S110において記憶部34に記憶領域が残存していないと判断すると(S110:No)、特定データグループを選択し、この特定データグループのうち最も古い平面画像データを削除する(S401)。具体的には、次の通りである。S109で説明したように、カメラ19で撮影された平面画像データ40は、グループ特定部35において互いに焦点座標が近似するもの同士がグループ化される。そこで、データ更新部38は、図13に示すように記憶部34に記憶されている平面画像データ40のデータグループ81、82、83から、S102において撮影されS109においてグループが特定された最新の平面画像データ40bが属するデータグループ82を特定データグループ82として選択する。
【0045】
データ更新部38は、選択した特定データグループ82に含まれる平面画像データ40から、撮影時刻が最も古い最古の平面画像データ84を抽出する。そして、データ更新部38は、特定データグループ82から撮影時刻が最も古い平面画像データ84を削除する。特定データグループ82に複数含まれる平面画像データ40は、古いものほどカメラ19によるその後の画像の撮影によって近い位置で撮影が繰り返されている可能性が高い。そのため、撮影時刻の最も古い平面画像データ84は、他の平面画像データ40によって代用可能であると考えられる。そこで、データ更新部38は、特定データグループ82に含まれる複数の平面画像データ40から撮影時刻が最も古い平面画像データ84を削除する。
【0046】
データ更新部38は、特定データグループ82に含まれる撮影時刻が最も古い平面画像データ84を削除することにより、記憶部34の空いた記憶領域にS102において撮影した最新の画像の平面画像データ40bを記憶する(S402)。これにより、S102において撮影され、S109においてグループが特定された最新の平面画像データ40bは、記憶部34の記憶領域に記憶される。S402において平面画像データ40が記憶部34に記憶されると、S101へリターンし上記の処理が繰り返される。
【0047】
第3実施形態では、データ更新部38は、記憶部34に最新の平面画像データ40bを記憶するための記憶領域が不足するとき、記憶部34に複数記憶されているデータグループ81、82、83のうち最新の平面画像データ40bが属する特定データグループ82を選択する。そして、データ更新部38は、特定データグループ82に平面画像データ40のうち撮影時刻が最も古い平面画像データ84を削除する。撮影時刻が最も古い平面画像データ84は、その後の画像の撮影によって近い位置で平面画像データ40が取得されている可能性が高い。そのため、特定データグループ82において最も古い平面画像データ84は、その後に撮影された平面画像データ40によって代用可能と考えられる。すなわち、記憶部34では、合成画像55の作成に対する影響が小さい平面画像データ84が削除され、最新の平面画像データ40bが追加される。これにより、記憶部34の記憶領域を増大させなくても、ロボット11の操作に必要な合成画像55の基となる平面画像データ40が確保される。また、合成画像55の作成への影響が小さい平面画像データ84を削除することにより、合成画像55の作成に与える影響が小さい平面画像データ40が減少し、合成画像55の作成のために所望の平面画像データ40を選択する時間は短縮される。さらに、合成画像55の作成に対する寄与度の低い平面画像データ84を削除することにより、カメラ19の操作中に合成画像55が不意に消えることもない。したがって、迅速に作成される合成画像55によって撮影画像を代用することができ、ロボット11に搭載されたカメラ19の正確な位置合わせを容易に行うことができる。
【0048】
以上説明した本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【0049】
10はロボットシステム、11はロボット、12は制御装置、13は通信部(通信手段)、17はアーム、19はカメラ、21はロボットコントローラ(制御装置)、22はパソコン(制御装置)、33は平面画像データ作成部(平面画像データ作成手段)、34は記憶部(記憶手段)、36は画像合成部(画像合成手段)、37は表示部(表示手段)、38はデータ更新部(データ更新手段)を示す。
【特許請求の範囲】
【請求項1】
アームの先端にカメラを有するロボットと、通信手段を経由して前記ロボットと遠隔に配置された制御装置と、を備えるロボットシステムであって、
前記制御装置は、
前記カメラで撮影された撮影画像、ならびに前記撮影画像が撮影されたときの前記撮影画像の焦点座標および前記撮影画像を撮影した向きを関連づけて前記焦点座標を中心とする平面画像データを作成する平面画像データ作成手段と、
前記平面画像データ作成手段で作成された平面画像データから、予め設定された設定範囲で近似する前記焦点座標を有する複数の前記平面画像データをグループ化して複数のデータグループとして記憶する記憶手段と、
前記記憶手段に記憶された前記平面画像データから前記カメラで撮影している視野平面を光軸延長方向へ移動させたときに前記視野平面に交差する交差画像の平面画像データを選択平面画像データとして選択し、選択された前記選択平面画像データに基づく前記交差画像の焦点座標および前記交差画像を撮影した向きを前記交差画像が撮影されたときのまま前記視野平面に投影して合成画像を作成するとともに、前記選択平面画像データが選択された選択時刻を付与して前記記憶手段に記憶する画像合成手段と、
前記合成手段で合成された前記合成画像を表示する表示手段と、
前記記憶手段に新たな平面画像データを記憶する記憶領域が不足するとき、前記記憶手段に複数記憶されている前記データグループのうち属する前記平面画像データの数が多い最多データグループから前記選択時刻が最も古い平面画像データを削除して、空いた記憶領域に前記新たな平面画像データを記憶するデータ更新手段と、
を備えることを特徴とするロボットシステム。
【請求項2】
アームの先端にカメラを有するロボットと、通信手段を経由して前記ロボットと遠隔に配置された制御装置と、を備えるロボットシステムであって、
前記制御装置は、
前記カメラで撮影された撮影画像、ならびに前記撮影画像が撮影されたときの前記撮影画像の焦点座標および前記撮影画像を撮影した向きを関連づけて前記焦点座標を中心とする平面画像データを作成する平面画像データ作成手段と、
前記平面画像データ作成手段で作成された平面画像データから、予め設定された設定範囲で近似する前記焦点座標を有する複数の前記平面画像データをグループ化して複数のデータグループとして記憶する記憶手段と、
前記記憶手段に記憶された前記平面画像データから前記カメラで撮影している視野平面を光軸延長方向へ移動させたときに前記視野平面に交差する交差画像の平面画像データを選択平面画像データとして選択し、選択された前記選択平面画像データに基づく前記交差画像の焦点座標および前記交差画像を撮影した向きを前記交差画像が撮影されたときのまま前記視野平面に投影して合成画像を作成するとともに、前記選択平面画像データが選択された選択時刻を付与して前記記憶手段に記憶する画像合成手段と、
前記合成手段で合成された前記合成画像を表示する表示手段と、
前記記憶手段に新たな平面画像データを記憶する記憶領域が不足するとき、前記記憶手段に複数記憶されている前記データグループのうち前記新たな平面画像データが属する特定データグループを選択し、焦点座標が前記特定データグループに属する全ての平面画像データにおける焦点座標の平均値に最も近い平面画像データを削除し、空いた記憶領域に前記新たな平面画像データを記憶するデータ更新手段と、
を備えることを特徴とするロボットシステム。
【請求項3】
アームの先端にカメラを有するロボットと、通信手段を経由して前記ロボットと遠隔に配置された制御装置と、を備えるロボットシステムであって、
前記制御装置は、
前記カメラで撮影された撮影画像、ならびに前記撮影画像が撮影されたときの前記撮影画像の焦点座標および前記撮影画像を撮影した向きを関連づけて前記焦点座標を中心とする平面画像データを作成する平面画像データ作成手段と、
前記平面画像データ作成手段で作成された平面画像データから、予め設定された設定範囲で近似する前記焦点座標を有する複数の前記平面画像データをグループ化して複数のデータグループとして記憶する記憶手段と、
前記記憶手段に記憶された前記平面画像データから前記カメラで撮影している視野平面を光軸延長方向へ移動させたときに前記視野平面に交差する交差画像の平面画像データを選択平面画像データとして選択し、選択された前記選択平面画像データに基づく前記交差画像の焦点座標および前記交差画像を撮影した向きを前記交差画像が撮影されたときのまま前記視野平面に投影して合成画像を作成するとともに、前記選択平面画像データが選択された選択時刻を付与して前記記憶手段に記憶する画像合成手段と、
前記合成手段で合成された前記合成画像を表示する表示手段と、
前記記憶手段に新たな平面画像データを記憶する記憶する領域が不足するとき、前記記憶手段に複数記憶されている前記データグループのうち前記新たな平面画像データが属する特定データグループを選択し、撮影時刻が前記特定データグループに属する全ての平面画像データのうち最も古い平面画像データを削除し、空いた記憶領域に前記新たな平面画像データを記憶するデータ交信手段と、
を備えることを特徴とするロボットシステム。
【請求項1】
アームの先端にカメラを有するロボットと、通信手段を経由して前記ロボットと遠隔に配置された制御装置と、を備えるロボットシステムであって、
前記制御装置は、
前記カメラで撮影された撮影画像、ならびに前記撮影画像が撮影されたときの前記撮影画像の焦点座標および前記撮影画像を撮影した向きを関連づけて前記焦点座標を中心とする平面画像データを作成する平面画像データ作成手段と、
前記平面画像データ作成手段で作成された平面画像データから、予め設定された設定範囲で近似する前記焦点座標を有する複数の前記平面画像データをグループ化して複数のデータグループとして記憶する記憶手段と、
前記記憶手段に記憶された前記平面画像データから前記カメラで撮影している視野平面を光軸延長方向へ移動させたときに前記視野平面に交差する交差画像の平面画像データを選択平面画像データとして選択し、選択された前記選択平面画像データに基づく前記交差画像の焦点座標および前記交差画像を撮影した向きを前記交差画像が撮影されたときのまま前記視野平面に投影して合成画像を作成するとともに、前記選択平面画像データが選択された選択時刻を付与して前記記憶手段に記憶する画像合成手段と、
前記合成手段で合成された前記合成画像を表示する表示手段と、
前記記憶手段に新たな平面画像データを記憶する記憶領域が不足するとき、前記記憶手段に複数記憶されている前記データグループのうち属する前記平面画像データの数が多い最多データグループから前記選択時刻が最も古い平面画像データを削除して、空いた記憶領域に前記新たな平面画像データを記憶するデータ更新手段と、
を備えることを特徴とするロボットシステム。
【請求項2】
アームの先端にカメラを有するロボットと、通信手段を経由して前記ロボットと遠隔に配置された制御装置と、を備えるロボットシステムであって、
前記制御装置は、
前記カメラで撮影された撮影画像、ならびに前記撮影画像が撮影されたときの前記撮影画像の焦点座標および前記撮影画像を撮影した向きを関連づけて前記焦点座標を中心とする平面画像データを作成する平面画像データ作成手段と、
前記平面画像データ作成手段で作成された平面画像データから、予め設定された設定範囲で近似する前記焦点座標を有する複数の前記平面画像データをグループ化して複数のデータグループとして記憶する記憶手段と、
前記記憶手段に記憶された前記平面画像データから前記カメラで撮影している視野平面を光軸延長方向へ移動させたときに前記視野平面に交差する交差画像の平面画像データを選択平面画像データとして選択し、選択された前記選択平面画像データに基づく前記交差画像の焦点座標および前記交差画像を撮影した向きを前記交差画像が撮影されたときのまま前記視野平面に投影して合成画像を作成するとともに、前記選択平面画像データが選択された選択時刻を付与して前記記憶手段に記憶する画像合成手段と、
前記合成手段で合成された前記合成画像を表示する表示手段と、
前記記憶手段に新たな平面画像データを記憶する記憶領域が不足するとき、前記記憶手段に複数記憶されている前記データグループのうち前記新たな平面画像データが属する特定データグループを選択し、焦点座標が前記特定データグループに属する全ての平面画像データにおける焦点座標の平均値に最も近い平面画像データを削除し、空いた記憶領域に前記新たな平面画像データを記憶するデータ更新手段と、
を備えることを特徴とするロボットシステム。
【請求項3】
アームの先端にカメラを有するロボットと、通信手段を経由して前記ロボットと遠隔に配置された制御装置と、を備えるロボットシステムであって、
前記制御装置は、
前記カメラで撮影された撮影画像、ならびに前記撮影画像が撮影されたときの前記撮影画像の焦点座標および前記撮影画像を撮影した向きを関連づけて前記焦点座標を中心とする平面画像データを作成する平面画像データ作成手段と、
前記平面画像データ作成手段で作成された平面画像データから、予め設定された設定範囲で近似する前記焦点座標を有する複数の前記平面画像データをグループ化して複数のデータグループとして記憶する記憶手段と、
前記記憶手段に記憶された前記平面画像データから前記カメラで撮影している視野平面を光軸延長方向へ移動させたときに前記視野平面に交差する交差画像の平面画像データを選択平面画像データとして選択し、選択された前記選択平面画像データに基づく前記交差画像の焦点座標および前記交差画像を撮影した向きを前記交差画像が撮影されたときのまま前記視野平面に投影して合成画像を作成するとともに、前記選択平面画像データが選択された選択時刻を付与して前記記憶手段に記憶する画像合成手段と、
前記合成手段で合成された前記合成画像を表示する表示手段と、
前記記憶手段に新たな平面画像データを記憶する記憶する領域が不足するとき、前記記憶手段に複数記憶されている前記データグループのうち前記新たな平面画像データが属する特定データグループを選択し、撮影時刻が前記特定データグループに属する全ての平面画像データのうち最も古い平面画像データを削除し、空いた記憶領域に前記新たな平面画像データを記憶するデータ交信手段と、
を備えることを特徴とするロボットシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2010−214479(P2010−214479A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−61092(P2009−61092)
【出願日】平成21年3月13日(2009.3.13)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願日】平成21年3月13日(2009.3.13)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]