IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ オムロン株式会社の特許一覧

特許7331527ロボットの動作を決定する装置、方法およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-15
(45)【発行日】2023-08-23
(54)【発明の名称】ロボットの動作を決定する装置、方法およびプログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20230816BHJP
【FI】
B25J13/08 A
【請求項の数】 14
(21)【出願番号】P 2019137588
(22)【出願日】2019-07-26
(65)【公開番号】P2021020266
(43)【公開日】2021-02-18
【審査請求日】2022-05-13
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】飯田 豊男
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2018-187687(JP,A)
【文献】国際公開第2017/130286(WO,A1)
【文献】特開2013-132742(JP,A)
【文献】特開2017-042859(JP,A)
【文献】特開2012-106335(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
容器に収容された対象物をピッキングするロボットの動作を決定する装置であって、
前記容器内の空間において、互いに排他的な関係にある複数の領域を設定するための領域設定部と、
前記複数の領域の各々と対応付けて、前記ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するための情報設定部と、
前記容器を撮像することにより得られた画像に基づいて、前記対象物の位置を検出するための検出部と、
前記対象物を保持してから前記対象物を前記容器外に搬送するまでの前記エンドエフェクタのピッキング動作を決定するための決定部とを備え、
前記決定部は、前記複数の領域のうち前記検出部によって検出された位置を含む領域に対応付けられた前記定義情報によって定義される並進動作を前記ピッキング動作の並進成分として決定し、
前記複数の領域は、前記容器内における第1対象壁面に隣接する第1領域と、前記第1領域よりも前記第1対象壁面から離れた位置の第2領域とを含み、
前記第1領域に対応付けられた第1定義情報は、前記対象物が通過すべき指定位置を指定するための情報であり、
前記第1定義情報によって定義される並進動作は、前記検出された位置と前記指定位置とを通る直線または曲線に沿った動作であり、
前記第1領域は、前記第1対象壁面から第1距離以内であり、
前記指定位置は、前記第1対象壁面の上端から前記第1対象壁面の法線方向に沿って第2距離だけ離れた位置であり、
前記第2距離は前記第1距離以上である、装置。
【請求項2】
容器に収容された対象物をピッキングするロボットの動作を決定する装置であって、
前記容器内の空間において、互いに排他的な関係にある複数の領域を設定するための領域設定部と、
前記複数の領域の各々と対応付けて、前記ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するための情報設定部と、
前記容器を撮像することにより得られた画像に基づいて、前記対象物の位置を検出するための検出部と、
前記対象物を保持してから前記対象物を前記容器外に搬送するまでの前記エンドエフェクタのピッキング動作を決定するための決定部とを備え、
前記決定部は、前記複数の領域のうち前記検出部によって検出された位置を含む領域に対応付けられた前記定義情報によって定義される並進動作を前記ピッキング動作の並進成分として決定し、
前記複数の領域は、前記容器内における第1対象壁面に隣接する第1領域と、前記第1領域よりも前記第1対象壁面から離れた位置の第2領域とを含み、
前記第2領域に対応付けられた第2定義情報は、前記第1対象壁面および前記容器の底面に直交する平面上において前記第1対象壁面に平行な上向きの方向、前記底面の法線方向、鉛直方向上向き、および、これらの方向のいずれかに対して前記第1対象壁面から離れるように傾斜した方向、のいずれかである第2方向を示し、
前記第2定義情報によって定義される並進動作は、前記第2方向に沿った動作である、装置。
【請求項3】
容器に収容された対象物をピッキングするロボットの動作を決定する装置であって、
前記容器内の空間において、互いに排他的な関係にある複数の領域を設定するための領域設定部と、
前記複数の領域の各々と対応付けて、前記ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するための情報設定部と、
前記容器を撮像することにより得られた画像に基づいて、前記対象物の位置を検出するための検出部と、
前記対象物を保持してから前記対象物を前記容器外に搬送するまでの前記エンドエフェクタのピッキング動作を決定するための決定部とを備え、
前記決定部は、前記複数の領域のうち前記検出部によって検出された位置を含む領域に対応付けられた前記定義情報によって定義される並進動作を前記ピッキング動作の並進成分として決定し、
前記容器は、水平面に対して傾斜しており、
前記領域設定部は、前記容器の水平面に対する傾斜方向および傾斜角度に応じて前記複数の領域の少なくとも1つのサイズを調整する、装置。
【請求項4】
容器に収容された対象物をピッキングするロボットの動作を決定する装置であって、
前記容器内の空間において、互いに排他的な関係にある複数の領域を設定するための領域設定部と、
前記複数の領域の各々と対応付けて、前記ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するための情報設定部と、
前記容器を撮像することにより得られた画像に基づいて、前記対象物の位置を検出するための検出部と、
前記対象物を保持してから前記対象物を前記容器外に搬送するまでの前記エンドエフェクタのピッキング動作を決定するための決定部とを備え、
前記決定部は、前記複数の領域のうち前記検出部によって検出された位置を含む領域に対応付けられた前記定義情報によって定義される並進動作を前記ピッキング動作の並進成分として決定し、
前記複数の領域は、前記容器内における第1対象壁面に隣接する第1領域と、前記第1領域よりも前記第1対象壁面から離れた位置の第2領域とを含み、
前記領域設定部は、
前記第1対象壁面からの距離情報を用いて前記第1領域および前記第2領域を設定し、
前記エンドエフェクタによる前記対象物の保持位置と前記対象物の表面上の点との最大距離以上の第1距離を設定し、
前記第1対象壁面から前記第1距離以内の領域を前記第1領域として設定する、装置。
【請求項5】
容器に収容された対象物をピッキングするロボットの動作を決定する装置であって、
前記容器内の空間において、互いに排他的な関係にある複数の領域を設定するための領域設定部と、
前記複数の領域の各々と対応付けて、前記ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するための情報設定部と、
前記容器を撮像することにより得られた画像に基づいて、前記対象物の位置を検出するための検出部と、
前記対象物を保持してから前記対象物を前記容器外に搬送するまでの前記エンドエフェクタのピッキング動作を決定するための決定部とを備え、
前記決定部は、前記複数の領域のうち前記検出部によって検出された位置を含む領域に対応付けられた前記定義情報によって定義される並進動作を前記ピッキング動作の並進成分として決定し、
前記複数の領域は、前記容器内における第1対象壁面に隣接する第1領域と、前記第1領域よりも前記第1対象壁面から離れた位置の第2領域とを含み、
前記エンドエフェクタは、複数の爪を有し、
前記領域設定部は、
前記第1対象壁面からの距離情報を用いて前記第1領域および前記第2領域を設定し、
前記複数の爪による前記対象物の保持位置の中心点と、前記対象物に外接する直方体、または前記対象物および前記対象物を保持する前記複数の爪に外接する直方体の表面上の点との最大距離以上の第1距離を設定し、
前記第1対象壁面から前記第1距離以内の領域を前記第1領域として設定する、装置。
【請求項6】
容器に収容された対象物をピッキングするロボットの動作を決定する装置であって、
前記容器内の空間において、互いに排他的な関係にある複数の領域を設定するための領域設定部と、
前記複数の領域の各々と対応付けて、前記ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するための情報設定部と、
前記容器を撮像することにより得られた画像に基づいて、前記対象物の位置を検出するための検出部と、
前記対象物を保持してから前記対象物を前記容器外に搬送するまでの前記エンドエフェクタのピッキング動作を決定するための決定部とを備え、
前記決定部は、前記複数の領域のうち前記検出部によって検出された位置を含む領域に対応付けられた前記定義情報によって定義される並進動作を前記ピッキング動作の並進成分として決定し、
前記検出部は、前記対象物の姿勢をさらに検出し、
前記決定部は、前記検出部によって検出された姿勢に基づいて、前記対象物と前記容器内における第2対象壁面との最短距離が長くなるように前記ピッキング動作の回転成分をさらに決定する、装置。
【請求項7】
前記複数の領域は、前記容器内における第1対象壁面に隣接する第1領域と、前記第1領域よりも前記第1対象壁面から離れた位置の第2領域とを含む、請求項3または6に記載の装置。
【請求項8】
前記領域設定部は、前記第1対象壁面からの距離情報を用いて前記第1領域および前記第2領域を設定する、請求項7に記載の装置。
【請求項9】
前記第1領域に対応付けられた第1定義情報は、前記第1対象壁面から遠ざかる第1方向を示し、
前記第1定義情報によって定義される並進動作は、起点に対する終点の方向が前記第1方向に一致する動作である、請求項2,4,5,7および8のいずれか1項に記載の装置。
【請求項10】
前記第1領域に対応付けられた第1定義情報は、前記対象物が通過すべき指定位置を指定するための情報であり、
前記第1定義情報によって定義される並進動作は、前記検出された位置と前記指定位置とを通る直線または曲線に沿った動作である、請求項2,4,5,7および8のいずれか1項に記載の装置。
【請求項11】
前記指定位置は、前記検出された位置に応じて指定される、請求項10に記載の装置。
【請求項12】
前記複数の領域の各々の優先度を設定するための優先度設定部をさらに備え、
前記容器には複数の物体が収容されており、
前記検出部は、
前記複数の物体の各々の位置を検出し、
前記複数の物体のうち、前記優先度の最も高い領域に属する物体を前記対象物として決定する、請求項1から11のいずれか1項に記載の装置。
【請求項13】
容器に収容された対象物をピッキングするロボットの動作を決定する方法であって、
前記容器内の空間において、互いに排他的な関係にある複数の領域を設定するステップと、
前記複数の領域の各々と対応付けて、前記ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するステップと、
前記容器を撮像することにより得られた画像に基づいて、前記対象物の位置を検出するステップと、
前記対象物を保持してから前記対象物を前記容器外に搬送するまでの前記エンドエフェクタのピッキング動作を決定するステップとを備え、
前記ピッキング動作を決定するステップは、
前記複数の領域のうち検出された位置を含む領域に対応付けられた前記定義情報によって定義される並進動作を前記ピッキング動作の並進成分として決定するステップを含み、
前記複数の領域は、前記容器内における第1対象壁面に隣接する第1領域と、前記第1領域よりも前記第1対象壁面から離れた位置の第2領域とを含み、
前記第2領域に対応付けられた第2定義情報は、前記第1対象壁面および前記容器の底面に直交する平面上において前記第1対象壁面に平行な上向きの方向、前記底面の法線方向、鉛直方向上向き、および、これらの方向のいずれかに対して前記第1対象壁面から離れるように傾斜した方向、のいずれかである第2方向を示し、
前記第2定義情報によって定義される並進動作は、前記第2方向に沿った動作である、、方法。
【請求項14】
容器に収容された対象物をピッキングするロボットの動作を決定する方法をコンピュータに実行させるプログラムであって、
前記方法は、
前記容器内の空間において、互いに排他的な関係にある複数の領域を設定するステップと、
前記複数の領域の各々と対応付けて、前記ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するステップと、
前記容器を撮像することにより得られた画像に基づいて、前記対象物の位置を検出するステップと、
前記対象物を保持してから前記対象物を前記容器外に搬送するまでの前記エンドエフェクタのピッキング動作を決定するステップとを備え、
前記ピッキング動作を決定するステップは、
前記複数の領域のうち検出された位置を含む領域に対応付けられた前記定義情報によって定義される並進動作を前記ピッキング動作の並進成分として決定するステップとを含み、
前記複数の領域は、前記容器内における第1対象壁面に隣接する第1領域と、前記第1領域よりも前記第1対象壁面から離れた位置の第2領域とを含み、
前記第2領域に対応付けられた第2定義情報は、前記第1対象壁面および前記容器の底面に直交する平面上において前記第1対象壁面に平行な上向きの方向、前記底面の法線方向、鉛直方向上向き、および、これらの方向のいずれかに対して前記第1対象壁面から離れるように傾斜した方向、のいずれかである第2方向を示し、
前記第2定義情報によって定義される並進動作は、前記第2方向に沿った動作である、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、ロボットの動作を決定する装置、方法およびプログラムに関する。
【背景技術】
【0002】
従来、視覚センサを用いて、容器の中に収容された対象物を把持して取り出すピッキング動作を行なうロボットが知られている。容器の壁面近傍に位置する対象物に対するピッキング動作の際に、対象物が容器に接触し、対象物がロボットから落下する可能性がある。
【0003】
特開2012-106335(特許文献1)には、ロボットアームと、ロボットアームの移動の障害となる障害物との間の干渉チェックを行ない、干渉を免れた有効な移動経路のみを抽出した有効移動経路網を作成する技術が開示されている。当該技術を用いることにより、対象物と容器との接触を防止できる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2012-106335号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、ロボットアームと障害物との干渉チェックのために複雑な演算が実行される。そのため、移動経路を生成するための計算コストが増加する。
【0006】
本発明は、上記の問題に鑑みてなされたものであり、その目的は、計算コストの増加を抑制しながら、容器に収容された対象物をピッキングするロボットの動作を決定できる装置、方法およびプログラムを提供することである。
【課題を解決するための手段】
【0007】
本開示の一例によれば、容器に収容された対象物をピッキングするロボットの動作を決定する装置は、領域設定部と、情報設定部と、検出部と、決定部とを備える。領域設定部は、容器内の空間において、互いに排他的な関係にある複数の領域を設定する。情報設定部は、複数の領域の各々と対応付けて、ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定する。検出部は、容器を撮像することにより得られた画像に基づいて、対象物の位置を検出する。決定部は、対象物を保持してから対象物を容器外に搬送するまでのエンドエフェクタのピッキング動作を決定する。決定部は、複数の領域のうち検出部によって検出された位置を含む領域に対応付けられた定義情報によって定義される並進動作をピッキング動作の並進成分として決定する。
【0008】
この開示によれば、装置は、複雑な計算を行なうことなく、予め設定した定義情報を用いて、対象物に対するピッキング動作の並進成分を容易に決定できる。その結果、計算コストの増大を抑制しながら、容器に収容された対象物をピッキングするロボットの動作を決定できる。
【0009】
上述の開示において、複数の領域は、容器内における第1対象壁面に隣接する第1領域と、第1領域よりも第1対象壁面から離れた位置の第2領域とを含む。
【0010】
この開示によれば、第1領域と第2領域とのそれぞれについて、ピッキング動作の並進成分を決定するための定義情報を別個に設定できる。すなわち、第1領域および第2領域の各々について、当該領域に適した並進動作を定義する定義情報を設定することができる。
【0011】
上述の開示において、領域設定部は、第1対象壁面からの距離情報を用いて第1領域および第2領域を設定する。この開示によれば、第1領域および第2領域を容易に設定できる。
【0012】
例えば、第1領域に対応付けられた第1定義情報は、第1対象壁面から遠ざかる第1方向を示す。第1定義情報によって定義される並進動作は、起点に対する終点の方向が第1方向に一致する動作である。
【0013】
あるいは、第1領域に対応付けられた第1定義情報は、対象物が通過すべき指定位置を指定するための情報であってもよい。第1定義情報によって定義される並進動作は、検出された位置と指定位置とを通る直線または曲線に沿った動作である。
【0014】
これらの開示によれば、第1定義情報で示される方向または指定位置に従って、ピッキング動作の並進成分が決定される。
【0015】
上述の開示において、指定位置は、検出された位置に応じて指定される。この開示によれば、検出された位置に適した指定位置を指定することができる。
【0016】
上述の開示において、第1領域は、第1対象壁面から第1距離以内である。指定位置は、第1対象壁面の上端から第1対象壁面の法線方向に沿って第2距離だけ離れた位置であってもよい。第2距離は第1距離以上である。
【0017】
上述の開示において、第2領域に対応付けられた第2定義情報は、例えば、第1対象壁面および容器の底面に直交する平面上において第1対象壁面に平行な上向きの方向、底面の法線方向、鉛直方向上向き、および、これらの方向のいずれかに対して第1対象壁面から離れるように傾斜した方向、のいずれかである第2方向を示す。第2定義情報によって定義される並進動作は、第2方向に沿った動作である。
【0018】
第2領域は、第1対象壁面から離れた位置にある。そのため、上記の第2方向に沿ったピッキング動作を行なっても、第1対象壁面と対象物との接触リスクが低い。
【0019】
上述の開示において、容器は、水平面に対して傾斜している。領域設定部は、容器の水平面に対する傾斜方向および傾斜角度に応じて複数の領域の少なくとも1つのサイズを調整する。この開示によれば、傾斜に応じて領域のサイズが適宜自動的に調整される。これにより、ユーザの手間を削減できる。
【0020】
上述の開示において、領域設定部は、エンドエフェクタによる対象物の保持位置と対象物の表面上の点との最大距離以上の第1距離を設定し、第1対象壁面から第1距離以内の領域を第1領域として設定する。
【0021】
あるいは、エンドエフェクタは、複数の爪を有する。なお、「爪」は、対象物を保持(把持)する際に、対象物に接触する部位であり、「指」とも称される。領域設定部は、複数の爪による対象物の保持位置の中心点と、対象物に外接する直方体または対象物および対象物を保持する複数の爪に外接する直方体の表面上の点との最大距離以上の第1距離を設定し、第1対象壁面から第1距離以内の領域を第1領域として設定してもよい。
【0022】
これらの開示によれば、第1領域の範囲が自動的に設定される。その結果、ユーザの手間を削減できる。
【0023】
上述の開示において、検出部は、対象物の姿勢をさらに検出する。決定部は、検出部によって検出された姿勢に基づいて、対象物と容器内における第2対象壁面との最短距離が長くなるようにピッキング動作の回転成分をさらに決定する。
【0024】
この開示によれば、ピッキング動作における回転動作によって、第2対象壁面と対象物との接触リスクを低減できる。
【0025】
上述の開示において、複数の領域の各々の優先度を設定するための優先度設定部をさらに備える。容器には複数の物体が収容されている。検出部は、複数の物体の各々の位置を検出し、複数の物体のうち、優先度の最も高い領域に属する物体を対象物として決定する。
【0026】
この開示によれば、優先度設定部は、例えば、壁面との接触リスクの低い領域の優先度を高く設定できる。その結果、ロボットは、壁面との接触リスクの低い対象物から順にピッキングできる。
【0027】
本開示の一例によれば、容器に収容された対象物をピッキングするロボットの動作を決定する方法は、第1~第4のステップを備える。第1のステップは、容器内の空間において、互いに排他的な関係にある複数の領域を設定するステップである。第2のステップは、複数の領域の各々と対応付けて、ロボットが有するエンドエフェクタの並進動作を定義する定義情報を設定するステップである。第3のステップは、容器を撮像することにより得られた画像に基づいて、対象物の位置を検出するステップである。第4のステップは、対象物を保持してから対象物を容器外に搬送するまでのエンドエフェクのピッキング動作を決定するステップとを備える。第4のステップは、複数の領域のうち検出された位置を含む領域に対応付けられた定義情報によって定義される並進動作をピッキング動作の並進成分として決定するステップを含む。
【0028】
本開示の一例によれば、プログラムは、上記の方法をコンピュータに実行させる。これらの開示によっても、計算コストの増大を抑制しながら、容器に収容された対象物をピッキングするロボットの動作を決定できる。
【発明の効果】
【0029】
本開示によれば、計算コストの増大を抑制しながら、容器に収容された対象物をピッキングするロボットの動作を決定できる。
【図面の簡単な説明】
【0030】
図1】実施の形態に係る制御システムの全体構成を示す概略図である。
図2】実施の形態に係る画像処理装置におけるピッキング動作を決定する方法を説明する図である。
図3図1に示す画像処理装置のハードウェア構成の一例を示す概略図である。
図4図1に示す画像処理装置の機能構成の一例を示すブロック図である。
図5】コンテナの形状を登録するための画面例を示す図である。
図6】ワークの形状を登録するための画面例を示す図である。
図7】マージン幅の設定方法の一例を示す図である。
図8】複数の領域を設定するための画面の一例を示す図である。
図9】定義情報を設定するための画面例を示す図である。
図10】領域4aに対応付けられた第1定義情報によって定義される並進動作を示す図である。
図11】水平面に対して傾斜角度θだけ傾斜して設置されたコンテナを示す断面図である。
図12】コンテナが水平面に対して傾斜して設置され、かつ、鉛直方向上向きを示す第2定義情報が設定されたときの領域の設定方法の一例を示す図である。
図13】コンテナが水平面に対して傾斜して設置されているときの、領域4aに対応付けられた第1定義情報によって定義される並進動作を示す図である。
図14】コンテナの位置姿勢を検出する方法の一例を説明する図である。
図15】コンテナの位置姿勢を検出する方法の別の例を説明する図である。
図16】コンテナの位置姿勢を検出する方法のさらに別の例を説明する図である。
図17】画像処理装置における設定処理の流れの一例を示すフローチャートである。
図18】画像処理装置におけるロボット動作の制御処理の流れの一例を示すフローチャートである。
図19】ワークが収容される容器の別の例を示す平面図である。
図20図19のV-V線に沿った矢視断面図である。
図21図19に示す凹部9a付近を示す拡大平面図である。
図22】変形例2に係る設定部の内部構成を示す図である。
図23】変形例2において生成された領域情報の一例を示す図である。
図24】ワークを収容するコンテナのさらに別の例を示す平面図である。
図25図24に示すコンテナを示す縦断面図である。
【発明を実施するための形態】
【0031】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0032】
§1 適用例
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、実施の形態に係る制御システムの全体構成を示す概略図である。図1に例示される制御システムSYSは、生産ラインなどに組み込まれ、容器であるコンテナ2に収容されたワーク1に対するピックアンドプレースの制御を行なう。図1に例示されるコンテナ2は、内底面が平坦であり、内壁面が内底面に対して垂直である直方体状の箱である。ワーク1は、コンテナ2内にばら積みされる。そのため、コンテナ2内でのワーク1の位置姿勢はランダムである。
【0033】
図1に例示される制御システムSYSは、画像処理装置100と、ロボットコントローラ200と、ロボット300と、計測ヘッド400とを備える。画像処理装置100には、ディスプレイ150および入力装置160が接続されている。入力装置160は、例えばキーボードおよびマウスを含む。
【0034】
ロボット300は、ワーク1に対するピックアンドプレースを行なう。ロボット300は、ワーク1を保持するエンドエフェクタ30と、エンドエフェクタの位置姿勢を変更するための多関節アーム31と、多関節アーム31を支持するベース32とを含む。ロボット300の動作は、ロボットコントローラ200によって制御される。
【0035】
図1に例示されるエンドエフェクタ30は、2つの爪33を有し、2つの爪33を用いてワーク1を把持する。なお、爪33は、ワーク1を保持(把持)する際に、ワーク1に接触する部位であり、「指」とも称される。なお、ワーク1の保持方法は、2つの爪を用いた把持に限定されない。例えば、エンドエフェクタ30は、3つの爪を用いてワークを把持してもよいし、吸着パッドを用いてワーク1を吸着してもよい。
【0036】
ロボットコントローラ200は、画像処理装置100からの動作指令を受けて、ロボット300の多関節アーム31を制御する。具体的には、ロボットコントローラ200は、エンドエフェクタ30がアプローチ動作、ピッキング動作およびプレース動作を行なうように多関節アーム31を制御する。「アプローチ動作」は、コンテナ2の外側の待機位置からワーク1の把持位置までのエンドエフェクタ30の動作である。「ピッキング動作」は、ワーク1を把持してからワーク1をコンテナ2の外側の退避位置に搬送するまでのエンドエフェクタ30の動作である。「プレース動作」は、ワーク1を退避位置から目標位置に搬送するまでのエンドエフェクタ30の動作である。
【0037】
計測ヘッド400は、コンテナ2およびコンテナ2に収容されたワーク1が被写体となるように設置され、当該被写体を撮像する。計測ヘッド400は、投影部401と撮像部402とを備える。投影部401は、画像処理装置100からの指示に従って任意の投影パターン光を被写体に投影する。投影パターンは、例えば照射面内の所定方向に沿って明るさが周期的に変化するパターンである。撮像部402は、投影パターン光が投影された状態の被写体を撮像する。
【0038】
投影部401は、主要なコンポーネントとして、例えば、LED(Light Emitting Diode)やハロゲンランプなどの光源と、投影部401の照射面の側に配置されたフィルタとを含む。フィルタは、後述するような三次元形状の計測に必要な投影パターン光を発生させるものであり、画像処理装置100からの指令に従って、面内の透光率を任意に変化させることができる。投影部401は、液晶またはDMD(Digital Mirror Device)と光源(LEDまたはレーザ光源など)とを用いた構成であってもよい。
【0039】
撮像部402は、主要なコンポーネントとして、例えば、レンズなどの光学系と、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった撮像素子とを含む。
【0040】
画像処理装置100は、計測ヘッド400から受けた画像に基づいて、コンテナ2に収容されたワーク1の位置姿勢を検出する。画像処理装置100は、検出したワーク1の位置姿勢に基づいて、エンドエフェクタ30のアプローチ動作、ピッキング動作およびプレース動作を決定する。画像処理装置100は、決定した動作に対応する動作指令を生成し、生成した動作指令をロボットコントローラ200に出力する。ロボットコントローラ200は、動作指令に従って、画像処理装置100によって決定されたアプローチ動作、ピッキング動作およびプレース動作をロボット300に実行させる。
【0041】
ワーク1を把持した後のピッキング動作は、ワーク1とコンテナ2との干渉を考慮して決定される必要がある。特許文献1に開示の技術を用いて、ワーク1とコンテナ2との干渉チェックを行なうことによりピッキング動作を決定することが考えられる。しかしながら、上述したように、干渉チェックのための計算コストが増加するという問題が生じる。そのため、本実施の形態に係る画像処理装置100は、以下のような処理に従ってピッキング動作を決定する。
【0042】
図2は、実施の形態に係る画像処理装置におけるピッキング動作を決定する方法を説明する図である。図2の上方にはコンテナ2の平面図が示され、図2の下方にはコンテナ2の縦断面図が示される。
【0043】
図2に示されるように、画像処理装置100は、コンテナ2内の空間において、互いに排他的な関係にある複数の領域4a~4h,5を設定する。図2に示す例では、画像処理装置100は、コンテナ2の壁面3a~3dにそれぞれ隣接する領域4a~4dと、壁面3a,3bの両方に隣接する領域4eと、壁面3b,3cの両方に隣接する領域4fと、壁面3c,3dの両方に隣接する領域4gと、壁面3d,3aの両方に隣接する領域4hと、中央に位置する領域5とを設定している。領域5は、領域4a~4dよりも壁面3a~3dからそれぞれ離れている。
【0044】
画像処理装置100は、複数の領域4a~4h,5の各々と対応付けて、エンドエフェクタ30の並進動作を定義する定義情報をさらに設定する。コンテナ2のいずれかの壁面に隣接する領域4a~4hについては、隣接する壁面から遠ざかる並進動作を定義する定義情報が設定される。例えば、画像処理装置100は、領域4bに対応付けて、壁面3bから遠ざかる並進動作40bを定義する定義情報を設定する。同様に、画像処理装置100は、領域4dに対応付けて、壁面3dから遠ざかる並進動作40dを定義する定義情報を設定する。さらに、画像処理装置100は、壁面3a~3dから離れた位置の領域5に対応付けて、コンテナ2の底面3zの法線方向(鉛直方向上向き)に沿った並進動作50を定義する定義情報を設定する。
【0045】
画像処理装置100は、複数の領域4a~4h,5のうち、ピッキング対象のワーク1について検出された位置を含む領域に対応付けられた定義情報によって定義される並進動作を、ピッキング動作の並進成分として決定する。例えば、ワーク1の位置が領域4bに含まれる場合、画像処理装置100は、領域4bに対応付けられた定義情報によって定義される並進動作40bをピッキング動作の並進成分として決定する。
【0046】
上記の処理によれば、画像処理装置100は、複雑な計算を行なうことなく、予め設定した定義情報を用いて、ワーク1に対するピッキング動作の並進成分を容易に決定できる。その結果、計算コストの増大を抑制しながら、コンテナ2に収容されたワーク1をピッキングするロボットの動作を決定できる。
【0047】
§2 具体例
次に、本実施の形態に係る制御システムの具体例について説明する。
【0048】
<A.画像処理装置のハードウェア構成例>
画像処理装置100は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、本実施の形態に係る画像処理を実行する。このようなプログラムは、典型的には、各種記録媒体などに格納された状態で流通し、あるいは、ネットワークなどを介して画像処理装置100にインストールされる。
【0049】
このような汎用的なコンピュータを利用する場合には、本実施の形態に係る画像処理を実行するためのアプリケーションに加えて、コンピュータの基本的な処理を実行するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
【0050】
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【0051】
図3は、図1に示す画像処理装置のハードウェア構成の一例を示す概略図である。図3に示されるように、画像処理装置100は、演算処理部であるCPU(Central Processing Unit)110と、記憶部としてのメインメモリ112およびハードディスク114と、計測ヘッドインターフェース116と、入力インターフェース118と、表示コントローラ120と、通信インターフェース124と、データリーダ/ライタ126とを含む。これらの各部は、バス128を介して、互いにデータ通信可能に接続される。
【0052】
CPU110は、ハードディスク114にインストールされたプログラム(コード)をメインメモリ112に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク114から読み出されたプログラムに加えて、計測ヘッド400によって取得された画像などを保持する。さらに、ハードディスク114には、後述するような各種データなどが格納される。なお、ハードディスク114に加えて、あるいは、ハードディスク114に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【0053】
計測ヘッドインターフェース116は、CPU110と計測ヘッド400との間のデータ伝送を仲介する。すなわち、計測ヘッドインターフェース116は、計測ヘッド400と接続される。計測ヘッドインターフェース116は、CPU110が発生した内部コマンドに従って、計測ヘッド400に対して投影コマンドおよび撮像コマンドを与える。計測ヘッドインターフェース116は、計測ヘッド400からの画像を一時的に蓄積するための画像バッファ116aを含む。計測ヘッドインターフェース116は、画像バッファ116aに所定コマ数の画像が蓄積されると、その蓄積された画像をメインメモリ112へ転送する。
【0054】
入力インターフェース118は、CPU110と入力装置160との間のデータ伝送を仲介する。すなわち、入力インターフェース118は、ユーザが入力装置160に入力した入力情報を受付ける。
【0055】
表示コントローラ120は、ディスプレイ150と接続され、CPU110における処理結果などをユーザに通知するようにディスプレイ150の表示を制御する。
【0056】
通信インターフェース124は、CPU110とロボットコントローラ200などの外部装置との間のデータ伝送を仲介する。通信インターフェース124は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。
【0057】
データリーダ/ライタ126は、CPU110と記録媒体であるメモリカード106との間のデータ伝送を仲介する。すなわち、メモリカード106には、画像処理装置100で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ126は、このメモリカード106からプログラムを読出す。また、データリーダ/ライタ126は、CPU110の内部指令に応答して、計測ヘッド400によって撮像された画像および/または画像処理装置100における処理結果などをメモリカード106へ書込む。なお、メモリカード106は、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体や、CD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体等からなる。
【0058】
<B.画像処理装置の機能構成例>
図4は、図1に示す画像処理装置の機能構成の一例を示すブロック図である。図4に示されるように、画像処理装置100は、記憶部10と、ヘッド制御部11と、設定部12と、画像処理部13とを備える。記憶部10は、図3に示すメインメモリ112およびハードディスク114によって実現される。ヘッド制御部11は、図3に示すCPU110および計測ヘッドインターフェース116によって実現される。設定部12は、図3に示すCPU110、入力インターフェース118および表示コントローラ120によって実現される。画像処理部13は、図3に示すCPU110および通信インターフェース124によって実現される。
【0059】
記憶部10には、ワーク1の三次元形状を示すCAD(Computer Aided Design)データ101aと、コンテナ2の三次元形状を示すCADデータ101bとが予め格納される。記憶部10には、ワーク1を様々な視点から見たときの姿勢ごとの画像を示す複数のテンプレートデータ102が格納される。テンプレートデータ102は、例えばCADデータ101aに基づいて予め生成される。記憶部10には、計測ヘッド400の撮像により得られた画像データ103が格納される。さらに、記憶部10には、設定部12によって設定された領域情報104および定義情報105が格納される。領域情報104および定義情報105の詳細については後述する。
【0060】
ヘッド制御部11は、計測ヘッド400の動作を制御する。ヘッド制御部11は、予め定められた投影パターン光の投影を指示する投影コマンドを計測ヘッド400に出力する。ヘッド制御部11は、投影パターン光が投影されている状態で撮像コマンドを計測ヘッド400に出力する。ヘッド制御部11は、計測ヘッド400から取得した画像データ103を記憶部10に格納する。
【0061】
設定部12は、領域設定部12aと情報設定部12bとを有する。領域設定部12aは、コンテナ2内の空間において、互いに排他的な関係にある複数の領域を設定する。領域設定部12aは、複数の領域を設定するための設定画面をディスプレイ150に表示し、入力装置160への入力に従って複数の領域を設定する。領域設定部12aは、設定した複数の領域それぞれを示す領域情報104を生成し、生成した領域情報104を記憶部10に格納する。領域情報104は、例えば、コンテナ2の特徴点(例えば左上角)を原点とする座標系における、複数の領域それぞれのx座標、y座標およびz座標の範囲を示す。
【0062】
情報設定部12bは、複数の領域の各々と対応付けて、エンドエフェクタ30の並進動作を定義する定義情報105を設定する。情報設定部12bは、定義情報105を設定するための設定画面をディスプレイ150に表示し、入力装置160への入力に従って定義情報105を設定する。情報設定部12bは、複数の領域の各々について設定した定義情報105を記憶部10に格納する。
【0063】
画像処理部13は、計測ヘッド400の撮像により得られた画像データ103に対する処理を行なう。図4に示されるように、画像処理部13は、3D画像生成部14と、検出部15と、動作指令決定部16と、通信部17とを含む。
【0064】
3D画像生成部14は、画像データ103に基づいて、計測ヘッド400の視野領域における三次元計測を行ない、三次元点群データを生成する。三次元点群データは、計測ヘッド400の視野領域に存在する物体表面上の各点の三次元座標を示す。
【0065】
三次元計測処理として、例えば三角測距方式、同軸方式が採用され得る。三角測距方式は、撮像と投光との光軸を基線長分だけ離間させ、視差を距離に変換する方式である。三角測距方式には、アクティブ法とパッシブ法とが含まれる。アクティブ法には、構造化照明法、位相シフト法、空間コード法が含まれる。同軸方式は、撮像と測距手段との光軸を同一に設定する方式である。測距手段として、TOF(Time of Flight)方式、焦点方式が含まれる。3D画像生成部14は、これらの方式のいずれかを用いて三次元計測処理を実行すればよい。例えば位相シフト法を用いて三次元計測処理が行なわれる。
【0066】
位相シフト法は、正弦波状に濃淡を変化させた投影パターン光を被写体に投影した状態で撮像された画像(正弦波投影画像)を用いる方法である。濃淡の変化周期や位相を異ならせた投影パターンが複数用意され、計測ヘッド400の投影部401は、撮像部402の視野領域に対して、複数の投影パターン光を順次照射する。3D画像生成部14は、複数の投影パターンが投影されたときにそれぞれ撮像される画像データ103の群(正弦波投影画像群)を記憶部10から読み出す。そして、3D画像生成部14は、これらの画像データ103間における対応する部分の明るさ(輝度や明度)の変化に基づいて、三次元座標を算出する。
【0067】
検出部15は、記憶部10に格納された各テンプレートデータ102と三次元点群データとを照合し、三次元点群データの中からテンプレートと類似するデータを抽出する。検出部15は、抽出したデータに基づいて、ワーク1の位置姿勢を検出する。検出部15によって検出されるワーク1の位置姿勢は、計測ヘッド400の撮像部402の座標系(カメラ座標系)で示される。
【0068】
さらに、コンテナ2の位置が一定ではない場合、検出部15は、画像データ103または三次元点群データに基づいて、コンテナ2の位置姿勢を検出してもよい。コンテナ2の位置姿勢の検出方法の詳細については後述する。
【0069】
なお、検出部15は、複数のワーク1の位置姿勢を検出した場合、予め定められた選択基準に従って、当該複数のワーク1のうちの1つをピッキング対象として選択する。
【0070】
動作指令決定部16は、ピッキング対象のワーク1の位置姿勢に応じて、エンドエフェクタ30の動作を決定する。動作指令決定部16は、決定した動作に対応する動作指令を生成する。
【0071】
まず、動作指令決定部16はアプローチ動作を決定する。動作指令決定部16は、エンドエフェクタ30の待機位置がコンテナ2の開口部の上方である場合、例えば、待機位置からピッキング対象となるワーク1の把持位置まで移動する並進動作をアプローチ動作の並進成分として決定すればよい。さらに、動作指令決定部16は、ワーク1の姿勢に応じた回転動作をアプローチ動作の回転成分として決定すればよい。エンドエフェクタ30がワーク1を把持するときのワーク1に対するエンドエフェクタ30の相対位置姿勢は、把持点登録情報として予め登録されている。動作指令決定部16は、検出されたワーク1の位置姿勢と把持点登録情報とに基づいて、当該ワーク1を把持するときのエンドエフェクタ30の位置姿勢を計算すればよい。
【0072】
次に、動作指令決定部16はピッキング動作を決定する。動作指令決定部16は、ピッキング対象のワーク1の位置姿勢とコンテナ2の位置姿勢とに基づいて、コンテナ2に対するワーク1の相対位置を計算する。コンテナ2に対するワーク1の相対位置は、例えばコンテナ2の特徴点(例えば左上角)を原点とする座標系で示される。動作指令決定部16は、コンテナ2に対するワーク1の相対位置と領域情報104とに基づいて、ワーク1の位置を含む領域を特定する。動作指令決定部16は、特定した領域に定義付けられた定義情報105によって定義される並進動作をピッキング動作の並進成分として決定する。
【0073】
なお、動作指令決定部16は、ピッキング動作の回転成分について、0に決定してもよいし、後のプレース動作にスムーズに移行するような値に決定してもよい。
【0074】
次に、動作指令決定部16はプレース動作を決定する。動作指令決定部16は、ピッキング動作後のワーク1の退避位置と目標位置とを結ぶ線に沿った並進動作をプレース動作の並進成分として決定すればよい。
【0075】
通信部17は、ロボットコントローラ200と通信可能であり、動作指令決定部16によって生成された動作指令をロボットコントローラ200に送信する。
【0076】
ロボットコントローラ200は、動作指令に従ってロボット300を制御する。これにより、ロボット300のエンドエフェクタ30は、動作指令決定部16によって決定されたアプローチ動作、ピッキング動作およびプレース動作を順に行なう。ただし、ロボット300の機構(並進機構および回転機構)における動作精度には誤差がある。そのため、ロボット300のエンドエフェクタ30の実際の動作と動作指令決定部16によって決定された動作との間に誤差が生じ得る。
【0077】
<C.領域の設定>
図5図8を参照して、領域設定部12aによる領域の設定方法の一例について説明する。図5は、コンテナの形状を登録するための画面例を示す図である。図5に例示される画面60は、自動登録ボタン61と手動登録ボタン62とを有する。自動登録ボタン61が操作されると、領域設定部12aは、入力欄63に入力されたファイル名で示されるコンテナ2のCADデータに基づいて、コンテナ2の形状を登録する。手動登録ボタン62が操作されると、領域設定部12aは、入力欄64に入力された値に従って、コンテナ2の形状を登録する。
【0078】
コンテナ2の形状は、コンテナ2の幅(外寸)W、奥行き(外寸)D、外寸高さH1、内寸高さH2、コンテナ2の側壁の幅方向の最大厚みB1、コンテナ2の側壁の奥行き方向の最大厚みB2、傾斜方向および傾斜角度で示される。傾斜方向および傾斜角度は、コンテナ2が設置される台の傾斜に応じて登録される。
【0079】
画像処理装置100の記憶部10には、生産ラインで使用され得る複数種類のコンテナ2にそれぞれ対応する複数のCADデータ101bが格納されていてもよい。ユーザは、使用するコンテナ2の種類変更のタイミングにおいて、変更後の種類のコンテナ2に対応するCADデータ101bを入力欄63に入力すればよい。もしくは、生産ラインで使用され得る複数種類のコンテナ2ごとのW、D、H1、H2、B1およびB2を示す形状データが記憶部10に予め格納されていてもよい。ユーザは、使用するコンテナ2の種類変更のタイミングにおいて、変更後の種類のコンテナ2に対応する形状データを入力欄64に入力すればよい。
【0080】
画像処理装置100は、使用するコンテナ2の種類変更のタイミングにおいて、変更後のコンテナ2の種類を示す情報を図示しない上位制御装置から取得してもよい。上位制御装置は、生産ラインの運用を管理する装置である。画像処理装置100は、上位制御装置からコンテナ2の種類を示す情報を取得すると、変更後の種類のコンテナ2に対応するCADデータ101bを入力欄63に自動的に入力してもよい。もしくは、画像処理装置100は、上位制御装置からコンテナ2の種類を示す情報を取得すると、変更後の種類のコンテナ2に対応する形状データを入力欄64に自動的に入力してもよい。
【0081】
図6は、ワークの形状を登録するための画面例を示す図である。図6に例示される画面65は、自動登録ボタン66と手動登録ボタン67とを有する。自動登録ボタン66が操作されると、領域設定部12aは、入力欄68に入力されたファイル名で示されるワーク1のCADデータに基づいて、ワーク1の形状を登録する。手動登録ボタン67が操作されると、領域設定部12aは、入力欄69に入力された値に従って、ワーク1の形状を登録する。ワーク1の形状は、例えばワーク1の外接直方体の幅W、奥行きD、高さHで示される。
【0082】
画面65は、エンドエフェクタ30の2つの爪33による概略把持位置を入力するための入力欄70を含む。2つの爪33でワーク1を把持する場合、2つの爪33は、通常、ワーク1の外接直方体の幅方向または奥行き方向に沿って配置される。そのため、概略把持位置は、ワーク1の外接直方体の幅方向に直交する側面からの距離C1、および、奥行き方向に直交する側面からの距離C2のいずれかによって示される。すなわち、ワーク1を把持するときに2つの爪33が外接直方体の幅方向に沿って配置される場合には、距離C1が入力される。ワーク1を把持するときに2つの爪33が外接直方体の奥行き方向に沿って配置される場合には、距離C2が入力される。距離C1または距離C2は、予め登録されている把持点登録情報に基づいて自動的に入力されてもよい。
【0083】
領域設定部12aは、2つの爪33による概略把持位置の中心点と、ワーク1の外接直方体の表面上の点との最大距離をマージン幅Mとして計算する。計算されたマージン幅Mは、画面65の表示欄71に表示される。
【0084】
図7は、マージン幅の設定方法の一例を示す図である。領域設定部12aは、距離C1が入力された場合、ワーク1の外接直方体RPの対角線DLと、外接直方体RPの奥行き方向に直交する側面に平行であり、かつ、当該側面から距離C1だけ内側の平面との交点を概略把持位置の中心点Pとして決定する。領域設定部12aは、距離C2が入力された場合、ワーク1の外接直方体RPの対角線DLと、外接直方体RPの幅方向に直交する側面に平行であり、かつ、当該側面から距離C2だけ内側の平面との交点を概略把持位置の中心点Pとして決定する。領域設定部12aは、対角線DLを中心点Pで分割したときの一方の長さM1と他方の長さM2とのうちの長い方をマージン幅M(=max(M1,M2))として計算する。
【0085】
図8は、複数の領域を設定するための画面の一例を示す図である。図2を参照して上述したように、箱状のコンテナ2内の空間に対して、互いに排他的な関係にある複数の領域4a~4h,5が設定される。
【0086】
領域設定部12aは、コンテナ2の壁面3aから距離DM1以内の領域(ただし、領域4e,4hを除く)を領域4aとして設定する。領域設定部12aは、コンテナ2の壁面3bから距離WM1以内の領域(ただし、領域4e,4fを除く)を領域4bとして設定する。領域設定部12aは、コンテナ2の壁面3cから距離DM2以内の領域(ただし、領域4f,4gを除く)を領域4cとして設定する。領域設定部12aは、コンテナ2の壁面3dから距離WM2以内の領域(ただし、領域4g,4hを除く)を領域4dとして設定する。領域設定部12aは、壁面3aから距離DM1以内であり、かつ、壁面3bから距離WM1以内の領域を領域4eとして設定する。領域設定部12aは、壁面3bから距離WM1以内であり、かつ、壁面3cから距離DM2以内の領域を領域4fとして設定する。領域設定部12aは、壁面3cから距離DM2以内であり、かつ、壁面3dから距離WM2以内の領域を領域4gとして設定する。領域設定部12aは、壁面3dから距離WM2以内であり、かつ、壁面3aから距離DM1以内の領域を領域4hとして設定する。
【0087】
図8に例示される画面72は、自動設定ボタン73と手動設定ボタン74とを有する。自動設定ボタン73が操作されると、領域設定部12aは、距離DM1,DM2,WM1.WM2の全てをマージン幅Mに設定する。
【0088】
手動設定ボタン74が操作されると、領域設定部12aは、距離DM1,DM2,WM1.WM2を設定するための入力欄75への入力を受け付ける。領域設定部12aは、入力欄75に入力された値に従って、距離DM1,DM2,WM1,WM2を設定する。
【0089】
また、画面72は、コンテナ2を模式的に示す画像76を含む。手動設定ボタン74が操作されると、領域設定部12aは、画像76において、距離DM1,DM2,WM1,WM2を定義付ける矩形状の枠線77を表示する。さらに、領域設定部12aは、枠線77の位置およびサイズを変更するためのカーソル78を表示し、カーソル78に対する操作に従って枠線77の位置およびサイズを変更する。領域設定部12aは、変更後の枠線77の位置およびサイズに従って、距離DM1,DM2,WM1,WM2を設定してもよい。
【0090】
<D.定義情報の設定>
図9および図10を参照して、情報設定部12bによる定義情報の設定方法の一例について説明する。
【0091】
図9は、定義情報を設定するための画面例を示す図である。図9に例示される画面79は、ボタン群80と入力欄81とを含む。入力欄81は、壁面に隣接する領域4a~4hにそれぞれ対応付けられた定義情報105(以下、「第1定義情報」とも称する。)を設定するために使用される。ボタン群80は、壁面から離れた位置の領域5に対応付けられる定義情報105(以下、「第2定義情報」とも称する。)を設定するために使用される。
【0092】
ボタン群80は、鉛直方向上向きを選択するラジオボタン80aと、壁面平行を選択するラジオボタン80bとを含む。ラジオボタン80aが操作された場合、情報設定部12bは、領域5に対応付けて、鉛直方向上向きを示す第2定義情報を設定する。ラジオボタン80bが操作された場合、情報設定部12bは、領域5に対応付けて、壁面およびコンテナ2の底面に直交する平面上において壁面に平行な上向きの方向を示す第2定義情報を設定する。第2定義情報によって定義される並進動作は、第2定義情報で示される方向に沿った動作である。
【0093】
なお、コンテナ2が水平に設置され、かつ、コンテナ2の壁面が底面に垂直である場合、ラジオボタン80a,80bのいずれを操作しても、同一の第2定義情報が設定される。
【0094】
コンテナ2の壁面3a~3dが底面3zに対して傾斜している場合には、壁面およびコンテナの底面に直交する平面上において壁面に平行な上向きの方向と、底面の法線方向とは一致しない。さらに、コンテナ2が水平面に対して傾斜している場合、鉛直方向上向きと、底面の法線方向とも一致しない。そのため、ボタン群80は、ラジオボタン80a,80bの他に、底面の法線方向を選択するラジオボタンを含んでもよい。当該ラジオボタンが操作された場合、情報設定部12bは、領域5に対応付けて、底面の法線方向を示す第2定義情報を設定する。
【0095】
入力欄81には、ワーク1が通過すべき指定位置を指定するための逃げ幅が入力される。情報設定部12bは、入力欄81に入力された逃げ幅を第1定義情報として設定する。第1定義情報によって定義される並進動作は、検出部15によって検出されたワーク1の位置と第1定義情報によって指定される指定位置とを通る直線に沿った動作である。
【0096】
図10は、領域4aに対応付けられた第1定義情報によって定義される並進動作を示す図である。図10において、エンドエフェクタ30の待機位置Paとワーク1の検出位置Pbとを結ぶ線は、アプローチ動作の軌跡を示す。検出位置Pbと退避位置Pcとを結ぶ線は、ピッキング動作の軌跡を示す。退避位置Pcと目標位置Pdとを結ぶ線は、プレース動作の軌跡を示す。
【0097】
検出位置Pbと検出位置Pbの鉛直方向上向きの退避位置Pc1とを結ぶ線に沿ってピッキング動作をさせた場合、ワーク1と壁面3aとが接触する可能性がある。そのため、ワーク1を壁面3aから遠ざかるように、退避位置を修正することが好ましい。従って、壁面3aから遠ざかるような並進動作が第1定義情報によって定義されるように、指定位置Pc2が指定される。図10に示す例では、コンテナ2の上端を通る平面7において、検出位置Pbから下した垂線の足である点Qから逃げ幅F1だけ壁面3aから離れた位置が指定位置Pc2として指定される。検出位置Pbと指定位置Pc2とを通る直線上に修正後の退避位置Pcが設定される。第1定義情報で定義される並進動作は、検出位置Pbと退避位置Pcとを結ぶ直線に沿った動作である。
【0098】
なお、第1定義情報で定義される並進動作は、わずかにカーブする動作であってもよい。すなわち、第1定義情報によって定義される並進動作は、検出位置Pbと指定位置Pc2とを通る曲線に沿った動作であってもよい。この場合、当該曲線上に退避位置Pcが設定される。
【0099】
<E.コンテナが傾斜して設置されているときの処理例>
次に、コンテナ2が水平面に対して傾斜して設置されているときの処理例について説明する。ロボット300の多関節アーム31の可動範囲に応じて、コンテナ2が水平面に対して傾斜して設置され得る。
【0100】
図11は、水平面に対して傾斜角度θだけ傾斜して設置されたコンテナを示す断面図である。図11に示す例では、壁面3aが上側に位置し、壁面3cが下側に位置するように、コンテナ2が水平面に対して傾斜して設置されている。
【0101】
コンテナ2が傾斜して設置されている場合、上側に位置する壁面3aとピッキング動作中のエンドエフェクタ30に把持されたワーク1との接触リスクが高まる。一方、下側に位置する壁面3cとピッキング動作中のエンドエフェクタ30に把持されたワーク1との接触リスクは低くなる。そのため、領域設定部12aは、壁面3aに隣接する領域4a,4e、4hのサイズを定める距離DM1(図8参照)と、壁面3cに隣接する領域4c,4f、4gのサイズを定める距離DM2(図8参照)とを傾斜角度θに応じて調整してもよい。
【0102】
図11に示す例では、領域設定部12aは、マージン幅M/cosθを距離DM1に設定し、マージン幅M×cosθを距離DM2に設定している。なお、領域設定部12aは、コンテナ2の内寸高さH2×tanθを距離DM2に設定してもよい。
【0103】
図12は、コンテナが水平面に対して傾斜して設置され、かつ、鉛直方向上向きを示す第2定義情報が設定されたときの領域の設定方法の一例を示す図である。第2定義情報が鉛直方向上向きを示す場合、領域5の範囲を図11に示す領域4cの範囲まで広げたとしても、下側に位置する壁面3cとピッキング動作中のエンドエフェクタ30に把持されたワーク1との接触リスクは低い。そのため、図12に示されるように、領域設定部12aは、壁面3cに隣接するように領域5を設定してもよい。
【0104】
コンテナ2が水平面に対して傾斜している場合であっても、情報設定部12bは、<D.定義情報の設定>で説明した方法と同じ方法に従って定義情報を設定すればよい。
【0105】
図13は、コンテナが水平面に対して傾斜して設置されているときの、領域4aに対応付けられた第1定義情報によって定義される並進動作を示す図である。図13に示されるように、ピッキング動作時のワーク1と壁面3aとの接触を回避するために、壁面3aから遠ざかるような並進動作が第1定義情報によって定義されるように、指定位置Pc2が指定される。図13に示す例では、コンテナ2の上端を通る平面7において、検出位置Pbから下した垂線の足である点Qから逃げ幅F1だけ壁面3aから離れた位置が指定位置Pc2として指定される。そして、検出位置Pbと指定位置Pc2とを通る直線上に修正後の退避位置Pcが設定される。第1定義情報によって定義される並進動作は、検出位置Pbと退避位置Pcとを結ぶ直線に沿った動作である。
【0106】
なお、第1定義情報で定義される並進動作は、わずかにカーブする動作であってもよい。すなわち、第1定義情報によって定義される並進動作は、検出位置Pbと指定位置Pc2とを通る曲線に沿った動作であってもよい。この場合、当該曲線上に退避位置Pcが設定される。
【0107】
ロボット300の並進機構における動作精度には誤差がある。そのため、領域5に対応付けられた第2定義情報が鉛直方向上向き(Z軸正方向)に沿った並進動作を定義する場合、領域5に位置するワーク1に対するピッキング動作において、ワーク1と上側に位置する壁面3aとの接触リスクが高まる。そこで、図9において例えばラジオボタン80aが操作された場合に、鉛直方向上向き(Z軸正方向)よりも壁面3aから離れるように傾斜した方向に沿った並進動作を定義する第2定義情報が領域5に対応付けて設定されてもよい。このとき、並進動作の方向と鉛直方向上向き(Z軸正方向)とのなす角度は、ロボット300の並進機構における動作精度の誤差以上に設定される。
【0108】
<F.コンテナの位置姿勢の検出方法>
コンテナ2が固定位置に設置されない場合、検出部15は、コンテナ2に対するワーク1の相対位置姿勢を特定するために、コンテナ2の位置姿勢を検出する。
【0109】
図14は、コンテナの位置姿勢を検出する方法の一例を説明する図である。コンテナ2内にはワーク1が収容されるため、計測ヘッド400の撮像部402によって撮像される画像には、コンテナ2の上端面8が含まれる。コンテナ2が設置される台の高さが固定である場合、上端面8の高さ(Z座標)は一定である。ただし、コンテナ2の設置位置に応じて、上端面8のX座標およびY座標は変化しうる。そこで、検出部15は、二次元サーチの手法を用いてコンテナ2の位置姿勢を検出できる。すなわち、検出部15は、撮像部402から見たときのコンテナ2の上端面8の二次元形状を示すテンプレートデータを予め記憶しておき、当該テンプレートデータと画像データ103とを照合することにより、コンテナ2の位置姿勢を検出する。
【0110】
図15は、コンテナの位置姿勢を検出する方法の別の例を説明する図である。図15に示す例では、コンテナ2の上端面8上に4つの検出マーク8a~8dが描かれている。検出部15は、画像データ103の中から検出マーク8a~8dの位置を特定することにより、コンテナ2の位置姿勢を検出してもよい。
【0111】
図16は、コンテナの位置姿勢を検出する方法のさらに別の例を説明する図である。図16に示す例では、コンテナ2は、水平面に対して傾斜した台に設置される。コンテナ2が水平面に対して傾斜して設置される場合、上端面8上に描かれた4つの検出マーク8a~8dを頂点とする四角形が歪む。検出部15は、4つの検出マーク8a~8dを頂点とする四角形の歪み度合いに基づいて、コンテナ2の水平面に対する傾斜角度θを検出できる。例えば、検出部15は、傾斜角度θと4つの検出マーク8a~8d間の距離との関係式を予め記憶しておき、当該関係式を用いて傾斜角度θを計算すればよい。
【0112】
検出部15は、ワーク1と同様に三次元サーチの手法を用いてコンテナ2の位置姿勢を検出してもよい。すなわち、コンテナ2を様々な方向から見たときの三次元形状を示すテンプレートデータが予め記憶部10に格納される。検出部15は、3D画像生成部14によって生成された三次元点群データとテンプレートデータとを照合することにより、コンテナ2の位置姿勢を検出する。
【0113】
<G.設定処理の流れ>
図17は、画像処理装置における設定処理の流れの一例を示すフローチャートである。まず、画像処理装置100のCPU110は、コンテナ2内の空間において、互いに排他的な関係にある複数の領域(例えば図2に示す領域4a~4h,5)を設定する(ステップS1)。CPU110は、例えば図8に示す画面72をディスプレイ150に表示し、入力装置160への入力に従って複数の領域を設定する。CPU110は、設定した複数の領域のそれぞれの範囲を示す領域情報104を生成する。
【0114】
次に、CPU110は、ステップS1で設定した複数の領域の各々に対応付けて、エンドエフェクタの並進動作を定義する定義情報105を設定する。CPU110は、例えば図9に示す画面79をディスプレイ150に表示し、入力装置160への入力に従って定義情報105を設定する。
【0115】
<H.ロボット動作の制御処理の流れ>
図18は、画像処理装置におけるロボット動作の制御処理の流れの一例を示すフローチャートである。まず、CPU110は、計測ヘッド400によって撮像された複数の画像データ103に基づいて、計測ヘッド400の視野領域の三次元計測を行なう(ステップS11)。ステップS11において、CPU110は、三次元点群データを生成する。
【0116】
次に、CPU110は、ワーク1を様々に方向から見たときの三次元形状を示す複数のテンプレートデータ102と三次元点群データとを照合することにより、ワーク1の位置姿勢を検出する(ステップS12)。コンテナ2の位置姿勢が固定されていない場合、ステップS12において、検出部15は、コンテナ2の位置姿勢を検出してもよい。
【0117】
次に、CPU110は、ピッキング対象のワーク1の位置姿勢に応じてロボット300の動作を決定する(ステップS13)。ロボット300の動作には、上述したように、アプローチ動作とピッキング動作とプレース動作とが含まれる。具体的には、CPU110は、ステップS1において生成された領域情報104に基づいて、複数の領域のうちワーク1の位置を含む領域を特定する。CPU110は、特定した領域に対応付けられた定義情報105によって定義される並進動作をピッキング動作の並進成分として決定する。
【0118】
次に、CPU110は、決定した動作を実行させるための動作指令を生成し、生成した動作指令をロボットコントローラ200に出力する(ステップS14)。
【0119】
<I.作用・効果>
以上のように、本実施の形態に係る画像処理装置100は、コンテナ2に収容されたワークをピッキングするロボット300の動作を決定する。画像処理装置100は、領域設定部12aと、情報設定部12bと、検出部15と、動作指令決定部16とを備える。領域設定部12aは、コンテナ2内の空間において、互いに排他的な関係にある複数の領域を設定する。情報設定部12bは、複数の領域の各々と対応付けて、エンドエフェクタ30の並進動作を定義する定義情報105を設定する。検出部15は、コンテナ2を撮像することにより得られた画像に基づいて、ワーク1の位置を検出する。動作指令決定部16は、ワーク1を把持してからワーク1をコンテナ2外に搬送するまでのエンドエフェクタ30のピッキング動作を決定する。動作指令決定部16は、複数の領域のうち検出部15によって検出されたワーク1の位置を含む領域に対応付けられた定義情報105によって定義される並進動作を、ピッキング動作の並進成分として決定する。
【0120】
これにより、画像処理装置100は、複雑な計算を行なうことなく、予め設定した定義情報105を用いて、ワーク1に対するピッキング動作の並進成分を容易に決定できる。その結果、計算コストの増大を抑制しながら、コンテナ2に収容されたワーク1をピッキングするロボットの動作を決定できる。
【0121】
複数の領域は、コンテナ2内における壁面3a~3dにそれぞれ隣接する領域4a~4dと、領域4a~4dよりも壁面3a~3dからそれぞれ離れた位置の領域5とを含む。これにより、コンテナ2の壁面3a~3dにそれぞれ隣接する領域4a~4dと、壁面3a~3dから離れた領域5とのそれぞれについて、ピッキング動作の並進成分を決定するための定義情報105を別個に設定できる。すなわち、複数の領域の各々について、当該領域に適した並進動作を定義する定義情報を設定することができる。
【0122】
領域設定部12aは、壁面3a~3dからの距離情報を用いて領域4a~4d,5を設定すればよい。これにより、領域4a~4d,5を容易に設定できる。
【0123】
例えば、壁面3aに隣接する領域4aに対応付けられた定義情報105は、ワーク1が通過すべき指定位置を指定するための情報である。そして、当該定義情報105によって定義される並進動作は、ワーク1の検出位置と指定位置とを通る直線または曲線に沿った動作である。これにより、領域ごとに指定位置を設定することにより、ピッキング動作の並進成分が決定される。
【0124】
指定位置は、検出位置に応じて指定されてもよい。例えば、図10に示す例では、コンテナ2の上端を通る平面7において、検出位置Pbから下した垂線の足である点Qから逃げ幅F1だけ壁面3aから離れた位置が指定位置Pc2として指定される。これにより、検出位置Pbに適した指定位置が指定される。
【0125】
領域5に対応付けられた定義情報105は、例えば、壁面3aおよび容器の底面3zに直交する平面上において壁面3aに平行な上向きの方向、底面3zの法線方向、鉛直方向上向き、およびこれらの方向よりも壁面3aから離れるように傾斜した方向、のいずれかを示す。領域5に対応付けられた定義情報105によって定義される並進動作は、これらの方向に沿った動作である。領域5は、壁面から離れた位置にある。そのため、これらの方向に沿ったピッキング動作を行なっても、壁面とワーク1との接触リスクが低い。
【0126】
領域設定部12aは、コンテナ2が水平面に対して傾斜して設置される場合、コンテナ2の水平面に対する傾斜方向および傾斜角度に応じて、複数の領域の少なくとも1つ(図11に示す例では領域4a、4c)のサイズを調整する。これにより、傾斜に応じて領域のサイズが適宜自動的に調整される。これにより、ユーザの手間を削減できる。
【0127】
領域設定部12aは、2つの爪33によるワーク1の把持位置の中心点(図7の点P)と、ワーク1の外接直方体RPの表面上の点との最大距離をマージン幅Mとして設定する。そして、領域設定部12aは、壁面3a~3dからそれぞれマージン幅M以内の領域を領域4a~4dとして自動的に設定してもよい。これにより、領域の設定に要するユーザの手間を削減できる。なお、2つの爪33によるワーク1の把持位置の中心点(図7の点P)と、ワーク1の外接直方体RPの表面上の点との最大距離以上の距離がマージン幅Mとして設定されてもよい。
【0128】
<J.変形例>
(J-1.変形例1)
上記の実施の形態では、内底面が平坦であり、内壁面が内側面に対して垂直である直方体状の箱であるコンテナ2を、ワーク1が収容される容器の一例として説明した。しかしながら、ワーク1が収容される容器は、コンテナ2の形状に限定されず、複雑な形状を有していてもよい。
【0129】
図19は、ワークが収容される容器の別の例を示す平面図である。図20は、図19のV-V線に沿った矢視断面図である。図19および図20に例示されるコンテナ2aは、4つの凹部9a~9dを有する。ワークは、凹部9a~9d内に収容されるか、もしくは、凹部9a~9d内に収容されたワークの上に載せられる。図19および図20に示す例では、ワーク1bは凹部9a内に収容されており、ワーク1cは凹部9d内に収容されている。ワーク1aは、凹部9a内に収容されているワーク1bの上に載せられ、凹部9aの上方に位置している。
【0130】
図21は、図19に示す凹部9a付近を示す拡大平面図である。図21に示されるように、凹部9aは、4つの壁面3e~3hによって囲まれている。壁面3e,3fは、凹部9aの底面に垂直である。壁面3g,3hは、凹部9aが上方に向かって広がるように、底面の法線方向に対して傾斜している。
【0131】
領域設定部12aは、凹部9a~9dの各々について、互いに排他的な関係にある複数の領域を設定すればよい。図21に示す例では、領域設定部12aは、凹部9a内の空間について領域4i~4p,5aを設定している。領域4iは壁面3e,3fに隣接する。領域4jは壁面3eに隣接する。領域4kは壁面3e,3hに隣接する。領域4lは壁面3fに隣接する。領域4mは壁面3hに隣接する。領域4nは壁面3f,3gに隣接する。領域4oは壁面3gに隣接する。領域4pは壁面3g,3hに隣接する。領域5aは、領域4e,4l,4o,4mよりも壁面3e~3hからそれぞれ離れている。
【0132】
情報設定部12bは、各領域に対応付けて、エンドエフェクタ30の並進動作を定義する定義情報105を設定する。図21に示す例では、情報設定部12bは、領域4i~4p,5aに対応付けて、並進動作40i~40p,50aを定義する定義情報105をそれぞれ設定する。
【0133】
並進動作40iは、領域4iに隣接する壁面3e,3fから離れる方向に移動する動作である。並進動作40jは、領域4jに隣接する壁面3eから離れる方向に移動する動作である。並進動作40lは、領域4lに隣接する壁面3fから離れる方向に移動する動作である。並進動作40mは、領域4mに隣接する壁面3hから離れる方向に移動する動作である。並進動作40oは、領域4oに隣接する壁面3gから離れる方向に移動する動作である。並進動作40pは、領域4pに隣接する壁面3g,3hから離れる方向に移動する動作である。
【0134】
なお、凹部9aの底面とのなす角度が鈍角となるように傾斜している壁面3g,3hへのワークの接触リスクは低い。そのため、領域4m,4o,4pにそれぞれ対応する並進動作40m,40o,40pは、鉛直方向上向き(Z軸正方向)に沿った直線移動であってもよい。
【0135】
領域4kでは、凹部9aの底面とのなす角度が鈍角となるように傾斜している壁面3hよりも底面に垂直な壁面3eへのワークの接触リスクが高い。そのため、領域4kに対応する並進動作40kは、壁面3eから離れる方向に移動する動作である。同様に、領域4nでは、凹部9aの底面に対して傾斜している壁面3gよりも底面に垂直な壁面3fへのワークの接触リスクが高い。そのため、領域4nに対応する並進動作40nは、壁面3fから離れる方向に移動する動作である。
【0136】
図21に例示される並進動作50aは、鉛直方向上向き(Z軸正方向)に沿った直線移動である。ただし、ロボット300の並進機構における動作精度には誤差がある。そのため、ある方向に直線移動させようとしても、当該方向から誤差分だけ傾斜した方向に移動する可能性がある。凹部9aは、底面に垂直な壁面3e,3fと、底面とのなす角度が鈍角となるように傾斜している壁面3g,3hとに囲まれている。そのため、壁面3g,3hよりも壁面3e,3fへのワークの接触リスクが高い。そこで、図9において例えばラジオボタン80aが操作された場合に、鉛直方向上向き(Z軸正方向)よりも壁面3e,3fから離れるように傾斜した方向に沿った直進動作が並進動作50aとして設定されてもよい。このとき、並進動作50aの方向と鉛直方向上向き(Z軸正方向)とのなす角度は、ロボット300の並進機構における動作精度の誤差以上に設定される。
【0137】
(J-2.変形例2)
コンテナ2,2aに収容された複数のワークを1つずつ順にピッキングする場合、壁面との接触リスクの低いワークからピッキングすることが好ましい。そこで、設定部12は、ピッキング対象となるワークを選択する基準となる優先度を領域ごとに設定してもよい。
【0138】
図22は、変形例2に係る設定部の内部構成を示す図である。図22に例示される設定部12は、領域設定部12aおよび情報設定部12bの他に、優先度設定部12cを含む。
【0139】
優先度設定部12cは、入力装置160への入力に従って、領域設定部12aによって設定された複数の領域の各々について優先度を設定する。優先度設定部12cは、領域ごとに設定した優先度を領域情報104に含める。
【0140】
例えば、図2に示すコンテナ2の場合、領域5に位置するワーク1は、領域4a~4hに位置するワーク1よりも壁面3a~3dのいずれかへ接触するリスクが低い。そのため、ユーザは、領域5について、領域4a~4hの優先度よりも高い優先度を入力装置160に入力すればよい。これにより、優先度設定部12cは、領域5の優先度を領域4a~4hの優先度よりも高く設定する。
【0141】
図21に示すコンテナ2aの場合、底面に垂直な壁面3e,3f近傍のワークは、底面とのなす角度が鈍角となるように傾斜している壁面3g,3h近傍のワークよりも、壁面へ接触するリスクが低い。そのため、ユーザは、壁面3e,3fに隣接する領域について、相対的に低い優先度を入力装置160に入力すればよい。
【0142】
図23は、変形例2において生成された領域情報の一例を示す図である。図23には、図21に示すコンテナ2aに対して生成された領域情報104が示される。図23に示されるように、壁面から最も離れた領域5aの優先度が最も高い「1」に設定されている。底面とのなす角度が鈍角となるように傾斜している壁面3g,3hの一方にのみ隣接している領域4m,4oの優先度が次に高い「2」に設定されている。壁面3g,3hの両方に隣接している領域4pの優先度が次に高い「3」に設定されている。底面に垂直な壁面3e,3fの一方にのみ隣接している領域4j,4lの優先度が次に高い「4」に設定されている。壁面3e,3fの一方と壁面3g,3hの一方とに隣接している領域4k,4nの優先度が次に高い「5」に設定されている。壁面3e,3fの両方に隣接している領域4iの優先度が最も低い「6」に設定されている。
【0143】
検出部15は、複数のワークを検出した場合、領域情報104を参照して、当該複数のワークの中から優先度の最も高い領域に位置するワークをピッキング対象として選択すればよい。これにより、ロボット300は、壁面との接触リスクの低いワークから順にピッキングすることができる。
【0144】
例えば、図19に示す例では、まず、凹部9aの上方に位置しているワーク1aがピッキングされる。次に、底面とのなす角度が鈍角となるように傾斜している壁面近傍に位置するワーク1cがピッキングされる。最後に、底面に垂直な壁面近傍に位置するワーク1bがピッキングされる。
【0145】
(J-3.変形例3)
図6に示す例では、ワーク1の形状として、ワーク1の外接直方体の幅W、奥行きD、高さHが登録され、当該外接直方体に基づいてマージン幅Mが計算される。しかしながら、ピッキング動作では、ワーク1とエンドエフェクタ30とが一体となって移動する。そのため、ワーク1とワーク1を把持するエンドエフェクタ30の爪33との外接直方体の幅、奥行き、高さが登録され、当該外接直方体に基づいてマージン幅Mが計算されてもよい。これにより、エンドエフェクタ30の爪33と壁面との接触リスクを低減できる。
【0146】
(J-4.変形例4)
上記の説明では、2つの爪33によるワーク1の把持位置の中心点(図7の点P)と対象物の表面上の点との最大距離がマージン幅Mとして設定されるものとした。しかしながら、例えば、エンドエフェクタ30が1つの吸着パッドを用いてワーク1を吸着する場合、ワーク1に対する当該吸着パッドの吸着位置(保持位置)とワーク1の表面上の点との最大距離以上がマージン幅Mとして設定される。
【0147】
(J-5.変形例5)
上記の説明では、領域4a~4hに対応付けられた定義情報105は、コンテナ2の上端を通る平面7において、検出位置Pbから下した垂線の足である点Qと指定位置Pc2とから逃げ幅F1を示す(図10参照)。これにより、定義情報105によって指定位置Pc2が指定され、当該指定位置Pc2を通るように並進動作が定義される。
【0148】
しかしながら、領域4a~4hに対応付けられた定義情報105は、壁面の上端から壁面の法線方向に沿った距離である逃げ幅F2(図10および図13参照)を示してもよい。この場合、平面7において、壁面の上端から壁面の法線方向に逃げ幅F2だけ離れた位置が指定位置Pc3として指定される。そして、定義情報105によって定義される並進動作は、検出位置Pbと指定位置Pc3とを通る直線または曲線に沿った動作となる。なお、逃げ幅F2は、距離DM1,Dm2,WM1,WM2(図8参照)以上に設定される。
【0149】
(J-6.変形例6)
上記の説明では、領域4a~4hに対応付けられた定義情報105は、ワーク1が通過すべき指定位置を示すものとした。しかしながら、領域4a~4hの各々に対応付けられた定義情報105は、当該領域に隣接する壁面から遠ざかる方向を示してもよい。例えば、壁面3aに隣接する領域4aに対応付けられた定義情報105は、壁面3aおよび底面3zに直交する平面上において、壁面3aから遠ざかる上向きの方向を示してもよい。この場合、当該定義情報105によって定義される並進動作は、起点に対する終点の方向が定義情報105で示される方向に一致する動作である。なお、定義情報105によって定義される並進動作は、定義情報105で示される方向に沿った直線動作であってもよいし、ピッキング動作の起点から終点に向かってわずかにカーブする動作であってもよい。
【0150】
(J-7.変形例7)
上記の実施の形態では、対象となる壁面に隣接する領域に対して、当該壁面から離れる方向に移動する並進動作を定義する定義情報105が設定される。これにより、ピッキング動作において、対象となる壁面へのワークの接触リスクを低減できる。ただし、ワークを収容する容器の形状によっては、対象となる壁面へのワークの接触リスクを低減できたとしても、当該壁面とは異なる壁面へのワークの接触リスクが依然として高い場合がある。このような場合、当該異なる壁面への接触リスクを低減するために、ピッキング動作の回転成分が決定されてもよい。
【0151】
図24は、ワークを収容するコンテナのさらに別の例を示す平面図である。図25は、図24に示すコンテナを示す縦断面図である。
【0152】
図24に例示されるコンテナ2bは、壁面3i,3j,3kを有する。コンテナ2b内の空間において壁面3iの法線方向に沿った長さは、直方体状のワーク1の対角線の長さよりも十分に長い。そのため、壁面3iに隣接する領域に対して、壁面3iから離れる方向の並進動作40を定義する定義情報105を設定することにより、ピッキング動作において壁面3iへのワークの接触リスクを低減できる。
【0153】
壁面3j,3kは壁面3iに隣り合う。壁面3j,3kは互いに対向している。壁面3jと壁面3kとの距離は、直方体状のワーク1の対角線の長さと同程度である。そのため、壁面3jから離れる方向にワーク1を並進動作させた場合、壁面3kにワーク1が接触する可能性が高まる。そこで、動作指令決定部16は、検出部15によって検出されたワーク1の姿勢に基づいて、ワーク1と壁面3j,3kとの最短距離が長くなるようにピッキング動作の回転成分を決定する。
【0154】
例えば、動作指令決定部16は、検出部15によって検出された位置姿勢のワーク1をコンテナ2bの底面に平行な平面に投影し、投影部分の外接矩形を特定する。次に、動作指令決定部16は、特定した外接矩形の4つの頂点に内接する円90の中心Oを通り、かつ、コンテナ2bの底面の法線方向に平行な軸を回転軸として決定する。
【0155】
なお、動作指令決定部16は、ワーク1を把持するときの爪33が外接矩形の4つの頂点に内接する円の内部に位置するか否かを判定してもよい。動作指令決定部16は、判定結果が否を示す場合、ワーク1を把持するときの爪33が内部に含まれるように円90の位置およびサイズを補正し、補正後の円90の中心Oを通り、かつ、コンテナ2bの底面の法線方向に平行な軸を回転軸として決定してもよい。
【0156】
次に、動作指令決定部16は、特定した外接矩形の長辺と壁面3j,3kとのなす角度を回転角度として計算するとともに、外接矩形の長辺を壁面3j,3kと平行にするための回転方向(図24に示す例では時計回りの方向)を決定する。動作指令決定部16は、決定した回転方向に回転角度だけ回転させる回転動作45をピッキング動作の回転成分として決定する。これにより、並進動作40により壁面3iとワーク1との接触リスクを低減するとともに、回転動作45により壁面3j,3kとワーク1との接触リスクを低減できる。
【0157】
<K.付記>
以上のように、本実施の形態および変形例は以下のような開示を含む。
【0158】
(構成1)
容器(2,2a,2b)に収容された対象物(1)をピッキングするロボット(300)の動作を決定する装置(100)であって、
前記容器(2,2a,2b)内の空間において、互いに排他的な関係にある複数の領域(4a~4p,5,5a)を設定するための領域設定部(12a)と、
前記複数の領域(4a~4p,5,5a)の各々と対応付けて、前記ロボット(300)が有するエンドエフェクタ(30)の並進動作を定義する定義情報(105)を設定するための情報設定部(12b)と、
前記容器(2,2a,2b)を撮像することにより得られた画像に基づいて、前記対象物(1)の位置を検出するための検出部(15)と、
前記対象物(1)を保持してから前記対象物(1)を前記容器(2,2a,2b)外に搬送するまでの前記エンドエフェクタ(30)のピッキング動作を決定するための決定部(16)とを備え、
前記決定部(16)は、前記複数の領域(4a~4p,5,5a)のうち前記検出部(15)によって検出された位置を含む領域に対応付けられた前記定義情報(105)によって定義される並進動作を前記ピッキング動作の並進成分として決定する、装置(100)。
【0159】
(構成2)
前記複数の領域(4a~4p,5,5a)は、前記容器(2,2a,2b)内における第1対象壁面(3a~3i)に隣接する第1領域(4a~4p)と、前記第1領域よりも前記第1対象壁面(3a~3i)から離れた位置の第2領域(5,5a)とを含む、構成1に記載の装置(100)。
【0160】
(構成3)
前記領域設定部(12a)は、前記第1対象壁面(3a~3i)からの距離情報を用いて前記第1領域(4a~4p)および前記第2領域(5,5a)を設定する、構成2に記載の装置(100)。
【0161】
(構成4)
前記第1領域(4a~4p)に対応付けられた第1定義情報は、前記第1対象壁面(30a~30i)から遠ざかる第1方向を示し、
前記第1定義情報によって定義される並進動作は、起点に対する終点の方向が前記第1方向に一致する動作である、構成2または3に記載の装置(100)。
【0162】
(構成5)
前記第1領域(4a~4p)に対応付けられた第1定義情報は、前記対象物(1)が通過すべき指定位置を指定するための情報であり、
前記第1定義情報によって定義される並進動作は、前記検出された位置と前記指定位置とを通る直線または曲線に沿った動作である、構成2または3に記載の装置(100)。
【0163】
(構成6)
前記指定位置は、前記検出された位置に応じて指定される、構成5に記載の装置(100)。
【0164】
(構成7)
前記第1領域(4a~4p)は、前記第1対象壁面(3a~3i)から第1距離以内であり、
前記指定位置は、前記第1対象壁面(3a~3i)の上端から前記第1対象壁面の法線方向に沿って第2距離だけ離れた位置であり、
前記第2距離は前記第1距離以上である、構成5に記載の装置(100)。
【0165】
(構成8)
前記第2領域(5,5a)に対応付けられた第2定義情報は、前記第1対象壁面(3a~3i)および前記容器(2,2a,2b)の底面(3z)に直交する平面上において前記第1対象壁面(3a~3i)に平行な上向きの方向、前記底面(3z)の法線方向、鉛直方向上向き、および、これらの方向のいずれかに対して前記第1対象壁面(3a~3i)から離れるように傾斜した方向、のいずれかである第2方向を示し、
前記第2定義情報によって定義される並進動作は、前記第2方向に沿った動作である、構成2から7のいずれかに記載の装置(100)。
【0166】
(構成9)
前記容器(2,2a,2b)は、水平面に対して傾斜しており、
前記領域設定部(12a)は、前記容器(2,2a,2b)の水平面に対する傾斜方向および傾斜角度に応じて前記複数の領域の少なくとも1つのサイズを調整する、構成1から8のいずれかに記載の装置(100)。
【0167】
(構成10)
前記領域設定部(12a)は、
前記エンドエフェクタ(30)による前記対象物(1)の保持位置と前記対象物(1)の表面上の点との最大距離以上の第1距離を設定し、
前記第1対象壁面(3a~3i)から前記第1距離以内の領域を前記第1領域(4a~4p)として設定する、構成3に記載の装置(100)。
【0168】
(構成11)
前記エンドエフェクタ(30)は、複数の爪(33)を有し、
前記領域設定部(12a)は、
前記複数の爪(33)による前記対象物(1)の保持位置の中心点と、前記対象物(1)に外接する直方体、または前記対象物(1)および前記対象物を保持する前記複数の爪に外接する直方体の表面上の点との最大距離以上の第1距離を設定し、
前記第1対象壁面(3a~3i)から前記第1距離以内の領域を前記第1領域として設定する、構成3に記載の装置(100)。
【0169】
(構成12)
前記検出部(15)は、前記対象物(1)の姿勢をさらに検出し、
前記決定部(16)は、前記検出部(15)によって検出された姿勢に基づいて、前記対象物(1)と前記容器(2b)内における第2対象壁面(3j,3k)との最短距離が長くなるように前記ピッキング動作の回転成分をさらに決定する、構成1から11のいずれかに記載の装置(100)。
【0170】
(構成13)
前記複数の領域(4a~4p,5,5a)の各々の優先度を設定するための優先度設定部(12c)をさらに備え、
前記容器(2,2a,2b)には複数の物体(1)が収容されており、
前記検出部(15)は、
前記複数の物体(1)の各々の位置を検出し、
前記複数の物体(1)のうち、前記優先度の最も高い領域に属する物体を前記対象物(1)として決定する、構成1から12のいずれかに記載の装置(100)。
【0171】
(構成14)
容器(2,2a,2b)に収容された対象物(1)をピッキングするロボット(300)の動作を決定する方法であって、
前記容器(2,2a,2b)内の空間において、互いに排他的な関係にある複数の領域(4a~4p,5,5a)を設定するステップと、
前記複数の領域(4a~4p,5,5a)の各々と対応付けて、前記ロボット(300)が有するエンドエフェクタ(30)の並進動作を定義する定義情報(105)を設定するステップと、
前記容器(2,2a,2b)を撮像することにより得られた画像に基づいて、前記対象物(1)の位置を検出するステップと、
前記対象物(1)を保持してから前記対象物(1)を前記容器(2,2a,2b)外に搬送するまでの前記エンドエフェクタ(30)のピッキング動作を決定するステップとを備え、
前記ピッキング動作を決定するステップは、
前記複数の領域(4a~4p,5,5a)のうち前記検出部(15)によって検出された位置を含む領域に対応付けられた前記定義情報(105)によって定義される並進動作を前記ピッキング動作の並進成分として決定するステップを含む、方法。
【0172】
(構成15)
容器に収容された対象物をピッキングするロボットの動作を決定する方法をコンピュータに実行させるプログラムであって、
前記方法は、
前記容器(2,2a,2b)内の空間において、互いに排他的な関係にある複数の領域(4a~4p,5,5a)を設定するステップと、
前記複数の領域(4a~4p,5,5a)の各々と対応付けて、前記ロボット(300)が有するエンドエフェクタ(30)の並進動作を定義する定義情報(105)を設定するステップと、
前記容器(2,2a,2b)を撮像することにより得られた画像に基づいて、前記対象物(1)の位置を検出するステップと、
前記対象物(1)を保持してから前記対象物(1)を前記容器(2,2a,2b)外に搬送するまでの前記エンドエフェクタ(30)のピッキング動作を決定するステップとを備え、
前記ピッキング動作を決定するステップは、
前記複数の領域(4a~4p,5,5a)のうち前記検出部(15)によって検出された位置を含む領域に対応付けられた前記定義情報(105)を前記ピッキング動作の並進成分として決定するステップとを含む、プログラム。
【0173】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0174】
1,1a~1c ワーク、2,2a,2b コンテナ、3a~3k 壁面、3z 底面、4a~4p,5,5a 領域、7 平面、8 上端面、8a~8d 検出マーク、9a~9d 凹部、10 記憶部、11 ヘッド制御部、12 設定部、12a 領域設定部、12b 情報設定部、12c 優先度設定部、13 画像処理部、14 3D画像生成部、15 検出部、16 動作指令決定部、17 通信部、30 エンドエフェクタ、31 多関節アーム、32 ベース、33 爪、60,65,69,72,79 画面、61,66 自動登録ボタン、62,67 手動登録ボタン、63,64,68~70,75,81 入力欄、71 表示欄、73 自動設定ボタン、74 手動設定ボタン、76 画像、77 枠線、78 カーソル、80 ボタン群、80a,80b ラジオボタン、100 画像処理装置、101a,101b CADデータ、102 テンプレートデータ、103 画像データ、104 領域情報、105 定義情報、106 メモリカード、110 CPU、112 メインメモリ、114 ハードディスク、116 計測ヘッドインターフェース、116a 画像バッファ、118 入力インターフェース、120 表示コントローラ、124 通信インターフェース、126 データリーダ/ライタ、128 バス、150 ディスプレイ、160 入力装置、200 ロボットコントローラ、300 ロボット、400 計測ヘッド、401 投影部、402 撮像部、RP 外接直方体、SYS 制御システム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25