(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
マニピュレータにロボットビジョンを組み合わせて、対象となるワークを撮像して高さ情報を取得した上で、適切な位置を把持(ピック又はピッキング)して、所望の位置に載置(プレース又はプレースメント)可能なロボット装置が開発されている。このようなロボット装置を用いて、バラ積みピッキングと呼ばれる、通い箱に入れられた多数のワークを、ロボットビジョンを構成するカメラやセンサ部で撮像して姿勢を把握し、適切な把持位置を把握した上で、この把持位置までロボットのアーム部を移動させ、ハンド部等のエンドエフェクタで把持して、通い箱の外の決められた位置に載置することが行われている。
【0003】
このバラ積みピッキングを正しく運用できるよう、運用前の設定段階で、バラ積みピッキングを行うロボットが、ワークをピックする把持位置や、載置する載置位置を予め教示(ティーチング)し、基準となる把持位置や姿勢などを登録しておく必要がある。
【0004】
しかしながら、従来のピッキングのための把持位置と姿勢のティーチングは、載置を考慮せずに行うものであった。このため、ピッキングでは問題のない把持位置や姿勢であっても、載置時に支障が出る設定が存在し得た。例えば、
図14に示すバラ積みピッキングを考える。この図においては、左側の作業位置(ピッキング位置)に積まれたL字状のワークWKLを、ロボットのエンドエフェクタEETでもって把持し、ロボットのアーム部ARMをZ軸を回転軸として旋回させて右側の載置位置(プレース位置)に載置するものとする。すなわち載置位置のステーションはピッキング位置のステーションとロボットを挟んで対向していると仮定する。
【0005】
この場合において、ロボットの動作可能な範囲は、ロボットの手首に当たる可動点を示すP点を基準として、P点を位置させることが可能な範囲をもって判定する。
図14の例では、P点を移動させることが可能な範囲の境界線を二点鎖線で示している。この境界線を越えた範囲、
図14において境界線の右側は動作範囲外となる。
図14においては、P点は動作範囲内にあるので、この状態での載置が可能となる。
【0006】
ここで、ワークの把持位置をティーチング(教示)する場合に、複数の把持位置を教示(ティーチング)する。例えば
図15に示すような姿勢を把持教示位置HTP1として、
図16に示すような姿勢を把持教示位置HTP2として、それぞれティーチングを行う。この例では、把持教示位置HTP2は、把持教示位置HTP1をZ軸回りに180度回転させた把持位置となっている。
【0007】
ここで、
図17に示すように複数のワークがバラ積みされた状態で、ワークWK1を、把持教示位置HTP1(
図15)で把持して載置することを考える。この場合は、把持教示位置HTP1の把持では、
図17に示すように載置時にP点の第6軸で大きく回転させなければならない。このため、エンドエフェクタEETの設計上、P点がワークの奥まで移動された状態でエンドエフェクタEETを第6軸で旋回させることになる。しかしながら、ロボットのアーム部ARMのリーチ次第では、
図17に示すようにP点が動作範囲外になってしまう。すなわち、この把持教示位置HTP1では、ピッキングはできても、載置ができないことになる。
【0008】
一方で、
図17と同じようにバラ積みされたワークの中から、
図18に示すようにワークWK2を、把持教示位置HTP2(
図16)で把持する場合を検討する。この場合は、
図18に示すように、把持教示位置HTP2の把持では載置時の第6軸の回転角はゼロで済むため、ワークWK2を載置することが可能となる。このように、把持教示位置HTP1、2のいずれも、
図17、
図18に示すようにピッキング自体は可能であるものの、載置は不可能な場合(把持教示位置HTP1)が存在する。よってティーチング時にはピッキング可能と判定され、そのようにティーチングした場合でも、実運用時には載置ができないこととなって、ティーチングの不具合が生じる。
【0009】
また、ティーチング時に、ピッキング位置と同様に載置する際の位置や姿勢を教示することも可能である。例えば
図19に示すようなエンドエフェクタEET4を用いて、
図15と同様の姿勢で把持したワークWKLを載置する例を考える。このワークWKLは、断面視L字状の細い棒状部分と太い棒状部分で構成されている。このワークWKLに対して
図19のエンドエフェクタEET4を用いて、ワークWKLの細い棒状部分を把持して、この部分を上に向けた姿勢で載置するようにティーチングしたと仮定する。この場合、
図20Aに示すように同じ形状のワークWK3の太い棒状部分を把持した場合であっても、ワークWK3を同じ姿勢、すなわち
図20Bに示すように細い棒状部分を上に向けた姿勢で載置するように、エンドエフェクタEET4の位置や姿勢をロボット設定装置に演算させる。
【0010】
しかしながら、この場合は
図20Cに示すように、エンドエフェクタEET4が把持位置の床面と抵触してしまうため、実現困難となる。このような場合も、ティーチング時には把持が可能と判定された把持位置であっても、実運用時にはエンドエフェクタEET4の形状等の制約によって載置ができないことがあり、このことがティーチングの精度に影響を与えていた。
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明は、このような事情に鑑みてなされたものであり、その目的の一は、載置時の制約も加味したティーチングを実現可能なロボット設定装置、ロボットシステム、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器を提供することにある。
【0013】
本発明の第1の形態に係るロボット設定装置によれば、作業
空間に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行うためのロボット設定装置であって、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定可能な把持設定部と、前記把持設定部により設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する基準載置姿勢設定部と、前記把持設定部により設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、前記第一把持候補位置及び第二把持候補位置の差分、前記第一把持姿勢及び第二把持姿勢の差分、及び前記基準載置姿勢とを用いた演算処理により算出する載置姿勢算出部とを備え、前記把持設定部は、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、前記載置姿勢算出部により算出された載置姿勢を、各把持候補位置と対応付けて設定可能に構成できる。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら1対1で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。
【0014】
また、第2の形態に係るロボット設定装置によれば、上記構成に加えて、ロボットのアーム部及び/又はエンドエフェクタの動作可能範囲を規定した動作条件を記憶する記憶部と、前記載置姿勢算出部により算出された載置姿勢を取るためのロボットのアーム部及び/又はエンドエフェクタの動作が、前記記憶部に記憶された動作条件を満たすか否かを判定するためのロボット動作条件判定部とを備え、前記把持設定部は、前記ロボット動作条件判定部により前記動作条件を満たさないと判定された載置姿勢に対応する把持候補位置を、登録から除外するよう構成できる。上記構成により、算出された載置姿勢の内で、実際に載置可能な載置姿勢のみを登録することが可能となる。すなわち、従来の方法では、実際にロボットを動作させて載置位置を設定していたため、載置不能な載置位置が登録されることはなかったものの、ロボットを動作させることなく載置姿勢を算出して求める方法では、実際にはロボット設定装置と接続するロボットの動作条件によっては、載置不能な姿勢も演算されることが起こり得る。そこで、ロボットの動作条件に合致しない、すなわち載置できない載置姿勢については、登録から除外することにより、このような新たに発生した問題を回避することが可能となる。
【0015】
さらに、第3の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記把持設定部は、前記載置姿勢算出部による載置姿勢の算出に際して、前記第一把持姿勢との差分が所定値よりも大きい第二把持姿勢については、登録から除外するよう構成できる。上記構成により、載置が不適切となる把持候補位置が選択されないように除外することで、無用な把持候補位置の検討を排除して処理の効率化を図ることができる。
【0016】
さらにまた、第4の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、ワークを前記載置位置に載置可能なロボットの動作条件を設定するためのロボット動作条件設定部と、ワークの三次元形状を示す三次元形状データに基づいて、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するためのワーク把持候補位置認識部と、前記ワーク把持候補位置認識部により認識されたワーク上の把持候補位置で把持し、前記載置位置に載置するために必要なロボットの動作を、前記ロボット動作条件設定部で設定されたロボット動作条件に従い算出するためのロボット動作算出部と、前記ロボット動作条件判定部の判定により、前記ロボット動作条件を満たすと判定された載置姿勢に基づいて、実際にロボットがワークを把持する把持位置を決定するための把持位置決定部とを備えることができる。上記構成によって、ワークを予め所定の基準載置姿勢で載置可能であると前提で把持候補位置を算出することで、把持は可能でも載置できないという事態を回避することが可能となる。
【0017】
さらにまた、第5の形態に係るロボット設定装置によれば、上記構成に加えて、前記ロボット動作条件が、アーム部及びエンドエフェクタの、物理的な動作範囲を含むことができる。
【0018】
さらにまた、第6の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記ロボット動作条件を、アーム部の長さ、エンドエフェクタの回転角度、又は傾斜角度の少なくとも何れかで規定できる。
【0019】
さらにまた、第7の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、前記作業
空間に配置されたワークの三次元形状を三次元計測するためのセンサ部を備え、前記ワーク把持候補位置認識部は、前記センサ部を制御して計測されたワークの三次元計測データを三次元形状データとして、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するよう構成できる。
【0020】
さらにまた、第8の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記センサ部が、カメラとプロジェクタを含み、前記作業空間の上方に配置されたカメラとプロジェクタで、該作業空間に積み上げられた複数のワークの三次元形状を計測するよう構成できる。
【0021】
さらにまた、第9の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、三次元形状データを取得するための三次元形状データ入力部と、三次元形状データ中に含まれるワークの位置と姿勢を認識するためのワーク位置姿勢認識部と、ワークとエンドエフェクタと位置関係を登録するための位置関係登録部と、ワークを載置する際のエンドエフェクタの位置と姿勢を算出するためのエンドエフェクタ位置姿勢算出部と、エンドエフェクタの位置姿勢をセンサの座標空間からロボットの座標空間へ変換する変換部と、載置時のエンドエフェクタの位置を登録するための載置位置登録部とを備えることができる。
【0022】
さらにまた、第10の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記ワーク把持候補位置認識部は、ワークの三次元形状を示すCADデータを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータに対して、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するよう構成できる。
【0023】
さらにまた、第11の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記三次元計測データを、位相シフト法に基づいて生成できる。
【0024】
さらにまた、第12の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、作業空間に無作為に積み上げられた複数のワークを順次取り出すバラ積みピッキング動作を、ロボットに行わせることができる。
【0025】
さらにまた、第13の形態に係るロボットシステムによれば、上記何れかのロボット設定装置と、ワークを把持するための前記エンドエフェクタと、前記エンドエフェクタを可動させるアーム部とを備えるロボットと、前記把持位置決定部で決定された把持位置でワークを把持するように、前記エンドエフェクタ及びアーム部を駆動するためのロボットコントローラとを備えることができる。
【0026】
さらにまた、第14の形態に係るロボットシステムによれば、作業
空間に配置されたワークの三次元形状を測定し、エンドエフェクタで把持し、把持したワークを所定の載置位置に載置するロボットシステムであって、ワークを把持するための前記エンドエフェクタと、前記エンドエフェクタを可動させるアーム部と、ワークの三次元形状を計測するため、ワークの形状を撮像するためのセンサ部と、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際の前記エンドエフェクタの把持姿勢と対応付けて設定可能な把持設定部と、前記把持設定部により設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要な前記エンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する基準載置姿勢設定部と、前記把持設定部により設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、前記第一把持候補位置及び第二把持候補位置の差分、前記第一把持姿勢及び第二把持姿勢の差分、及び前記基準載置姿勢とを用いた演算処理により算出する載置姿勢算出部と、前記アーム部及び/又はエンドエフェクタの動作可能範囲を規定した動作条件を記憶する記憶部と、前記載置姿勢算出部により算出された載置姿勢を取るための前記アーム部及び/又はエンドエフェクタの動作が、前記記憶部に記憶された動作条件を満たすか否かを判定するためのロボット動作条件判定部と、前記ロボット動作条件判定部の判定により、動作条件を満たすと判定された載置姿勢に基づいて、実際にロボットがワークを把持する把持位置を決定するための把持位置決定部と、前記把持位置決定部で決定された把持位置でワークを把持するように、前記エンドエフェクタ及びアーム部を駆動するためのロボットコントローラとを備え、前記把持設定部は、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、前記載置姿勢算出部により算出された載置姿勢を、各把持候補位置と対応付けて設定可能に構成できる。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら1対1で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。
【0027】
さらにまた、第15の形態に係るロボット設定方法によれば、作業
空間に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行う方法であって、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定する工程と、前記設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する工程と、前記設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、前記第一把持候補位置及び第二把持候補位置の差分、前記第一把持姿勢及び第二把持姿勢の差分、及び前記基準載置姿勢とを用いた演算処理により算出し、該算出された載置姿勢を、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、各把持候補位置と対応付けて設定する工程とを含むことができる。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら1対1で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。
【0028】
さらにまた、第16の形態に係るロボット設定プログラムによれば、作業
空間に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行うためのプログラムであって、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定する機能と、前記設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する機能と、前記設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、前記第一把持候補位置及び第二把持候補位置の差分、前記第一把持姿勢及び第二把持姿勢の差分、及び前記基準載置姿勢とを用いた演算処理により算出する機能と、前記算出された載置姿勢を、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、各把持候補位置と対応付けて設定する機能とをコンピュータに実現させることができる。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら1対1で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。
【0029】
さらにまた、第17の形態に係るコンピュータで読み取り可能な記録媒体または記憶した機器は、上記ロボット設定プログラムを格納するものである。記録媒体には、CD−ROM、CD−R、CD−RWやフレキシブルディスク、磁気テープ、MO、DVD−ROM、DVD−RAM、DVD−R、DVD+R、DVD−RW、DVD+RW、Blu−ray、HD DVD(AOD)等の磁気ディスク、光ディスク、光磁気ディスク、半導体メモリその他のプログラムを格納可能な媒体が含まれる。またプログラムには、上記記録媒体に格納されて配布されるものの他、インターネット等のネットワーク回線を通じてダウンロードによって配布される形態のものも含まれる。さらに記憶した機器には、上記プログラムがソフトウェアやファームウェア等の形態で実行可能な状態に実装された汎用もしくは専用機器を含む。さらにまたプログラムに含まれる各処理や機能は、コンピュータで実行可能なプログラムソフトウエアにより実行してもよいし、各部の処理を所定のゲートアレイ(FPGA、ASIC)等のハードウエア、又はプログラムソフトウエアとハードウェアの一部の要素を実現する部分的ハードウエアモジュールとが混在する形式で実現してもよい。
【発明を実施するための形態】
【0031】
以下、本発明の実施形態を図面に基づいて説明する。ただし、以下に示す実施形態は、本発明の技術思想を具体化するための例示であって、本発明は以下のものに特定されない。また、本明細書は特許請求の範囲に示される部材を、実施形態の部材に特定するものでは決してない。特に実施形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一若しくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
(ロボットシステム)
【0032】
ワークのピッキングを行うためのロボットシステム1000の構成例を
図1に示す。この例では、作業空間に積み上げられた複数のワークWKを、ロボットを用いて順次取り出し、所定の位置に配置するバラ積みピッキングを行う例について示している。ロボットは、アーム部ARMと、アーム部ARMの先端に設けられたエンドエフェクタEETを備える。このロボットは、ロボットコントローラ6で駆動される。またロボットコントローラ6はロボット設定装置100から、ロボットの制御に必要な情報を取得する。ロボット設定装置100とロボットコントローラ6で、ロボット設定装置を構成している。例えば、収納容器BXに無作為に投入された多数の部品であるワークWKを、カメラや照明等のセンサ部2で三次元形状を取得し、ロボット設定装置100でワークの位置や姿勢を検出して、情報をロボットコントローラ6に送る。ロボットコントローラ6は、ワークWKを一つづつ、ロボットのアーム部ARMの先端に設けられたエンドエフェクタEETでもって把持し、ステージSTG上の所定の位置、例えばコンベアベルト上に並べていく。
【0033】
ロボットシステム1000の機能ブロック図を
図2に示す。この図に示すロボットシステム1000は、ロボット設定装置100と、センサ部2と、表示部3と、操作部4と、ロボット本体5と、ロボット操作具7とを備える。ロボット設定装置100は、ロボット設定装置100と、ロボットコントローラ6を含んでいる。
【0034】
操作部4では、画像処理に関する設定を行う。またセンサ部2で、ワークを撮像しての三次元形状を取得する。さらに表示部3で、設定や動作状態の確認を行う。さらにまたロボット設定装置100で、三次元サーチや干渉判定、把持解の算出等を行う。一方、ロボットコントローラ6はロボット設定装置100の結果に従い、ロボットの制御を行う。またロボット操作具7は、ロボットの動作設定を行う。なお、
図2の例では操作部4とロボット操作具7を別個の部材としているが、これらを共通の部材としてもよい。また
図2の例では、ロボットコントローラ6はロボット設定装置100に組み込まれているが、この構成に限られず、ロボットコントローラをロボット設定装置と個別に設けてもよい。
【0035】
センサ部2は、作業空間やワークを撮像する部材である。撮像された画像から、バラ積みされたワークの三次元形状を示す三次元形状データが取得される。なお三次元形状を取得する方法は、パターン投影法、ステレオ法、レンズ焦点法、光切断法、光レーダ法、干渉法、TOF方式などがある。本実施形態においては、パターン投影法の内、位相シフト法を用いている。
【0036】
選択された三次元形状計測技術に応じて、センサ部2の構成が決定される。センサ部2は、カメラ、照明又はプロジェクタ等を備える。例えば位相シフト法でワークの三次元形状を計測する場合は、センサ部2として
図3に示すように、プロジェクタPRJと複数のカメラCME1、CME2、CME3、CME4を備える。センサ部2は、カメラやプロジェクタといった複数の部材で構成する他、これらを一体的に構成してもよい。例えばカメラやプロジェクタを統合してヘッド状とした3D撮像ヘッドを、センサ部とすることができる。
【0037】
また三次元形状データの生成自体を、センサ部側で行うこともできる。この場合、センサ部側に三次元形状データの生成機能を実現する画像処理IC等を設ける。あるいは、三次元形状データの生成を、画像処理部側で行わず、センサ部で撮像した生画像を、画像処理部側で画像処理して三次元画像等の三次元形状データを生成する構成としてもよい。
【0038】
ロボット設定装置100は、このようにして得られたワークの三次元形状データに基づいて、三次元サーチ、干渉判定、把持解算出等を行う。このロボット設定装置100は、専用のロボット設定プログラムをインストールした汎用のコンピュータや、専用のコントローラ等が利用できる。なお
図2では、ロボット設定装置100を別個の部材で構成する例を示しているが、本発明はこの構成に限られず、例えばセンサ部とロボット設定装置を一体化したり、あるいはロボットコントローラにロボット設定装置を組み込むこともできる。
【0039】
表示部3は、ロボット設定装置100で取得されたワークの三次元形状を表示させたり、各種設定や動作状態の確認を行うための部材であり、液晶モニタや有機ELディスプレイ、CRT等が利用できる。操作部4は、画像処理等の各種設定を行うための部材であり、キーボードやマウス等の入力デバイスが利用できる。また表示部3をタッチパネルとすることで、操作部と表示部を一体化することもできる。
【0040】
例えばロボットコントローラ6やロボット設定装置100を、ロボット設定プログラムをインストールしたコンピュータとした場合、表示部3上にはロボット設定プログラムのグラフィカルユーザインターフェース(GUI)画面が表示される。表示部3上に表示されたGUI上から各種の設定を行うことができ、またシミュレーション結果等の処理結果を表示させることができる。この場合、表示部3を各種の設定を行うための設定部として利用できる。
【0041】
ロボットコントローラ6は、センサ部2で撮像した情報に基づいてロボットの動作を制御する。またロボット操作具7は、ロボット本体5の動作設定を行うための部材であり、ペンダントなどが利用できる。
【0042】
ロボット本体5は、可動式のアーム部ARMと、アーム部ARMの先端に固定されたエンドエフェクタEETを備える。このロボット本体5はロボットコントローラ6に駆動されて、アーム部ARMを動作させ、一個のワークWKをピッキングして、これを所望の位置に移動させて載置した後、リリースする。このためアーム部ARMの先端には、ワークWKを把持するためのエンドエフェクタEETを備えている。またワークWKを載置する載置位置は、例えばトレイ上やコンベア上等が挙げられる。
【0043】
ワークWKは、
図1に示すように複数個が通い箱等の収容容器BXに無作為に収納されている。このような作業空間の上方には、センサ部2が配置されている。センサ部2はカメラや照明を備えており、このセンサ部2で、ワークWKの三次元形状を計測することができる。ロボットコントローラ6は、センサ部2で計測されたワークWKの三次元形状に基づいて、複数のワークの内から、把持対象のワークWKを特定して、このワークWKを把持するよう、ロボットを制御する。そして、ワークWKを把持したまま、アーム部ARMを動作させて予め定められた載置位置、例えばステージSTG上まで移動させ、所定の姿勢でワークWKを載置する。いいかえると、ロボットコントローラ6は、センサ部2でピッキング対象のワークWKを特定し、このワークWKをエンドエフェクタEETで把持して、把持したワークWKを所定の基準載置姿勢にて、載置する位置である載置位置に載置してエンドエフェクタEETを開放するようにロボットの動作を制御する。
【0044】
ここで本明細書においてバラ積みピッキングとは、
図4Aに示すような収納容器BXに入れられて無作為に積み上げられたワークWKを、ロボットで把持して、所定の位置に載置する他、
図4Bに示すような収納容器を用いずに所定の領域に積み上げられたワークWKに対して把持、載置を行う例、あるいは
図4Cに示すような所定の姿勢で並べられて積み上げられたワークWKを順次把持、載置する例も含む意味で使用する。
【0045】
また、
図1の例ではセンサ部2を作業空間の上方に固定しているが、作業空間を撮像できる位置であれば足り、例えば斜めや側方、下方など、任意の定位置に配置できる。ただし、アーム部ARM上のような、可動する不定位置にセンサ部を配置する態様は除かれる。さらにセンサ部2が有するカメラや照明の数も、一個に限らず複数個としてもよい。さらにまたセンサ部2やロボット、ロボットコントローラ6との接続は、有線接続に限られず、無線接続としてもよい。
【0046】
またワークの把持とは、
図5Aに示すようにワークWKの外側を挟み込む他、
図5Bに示すような、空洞を有するワークWK2の内部にエンドエフェクタEET2の爪部を挿入して拡開させることによって保持する例や、
図5Cに示すような板状のワークWK3を吸引して保持するエンドエフェクタEET3の例を含む意味で使用する。以下では、ワークの把持の例としてワークの外側面を両側から掴む態様について説明する。またワークは、
図1に示すように収納容器BXに多数個が収納されて無作為に積み上げられた状態で、このような複数のワークWKに対して一つづつ、エンドエフェクタEETで把持して、載置位置に載置する作業を繰り返すバラ積みピッキング動作における把持位置の設定(ティーチング作業)について、以下説明する。
【0047】
ロボットシステム1000でバラ積みピッキング動作を行うにあたり、予めバラ積みピッキング動作を行わせるためのティーチングを行う。具体的には、ワークのどの部位を、エンドエフェクタがどのような姿勢で把持するのか、把持位置などの登録を行う。このような設定は、ペンダント等のロボット操作具7で行う。
(ティーチング作業)
【0048】
従来のティーチング作業では、実際にロボットを動作させて、一個のワークに対して、エンドエフェクタで把持する把持位置と、この把持位置で把持したワークを載置する載置位置を、それぞれユーザが手動で登録していた。この方法では、ワークに対して複数の把持位置があったり、複数個のワークが存在する場合は、登録すべき位置の数が増え、ティーチング作業に手間がかかる。そこで、このようなティーチング作業の省力化を図るために、まず一個のワークに対して、基準となる把持位置と、この把持位置でワークを載置した時のエンドエフェクタの位置(載置位置)を登録する。これにより、このワークの把持位置と載置位置の相対的な位置関係が決定される。そして、同じワークの他の把持位置については、把持位置のみをそれぞれ登録する。各把持位置に対する載置位置は、決定された位置関係に基づいてそれぞれ演算する。これによって、把持位置毎に載置位置を個別にロボットを動作させて登録する作業を省くことができ、ティーチング作業の労力を軽減できる。
【0049】
しかしながら、この自動計算方法では、ロボットを実際に動作させることなく計算にて各載置位置を求めているところ、実運用時においては物理的な制約のため、実施できない載置位置となってしまうことがある。例えばロボットを構成するアーム部の可動範囲や、アーム部の長さによって決まる、取り得る姿勢の制限、移動可能な物理的な範囲(水平方向や高さ方向の移動限界)、あるいはワークを収納する収納容器の壁や周囲の異物が存在するため、これらの異物がアーム部と干渉して取り得ない姿勢となることがある。このような物理的な制約が現実には存在するため、演算によって求められた仮想的な載置位置の中には、現実には利用できない載置位置が生じてしまう。この結果、ロボットシステムのティーチング作業を完了できたとしても、実運用時においては計画したとおりに動作できない状態が生じてしまい、ロボットの動作計画自体を見直さないといけないという、大きな手戻りが発生する虞があった。
【0050】
そこで、本実施形態においては、ティーチング作業の段階において、事前にこのような利用不可能な載置位置を検知して除去することで、このような手戻りの発生を低減する。
(載置位置に基づく把持位置設定機能)
【0051】
一方で従来のティーチング作業では、エンドエフェクタによるワークの把持のし易さでもって把持位置を登録するものが多かった。しかしながら、把持し易い位置として一以上の把持位置が登録されていても、このような把持位置でエンドエフェクタで把持されたワークが、必ずしも載置に適しているとは限らないという問題があった。すなわち、把持は可能であっても、把持した姿勢で載置できない場合は、その姿勢での把持は適切でないということになる。
【0052】
これに対して本実施形態に係るロボット設定装置では、載置可能な位置に着目して、この載置位置及び姿勢から、このような載置を実現可能とするにはどのように把持すればよいかを算出することで、載置可能な把持を実現する姿勢及び位置を得たものである。すなわち、載置状態という結果から逆算して、把持状態の条件を演算するものであり、これにより載置可能な状態と把持可能な状態を結びつけることを可能としている。いいかえると、載置に適しない把持位置は対象から外すことで、載置位置の解がある把持位置の解のみを得ることが可能となり、従来のようにティーチング時に把持位置を登録した後、運用時においてこの把持位置では載置できないために登録作業をやり直すという手戻りを回避でき、効率良くティーチング作業を行えるようになる。以下、詳細を説明する。
(ティーチング作業の例)
【0053】
上述した載置位置に基づいて把持位置をティーチングする機能を実現するロボット設定装置を含むロボットシステムの機能ブロック図を、
図6に示す。この図に示すロボットシステム1000は、ロボット設定装置100と、センサ部2と、ロボットを備える。
【0054】
センサ部2は、作業位置に配置されたワークの三次元形状を三次元計測する。このセンサ部2は、センサ制御部2bにより制御される。なお、この例ではセンサ制御部2bをセンサ部2と個別に設けているが、センサ部にセンサ制御部を組み込んでもよい。ロボット部は、アーム部ARMとエンドエフェクタEETを備える。このロボットは、ロボット設定装置100に制御されて、ワークを把持位置で把持して、載置位置に載置する。ここでは、ワークを把持する際のワークに対するエンドエフェクタの位置姿勢を、センサ部2で撮像して登録する。
【0055】
図6のロボット設定装置100は、記憶部9と、演算部10を備える。演算部10は、設定部8と、載置姿勢算出部10eと、ワーク把持候補位置認識部10aと、ロボット動作算出部10bと、ロボット動作条件判定部10cと、把持位置決定部10dを含む。設定部8は、把持設定部8cと、基準載置姿勢設定部8aと、ロボット動作条件設定部8bを含む。
【0056】
設定部8は、各種の設定を行うための部材であり、ユーザの操作を受け付けるインターフェースとなる。好適には、外部に接続された操作部やロボット操作具などの入力デバイスを介して、各種の設定を受け付けるよう、表示部3上に表示されたグラフィカルユーザインターフェース(GUI)が利用できる。
【0057】
このような設定部8に含まれる把持設定部8cは、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定するための部材である。また基準載置姿勢設定部8aは、把持設定部8cにより設定された複数の把持候補位置の内、第一把持候補位置を、この第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定するための部材である。
【0058】
載置姿勢算出部10eは、把持設定部8cにより設定された複数の把持候補位置の内、第二把持候補位置を、この第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を算出するための部材である。第二載置姿勢の算出は、第一把持候補位置及び第二把持候補位置の差分、第一把持姿勢及び第二把持姿勢の差分、及び基準載置姿勢とを用いた演算処理により行われる。また把持設定部8cは、複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、載置姿勢算出部10eにより算出された載置姿勢を、各把持候補位置と対応付けて設定する。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら1対1で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。把持設定部8cは、載置姿勢算出部10eによる載置姿勢の算出に際して、前記第一把持姿勢との差分が所定値よりも大きい第二把持姿勢については、登録から除外するよう構成してもよい。これにより、載置が不適切となり得る把持候補位置が予め除外され、無用な把持候補位置の検討を排除して処理の効率化を図ることができる。
【0059】
また記憶部9は、各種設定を保持するための部材であり、不揮発性メモリやハードディスク、記憶媒体等が利用できる。この記憶部9は、例えばロボットのアーム部及び/又はエンドエフェクタの動作可能範囲を規定した動作条件を記憶する。
【0060】
一方演算部10は、複数の機能を実現する演算回路であり、例えばマイクロプロセッサ(MPU)やCPU、LSI、FPGAやASIC等のゲートアレイ、DSP等のハードウエアやソフトウエア、あるいはこれらの混在により実現できる。また必ずしも各構成要素が
図6等に示した構成と同一でなくてもよく、その機能が実質的に同一であるもの、及び一つの要素が
図6に示す構成における複数の要素の機能を備えるものは、本発明に含まれる。
【0061】
演算部10に含まれるワーク把持候補位置認識部10aは、ワークの三次元計測データに基づいて、ロボットにより把持が可能なワーク上の把持候補位置を認識するための部材である。ここでは、センサ制御部2bによりセンサ部2を制御してワークを計測した三次元計測データを取得し、この三次元計測データからワーク上の把持候補位置を認識する。ロボット動作算出部10bは、ワーク把持候補位置認識部10aにより認識されたワーク上の把持候補位置を把持し、基準載置姿勢設定部8aで設定された基準載置姿勢で、載置位置に載置するために必要なロボットの動作を算出するための部材である。
【0062】
ロボット動作条件判定部10cは、載置姿勢算出部10eにより算出された載置姿勢を取るためのロボットのアーム部及び/又はエンドエフェクタの動作が、記憶部9に記憶された動作条件を満たすか否かを判定するための部材である。把持設定部8cは、ロボット動作条件判定部により動作条件を満たさないと判定された載置姿勢に対応する把持候補位置を、登録から除外する。これにより、算出された載置姿勢の内で、実際に載置可能な載置姿勢のみを登録することが可能となる。すなわち、従来の方法では、実際にロボットを動作させて載置位置を設定していたため、載置不能な載置位置が登録されることはなかったものの、ロボットを動作させることなく載置姿勢を算出して求める方法では、実際にはロボット設定装置と接続するロボットの動作条件によっては、載置不能な姿勢も演算されることが起こり得る。そこで、ロボットの動作条件に合致しない、すなわち載置できない載置姿勢については、登録から除外することにより、このような新たに発生した問題を回避することが可能となる。
【0063】
把持位置決定部10dは、ロボット動作条件判定部10cの判定により、動作条件を満たすと判定された載置姿勢に基づいて、最終的な把持位置を決定するための部材である。
【0064】
一以上の把持候補位置は、ユーザが予め手動で登録することができる。あるいは、把持候補位置を、ロボット設定装置側で自動的に演算して登録するよう構成してもよい。またワーク把持候補位置認識部10aは、予め与えられた複数の把持候補位置の内で、現状のワークの姿勢及び位置に応じて現実に把持可能な把持候補位置を、自動で選択するよう構成してもよい。さらにワーク把持候補位置認識部10aは、予め与えられた複数の把持候補位置の内で、現状のワークの姿勢及び位置に応じて現実に把持可能な把持候補位置を、ユーザに選択させて該選択を受け付けるよう構成することもできる。
【0065】
把持位置決定部10dは、複数の把持候補位置に対応する載置時のエンドエフェクタの姿勢が、基準載置姿勢に近い順に把持位置の優先順位を決定し、この優先順位に基づいて実際にロボットがワークを把持する把持位置を決定するよう構成できる。これにより、複数の把持候補位置の中から、基準載置姿勢に近いものを選択することで、より好ましい姿勢での把持、載置を実現することが可能となる。
【0066】
以上のロボット設定装置を用いて、ロボットのバラ積みピッキングを行う実運用に先立ち、必要な設定を行う。具体的には、設定作業の内、ワークの把持位置や載置位置、把持姿勢などをロボットシステム側にユーザが教示するティーチング作業を行う。以下では、ワークをエンドエフェクタで把持する例について説明し、ピッキング(把持)の一例として把持に読み替えて説明する。ただし、上述の通り本発明はエンドエフェクタがワークを掴む態様に限らず、他の把持態様にも適用できることは言うまでもない。
【0067】
ワークを把持する際に、事前にユーザが教示した複数の把持位置候補の中から、最終的な把持位置を決定するよう、把持候補位置の優先順位を定める。ここでは、各把持候補位置に対応する載置時のエンドエフェクタの位置姿勢が、事前に載置位置として教示した際のエンドエフェクタの位置及び姿勢に近くなる順序で、把持位置の優先順位を定める。例えば
図17〜
図18の例では、ワークWK1の把持よりも、ワークWK2の把持を優先させることで、動作範囲外にロボットが移動しようとしてしまう事態を回避できる。
【0068】
また、載置位置として教示したときのエンドエフェクタの位置姿勢と、ピッキング時に選択した把持での載置時のエンドエフェクタ位置姿勢との差分に上限値を設けることで、そもそも
図17のワークWK1の把持や、
図20のエンドエフェクタEET4が床に衝突する把持が選択されないようにすることもできる。
【0069】
次に、載置位置から把持位置を決定する手順の一例について、
図7のフローチャートに基づいて説明する。
【0070】
まず、ステップS701において、ワーク載置位置を決定する。ここでは、所定の載置位置にワークを配置し、この位置をワーク載置位置とする。例えばロボットでワークを把持、移動させて載置させたいワークの載置位置に、ユーザが手動でワークを載置する。
【0071】
次にステップS702において、基準載置姿勢を登録する。上述のワーク載置位置に載置したワークを把持できる位置にエンドエフェクタが位置するように、ロボットを操作する。このときのエンドエフェクタの姿勢を基準載置姿勢として、記憶部9に記録する。
【0072】
次にステップS703において、載置基準把持を登録する。ここでは、ワーク載置位置に配置したワークをロボットで基準載置姿勢で把持し、ロボットを操作してワークをセンサ部の視野内に搬送して、載置する。この視野内での載置時のエンドエフェクタの位置を載置基準把持として、記憶部9に記録する。
【0073】
その後、ステップS704において、基準把持情報を登録する。ここでは、ロボットをセンサ部の視野外に退避させて、先ほどの視野内に載置したワークの位置姿勢を認識して、記憶部9に記録する。このワークの位置姿勢と、載置基準把持の相対的位置関係を、基準把持情報として記憶部9に記録する。このワークの位置姿勢が、第一把持候補位置となる。
【0074】
さらにステップS705において、登録把持情報を登録する。ここでは、ワークに対して、追加の把持位置を登録し、ワークの位置姿勢とこの把持位置の相対的位置関係を記録する。このときの把持位置を登録把持情報とする。この登録把持情報が、第二把持候補位置となる。
【0075】
次にステップS706において、エンドエフェクタの載置姿勢を算出する。把持の結果、上述した所定のワーク載置位置にワークを載置する際のエンドエフェクタの位置、姿勢は、登録把持情報と基準把持情報のそれぞれのエンドエフェクタの把持位置の相対的位置関係と基準載置姿勢とに基づいて算出できる。このようにして算出されたエンドエフェクタの位置・姿勢を載置姿勢とする。
【0076】
さらにステップS707において、各登録把持情報の把持判定を行う。ここでは、載置姿勢と基準載置姿勢の近さを、登録把持情報のすべてに対して評価し、最も近い登録把持情報から順に、把持できるかどうかの判定を行う。
【0077】
このようにして、載置位置から把持位置を決定することができる。この結果、従来のように把持の条件のみを最適化して、ロボットの動作範囲の制約などで載置できないケースが発生することを回避できる。特に本実施形態に係るロボット設定装置では、予め登録した載置時のエンドエフェクタの位置姿勢と、同じく予め登録したそのときのワークに対するエンドエフェクタの把持位置姿勢とに基づいて、ワークに対する任意の把持におけるエンドエフェクタの載置位置姿勢を計算し、載置に適した把持位置を選択できる。
(実施形態2)
【0078】
以上の例では、実際に作業空間にワークを載置して、ロボットでこのワークを把持したり、センサ部2で撮像したりしながらティーチング作業を行う例について説明した。ただ本発明はこの構成に限らず、実際にワークの現物を用意したりロボットを操作したりセンサ部で撮像したりする作業を必ずしもすべて行わずとも、一部あるいはすべてを仮想的に行わせることもできる。例えばワークのCADデータ等を利用して、仮想作業空間内で演算により行わせることもできる。このような例を実施形態2として、
図8に示す。この図に示すロボットシステムは、演算部10と、表示部3と、操作部4を備える。
【0079】
この構成においては、ワークの三次元形状データに代えて、CADデータを利用したワークモデルや、エンドエフェクタやアーム部のCADデータを用いたロボットモデル(エンドエフェクタモデル、ワークモデル)収納容器をモデル化した収納容器モデル、センサ部を模したセンサモデルなどを用いて、仮想作業空間上で演算により三次元サーチや干渉判定、把持解算出等を行う。この構成によれば、ロボットを用いずに、仮想作業空間上で設定することが可能となり、ティーチング作業等をより簡便に行える利点が得られる。
(演算部10の機能ブロック図)
【0080】
ここで演算部10の機能ブロック図の一例を、
図9に示す。この図に示す演算部10は、三次元形状データ入力部1aと、ワーク位置姿勢認識部1bと、位置関係登録部1cと、エンドエフェクタ位置姿勢算出部1dと、変換部1eと、載置位置登録部1fとを備える。
【0081】
三次元形状データ入力部1aは、センサ部2から三次元形状データを取得する。この例では、センサ部2側に、三次元画像生成部を備えており、センサ部2側の三次元画像生成部で生成された三次元画像を三次元形状データとして、三次元形状データ入力部1aで取得する。ただ上述の通り、例えばセンサ部2で撮像した生画像を、画像処理部側で画像処理して三次元画像等の三次元形状データを生成する構成としてもよい。
【0082】
ワーク位置姿勢認識部1bは、三次元形状データ中に含まれるワークの位置と姿勢を認識するための部材である。
【0083】
位置関係登録部1cは、ワークとエンドエフェクタと位置関係を登録するための部材である。
【0084】
エンドエフェクタ位置姿勢算出部1dは、ワークの載置時のエンドエフェクタの位置と姿勢を算出するための部材である。
【0085】
変換部1eは、ある位置のセンサの座標空間における位置と、ロボットの座標空間における位置との対応関係を規定する。ここでは、ビジョン−ロボットのキャリブレーションデータに従って、センサ部2の座標空間からロボットの座標空間へ座標位置を変換する。
【0086】
載置位置登録部1fは、載置時のエンドエフェクタの位置を登録するための部材である。
(載置条件を利用した把持設定の手順)
【0087】
次に、載置条件を利用して把持設定を行う手順を、
図10のフローチャートに基づいて説明する。
【0088】
まずステップS1001において、載置基準把持を教示する。
(載置把持条件)
【0089】
次にステップS1002において、載置把持条件を設定する。載置把持条件としては、例えば教示した載置位置でのエンドエフェクタの姿勢に対する傾斜角の上限を設定することが含まれる。また、算出したエンドエフェクタの位置がロボットの動作範囲内であることを含めてもよい。この場合は、例えばロボットの標準の判定機能を使用したり、ロボットの制御点がロボットの動作可能範囲内かどうかを計算する等の方法が利用できる。さらに他の載置把持条件として、載置位置周囲の干渉物とロボットのエンドエフェクタとの干渉を含めてもよい。この場合、仮想作業空間上で載置対象のワークの位置を基準に、障害物のオブジェクト(例えば床)を配置して、載置姿勢におけるエンドエフェクタとの干渉有無を判定することができる。
【0090】
さらにステップS1003において、ワークをセンサ部の撮像視野内に配置する。
【0091】
さらにステップS1004において、把持位置を教示する。
【0092】
次にステップS1005において、把持位置を追加するか否かを判定する。追加する場合はステップS1004に戻って上記工程を繰り返す。一方、追加しない場合はステップS1006に進み、把持設定作業を終了し、必要に応じて実運用に移行する。実運用とは、例えば載置把持条件を利用したバラ積みピッキングの運用である。
(載置基準把持を教示する手順)
【0093】
ここで、上記
図10のステップS1001において、載置基準把持を教示する手順の詳細を、
図11のフローチャートに基づいて説明する。まず、ステップS1101において、所定のワーク載置位置に、ワークを設置する。
【0094】
次にステップS1102において、ワークを把持できる位置にロボットのエンドエフェクタを移動させる。
【0095】
さらにステップS1103において、エンドエフェクタの位置姿勢を基準載置姿勢として記憶部9に記録する。
【0096】
さらにステップS1104において、基準載置姿勢でワーク載置位置のワークを把持する。
【0097】
そしてステップS1105において、ワークをロボットで搬送してヘッド部の撮像視野内に配置させる。
【0098】
さらにステップS1106において、エンドエフェクタの位置姿勢を載置基準把持として記録する。
【0099】
さらにステップS1107において、ワークをリリースしてエンドエフェクタを撮像視野外に退避させる。
【0100】
さらにステップS1108において、ヘッド部でワークの位置姿勢を記録する。
【0101】
最後にステップS1109において、ワークとロボットエンドエフェクタの把持時の相対位置関係を基準把持情報として記録する。
(把持位置教示の手順)
【0102】
さらに
図10のステップS1004において、把持位置を教示する手順の一例を、
図12のフローチャートに基づいて説明する。まずステップS1201において、ヘッド部でワークの位置姿勢を記録する。
【0103】
次にステップS1202において、ワークを把持できる位置へロボットエンドエフェクタを移動させる。
【0104】
さらにステップS1203において、ロボットエンドエフェクタの位置姿勢を記録する。
【0105】
最後にステップS1204において、ワークとロボットエンドエフェクタの把持時の相対位置関係を記録する。
(載置条件を利用したバラ積みピッキングの運用時の手順)
【0106】
以上のようにして、ティーチング作業を終了してワークの把持位置や載置位置を登録し設定作業を終えることで、バラ積みピッキングの運用が行える。最後に、載置条件を利用したバラ積みピッキングの運用時の手順の一例について、
図13のフローチャートに基づいて説明する。まずステップS1301において、バラ積みされたワーク群をヘッド部で撮像して、各ワークの位置姿勢を認識する。
【0107】
次にステップS1302において、認識したワークの中から一つのワークを選択する。
【0108】
さらにステップS1303において、教示した把持の中から一つの把持を選択する。
【0109】
さらにまたステップS1304において、算出載置位置を計算する。
【0110】
次にステップS1305において、載置姿勢と基準載置姿勢の差分値を計算する。
【0111】
そしてステップS1306において、演算された差分値が所定の最小差分値より小さいか否かを判定し、小さい場合はステップS1307において、最小差分値を更新した後、ステップS1308に進む。一方、小さくない場合は、そのままステップS1308に進む。
【0112】
ステップS1308おいて、未計算の把持が残っているか否かを判定し、残っている場合はステップS1303に戻って上記工程を繰り返す。一方、残っていない場合はステップS1309に進み、未計算のワークが残っているか否かを判定する。残っている場合はステップS1302に戻り、上記工程を繰り返す。残っていない場合はステップS1310において、載置把持条件の範囲内か否かを判定し、範囲内の場合はステップS1311において、最小差分値のときのワークと把持を選択して処理を終了する。一方、範囲外の場合はそのまま処理を終了する。
【0113】
このようにして、載置条件を利用したバラ積みピッキングの運用を行うことができる。
【0114】
以上のように本実施形態に係るロボット設定装置によれば、事前にワークが載置可能であることを前提に、把持位置や把持姿勢といった把持位置姿勢条件を設定することで、実運用の開始後に、登録した把持位置では載置ができないことが発覚して、ロボット動作計画の見直しを迫られるケースを回避できる。
【0115】
また、把持設定の段階で、登録した把持位置から求められる載置姿勢が、載置把持条件を満たしているかどうかを判定し、満たしていないと判定されれば、警告を発するように構成してもよい。例えばロボット動作条件判定部10cが、このような載置姿勢が載置把持条件の範囲内かどうかを判定し、範囲外の場合は、設定として不適切である旨をユーザに告知して、再設定を促す。これによって、適切な設定が行えることに加えて、運用時に載置把持条件の範囲内かどうかの計算をする必要性をなくすことができ、運用時の処理の負担を軽減できる利点も得られる。
(追加の把持条件)
【0116】
あるいは、載置把持条件とは異なる把持条件を追加で設定することも考えられる。追加の把持条件としては、例えば周囲の障害物とエンドエフェクタとの干渉判定が挙げられる。このような追加の把持条件を設定している場合は、差分が最小値になる把持だけを扱うのではなく、登録した把持を差分が小さい順にソートして、その順に追加の把持条件を判定して、条件に最初に適合する把持を選択するように構成してもよい。
【0117】
さらにまた、条件に適合しない把持が発覚した際には、基準載置姿勢を変更することで、登録済みのすべての把持が載置把持条件の範囲内かどうかを再判定することもできる。