特開2019-214100(P2019-214100A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧
特開2019-214100ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
<>
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000003
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000004
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000005
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000006
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000007
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000008
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000009
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000010
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000011
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000012
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000013
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000014
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000015
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000016
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000017
  • 特開2019214100-ロボット制御装置、ロボット制御方法、及びロボット制御プログラム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2019-214100(P2019-214100A)
(43)【公開日】2019年12月19日
(54)【発明の名称】ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20191122BHJP
【FI】
   B25J13/08 A
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【全頁数】20
(21)【出願番号】特願2018-112794(P2018-112794)
(22)【出願日】2018年6月13日
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】藤井 春香
(72)【発明者】
【氏名】森谷 俊洋
(72)【発明者】
【氏名】小島 岳史
(72)【発明者】
【氏名】殿谷 徳和
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS04
3C707BS12
3C707KS03
3C707KS04
3C707KS20
3C707KT01
3C707KT06
3C707KX10
(57)【要約】
【課題】ロボットの作業対象であるワーク集合とロボットとが重なって撮影され得る画像取得禁止空間からロボットが退避するタイミングに合わせて、速やかに撮影画像を取得することができるロボット制御装置、方法、及びプログラムを提供する。
【解決手段】ロボット制御装置10は、ロボットRBの作業対象であるワーク集合を撮影する画像センサSから撮影画像を取得する取得部30と、ロボットRBの動作をシミュレーションするシミュレーション部32と、シミュレーションにおいて、画像センサSの視野範囲である第1の空間と、ワーク集合を含むワーク領域又はワーク領域を複数に分割した分割領域を底面とした柱状の少なくとも1つの第2の空間と、の少なくとも一方に基づいて設定された空間であり、ワーク集合とロボットRBとが重なって撮影され得る少なくとも1つの画像取得禁止空間からロボットRBが退避した場合に、画像センサSによる撮影画像を取得するように制御する制御部34と、を備える。
【選択図】図4
【特許請求の範囲】
【請求項1】
ロボットの作業対象であるワーク集合を撮影する画像センサから撮影画像を取得する取得部と、
前記ロボットの動作のシミュレーションを実行するシミュレーション部と、
前記シミュレーションにおいて、前記画像センサの視野範囲である第1の空間と、前記ワーク集合を含むワーク領域又は前記ワーク領域を複数に分割した分割領域の各々を底面として、前記底面を前記画像センサの位置まで伸ばすことで得られる柱状の少なくとも1つの第2の空間と、の少なくとも一方に基づいて設定された空間であり、前記ワーク集合と前記ロボットとが重なって撮影され得る少なくとも1つの画像取得禁止空間から前記ロボットが退避した場合に、前記画像センサによる撮影画像を取得するように制御する制御部と、
を備えたロボット制御装置。
【請求項2】
前記画像取得禁止空間は、前記第1の空間及び前記第2の空間が重複する空間である
請求項1記載のロボット制御装置。
【請求項3】
前記制御部は、前記ワーク集合の外郭を含む形状を前記底面とした前記第2の空間を算出し、算出した前記第2の空間と前記第1の空間とが重複する空間を、前記画像取得禁止空間として算出する
請求項2記載のロボット制御装置。
【請求項4】
前記ワーク集合の外郭を含む形状は、前記ワーク集合の外郭を示す輪郭又は前記ワーク集合の輪郭を内部に含む形状である
請求項3記載のロボット制御装置。
【請求項5】
前記ワーク集合の輪郭を内部に含む形状は、前記ワーク集合の外郭を包含する外接形状又は前記ワーク集合を収容する収容部の内縁の形状である
請求項4記載のロボット制御装置。
【請求項6】
前記画像センサは、静止画を撮影する画像センサであり、
前記制御部は、前記シミュレーションにおける前記ロボットが画像取得禁止空間から退避するタイミングに合わせて、前記画像センサによる撮影を開始するように制御する
請求項1〜5の何れか1項に記載のロボット制御装置。
【請求項7】
前記画像センサは、動画を撮影する画像センサであり、
前記制御部は、前記シミュレーションにおける前記ロボットが画像取得禁止空間から退避するタイミングに合わせて、前記画像センサにより撮影された動画からフレーム画像を取得するように制御する
請求項1〜5の何れか1項に記載のロボット制御装置。
【請求項8】
前記画像取得禁止空間は複数設定され、
前記制御部は、複数の前記画像取得禁止空間のうち少なくとも1つの前記画像取得禁止空間から前記ロボットが退避した場合に、前記画像センサによる撮影画像を取得するように制御する
請求項1〜7の何れか1項に記載のロボット制御装置。
【請求項9】
前記画像センサの撮影方向に平面視した場合に、前記複数の前記画像取得禁止空間のうち少なくとも2つの前記画像取得禁止空間の一部が重複するように設定されている
請求項8記載のロボット制御装置。
【請求項10】
前記制御部は、前記ロボットのロボットアームの位置が、前記ワーク集合の配置に影響を与えない基準位置まで退避すると共に、前記分割領域の各々に対応した画像取得禁止空間のうち、ワークが存在し、且つ、前記ロボットアームが存在しない画像取得禁止空間が存在する場合に、前記画像センサによる撮影画像を取得するように制御する
請求項8又は請求項9記載のロボット制御装置。
【請求項11】
コンピュータが、
ロボットの作業対象であるワーク集合を撮影する画像センサから撮影画像を取得する取得工程と、
前記ロボットの動作のシミュレーションを実行するシミュレーション工程と、
前記シミュレーションにおいて、前記画像センサの視野範囲である第1の空間と、前記ワーク集合を含むワーク領域又は前記ワーク領域を複数に分割した分割領域の各々を底面として、前記底面を前記画像センサの位置まで伸ばすことで得られる柱状の少なくとも1つの第2の空間と、の少なくとも一方に基づいて設定された空間であり、前記ワーク集合と前記ロボットとが重なって撮影され得る少なくとも1つの画像取得禁止空間から前記ロボットが退避した場合に、前記画像センサによる撮影画像を取得するように制御する制御工程と、
を含む処理を実行するロボット制御方法。
【請求項12】
コンピュータを、
ロボットの作業対象であるワーク集合を撮影する画像センサから撮影画像を取得する取得部、
前記ロボットの動作のシミュレーションを実行するシミュレーション部、及び、
前記シミュレーションにおいて、前記画像センサの視野範囲である第1の空間と、前記ワーク集合を含むワーク領域又は前記ワーク領域を複数に分割した分割領域の各々を底面として、前記底面を前記画像センサの位置まで伸ばすことで得られる柱状の少なくとも1つの第2の空間と、の少なくとも一方に基づいて設定された空間であり、前記ワーク集合と前記ロボットとが重なって撮影され得る少なくとも1つの画像取得禁止空間から前記ロボットが退避した場合に、前記画像センサによる撮影画像を取得するように制御する制御部、
として機能させるためのロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御装置、ロボット制御方法、及びロボット制御プログラムに関する。
【背景技術】
【0002】
工場の製造ラインなどにおいて、部品や製品等のワークを搬送する装置の一つとしてピックアンドプレース装置がある(例えば特許文献1参照)。ピックアンドプレース装置は、ワークを保持して目的の場所まで搬送し、載置する。保持するワークは、画像センサでワーク集合の上方から撮影した撮影画像に基づいて決定される。また、画像センサでワーク集合を撮影する際には、ロボットアームとワーク集合とが重なった状態で撮影されないように、ロボットアームがワーク集合の上方から退避した状態で撮影する必要がある。
【0003】
また、ピックアンドプレース装置では、生産性を向上するために、所定の場所でワークを保持してから目的の場所に載置するまでのサイクルタイムを短縮することが求められる。一般に、ピックアンドプレース装置のサイクルタイムを短縮するためには、ロボットアームがワーク集合の上方から退避したタイミングで速やかに画像センサの撮影を開始することが好ましい。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−131303号公報
【特許文献1】特開2008−30136号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ロボットアームがワーク集合の上方から退避するタイミングは、保持するワークの位置及びワークの保持に要する時間に応じてばらつくため、推定することが困難である。このため、従来では、明らかにロボットアームがワークの上方に存在しないタイミング、例えばワークを保持してから数秒後といった固定のタイミングで撮影を開始していた。このため、サイクルタイムを短縮するのが困難であった。
【0006】
ロボットアームがワーク集合の上方から退避するタイミングを特定するためのセンサを、ワーク集合を撮影する画像センサとは別に設けることも考えられるが、部品点数が増加し装置のコストが高くなる、という問題がある。
【0007】
本発明は、上記の点に鑑みてなされたものであり、ロボットの作業対象であるワーク集合とロボットとが重なって撮影され得る画像取得禁止空間からロボットが退避するタイミングに合わせて、速やかに撮影画像を取得することができるロボット制御装置、ロボット制御方法、及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係るロボット制御装置は、ロボットの作業対象であるワーク集合を撮影する画像センサから撮影画像を取得する取得部と、前記ロボットの動作のシミュレーションを実行するシミュレーション部と、前記シミュレーションにおいて、前記画像センサの視野範囲である第1の空間と、前記ワーク集合を含むワーク領域又は前記ワーク領域を複数に分割した分割領域の各々を底面として、前記底面を前記画像センサの位置まで伸ばすことで得られる柱状の少なくとも1つの第2の空間と、の少なくとも一方に基づいて設定された空間であり、前記ワーク集合と前記ロボットとが重なって撮影され得る少なくとも1つの画像取得禁止空間から前記ロボットが退避した場合に、前記画像センサによる撮影画像を取得するように制御する制御部と、を備える。
【0009】
また、前記画像取得禁止空間は、前記第1の空間及び前記第2の空間が重複する空間としてもよい。
【0010】
また、前記制御部は、前記ワーク集合の外郭を含む形状を前記底面とした前記第2の空間を算出し、算出した前記第2の空間と前記第1の空間とが重複する空間を、前記画像取得禁止空間として算出するようにしてもよい。
【0011】
また、前記ワーク集合の外郭を含む形状は、前記ワーク集合の外郭を示す輪郭又は前記ワーク集合の輪郭を内部に含む形状としてもよい。
【0012】
また、前記ワーク集合の輪郭を内部に含む形状は、前記ワーク集合の外郭を包含する外接形状又は前記ワーク集合を収容する収容部の内縁の形状としてもよい。
【0013】
また、前記画像センサは、静止画を撮影する画像センサであり、前記制御部は、前記シミュレーションにおける前記ロボットが画像取得禁止空間から退避するタイミングに合わせて、前記画像センサによる撮影を開始するように制御するようにしてもよい。
【0014】
また、前記画像センサは、動画を撮影する画像センサであり、前記制御部は、前記シミュレーションにおける前記ロボットが画像取得禁止空間から退避するタイミングに合わせて、前記画像センサにより撮影された動画からフレーム画像を取得するように制御するようにしてもよい。
【0015】
また、前記画像取得禁止空間は複数設定され、前記制御部は、複数の前記画像取得禁止空間のうち少なくとも1つの前記画像取得禁止空間から前記ロボットが退避した場合に、前記画像センサによる撮影画像を取得するように制御するようにしてもよい。
【0016】
また、前記画像センサの撮影方向に平面視した場合に、前記複数の前記画像取得禁止空間のうち少なくとも2つの前記画像取得禁止空間の一部が重複するように設定されているようにしてもよい。
【0017】
また、前記制御部は、前記ロボットのロボットアームの位置が、前記ワーク集合の配置に影響を与えない基準位置まで退避すると共に、前記分割領域の各々に対応した画像取得禁止空間のうち、ワークが存在し、且つ、前記ロボットアームが存在しない画像取得禁止空間が存在する場合に、前記画像センサによる撮影画像を取得するように制御するようにしてもよい。
【0018】
本発明に係るロボット制御方法は、コンピュータが、ロボットの作業対象であるワーク集合を撮影する画像センサから撮影画像を取得する取得工程と、前記ロボットの動作のシミュレーションを実行するシミュレーション工程と、前記シミュレーションにおいて、前記画像センサの視野範囲である第1の空間と、前記ワーク集合を含むワーク領域又は前記ワーク領域を複数に分割した分割領域の各々を底面として、前記底面を前記画像センサの位置まで伸ばすことで得られる柱状の少なくとも1つの第2の空間と、の少なくとも一方に基づいて設定された空間であり、前記ワーク集合と前記ロボットとが重なって撮影され得る少なくとも1つの画像取得禁止空間から前記ロボットが退避した場合に、前記画像センサによる撮影画像を取得するように制御する制御工程と、を含む処理を実行する方法である。
【0019】
本発明に係るロボット制御プログラムは、コンピュータを、ロボットの作業対象であるワーク集合を撮影する画像センサから撮影画像を取得する取得部、前記ロボットの動作のシミュレーションを実行するシミュレーション部、及び、前記シミュレーションにおいて、前記画像センサの視野範囲である第1の空間と、前記ワーク集合を含むワーク領域又は前記ワーク領域を複数に分割した分割領域の各々を底面として、前記底面を前記画像センサの位置まで伸ばすことで得られる柱状の少なくとも1つの第2の空間と、の少なくとも一方に基づいて設定された空間であり、前記ワーク集合と前記ロボットとが重なって撮影され得る少なくとも1つの画像取得禁止空間から前記ロボットが退避した場合に、前記画像センサによる撮影画像を取得するように制御する制御部、として機能させるためのプログラムである。
【発明の効果】
【0020】
本発明によれば、ロボットの作業対象であるワーク集合とロボットとが重なって撮影され得る画像取得禁止空間からロボットが退避するタイミングに合わせて、速やかに撮影画像を取得することができる。
【図面の簡単な説明】
【0021】
図1】ピックアンドプレース装置の概略構成図である。
図2】垂直多関節ロボットの一例を示す斜視図である。
図3】ロボット制御装置のハードウェア構成の例を示す構成図である。
図4】ロボット制御装置の機能構成の例を示すブロック図である。
図5】ロボット制御処理の流れを示すフローチャートである。
図6】第1の空間の一例を示す図である。
図7】第2の空間の一例を示す図である。
図8】画像取得禁止空間の一例を示す図である。
図9】第2の空間の底面の一例を説明するための図である。
図10】第2の空間の底面の一例を説明するための図である。
図11】第2の空間の底面の一例を説明するための図である。
図12】画像取得禁止空間からロボットアームが退避したか否かの判定について説明するための図である。
図13】ロボット制御装置において実行される各処理のタイミングチャートである。
図14】画像取得禁止空間を複数設定した場合の一例を示す平面図である。
図15】画像取得禁止空間を複数設定した場合の一例を示す斜視図である。
図16】画像取得禁止空間を複数設定した場合の撮影画像の取得タイミングの判定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
【0023】
図1は、本実施形態に係るピックアンドプレース装置1の構成図である。図1に示すように、ピックアンドプレース装置1は、ロボットRB、画像センサS、及びロボット制御装置10を備える。
【0024】
ロボットRBは、箱状の収容部20Aに収容されたワークWの集合であるワーク集合WSから選択されたワークWを保持して箱状の別の収容部20Bまで搬送し、収容部20B内に載置する。以下では、ワークWを保持する動作をピックアップ動作と称する。また、ワークWを載置する動作をプレース動作と称する。
【0025】
本実施形態では一例としてロボットRBのロボットアームの先端にはエンドエフェクタとしてロボットハンドHが取り付けられており、ロボットハンドHで収容部20A内のワークWを把持することによってワークWを保持する。そして、ワークWを保持した状態で別の収容部20Bまで搬送し、ワークWの保持を解除してワークWを載置する。なお、ワークWを保持する部材は、ロボットハンドHに限らず、ワークWを吸着する吸着パッドでもよい。
【0026】
画像センサSは、ワーク集合WSを含む範囲を撮影可能なワーク集合WSの上方の位置に設置されている。画像センサSは、ロボット制御装置10の指示によりワーク集合WSを静止画として撮影するカメラである。なお、画像センサSとして、対象物を複数の異なる方向から同時に撮影するステレオカメラを用いても良い。
【0027】
ロボット制御装置10は、画像センサSから取得した撮影画像を画像処理し、画像処理の結果に基づいて保持すべきワークWの位置及び姿勢を認識する。そして、ロボット制御装置10は、ロボットRBが収容部20AからワークWを保持して収容部20Bに載置するまでの経路計画を生成する。ロボット制御装置10は、生成した経路計画に従ってロボットRBが動作するように動作指令値をロボットRBに出力する。
【0028】
次に、ロボットRBについて説明する。本実施形態では、ロボットRBが垂直多関節ロボットである場合について説明するが、水平多関節ロボット(スカラーロボット)及びパラレルリンクロボット等にも本発明を適用可能である。
【0029】
図2は、垂直多関節ロボットであるロボットRBの構成を示す図である。図2に示すように、ロボットRBは、ベースリンクBL、リンクL1〜L6、ジョイントJ1〜J6を備えた6自由度の6軸ロボットである。なお、ジョイントとは、リンク同士を接続する関節である。また、以下では、リンクL1〜L6及びリンクL6に接続されたロボットハンドHを含めてロボットアームと称する。
【0030】
ベースリンクBLとリンクL1とは、図2において鉛直軸S1を中心として矢印C1方向に回転するジョイントJ1を介して接続されている。従って、リンクL1は、ベースリンクBLを支点として矢印C1方向に回転する。
【0031】
リンクL1とリンクL2とは、図2において水平軸S2を中心として矢印C2方向に回転するジョイントJ2を介して接続されている。従って、リンクL2は、リンクL1を支点として矢印C2方向に回転する。
【0032】
リンクL2とリンクL3とは、図2において軸S3を中心として矢印C3方向に回転するジョイントJ3を介して接続されている。従って、リンクL3は、リンクL2を支点として矢印C3方向に回転する。
【0033】
リンクL3とリンクL4とは、図2において軸S4を中心として矢印C4方向に回転するジョイントJ4を介して接続されている。従って、リンクL4は、リンクL3を支点として矢印C4方向に回転する。
【0034】
リンクL4とリンクL5とは、図2において軸S5を中心として矢印C5方向に回転するジョイントJ5を介して接続されている。従って、リンクL5は、リンクL4を支点として矢印C5方向に回転する。
【0035】
リンクL5とリンクL6とは、図2において軸S6を中心として矢印C6方向に回転するジョイントJ6を介して接続されている。従って、リンクL6は、リンクL5を支点として矢印C6方向に回転する。なお、図2では図示は省略したが、リンクL6にロボットハンドHが取り付けられる。
【0036】
ジョイントJ1〜J6は、−180度から+180度の回転角度の範囲のうち予め定めた範囲が可動域として各々設定されている。
【0037】
ロボットRBの姿勢は、ジョイントJ1〜J6の各々の回転角度によって定まる。
【0038】
図3は、本実施形態に係るロボット制御装置10のハードウェア構成を示すブロック図である。
【0039】
図3に示すように、ロボット制御装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、モニタ16、光ディスク駆動装置17、及び通信インタフェース18を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0040】
本実施形態では、ROM12又はストレージ14には、ロボット制御処理を実行するロボット制御プログラムが格納されている。CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0041】
なお、CPU11は、複数の処理を並列して実行することが可能なプロセッサである。このようなプロセッサとしては、マルチコアCPUが挙げられる。また、CPU11を、マルチタスクオペレーティングシステムに基づいて複数の処理を並列して実行することが可能なプロセッサとしてもよい。
【0042】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0043】
入力部15は、キーボード151、及びマウス152等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ16は、例えば、液晶ディスプレイであり、各種の情報を表示する。モニタ16は、タッチパネル方式を採用して、入力部15として機能してもよい。光ディスク駆動装置17は、各種の記録媒体(CD−ROM又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【0044】
通信インタフェース18は、ロボットRB及び画像センサS等の他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi−Fi(登録商標)等の規格が用いられる。
【0045】
次に、ロボット制御装置10の機能構成について説明する。
【0046】
図4は、ロボット制御装置10の機能構成の例を示すブロック図である。
【0047】
図4に示すように、ロボット制御装置10は、機能構成として、取得部30、シミュレーション部32、制御部34、及び記憶部36を有する。各機能構成は、CPU11がROM12又はストレージ14に記憶されたロボット制御プログラムを読み出し、RAM13に展開して実行することにより実現される。
【0048】
取得部30は、ロボットRBの作業対象であるワーク集合WSを撮影する画像センサSから撮影画像を取得する。
【0049】
シミュレーション部32は、ロボットRBの動作をシミュレーションする。
【0050】
制御部34は、シミュレーション部32によるシミュレーションにおいて、画像センサSの視野範囲及びワーク集合WSを含む領域の形状の少なくとも一方に基づいて設定された空間であり、ワーク集合WSとロボットRBとが重なって撮影され得る画像取得禁止空間からロボットRBが退避した場合に、画像センサSによる撮影画像を取得するように制御する。
【0051】
記憶部36は、ロボット制御処理プログラム、画像センサSの視野範囲に関する情報、ロボットRBのベースリンクBL及びリンクL1〜L6の形状データ、ジョイントJ1〜J6の可動域に関する情報、ロボットハンドHの形状データ、ワークWの形状データ等の各種情報を記憶する。
【0052】
次に、ロボット制御装置10の作用について説明する。
【0053】
図5は、ロボット制御装置10のCPU11により実行されるロボット制御処理の流れを示すフローチャートである。オペレータによってロボット制御処理の実行が指示されると、CPU11がROM12又はストレージ14からロボット制御プログラムを読み出して、RAM13に展開し実行することにより、ロボット制御処理が実行される。
【0054】
CPU11は、制御部34として画像センサSに撮影を指示し、取得部30として画像センサSが撮影した撮影画像を取得する(ステップS100)。
【0055】
CPU11は、制御部34として、画像センサSの視野範囲を記憶部36から読み出し、画像センサSから取得した撮影画像と、記憶部36から読み出した画像センサSの視野範囲と、に基づいて、画像取得禁止空間を算出する(ステップS102)。
【0056】
ここで、画像取得禁止空間とは、ワーク集合WSとロボットRBとが重なって撮影され得る空間である。後述するように、ロボットRBがワークWを保持する際には、画像センサSが撮影した撮影画像に基づいて保持すべきワークWを選択する。この際、撮影画像にワーク集合WSとロボットRBのロボットアームとが重なって映っていると、保持すべきワークWの選択が困難となる場合がある。このため、画像取得禁止空間内にロボットRBのロボットアームが存在する場合は、画像センサSによる撮影画像の取得を禁止する。
【0057】
本実施形態では、画像センサSの視野範囲である第1の空間と、ワーク集合WSを含む領域を底面として、底面を画像センサSの位置まで伸ばすことで得られる第2の空間と、が重複する空間を画像取得禁止空間とする。
【0058】
例えば、第1の空間を、図6に示すような四角錐状の視野範囲を表す第1の空間40とする。また、第2の空間を、図7に示すように、ワーク集合WSの収容範囲を底面42として画像センサSの位置まで伸ばすことで得られる四角柱状の第2の空間44とする。この場合、第1の空間40及び第2の空間44が重複する画像取得禁止空間として、図8に示すような画像取得禁止空間46が得られる。なお、底面42は、本発明のワーク領域の一例である。
【0059】
図7の底面42は、図9に示すように収容部20Aを画像センサSの撮影方向に平面視した場合に、収容部20Aの内縁の形状48としている。なお、図8に示す画像取得禁止空間46の形状を表すデータを予め記憶部36に記憶しておき、ステップ102の処理を省略してもよい。
【0060】
底面42の形状は、図9の例に限られない。例えば、ワーク集合WSの外郭を含む形状を底面とした柱状の第2の空間を算出し、算出した第2の空間と第1の空間とが重複する空間を、画像取得禁止空間として算出してもよい。
【0061】
この場合、ワーク集合WSの外郭を含む形状を、図10に示すように、ワーク集合WSの外郭を示す輪郭50としてもよい。この場合、CPU11は、制御部34として、画像センサSが取得した撮影画像に対して公知のエッジ抽出処理等の画像処理を実行し、ワーク集合WSの輪郭50を抽出する。そして、抽出した輪郭50を画像センサSの位置まで伸ばすことで柱状の第2の空間を算出する。これにより、第2の空間を必要最小限の空間とすることができる。
【0062】
また、ワーク集合WSを含む領域の輪郭を、ワーク集合WSの輪郭を内部に含む形状としてもよい。例えば図11に示すように、ワーク集合WSの輪郭を内部に含む形状を、ワーク集合WSの外郭を包含する外接形状52としてもよい。図11の例では、外接形状52は矩形であるが円でもよい。また、外接形状52を、ワーク集合WSを凸包する凸包形状としてもよい。図11の例の場合、収容部20Aの内縁の形状48を底面とする場合と比較して、底面の面積を小さくすることができる。また、ワーク集合WSの外郭を示す輪郭50を底面とする場合と比較して、第2の空間を単純な柱状の形状とすることができる。
【0063】
CPU11は、制御部34として、画像センサSから取得した撮影画像に基づいて、ピックアップすべきワークWの位置及び姿勢を算出する(ステップS104)。例えば撮影画像に対して公知のエッジ抽出処理及び特徴抽出処理等を施し、各ワークWの位置及び姿勢を検出する。そして、検出したワークWの中からピックアップすべきワークWを選択する。なお、ピックアップすべきワークWの選択基準としては、例えばワーク集合WSの中で最上部にあるワークWを選択する、ワーク集合WSの中央に存在するワークWを選択する、他のワークWと重ならないワークWを選択する等が挙げられるが、これらに限られるものではない。
【0064】
CPU11は、制御部34として、ピックアップ動作の経路計画を生成する(ステップS106)。具体的には、ステップS104で算出したピックアップすべきワークWの位置及び姿勢に基づいて、ロボットRBの目標姿勢を決定し、ロボットRBの初期姿勢から目標姿勢に至るまでの経路計画を算出する。ここで、ロボットRBの経路計画とは、ロボットRBを初期姿勢から目標姿勢まで動作させる場合の姿勢のリスト、すなわち、ロボットRBのジョイントJ1〜J6の各々の回転角度のリストである。経路計画の算出には、初期姿勢及び目標姿勢を指定すると自動で経路計画を生成するモーションプランニングの手法を用いることができる。また、ティーチングプレイバックの手法を用いて生成された経路計画を用いてもよい。すなわち、ロボットRBを直接動かして様々なワークの位置及び姿勢に応じた経路をティーチングして記憶部36に記憶しておき、ステップS104で算出したピックアップすべきワークWの位置及び姿勢に応じた経路を記憶部36から読み出してもよい。
【0065】
CPU11は、制御部34及びシミュレーション部32として、ステップS106で生成した経路計画に従ってロボットRBを動作させるための動作指令値をロボットRBに送信してロボットRBを実際に動作させると共に、ロボットRBの実際の動作と同じ動作のシミュレーションを実行する(ステップS108)。これにより、実際にロボットRBによるピックアップ動作が実行されるのに合わせて、シミュレーションにおいても仮想的なロボットRBによるピックアップ動作が実行される。すなわち、実際のロボットRBによるピックアップ動作と、シミュレーションにおける仮想的なロボットRBによるピックアップ動作と、が並列で実行される。なお、実際のロボットRBの動作の方がシミュレーションによるロボットRBの動作よりも実際にロボットRBによるピックアップ動作が実行されるのに若干先行してシミュレーションにおけるピックアップ動作が実行されるようにしてもよい。これにより、後述するステップS114で、シミュレーションにおいて、保持したワークWも含めてロボットアームが画像取得禁止空間46から退避したと判定し、ステップS116で画像センサSに撮影を指示する場合に、撮影指示のタイミングを、実際にロボットRBが画像取得禁止空間46から退避するタイミングに極力合わせることができる。
【0066】
また、CPU11は、制御部34として、プレース動作の経路計画を生成する処理を、ステップS108の処理と並列に実行する(ステップS110)。
【0067】
具体的には、ピックアップ動作でワークWをピックアップした際のロボットRBの姿勢を初期姿勢とし、収容部20BにワークWを載置する際の姿勢を目標姿勢として、ロボットRBの初期姿勢から目標姿勢に至るまでの経路計画を算出する。
【0068】
CPU11は、制御部34及びシミュレーション部32として、ステップS110で生成した経路計画に従ってロボットRBを動作させるための動作指令値をロボットRBに送信してロボットRBを実際に動作させると共に、ロボットRBの実際の動作と同じ動作のシミュレーションを実行する(ステップS112)。これにより、実際にロボットRBによるプレース動作が実行されるのに合わせて、シミュレーションにおいても仮想的なロボットRBによるプレース動作が実行される。すなわち、実際のロボットRBによるプレース動作と、シミュレーションにおける仮想的なロボットRBによるプレース動作と、が並列で実行される。
【0069】
また、CPU11は、ステップS112の処理と並列してステップS114及びS116の処理を実行する。すなわち、CPU11は、制御部34として、撮影画像の取得タイミングが到来したか否かを判定する(ステップS114)。
【0070】
撮影画像の取得タイミングは、シミュレーションにおいて、保持したワークWも含めてロボットアームが画像取得禁止空間46から退避したタイミングとする。保持したワークWも含めてロボットアームが画像取得禁止空間46から退避したタイミングを算出するために、CPU11は、シミュレーションにおいて、例えばロボットと障害物との干渉を判定する公知の干渉判定技術を用いる。ここで、干渉とは、ロボットと障害物とが接触することをいう。公知の干渉判定技術としては、例えば特開2002−273675号公報に記載の技術を用いることができる。
【0071】
例えば図12に示すように、ロボットRBのロボットアームが矢印A方向に移動して画像取得禁止空間46内に進入するタイミングは、画像取得禁止空間46を障害物と見なした場合には、ロボットRBのロボットアームが障害物と干渉するタイミングであると考えられる。なお、図12ではロボットハンドH及びワークWの図示を省略している。
【0072】
また、ロボットRBのロボットアームが画像取得禁止空間46内に進入し、保持したワークWも含めてロボットアームが矢印B方向に移動して画像取得禁止空間46から抜け出すタイミングは、画像取得禁止空間46を障害物と見なした場合には、保持したワークWも含めてロボットアームが障害物と干渉した状態から非干渉になるタイミングであると考えられる。
【0073】
このため、CPU11は、シミュレーションにおいて、画像取得禁止空間46を障害物と見なして、ロボットRBのロボットアームが障害物と干渉し、その後、保持したワークWも含めてロボットアームが障害物と非干渉になったタイミングを、ロボットRBが画像取得禁止空間46から退避したタイミングと判定する。
【0074】
CPU11は、撮影画像の取得タイミングが到来していない場合(ステップS114:NO)、ステップS114の判定を繰り返す。
【0075】
一方、撮影画像の取得タイミングが到来した場合(ステップS114:YES)、CPU11は、制御部34として画像カメラSに撮影を指示し、取得部30としてワーク集合WSを撮影した撮影画像を画像センサSから取得する(ステップS116)。
【0076】
CPU11は、ワーク集合WSから全てのワークWを収容部20Aから収容部20Bへ搬送したか否かを判定する(ステップS118)。具体的には、例えばステップS116で取得した撮影画像に対して画像処理を施し、撮影画像中にワークWが存在するか否かを判定する。また、最初に収容部20Aに収容されていたワークの数が予め判っている場合には、ワークWを搬送した回数がワークWの数に達したか否かを判定してもよい。そして、全てのワークWを搬送した場合(ステップS118:YES)、本ルーチンを終了する。一方、全てのワークWを搬送していない場合(ステップS118:NO)、ステップS102へ移行し、全てのワークWを搬送するまでステップS102〜S118の処理を繰り返す。この場合、ステップS106でピックアップ動作の経路計画を生成する際の初期姿勢は、前回のプレース動作でワークWをプレースした際のロボットRBの姿勢とする。
【0077】
図13には、撮影及び画像処理(ステップS100〜S104)、ピックアップ動作の経路計画の生成(ステップS106)、ピックアップ動作及びシミュレーション(ステップS108)、プレース動作の経路計画の生成(ステップS110)、プレース動作及びシミュレーション(ステップS112)を1つのサイクルとした場合の各動作のタイミングチャートを示した。なお、図13において、t1〜t2の期間は、ロボットRBのロボットアームが画像取得禁止空間46に存在する期間である。このように、1サイクル目のピックアップ動作の途中のt1の時点でロボットRBのロボットアームが画像取得禁止空間46に進入し、プレース動作の途中のt2の時点で、保持したワークWも含めてロボットアームが画像取得禁止空間46から退避した場合、t2の時点で先行して2サイクル目の撮影が開始されることが好ましい。
【0078】
本実施形態では、ロボットRBの動作のシミュレーションを実行する。そして、シミュレーションにおいて、保持したワークWも含めてロボットアームが画像取得禁止空間46から退避した場合に、画像センサSに撮影を指示する。このため、画像取得禁止空間46からロボットRBが退避するタイミングに合わせて、速やかに撮影画像を取得することができ、1サイクルに要する時間を短縮することができる。
【0079】
ロボット制御装置10は、上記の実施形態に限定されず、種々の改変が可能である。例えば、本実施形態では、画像センサSが静止画を撮影するカメラである場合について説明したが、動画を撮影するカメラを用いてもよい。この場合、図5の処理を実行中は画像センサSによる動画の撮影を継続する。そして、ステップS100、ステップS116では、画像センサSにより撮影された動画からフレーム画像を取得するように制御すればよい。
【0080】
また、本実施形態では、ワークWも含めてロボットアームが画像取得禁止空間46から全て退避した場合に画像センサSに撮影を指示する場合について説明したが、保持したワークWも含めたロボットアームの一部が画像取得禁止空間46に残った状態であっても画像センサSに撮影を指示してもよい。例えば、第2の空間44の底面を、図9に示すように収容部20Aの内縁の形状48とした場合又は図11に示すようにワーク集合WSの外郭を包含する外接形状52とした場合、画像取得禁止空間46内であってもワーク集合WSと重ならない位置であれば、保持ワークWも含めたロボットアームの一部が画像取得禁止空間46内に残った状態でもワークWの選択に影響が無い場合が多い。このため、保持したワークWも含めたロボットアームの一部が画像取得禁止空間46に残った状態であってもワーク集合WSと重ならない位置の場合には、画像センサSに撮影を指示してもよい。この場合、図5のステップS104の処理において、撮影画像からロボットアームの一部を除いた画像に基づいて、ピックアップすべきワークを選択するようにしてもよい。
【0081】
また、保持したワークWを除いたロボットハンドHを含むロボットアームが画像取得禁止空間46から退避したと判定した場合に画像センサSに撮影を指示してもよい。また、保持したワークW及びロボットハンドHを除いたロボットアームが画像取得禁止空間46から退避したと判定した場合に画像センサSに撮影を指示してもよい。
【0082】
また、本実施形態では、第1の空間40及び第2の空間44が重複する空間を画像取得禁止空間46とした場合について説明したが、第1の空間40又は第2の空間44を画像取得禁止空間46としてもよい。第1の空間40を画像取得禁止空間46とした場合は、第1の空間40は画像センサSの視野範囲により予め定められるので、図5のステップ102の処理を省略することができる。また、第2の空間44を画像取得禁止空間46とした場合は、第1の空間40と第2の空間44とが重複する空間を算出する場合と比較して、画像取得禁止空間46の算出時間を短縮することができる。また、第1の空間40と第2の空間44との和を画像取得禁止空間46としてもよい。
【0083】
また、本実施形態では、画像取得禁止空間が1つだけ設定された場合について説明したが、図5のステップS102において、画像取得禁止空間を複数設定してもよい。例えば、画像センサSの視野範囲である第1の空間と、ワーク集合WSを含むワーク領域を複数に分割した分割領域の各々を底面として、各底面を画像センサSの位置まで伸ばすことで得られる柱状の複数の第2の空間と、が各々重複する複数の画像取得禁止空間を設定してもよい。
【0084】
具体的には、図14に示すように、収容部20Aを画像センサSの撮影方向に平面視した場合に、収容部20Aの内縁の形状48を底面として、当該底面を複数に分割した分割領域42A〜42Dの各々を複数の第2の空間の底面とする。図14の例では、分割領域42A〜42Dの各々の一部が互いに重複するように設定されている。すなわち、画像センサSの撮影方向に平面視した場合に、複数の画像取得禁止空間の一部が重複するように設定されている。このように、複数の画像取得禁止空間の一部を互いに重複させることにより、複数の画像取得禁止空間の一部を重複させない場合と比較して、各画像取得禁止空間において選択可能なワークWの数を増加させることができる。
【0085】
なお、分割領域42A〜42Dの各々に存在するワークWの数が均等になるように、分割領域42A〜42Dを設定してもよい。この場合、撮影画像に基づいてワークWの位置及び数を算出する。そして、算出したワークWの数及び位置に基づいて分割領域42A〜42Dのサイズを設定すればよい。
【0086】
図15には、分割領域42A〜42Dの各々を底面として、各底面を画像センサSの位置まで伸ばすことで得られる柱状の第2の空間44A〜44Dの一例を示した。
【0087】
なお、図14の例では、分割領域42A〜42Dの各々の一部が互いに重複するように設定されているが、分割領域42A〜42Dのうち2つ又は3つの分割領域の一部が互いに重複するように設定されていてもよい。また、分割領域42A〜42Dが互いに重複しないように複数の画像取得禁止空間を設定してもよいが、この場合は複数の画像取得禁止空間にワーク集合WSが全て含まれるように分割領域42A〜42Dを設定する必要がある。
【0088】
複数の画像取得禁止空間を設定した場合、図5のステップS114において、図16に示す処理を実行する。まず、CPU11は、シミュレーションにおいて、ロボットアームの位置が、ワーク集合WSの配置に影響を与えない基準位置まで退避したか否かを判定する(ステップS114A)。すなわち、ロボットアームがワークWに接触してワーク集合WSの配置が変化してしまうことがない位置まで退避したか否かを判定する。ここで、基準位置は、例えば図15に示すように、収容部20Bの上面Aから、高さ方向であるZ方向に予め定めた距離hだけ離間した位置とする。この場合、図15に示すように、ロボットアームの高さが、収容部20Bの上面AからZ方向に距離hだけ離間した位置の面B以上の高さになった場合に、ステップS114Aの判定が肯定判定となる。
【0089】
なお、例えば図5のステップS100で取得した撮影画像と、ワークWの形状及びサイズと、に基づいて基準位置を設定してもよい。具体的には、撮影画像と、ワークWの形状及びサイズと、に基づいて、最も高く積み上げられたワークWの積み上げ位置を推定し、推定した積み上げ位置から、収容部20Bの底面からワーク集合WSの最も高い位置までの高さを推定する。そして、推定したワーク集合WSの最も高い位置からZ方向に予め定めた距離hだけ離間した位置を基準位置とする。また、図5のステップS116で撮影画像を取得する毎に、撮影画像と、ワークWの形状及びサイズと、に基づいて収容部20Bの底面からワーク集合WSの最も高い位置までの高さを推定し、推定した位置からZ方向に予め定めた距離hだけ離間した位置を基準位置としてもよい。
【0090】
そして、シミュレーションにおいて、ロボットアームの位置が基準位置まで退避した場合(ステップS114A:YES)、すなわち、ロボットアームがワークWに接触してワーク集合WSの配置に影響を与えることがない場合には、ステップS114Bへ移行する。一方、ロボットアームの位置が基準位置まで退避していない場合(ステップS114A:NO)、すなわち、ロボットアームがワークWに接触してワーク集合WSの配置に影響を与える可能性がある場合には、ロボットアームの位置が基準位置に退避するまでステップS114Aの処理を繰り返す。
【0091】
CPU11は、分割領域42A〜42Dの各々に対応した画像取得禁止空間のうち、ワークWが存在し、且つ、ロボットアームが存在しない画像取得禁止空間が存在するか否かを判定する(ステップS114B)。そして、分割領域42A〜42Dの各々に対応した画像取得禁止空間のうち、ワークWが存在し、且つ、ロボットアームが存在しない画像取得禁止空間が存在する場合(ステップS114B:YES)、図5のステップS116へ移行する。一方、分割領域42A〜42Dの各々に対応した画像取得禁止空間のうち、ワークWが存在し、且つ、ロボットアームが存在しない画像取得禁止空間が存在しない場合(ステップS114B:NO)、ステップS114Bの判定が肯定されるまでステップS114Bの処理を繰り返す。
【0092】
なお、ワークWが存在するか否かの判定は、例えば以下のようにして行う。まず、図5のステップS102を最初に実行し、分割領域42A〜42D毎に画像取得禁止空間を設定した際に、撮影画像を画像処理することで分割領域42A〜42D毎にワークWの数を初期値として算出し、記憶部38に記憶しておく。次に、図5のステップS108でピックアップ動作が実行される毎に、記憶部38に記憶したワークWの数のうち、ピックアップ動作が実行された分割領域に対応するワークWの数を減らしていく。そして、記憶部38に記憶したワークWの数が零でないか否かを判定することでワークWが存在するか否かを判定する。または、図5のステップS116を実行する毎に、撮影画像を画像処理することで分割領域42A〜42D毎にワークWの数を算出し、記憶部38に記憶しておく。そして、次のステップS114Bを実行した際に、記憶部38に記憶したワークWの数が零でないか否かを判定することでワークWが存在するか否かを判定する。
【0093】
このように、分割領域42A〜42Dの各々に対応した画像取得禁止空間のうち、ワークWが存在し、且つ、ロボットアームが存在しない画像取得禁止空間が存在する場合に、撮影画像の取得タイミングが到来したと判定する。例えば図14に示す分割領域42A内のワークWがピックアップされ、ロボットアームが分割領域42Aに対応する画像取得禁止空間から退避したとする。この場合において、他の分割領域42B〜42Dに対応する画像取得禁止空間の少なくとも1つの画像取得禁止空間にロボットアームの一部が残っていたとしても、分割領域42AにワークWが残っていれば、少なくとも分割領域42AからワークWを選択することが可能である。このように、複数の画像取得禁止空間のうち少なくとも1つの画像取得禁止空間からロボットアームが退避した場合に、撮影画像の取得タイミングが到来したと判定することにより、速やかに撮影画像を取得することができる。
【0094】
また、本実施形態では、ロボットRBがワークWを保持するピックアップ動作に本発明を適用した場合について説明したが、ロボットRBが保持したワークWを収容部20Bに載置するプレース動作に本発明を適用してもよい。この場合、収容部20Bの上方に画像センサを設け、画像センサで撮影された撮影画像に基づいて画像取得禁止空間を算出すると共に、ワークWを載置する位置を決定する。そして、ワークWを収容部20Bに載置したロボットアームが画像取得禁止空間から退避した場合に、画像センサに撮影を指示するようにすればよい。
【0095】
また、本実施形態では、シミュレーションにおいて公知の干渉判定技術を用いてロボットRBが画像取得禁止空間46から退避したタイミングを判定したが、ロボットRBの経路計画に基づいて、ロボットRBが画像取得禁止空間46から退避したタイミングを判定してもよい。具体的には、図5のS110で生成したプレース動作の経路計画に基づいて、ロボットRBがワークWを保持してから画像取得禁止空間46から退避するまでの退避時間を算出する。そして、シミュレーションにおいてロボットRBがワークWを保持してから退避時間が経過したタイミングを、画像取得禁止空間46から退避したタイミングと判定すればよい。
【0096】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したロボット制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field−Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、ロボット制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0097】
また、上記各実施形態では、ロボット制御プログラムがストレージ14又はROM12に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD−ROM(Compact Disk Read Only Memory)、DVD−ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0098】
1 ピックアンドプレース装置
10 ロボット制御装置
20A、20B 収容部
30 取得部
32 シミュレーション部
34 制御部
36 記憶部
40 第1の空間
42 底面
44 第2の空間
46 画像取得禁止空間
50 輪郭
52 外接形状
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16