(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-16
(45)【発行日】2022-05-24
(54)【発明の名称】情報処理システム、ピッキング箇所特定方法及びプログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20220517BHJP
G06T 7/12 20170101ALI20220517BHJP
【FI】
B25J13/00 Z
G06T7/12
(21)【出願番号】P 2018010886
(22)【出願日】2018-01-25
【審査請求日】2020-10-23
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】原田 正範
(72)【発明者】
【氏名】坂本 健
(72)【発明者】
【氏名】新垣 恒治
【審査官】臼井 卓巳
(56)【参考文献】
【文献】国際公開第2012/066819(WO,A1)
【文献】特表2017-513727(JP,A)
【文献】特開2010-082782(JP,A)
【文献】特開2008-217544(JP,A)
【文献】特開2009-107043(JP,A)
【文献】特開2015-039767(JP,A)
【文献】特開2015-079374(JP,A)
【文献】特開2016-093879(JP,A)
【文献】特開2016-179534(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22-19/04
G06T 1/00ー 7/12
(57)【特許請求の範囲】
【請求項1】
物体をピッキングできる装置と、前記装置を制御する1つ以上の情報処理装置とを有する情報処理システムであって、
前記物体の形状を示す形状データを取得する取得部と、
前記形状データに基づいて、前記物体の形状のうち、平面となる部分を判断する判断部と、
前記平面に基づいて、前記ピッキングを行う箇所を特定する特定部と、
を備え
、
前記特定部は、
前記平面が中空を含む形状であると、
前記平面の内周を構成する境界線からオフセットした線分を生成する、
情報処理システム。
【請求項2】
前記特定部は、
前記平面の外周を構成する境界線からオフセットした線分を生成する請求項1に記載の情報処理システム。
【請求項3】
前記特定部は、
前記平面に他の面が干渉する場合には、前記平面と、前記他の面との境界線を前記平面に射影した射影線からオフセットした線分を生成する請求項
1又は2に記載の情報処理システム。
【請求項4】
前記特定部は、前記線分に基づいて、前記ピッキングを行う箇所を特定する請求項
1乃至3のいずれか1項に記載の情報処理システム。
【請求項5】
物体をピッキングできる装置と、前記装置を制御する1つ以上の情報処理装置とを有する情報処理システムが行うピッキング箇所特定方法であって、
情報処理システムが、前記物体の形状を示す形状データを取得する取得手順と、
情報処理システムが、前記形状データに基づいて、前記物体の形状のうち、平面となる部分を判断する判断手順と、
情報処理システムが、前記平面に基づいて、前記ピッキングを行う箇所を特定する特定手順と
を含
み、
前記特定手順は、
前記平面が中空を含む形状であると、
前記平面の内周を構成する境界線からオフセットした線分を生成する、
ピッキング箇所特定方法。
【請求項6】
物体をピッキングできる装置と、前記装置を制御する1つ以上の情報処理装置とを有するコンピュータにピッキング箇所特定方法を実行させるためのプログラムであって、
コンピュータが、前記物体の形状を示す形状データを取得する取得手順と、
コンピュータが、前記形状データに基づいて、前記物体の形状のうち、平面となる部分を判断する判断手順と、
コンピュータが、前記平面に基づいて、前記ピッキングを行う箇所を特定する特定手順と
を実行させ
、
前記特定手順は、
前記平面が中空を含む形状であると、
前記平面の内周を構成する境界線からオフセットした線分を生成する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、ピッキング箇所特定方法及びプログラムに関する。
【背景技術】
【0002】
ロボット技術等によって、部品等の物体を把持する、又は、物体を吸着して、ロボットアーム等で物体をピッキング(picking)する方法が知られている。
【0003】
例えば、情報処理システムは、まず、第1のセンサ部で対象物体を撮影した画像等に基づいて3次元情報を取得し、第2のセンサ部で対象物体の2次元情報を取得する。さらに、情報処理システムは、第1のセンサ部で取得できる情報に基づいて対象物体を計測し、このようにして得られる計測結果と、対象物体のモデル情報とを組み合わせて位置姿勢を算出する。そして、情報処理システムは、算出された位置姿勢で第2のセンサ部を用いて情報を取得し、取得した情報及びモデル情報に基づいて対象物体の3次元位置姿勢を計測する。このようにして、ピッキングにおいて高精度な制御を行う方法が知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の方法では、ピッキングの対象となる物体において、ピッキングを行う箇所が考慮されていない場合が多い。すなわち、従来の方法では、形状等に基づいて、物体のどの部分でピッキングを行うのが適切であるかを判断しないため、物体をピッキングできない場合がある。
【0005】
本発明の一態様は、物体をピッキングしやすくできることを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施形態による
物体をピッキングできる装置と、前記装置を制御する1つ以上の情報処理装置とを有する情報処理システムは、
前記物体の形状を示す形状データを取得する取得部と、
前記形状データに基づいて、前記物体の形状のうち、平面となる部分を判断する判断部と、
前記平面に基づいて、前記ピッキングを行う箇所を特定する特定部と
を備え、
前記特定部は、
前記平面が中空を含む形状であると、
前記平面の内周を構成する境界線からオフセットした線分を生成する
ことを特徴とする。
【発明の効果】
【0007】
本発明の実施形態によって、物体をピッキングしやすくできる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る情報処理システムの全体構成例を示す概要図である。
【
図2】本実施形態に係る情報処理システムにおける情報処理装置等のハードウェア構成例を示すブロック図である。
【
図3】本実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。
【
図4】本実施形態に係る情報処理システムによる全体処理例を示すフローチャートである。
【
図5】本実施形態に係る情報処理システムによる候補箇所を特定する処理例を示すフローチャートである。
【
図6】本実施形態に係る情報処理システムによる条件判定処理例を示すフローチャートである。
【
図7】本実施形態に係る情報処理システムが吸着部を吸着できる大きさがある面と判断する例を示す図である。
【
図8】本実施形態に係る情報処理システムが吸着部を吸着できる大きさがない面と判断する例を示す図(その1)である。
【
図9】本実施形態に係る情報処理システムが吸着部を吸着できる大きさがない面と判断する例を示す図(その2)である。
【
図10】本実施形態に係る情報処理システムが射影点を用いてピッキングを行うと干渉すると判断する例を示す図である。
【
図11】本実施形態に係る情報処理システムによる平面上におけるオフセットされた線分の生成例を示すフローチャートである。
【
図12】本実施形態に係る情報処理システムによる境界線に対してオフセットした線分の生成例を示す図である。
【
図13】本実施形態に係る情報処理システムによる交点で線分をカットする例を示す図である。
【
図14】本実施形態に係る情報処理システムによる線分を延長させて交点を生成する例を示す図である。
【
図15】本実施形態に係る干渉の例を示す図である。
【
図16】本実施形態に係る情報処理システムによる他のポリゴンに基づくオフセットされた線分の生成例を示すフローチャートである。
【
図17】本実施形態に係る情報処理システムによる他のポリゴンに基づくオフセットされた線分の生成例を示す図である。
【
図18】本実施形態に係る情報処理システムによる射影例を示す図である。
【
図19】本実施形態に係る情報処理システムによる優先順位の決定例を示す図(その1)である。
【
図20】本実施形態に係る情報処理システムによる優先順位の決定例を示す図(その2)である。
【発明を実施するための形態】
【0009】
以下、発明を実施するための最適な形態について、図面を参照して説明する。
【0010】
<全体構成例>
図1は、本実施形態に係る情報処理システムの全体構成例を示す概要図である。以下、図示するような物体11をピッキングするための情報処理システム10を例に説明する。図示するように、情報処理システム10は、例えば、物体をピッキングできる装置の例であるロボット8と、情報処理装置の例であるPC(Personal Computer)14とを有する。
【0011】
図示する例では、ロボット8は、物体11を吸着し、物体11が置かれる床又は部品箱等から物体11を持ち上げることができる(図では、Z軸方向に持ち上げる)。そして、ロボット8は、PC14による制御に基づいて、物体11を所定の場所へ移動させる(図示する例では、物体11は、X‐Y平面上において異なる場所へ移動する)。
【0012】
例えば、物体11は、工場等における製造過程で用いられる部品等である。したがって、ロボット8は、部品等の物体11をピッキングし、組み合わせる等によって製品を製造する。なお、物体11は、部品以外の種類でもよい。例えば、物体11は、食品小売等に用いられる箱等でもよい。なお、物体11は、ロボット8が持ち上げられる程度の重さであるのが望ましい。
【0013】
以下、図示するように、ロボット8は、物体11を吸着させて持ち上げるとする。なお、以下の説明では、ロボット8が物体11を吸着するための機構、すなわち、ロボット8と物体11の接触面(以下「吸着部」という。)は、円形であって、半径Rであるとする。また、半径R等の仕様は、あらかじめPC14に入力されるとする。
【0014】
<ハードウェア構成例>
図2は、本実施形態に係る情報処理システムにおける情報処理装置等のハードウェア構成例を示すブロック図である。まず、PC14は、図示するように、CPU(Central Processing Unit)24、ROM(Read-Only Memory)26、RAM(Random Access Memory)28、不揮発RAM30、I/O(Input/Output)32及びI/O34等を有する。また、図示するように、ロボット8との間には、ロボットコントローラ16等があってもよい。
【0015】
CPU24は、演算装置及び制御装置の例である。
【0016】
ROM26、RAM28及び不揮発RAM30は、記憶装置の例である。すなわち、PC14は、いわゆる主記憶装置を有する。さらに、PC14には、HD(Hard Disk)等の補助記憶装置があってもよい。
【0017】
I/O32及びI/O34は、いわゆるインタフェース(interface)である。例えば、I/O32及びI/O34は、コネクタ及びIC(Integrated Circuit)等である。したがって、図示するように、I/O32及びI/O34は、ロボットコントローラ16等の外部装置を接続させたり、外部装置とデータを送受信したりする。
【0018】
ロボットコントローラ16は、ロボット8を制御するための電子回路等である。例えば、PC14は、ロボットコントローラ16に対してロボット8を動作させるための命令等を示す信号を送信する。このような信号を受信すると、ロボットコントローラ16は、信号に基づいてロボット8を動作させる。
【0019】
なお、ハードウェア構成は、図示する構成に限られない。例えば、PC14は、図示するような構成に更に演算装置、制御装置又は記憶装置等を有してもよい。また、ロボットコントローラ16は、PC14又はロボット8等が有してもよい。
【0020】
<機能構成例>
図3は、本実施形態に係る情報処理システムの機能構成例を示す機能ブロック図である。例えば、情報処理システム10は、図示するように、取得部10F1、判断部10F2及び特定部10F3を備える機能構成である。
【0021】
取得部10F1、判断部10F2及び特定部10F3は、PC14が備えるCPU24が、RAM28を作業領域として利用し、ROM26等に格納されているプログラムを実行することで実現する。
【0022】
取得部10F1は、物体11の形状を示す形状データD1を取得する取得手順を行う。
【0023】
判断部10F2は、取得部10F1が取得する形状データD1に基づいて、物体11の形状のうち、平面となる部分を判断する判断手順を行う。
【0024】
特定部10F3は、判断部10F2によって判断された平面に基づいて、ロボット8がピッキングを行う箇所を特定する特定手順を行う。
【0025】
<全体処理例>
図4は、本実施形態に係る情報処理システムによる全体処理例を示すフローチャートである。
【0026】
<形状データの取得例>(ステップS1)
ステップS1では、情報処理システムが備える取得部10F1は、形状データを取得する。例えば、形状データは、物体11の形状を示すCAD(Computer Aided Design)データ等である。すなわち、形状データは、物体11をCADモデルで示し、物体11を3角形ポリゴン(polygon)(以下単に「ポリゴン」という。)等で示す。以下、ポリゴンを3角形とする例で説明するが、ポリゴンは、3角形以外の多角形でもよい。
【0027】
なお、形状データは、CADデータでなくともよい。具体的には、形状データは、物体11の3次元形状が得られるデータであれば、形式は問わない。したがって、形状データは、いわゆる3次元計測器等で物体11を計測した結果等でもよい。
【0028】
以下、物体11は、形状データによってCADモデルが示される例で説明する。
【0029】
<平面の判断例>(ステップS2)
ステップS2では、情報処理システムが備える判断部10F2は、形状データに基づいて、物体11において、いわゆる平面といえる部分を判断する。具体的には、情報処理システムが備える判断部10F2は、例えば、以下のような方法で判断する。
・まず、情報処理システムが備える判断部10F2は、面の方向が一致し、かつ、隣接するポリゴンの組み合わせが、1つの平面に属すと判断する。
・次に、情報処理システムが備える判断部10F2は、上記の処理を形状データに対して繰り返す。
・続いて、情報処理システムが備える判断部10F2は、平面のうち、十分面積の大きいものを抽出する(ポリゴンの組み合わせのうち、1個でも面積が大きければ、抽出対象となる)。なお、どの程度の面積であると、抽出対象、すなわち、平面と判断するかは、あらかじめ閾値等が設定される。
以上のような処理を行うと、情報処理システムが備える判断部10F2は、平面を抽出することができる。なお、判断方法は、上記の方法に限られず、辺又は角のように面積が狭い範囲でなく、一定以上の面積となる部分を抽出できる方法であればよい。
【0030】
<候補箇所の特定例>(ステップS3)
ステップS3では、情報処理システムが備える特定部10F3は、物体11が有する平面において、ロボット8がピッキングを行う候補となる箇所を特定する。以下、ステップS3で特定される物体11上のピッキングを行う候補となる箇所を「候補箇所」という。
【0031】
なお、ステップS3は、ステップS2で複数の平面が抽出される場合には、抽出された各平面に対して行われる。そのため、ステップS3によって、各平面に対して候補箇所がそれぞれ特定される。
【0032】
ステップS3は、例えば、以下のような処理である。以下、ステップS2で抽出される複数の平面のうち、1つの平面に対する処理としてステップS3を説明する。
【0033】
図5は、本実施形態に係る情報処理システムによる候補箇所を特定する処理例を示すフローチャートである。
【0034】
<重心位置の算出例>(ステップS31)
ステップS31では、情報処理システムが備える特定部10F3は、重心位置を算出する。例えば、形状データ等に、あらかじめ物体11の材料又は密度等を示すデータが入力されていると、情報処理システムが備える特定部10F3は、物体11の重心位置を示す座標等を計算することができる。
【0035】
<平面に重心位置を射影させる例>(ステップS32)
ステップS32では、情報処理システムが備える特定部10F3は、平面に重心位置を射影させる。つまり、情報処理システムが備える特定部10F3は、ステップS2で平面と判定された面上に重心位置を射影させた点(以下「射影点」という。)の座標等を計算する。
【0036】
<条件判定例>(ステップS33)
ステップS33では、情報処理システムが備える特定部10F3は、条件判定を行う。例えば、情報処理システムが備える特定部10F3は、以下のように条件判定を行う。
【0037】
図6は、本実施形態に係る情報処理システムによる条件判定処理例を示すフローチャートである。
【0038】
<吸着部を吸着できる大きさがある面か否かの判断例>(ステップS331)
ステップS331では、情報処理システムが備える特定部10F3は、吸着部を吸着できる大きさがある面か否かを判断する。つまり、情報処理システムが備える特定部10F3は、ステップS32で算出される射影点が投影された平面がピッキングを行える広さがあるか否かを判断する。
【0039】
例えば、ステップS331では、情報処理システムが備える特定部10F3は、以下のように判断する。
【0040】
図7は、本実施形態に係る情報処理システムが吸着部を吸着できる大きさがある面と判断する例を示す図である。まず、ステップS31によって、図示するような重心位置PT1が算出されたとする。さらに、物体11において、面PL1がステップS2で平面と判定されたとする。そして、ステップS32によって、面PL1上に、射影点PT2が射影されたとする。以下、ステップS331で判断対象となる面が面PL1である例で説明する。
【0041】
例えば、情報処理システムが備える特定部10F3は、射影点PT2について、面PL1が下記(A)乃至(C)の3つの条件をすべて満たすか否かによって、ステップS331の判断を行う。
(A) 射影点PT2が面PL1の内側である。
【0042】
例えば、上記(A)は、射影点PT2が面PL1を構成するポリゴンのどれかの上に位置する、又は、射影点PT2が面PL1を構成するポリゴンの境界上であるか否かで判定される。すなわち、射影点PT2が面PL1を構成するポリゴンの境界内に位置する場合には、上記(A)は、満たされていると判断される。
(B) 射影点PT2を中心とする半径Rの円周が、面PL1と交差しない。
【0043】
例えば、上記(B)は、射影点PT2を中心として描かれる円と、面PL1のすべての境界線とが交差する点があるか否かで判定される。なお、ポリゴンの場合には、境界線は、すべて直線となる。すなわち、射影点PT2を中心として描かれる円と、面PL1のすべての境界線とが交差する点がない場合には、上記(B)は、満たされていると判断される。
(C) 射影点PT2を中心として描かれる半径Rの円の内側に、境界線がない。
【0044】
例えば、上記(C)は、面PL1を構成する境界線が半径Rとなる円の内側にあるか否かで判定される。もし、面PL1が穴等の空洞を有する形状であると、穴等を構成する境界線が、面PL1の内側に存在する。また、面PL1が吸着部より狭いと、境界線は、円の内側となる。したがって、面PL1の境界線のうち、いずれの境界線も半径Rの内側にないと判断されると、上記(C)は、満たされていると判断される。
上記(A)乃至(C)の条件をいずれも満たす場合には、射影点PT2で吸着すると、吸着部の円全体が面PL1内に収まる場合が多い。したがって、情報処理システムが備える特定部10F3は、
図7のように、上記(A)乃至(C)のすべての条件を満たす場合には、吸着部を吸着できる大きさがある面と判断する(ステップS331でYES)。一方で、例えば、以下のような場合には、情報処理システムが備える特定部10F3は、吸着部を吸着できる大きさがない面と判断する(ステップS331でNO)。
【0045】
図8は、本実施形態に係る情報処理システムが吸着部を吸着できる大きさがない面と判断する例を示す図(その1)である。
図7と比較すると、
図8は、射影点が射影された面が面PL2となる点が異なる。それ以外の点は、
図7と同様とし、重複する説明を省略する。
【0046】
図示するように、面PL2が吸着部より狭いと、ステップS331では、情報処理システムが備える特定部10F3は、上記(C)を満たさないと判断する。したがって、情報処理システムが備える特定部10F3は、
図8のように上記(C)を満たさない場合には、吸着部を吸着できる大きさがない面と判断する(ステップS331でNO)。
【0047】
図9は、本実施形態に係る情報処理システムが吸着部を吸着できる大きさがない面と判断する例を示す図(その2)である。図示するような場合も、情報処理システムが備える特定部10F3は、吸着部を吸着できる大きさがない面と判断する(ステップS331でNO)。
【0048】
図9は、
図7と比較すると、射影点の位置が異なり、射影点PT3は、図示するように、面PL3上において、端である点が異なる。それ以外の点は、
図7と同様とし、重複する説明を省略する。
【0049】
図示するように、射影点PT3を中心とした位置で吸着部が物体11を吸着すると、吸着部の一部は、面PL3と接しない位置関係となる。このような場合には、ステップS331では、情報処理システムが備える特定部10F3は、上記(B)及び上記(C)を満たさないと判断する。したがって、情報処理システムが備える特定部10F3は、
図9のような上記(B)及び(C)の条件を満たさない場合には、吸着部を吸着できる大きさがない面と判断する(ステップS331でNO)。
【0050】
図6に戻り、吸着部を吸着できる大きさがある面と判断すると(ステップS331でYES)、情報処理システムは、ステップS332に進む。一方で、吸着部を吸着できる大きさがない面と判断すると(ステップS331でNO)、情報処理システムは、ステップS334に進む。
【0051】
<射影点を用いてピッキングを行うと干渉するか否かの判断例>(ステップS332)
ステップS332では、情報処理システムが備える特定部10F3は、射影点を用いてピッキングを行うと干渉するか否かを判断する。つまり、ステップS332では、情報処理システムが備える特定部10F3は、ピッキングを行うため、射影点に吸着部を移動させると、ロボットのいずれかの部位が物体と干渉するか否かを判断する。
【0052】
例えば、ステップS332では、情報処理システムが備える特定部10F3は、以下のように判断する。
【0053】
図10は、本実施形態に係る情報処理システムが射影点を用いてピッキングを行うと干渉すると判断する例を示す図である。
図10は、
図7と比較すると、物体11に、図示するような形状の部位11P1がある例を示す。この例では、射影点PT4が射影される面は、面PL4であるとする。これら以外の点は、
図7と同様とし、重複する説明を省略する。
【0054】
図示する例において、ピッキングを行うために、吸着部が射影点PT4に向かって移動すると、吸着部は、部位11P1に干渉する。したがって、図示するような場合には、情報処理システムが備える特定部10F3は、射影点PT4を用いてピッキングを行うと干渉すると判断する(ステップS332でYES)。
【0055】
具体的には、情報処理システムが備える特定部10F3は、まず、面PL4の表側(図示する例では、Z軸方向において上側となり、図で上方向に相当する。)に、面PL4とは別の面があるか否かを判断し、別の面をすべて抽出する。次に、情報処理システムが備える特定部10F3は、抽出された別の面と、吸着部とが干渉するか否かを判断する。
【0056】
例えば、情報処理システムが備える特定部10F3は、射影点PT4を中心として描かれる半径Rの円と、面PL4の表側にあるポリゴン(図示する例では、部位11P1を構成するポリゴンである。)を面PL4上に射影した射影物とが干渉するか否かを判断する。図示する例では、射影点PT4を中心とする半径Rの円と、面PL4上に射影された部位11P1を構成するポリゴンの射影物とが干渉するため、情報処理システムが備える特定部10F3は、干渉すると判断する(ステップS332でYES)。
【0057】
なお、ステップS332における干渉の判断では、ポリゴンの境界線だけでなく、ポリゴンの内側も判断に用いられる。
【0058】
一方で、例えば、
図7のように、面PL1の表側に、面PL1とは別の面がない場合には、情報処理システムが備える特定部10F3は、射影点PT2を中心とする半径Rの円と、別の面を構成するポリゴンとが干渉しないため、情報処理システムが備える特定部10F3は、干渉しないと判断する(ステップS332でNO)。
【0059】
<条件を満たすと判定する例>(ステップS333)
図6に戻り、ステップS333では、情報処理システムが備える特定部10F3は、条件を満たすと判定する。
【0060】
<条件を満たさないと判定する例>(ステップS334)
ステップS334では、情報処理システムが備える特定部10F3は、条件を満たさないと判定する。
【0061】
なお、
図6に示す処理において、各判断、すなわち、ステップS331及びステップS332の順序は、図示する順序に限られない。つまり、ステップS331及びステップS332によって、2つの条件が判断されるのであれば、判断する順序は、図示する順序以外でもよい。
【0062】
<条件を満たすと判定されたか否かの判断例>(ステップS34)
図5に戻り、ステップS34では、情報処理システムが備える特定部10F3は、条件を満たすと判定されたか否かを判断する。具体的には、ステップS33、すなわち、
図6に示す処理が行われると、ステップS333又はステップS334のうち、いずれかが行われるため、情報処理システムが備える特定部10F3は、ステップS33による判定結果に基づいて、条件を満たすと判定されたか否かが判断できる。
【0063】
次に、条件を満たすと判定されたと判断すると(ステップS34でYES)、情報処理システムは、ステップS311に進む。一方で、条件を満たさないと判定されたと判断すると(ステップS34でNO)、情報処理システムは、ステップS35に進む。
【0064】
<平面上におけるオフセット(offset)された線分の生成例>(ステップS35)
ステップS35では、情報処理システムが備える特定部10F3は、平面上において、オフセットされた線分を生成する。例えば、ステップS35では、情報処理システムが備える特定部10F3は、以下のように処理を行う。
【0065】
図11は、本実施形態に係る情報処理システムによる平面上におけるオフセットされた線分の生成例を示すフローチャートである。
【0066】
<平面を構成する境界線に対してオフセットした線分を生成する例>(ステップS351)
ステップS351では、情報処理システムが備える特定部10F3は、平面を構成する境界線に対してオフセットさせた線分を生成する。例えば、情報処理システムが備える特定部10F3は、以下のような処理によってオフセットする線分を生成する。
【0067】
図12は、本実施形態に係る情報処理システムによる境界線に対してオフセットした線分の生成例を示す図である。まず、物体11が、図示するような面PL5を有するとする。
【0068】
この例では、面PL5を構成する境界線のうち、外周を構成する下辺E1、右辺E2、上辺E3及び左辺E4が、それぞれ境界線として抽出される。このような境界線は、例えば、以下のように抽出される。
【0069】
まず、ステップS2で、平面が抽出される。図示する例では、面PL5が抽出される。そして、面PL5を構成するポリゴンには、他のポリゴンと隣接しないポリゴンが含まれる。このような隣接しないポリゴンを集めると、情報処理システムが備える特定部10F3は、境界線を抽出できる。
【0070】
なお、境界線は、物体の形状において、角張った部分等となるため、いわゆるエッジ(edge)と呼ばれる部分に相当する。
【0071】
以上のような処理で、情報処理システムが備える特定部10F3は、境界線を抽出できる。これらの境界線に対して、情報処理システムが備える特定部10F3は、例えば、図示するように、内側にオフセットした線分L1を生成する。
【0072】
なお、線分L1を各境界線からどの程度オフセットさせる、すなわち、オフセット量は、あらかじめ設定できるとする。例えば、オフセット量には、半径R等が設定される。
【0073】
また、図示するように面PL5が中空を含む形状であると、面PL5には、内周が含まれる。このような場合には、情報処理システムが備える特定部10F3は、例えば、図示するように、内周を構成する境界線の外側に対してオフセットさせた線分L2を生成してもよい。具体的には、情報処理システムが備える特定部10F3は、まず、内周を構成する辺E5、E6、E7及びE8を境界線として抽出する。このように、境界線が内周を構成する場合には、境界線に対して、情報処理システムが備える特定部10F3は、例えば、図示するように、外側にオフセットした線分L2を生成する。
【0074】
以下、図示する線分L1及び線分L2を処理対象にする例で説明する。
【0075】
<線分に交点があるか否かの判断例>(ステップS352)
図11に戻り、ステップS352では、情報処理システムが備える特定部10F3は、線分に交点があるか否かを判断する。例えば、
図12に示す例では、線分L1に図示するような交点CP1があるため、情報処理システムが備える特定部10F3は、線分L1に対しては、交点があると判断する(ステップS352でYES)。一方で、線分L2には、交点がないため、情報処理システムが備える特定部10F3は、線分L2に対しては、交点がないと判断する(ステップS352でNO)。
【0076】
次に、線分に交点があると判断すると(ステップS352でYES)、情報処理システムは、ステップS353に進む。一方で、線分に交点がないと判断すると(ステップS352でNO)、情報処理システムは、ステップS354に進む。
【0077】
<交点で線分をカットする例>(ステップS353)
ステップS353では、情報処理システムが備える特定部10F3は、交点で線分をカットする。例えば、情報処理システムが備える特定部10F3は、以下のように処理を行う。
【0078】
図13は、本実施形態に係る情報処理システムによる交点で線分をカットする例を示す図である。図示する例は、
図12における線分L1に対してステップS353が行われた場合の処理結果例を示す。
【0079】
図12と比較すると、
図13は、線分L1が各交点CP1から外周を構成する各境界線までカットされた点が異なる。このように、線分L1に交点があると判断された場合には、線分L1は、交点CP1から外周を構成する境界線までの部分がカットされる。
【0080】
<線分を延長させて交点を生成する例>(ステップS354)
図11に戻り、ステップS354では、情報処理システムが備える特定部10F3は、線分を延長させて交点を生成する。例えば、情報処理システムが備える特定部10F3は、以下のように処理を行う。
【0081】
図14は、本実施形態に係る情報処理システムによる線分を延長させて交点を生成する例を示す図である。図示する例は、
図12における線分L2に対してステップS354が行われた場合の処理結果例を示す。具体的には、図示するように、情報処理システムが備える特定部10F3は、各線分L2を延長させる。そして、情報処理システムが備える特定部10F3は、各線分L2が交わり、交点CP2が発生する程度まで各線分L2を延長させる。このように、線分L2に交点がないと判断された場合には、線分L2は、交点CP2が発生する程度まで延長される。
【0082】
<他のポリゴンに基づくオフセットされた線分の生成例>(ステップS36)
図5に戻り、ステップS36では、他のポリゴンに基づいて、オフセットされた線分を生成する。
【0083】
例えば、ピッキングを行おうとする面とは、別の面がある場合は、例えば、以下のような場合となる。
【0084】
図15は、本実施形態に係る干渉の例を示す図である。以下、面PL6が処理対象の平面となる例で説明する。また、図示する例では、面PL6とは別に、面PL7と、面PL8とがあるとする。図示するように、面PL7及び面PL8は、面PL6上で吸着部が吸着する箇所によっては、吸着部と、面PL7又は面PL8とが干渉する可能性のある面である。
【0085】
また、図示する例では、面PL7は、面PL8よりX軸において、境界線が左側にある面となる。
【0086】
吸着部が面PL7等と干渉せず、ピッキングを行うには、例えば、円柱CRで示す空間が必要となる。なお、図示する例は、ピッキングを行う箇所をできるだけ面PL7側(図では、右側となる。)に近づけた例である。したがって、吸着部がピッキングを行う箇所、すなわち、円柱CRが図示する例より右側となると、ピッキングを行う際に、吸着部が面PL7と干渉する。
【0087】
また、図示するような円柱CRの位置より、右側となると、吸着部は、面PL8には干渉しなくとも、面PL7に干渉する場合がある。以下、面PL7がX軸において、境界線が最も左側に位置する面であるとする。
【0088】
図示するような状態を求めるには、面PL7を構成する境界線を面PL6上に射影させた射影線L4と、射影線L4からオフセット量分オフセットさせた線分L5とを求める必要がある。すなわち、線分L5は、X軸において左側から順に右側に求めていくとすると、吸着部がピッキングを行う箇所のうち、最初に干渉が発生する箇所を示す線分である。この例では、面PL7の境界線が最も左側にある例であるため、図示するような円柱CRの位置は、面PL7との干渉を考慮した円柱CRの位置を求めると、面PL8等の面にも吸着部が干渉しない箇所である。
【0089】
このような状態を求めるには、例えば、情報処理システムが備える特定部10F3は、以下のような処理で射影線L4及び線分L5等を求める。
【0090】
図16は、本実施形態に係る情報処理システムによる他のポリゴンに基づくオフセットされた線分の生成例を示すフローチャートである。
【0091】
<法線方向における他の面を構成するポリゴンの特定例>(ステップS361)
ステップS361では、情報処理システムが備える特定部10F3は、法線方向(
図15におけるZ軸方向である。)における他の面を構成するポリゴンを特定する。すなわち、情報処理システムが備える特定部10F3は、処理対象となる平面(
図15では、面PL6である。)の上側に、他の面があるか否かを判定し、他の面がある場合には、他の面を構成するポリゴンを特定する。
【0092】
図15に示す例では、情報処理システムが備える特定部10F3は、他の面として、面PL7及び面PL8を特定する。
【0093】
<隣接するポリゴンのそれぞれの法線が平面の法線方向に対して逆向き、又は、いずれか一方のポリゴンの法線が平面の法線方向に直交するポリゴンの組み合わせを特定する例>(ステップS362)
ステップS362では、情報処理システムが備える特定部10F3は、隣接するポリゴンのそれぞれの法線が平面の法線方向に対して逆向き、又は、いずれか一方のポリゴンの法線が平面の法線方向に直交するポリゴンの組み合わせを特定する。
【0094】
<隣接するポリゴンが有する隣接線分を平面に射影する例>(ステップS363)
ステップS363では、情報処理システムが備える特定部10F3は、隣接するポリゴンが有する隣接線分を平面に射影する。
【0095】
<射影線からオフセットした線分の生成例>(ステップS364)
ステップS364では、情報処理システムが備える特定部10F3は、射影線からオフセットした線分を生成する。
【0096】
例えば、
図16に示す各ステップは、以下のように処理される。
【0097】
図17は、本実施形態に係る情報処理システムによる他のポリゴンに基づくオフセットされた線分の生成例を示す図である。まず、図示する例では、
図15と同様に、面PL6が処理対象の平面となる例である。この例において、ステップS361によって、情報処理システムが備える特定部10F3は、面PL7を構成するポリゴンPY1及びポリゴンPY2を特定する。
【0098】
図示するように、ポリゴンPY1及びポリゴンPY2は、隣接するポリゴンである。また、この例では、ポリゴンPY1及びポリゴンPY2は、図示するように、隣接線分L3で隣接する。
【0099】
ステップS362では、図示するように、隣接するポリゴンPY1及びポリゴンPY2の組み合わせが処理対象となる。そして、ステップS362では、情報処理システムが備える特定部10F3は、まず、各ポリゴンの法線を特定する。図示する例では、ポリゴンPY1の法線は、図示するように、法線LV1となる。同様に、ポリゴンPY2の法線は、図示するように、法線LV2となる。
【0100】
これらの法線は、各ポリゴンの表面側で特定される。なお、ポリゴンの表及び裏は、ポリゴンを示すデータにあらかじめ入力されるため、情報処理システムが備える特定部10F3は、データに基づいてポリゴンの表及び裏を判定できる。
【0101】
次に、ステップS362では、情報処理システムが備える特定部10F3は、各法線が面PL6の法線方向に対して逆向きであるか否かを判断する。まず、面PL6の法線方向は、Z軸方向であり、図では、上向き方向を示す。これに対して、法線LV2は、面PL6の法線方向とは逆向きであり、図では、下向き方向である。ゆえに、ステップS362では、ポリゴンPY1及びポリゴンPY2の組み合わせが特定される。
【0102】
なお、法線が直交するポリゴンの組み合わせも、ステップS362で特定される。
【0103】
以上のように、ステップS362では、情報処理システムが備える特定部10F3は、面PL6と対向する向きのポリゴンを特定し、特定されるポリゴンと隣接するポリゴンの組み合わせを特定する。このような隣接するポリゴンの組み合わせを特定できると、情報処理システムが備える特定部10F3は、隣接線分L3を特定できる。
【0104】
次に、ステップS363では、情報処理システムが備える特定部10F3は、隣接線分L3を面PL6上に射影する。図示する例では、この射影によって生成される線分が、射影線L4となる。例えば、図示するように、射影線L4は、Z軸方向において隣接線分L3を面PL6にほぼ垂直に降ろした位置に射影されて生成される。この射影線L4が、面PL6と、他の面(ポリゴンPY2で構成される面PL7である。)との境界線を示す。
【0105】
続いて、ステップS364では、情報処理システムが備える特定部10F3は、射影線L4を基準にオフセットした位置に線分L5を生成する。なお、オフセットする方向は、図示するように、ポリゴンがあるのとは反対の方向である。図では、射影線L4より右側にポリゴンがあるため、オフセットする方向は、射影線L4より左側となる。以上のようにして、情報処理システムが備える特定部10F3は、射影線L4から半径R分左側へオフセットさせた位置に線分L5を生成する。
【0106】
<射影例>(ステップS37)
図5に戻り、ステップS37では、情報処理システムが備える特定部10F3は、ステップS35及びステップS36で生成された線分に基づいて重心位置を射影する。例えば、情報処理システムが備える特定部10F3は、以下のように処理を行う。
【0107】
図18は、本実施形態に係る情報処理システムによる射影例を示す図である。まず、図示する例では、面PL9が処理対象であるとする。そして、ステップS35及びステップS36等によって、図示するような線分L6が生成されたとする。さらに、この例では、重心位置PT1が、線分L6上に射影されて、射影点PT5、射影点PT6、射影点PT7、射影点PT8、射影点PT9、射影点PT10、射影点PT11及び射影点PT12が生成されるとする。
【0108】
<条件判定例>(ステップS38)
図5に戻り、ステップS38では、情報処理システムが備える特定部10F3は、条件判定を行う。例えば、情報処理システムが備える特定部10F3は、ステップS33と同様の処理によって、ステップS37で定まるそれぞれの射影点について条件判定を行う。
【0109】
<条件を満たすと判定されたか否かの判断例>(ステップS39)
ステップS39では、情報処理システムが備える特定部10F3は、各射影点が条件を満たすと判定されたか否かを判断する。具体的には、ステップS38、すなわち、
図6に示す処理が行われると、ステップS333又はステップS334が行われるため、情報処理システムが備える特定部10F3は、ステップS33による判定結果に基づいて、条件を満たすと判定されたか否かが判断できる。
【0110】
次に、条件を満たすと判定されたと判断すると(ステップS39でYES)、情報処理システムは、ステップS310に進む。一方で、条件を満たさないと判定されたと判断すると(ステップS39でNO)、情報処理システムは、処理を終了する。
【0111】
<最近点の選択例>(ステップS310)
ステップS310では、情報処理システムが備える特定部10F3は、最近点を選択する。以下、
図18に示す射影点PT5乃至射影点PT12のすべての射影点が、すべて条件を満たす点であると判定される場合を例に説明する。そして、情報処理システムが備える特定部10F3は、射影点PT5乃至射影点PT12のうち、各射影点と、重心位置PT1との距離が最も短くなる点、すなわち、最近点を算出する。図示する例では、射影点PT5が重心位置PT1に最も近い点であるため、情報処理システムが備える特定部10F3は、射影点PT5を最近点と算出する。
【0112】
<最近点又は条件を満たす点を候補箇所に指定する例>(ステップS311)
ステップS311では、情報処理システムが備える特定部10F3は、最近点又は条件を満たす点を候補箇所に指定する。つまり、情報処理システムが備える特定部10F3は、ステップS310で選択された最近点又はステップS33で条件を満たすと判定された点を候補箇所と指定する。
【0113】
<優先順位の決定例>(ステップS4)
図4に戻り、ステップS4では、情報処理システムが備える特定部10F3は、候補箇所の優先順位を決定する。すなわち、ステップS2によって、複数の平面があると判断されると、情報処理システムが備える特定部10F3は、各平面に対してステップS3を行う。そのため、ステップS3によって、平面ごとに、候補箇所が特定される。そして、ステップS4では、情報処理システムが備える特定部10F3は、それぞれの候補箇所に対して、優先順位を示す数値を設定する。
【0114】
優先順位は、ピッキングに最適な箇所と判断される順で設定される。具体的には、例えば、情報処理システムが備える特定部10F3は、以下のように優先順位を決定する。
【0115】
図19は、本実施形態に係る情報処理システムによる優先順位の決定例を示す図(その1)である。例えば、
図19(A)に示すような状態にすると、物体11は、Y軸方向に長い形状、いわゆる直方体であるとする。
【0116】
ピッキングに最適な箇所は、例えば、物体11を転がした際に最も表になりやすい平面である。このような平面は、例えば、面積を比較して特定できる。すなわち、情報処理システムが備える特定部10F3は、物体11が有する平面のうち、面積が広い順に優先順位を決定する。以下、物体11が有する平面のうち、面11PL1及び面11PL2に、ステップS3によって候補箇所が指定された例で説明する。また、この例では、面11PL1の方が、面11PL2より面積が広いとする。
【0117】
物体11は、図示するように、置き方によって、
図19(A)のようにもなり、一方で、物体11は、
図19(B)のような状態にもなりうる。すなわち、
図19(A)に示す物体11は、Pitch回転(図では、X軸回りの回転となる。)させると、
図19(B)に示す物体11となる。
【0118】
面11PL1のように面積が広い平面の方が、面11PL2等の面積が狭い面より、
図19(A)に示すように、表(図では、上方向となる。)となる確率が高い。このように、表になる確率が高い平面を用いてピッキングを行うと、情報処理システムが備える特定部10F3は、ロボット8によって、より物体をピッキングしやすくできる。
【0119】
したがって、例えば、情報処理システムが備える特定部10F3は、面11PL1のように面積が広い平面を用いる候補箇所が高い優先順位となるように決定する。
【0120】
また、例えば、情報処理システムが備える特定部10F3は、以下のように優先順位を決定してもよい。
【0121】
図20は、本実施形態に係る情報処理システムによる優先順位の決定例を示す図(その2)である。
【0122】
ピッキングに最適な箇所は、例えば、吸着部の姿勢が変化しても、物体11のバランスが取りやすい平面である。例えば、図示するように、吸着部が、
図19等の姿勢から90°Pitch回転(図では、X軸回りの回転となる。)する場合がある。以下、図示するような吸着部の姿勢を例に説明する。
【0123】
ピッキングに最適な箇所となる平面は、例えば、重心位置PT1からの距離を比較して特定できる。すなわち、情報処理システムが備える特定部10F3は、物体11が有する平面のうち、重心位置PT1からの距離が短い順に優先順位を決定する。以下、物体11が有する平面のうち、面11PL3及び面11PL4に、ステップS3によって候補箇所が指定された例で説明する。また、この例では、面11PL3上の候補箇所の方が、面11PL4上の候補箇所より、重心位置PT1からの距離が短いとする。
【0124】
このように、図示するような姿勢に吸着部がなった場合では、面11PL3を用いるピッキングの方が、面11PL4を用いる場合より、物体11がバランスを取りやすく、落ちにくい。
【0125】
したがって、例えば、情報処理システムが備える特定部10F3は、面11PL3のように重心位置PT1からの距離が短い平面を用いる候補箇所が高い優先順位となるように決定する。
【0126】
<まとめ>
まず、情報処理システム10は、CADデータ又は画像データ等の形状データD1から物体11がどういった形状であるかを把握できる。
【0127】
ロボット8によるピッキングは、いわゆるロボットハンド等と呼ばれる機構で物体11を把持して物体11を持ち上げる方法と、本実施形態のように、いわゆるバキュームと呼ばれる機構で物体を吸着させて物体11を持ち上げる方法とがある。
【0128】
特に、物体11を吸着させるピッキングにおいて、ピッキングを安定して行うには、ピッキングされる箇所が平面であるのが望ましい。すなわち、ピッキングが行われる箇所は、平面であると、吸着部が物体11に吸着しやすいため、持ち上げた際等に物体11が落ちにくい。そこで、情報処理システム10は、判断部10F2によって、物体11の形状のうち、平面といえる部分を判断する。以降、判断部10F2によって平面と判断された部分が処理対象となるため、情報処理システム10は、平面といえる箇所でピッキングを行うことができる。したがって、情報処理システム10は、判断部10F2によって平面と判断された部分からピッキングを行う箇所を特定する。
【0129】
なお、特定部10F3は、外周、内周又は射影線の少なくともいずれか1つからオフセットした線分を用いてピッキングを行う箇所を特定するのが望ましい。このような線分を用いると、情報処理システム10は、ピッキングの際に干渉する可能性のある突起部等を回避できるため、物体11がピッキング中に他の面等に干渉し、物体11が落ちたり、傷ついたりするのを少なくできる。
【0130】
また、情報処理システム10は、オフセットした線分を用いると、物体11の端等でピッキングが行われるのを回避できるため、吸着部が接触する面積が広い箇所でピッキングができ、情報処理システム10は、ロボット8によって、より物体をピッキングしやすくできる。
【0131】
<その他の実施形態>
なお、本発明に係る各処理の全部又は一部は、低水準言語又は高水準言語で記述され、コンピュータにピッキング箇所特定方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、情報処理装置又は1以上の情報処理装置を含む情報処理システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
【0132】
したがって、プログラムに基づいてピッキング箇所特定方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。
【0133】
また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。
【0134】
なお、本発明に係る実施形態は、1以上の情報処理装置を有する情報処理システムによって実現されてもよい。また、複数の情報処理装置を有する情報処理システムは、各処理を冗長、分散、並列、仮想化又はこれらを組み合わせて実行してもよい。
【0135】
以上、実施形態における一例について説明したが、本発明は、上記実施形態に限定されない。すなわち、本発明の範囲内で種々の変形及び改良が可能である。
【符号の説明】
【0136】
8 ロボット
10 情報処理システム
11 物体
14 PC
R 半径
10F1 取得部
10F2 判断部
10F3 特定部
D1 形状データ
【先行技術文献】
【特許文献】
【0137】