(57)【要約】【課題】載置時の制約も加味したティーチングを可能とする。【解決手段】第一把持候補位置に対応付けられた第一把持姿勢で把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する基準載置姿勢設定部８ａと、第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、第一把持候補位置及び第二把持候補位置の差分、第一把持姿勢及び第二把持姿勢の差分、及び基準載置姿勢とを用いた演算処理により算出する載置姿勢算出部１０ｅとを備える。把持設定部８ｃは、複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、載置姿勢算出部１０ｅにより算出された載置姿勢を、各把持候補位置と対応付けて設定する。【選択図】図６
2018144159.tif 000002
【特許請求の範囲】
【請求項１】
作業位置に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行うためのロボット設定装置であって、
ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定可能な把持設定部と、
前記把持設定部により設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する基準載置姿勢設定部と、
前記把持設定部により設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、
前記第一把持候補位置及び第二把持候補位置の差分、
前記第一把持姿勢及び第二把持姿勢の差分、及び
前記基準載置姿勢
とを用いた演算処理により算出する載置姿勢算出部と
を備え、
前記把持設定部は、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、前記載置姿勢算出部により算出された載置姿勢を、各把持候補位置と対応付けて設定可能に構成されてなるロボット設定装置。
【請求項２】
請求項１に記載のロボット設定装置であって、
ロボットのアーム部及び／又はエンドエフェクタの動作可能範囲を規定した動作条件を記憶する記憶部と、
前記載置姿勢算出部により算出された載置姿勢を取るためのロボットのアーム部及び／又はエンドエフェクタの動作が、前記記憶部に記憶された動作条件を満たすか否かを判定するためのロボット動作条件判定部と
を備え、
前記把持設定部は、前記ロボット動作条件判定部により前記動作条件を満たさないと判定された載置姿勢に対応する把持候補位置を、登録から除外するよう構成してなるロボット設定装置。
【請求項３】
請求項１又は２に記載のロボット設定装置であって、
前記把持設定部は、前記載置姿勢算出部による載置姿勢の算出に際して、前記第一把持姿勢との差分が所定値よりも大きい第二把持姿勢については、登録から除外するよう構成してなるロボット設定装置。
【請求項４】
請求項２又は３に記載のロボット設定装置であって、さらに、
ワークを前記載置位置に載置可能なロボットの動作条件を設定するためのロボット動作条件設定部と、
ワークの三次元形状を示す三次元形状データに基づいて、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するためのワーク把持候補位置認識部と、
前記ワーク把持候補位置認識部により認識されたワーク上の把持候補位置で把持し、前記載置位置に載置するために必要なロボットの動作を、前記ロボット動作条件設定部で設定されたロボット動作条件に従い算出するためのロボット動作算出部と、
前記ロボット動作条件判定部の判定により、前記ロボット動作条件を満たすと判定された載置姿勢に基づいて、実際にロボットがワークを把持する把持位置を決定するための把持位置決定部と
を備えるロボット設定装置。
【請求項５】
請求項４に記載のロボット設定装置であって、
前記ロボット動作条件が、アーム部及びエンドエフェクタの、物理的な動作範囲を含むロボット設定装置。
【請求項６】
請求項４又は５に記載のロボット設定装置であって、
前記ロボット動作条件が、アーム部の長さ、エンドエフェクタの回転角度、又は傾斜角度の少なくとも何れかで規定されてなるロボット設定装置。
【請求項７】
請求項４〜６のいずれか一項に記載のロボット設定装置であって、さらに、
前記作業位置に配置されたワークの三次元形状を三次元計測するためのセンサ部を備え、
前記ワーク把持候補位置認識部は、前記センサ部を制御して計測されたワークの三次元計測データを三次元形状データとして、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するよう構成してなるロボット設定装置。
【請求項８】
請求項７に記載のロボット設定装置であって、
前記センサ部が、カメラとプロジェクタを含み、
前記作業空間の上方に配置されたカメラとプロジェクタで、該作業空間に積み上げられた複数のワークの三次元形状を計測するよう構成してなるロボット設定装置。
【請求項９】
請求項７又は８に記載のロボット設定装置であって、さらに、
三次元形状データを取得するための三次元形状データ入力部と、
三次元形状データ中に含まれるワークの位置と姿勢を認識するためのワーク位置姿勢認識部と、
ワークとエンドエフェクタと位置関係を登録するための位置関係登録部と、
ワークを載置する際のエンドエフェクタの位置と姿勢を算出するためのエンドエフェクタ位置姿勢算出部と、
エンドエフェクタの位置姿勢をセンサの座標空間からロボットの座標空間へ変換する変換部と
載置時のエンドエフェクタの位置を登録するための載置位置登録部と
を備えるロボット設定装置。
【請求項１０】
請求項７〜９のいずれか一項に記載のロボット設定装置であって、
前記ワーク把持候補位置認識部は、ワークの三次元形状を示すＣＡＤデータを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータに対して、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するよう構成してなるロボット設定装置。
【請求項１１】
請求項７〜１０のいずれか一項に記載のロボット設定装置であって、
前記三次元計測データが、位相シフト法に基づいて生成されてなるロボット設定装置。
【請求項１２】
請求項１〜１１のいずれか一項に記載のロボット設定装置であって、
作業空間に無作為に積み上げられた複数のワークを順次取り出すバラ積みピッキング動作を、ロボットに行わせてなるロボット設定装置。
【請求項１３】
請求項１〜１２のいずれか一項に記載のロボット設定装置と、
ワークを把持するための前記エンドエフェクタと、前記エンドエフェクタを可動させるアーム部とを備えるロボットと、
前記把持位置決定部で決定された把持位置でワークを把持するように、前記エンドエフェクタ及びアーム部を駆動するためのロボットコントローラと
を備えるロボットシステム。
【請求項１４】
作業位置に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するためのロボットシステムであって、
ワークを把持するための前記エンドエフェクタと、
前記エンドエフェクタを可動させる前記アーム部と、
ワークの三次元形状を計測するため、ワークの形状を撮像するためのセンサ部と、
ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際の前記エンドエフェクタの把持姿勢と対応付けて設定可能な把持設定部と、
前記把持設定部により設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要な前記エンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する基準載置姿勢設定部と、
前記把持設定部により設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、
前記第一把持候補位置及び第二把持候補位置の差分、
前記第一把持姿勢及び第二把持姿勢の差分、及び
前記基準載置姿勢
とを用いた演算処理により算出する載置姿勢算出部と、
前記アーム部及び／又はエンドエフェクタの動作可能範囲を規定した動作条件を記憶する記憶部と、
前記載置姿勢算出部により算出された載置姿勢を取るための前記アーム部及び／又はエンドエフェクタの動作が、前記記憶部に記憶された動作条件を満たすか否かを判定するためのロボット動作条件判定部と、
前記ロボット動作条件判定部の判定により、動作条件を満たすと判定された載置姿勢に基づいて、実際にロボットがワークを把持する把持位置を決定するための把持位置決定部と、
前記把持位置決定部で決定された把持位置でワークを把持するように、前記エンドエフェクタ及びアーム部を駆動するためのロボットコントローラと
を備え、
前記把持設定部は、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、前記載置姿勢算出部により算出された載置姿勢を、各把持候補位置と対応付けて設定可能に構成されてなるロボットシステム。
【請求項１５】
作業位置に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行う方法であって、
ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定する工程と、
前記設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する工程と、
前記設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、
前記第一把持候補位置及び第二把持候補位置の差分、
前記第一把持姿勢及び第二把持姿勢の差分、及び
前記基準載置姿勢
とを用いた演算処理により算出し、該算出された載置姿勢を、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、各把持候補位置と対応付けて設定する工程と
を含むロボット設定方法。
【請求項１６】
作業位置に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行うためのプログラムであって、
ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定する機能と、
前記設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する機能と、
前記設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、
前記第一把持候補位置及び第二把持候補位置の差分、
前記第一把持姿勢及び第二把持姿勢の差分、及び
前記基準載置姿勢
とを用いた演算処理により算出する機能と、
前記算出された載置姿勢を、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、各把持候補位置と対応付けて設定する機能と
をコンピュータに実現させるためのロボット設定プログラム。
【請求項１７】
請求項１６に記載のプログラムを記録したコンピュータで読み取り可能な記録媒体または記憶した機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット設定装置、ロボットシステム、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器に関する。
【背景技術】
【０００２】
マニピュレータにロボットビジョンを組み合わせて、対象となるワークを撮像して高さ情報を取得した上で、適切な位置を把持（ピック又はピッキング）して、所望の位置に載置（プレース又はプレースメント）可能なロボット装置が開発されている。このようなロボット装置を用いて、バラ積みピッキングと呼ばれる、通い箱に入れられた多数のワークを、ロボットビジョンを構成するカメラやセンサ部で撮像して姿勢を把握し、適切な把持位置を把握した上で、この把持位置までロボットのアーム部を移動させ、ハンド部等のエンドエフェクタで把持して、通い箱の外の決められた位置に載置することが行われている。
【０００３】
このバラ積みピッキングを正しく運用できるよう、運用前の設定段階で、バラ積みピッキングを行うロボットが、ワークをピックする把持位置や、載置する載置位置を予め教示（ティーチング）し、基準となる把持位置や姿勢などを登録しておく必要がある。
【０００４】
しかしながら、従来のピッキングのための把持位置と姿勢のティーチングは、載置を考慮せずに行うものであった。このため、ピッキングでは問題のない把持位置や姿勢であっても、載置時に支障が出る設定が存在し得た。例えば、図１４に示すバラ積みピッキングを考える。この図においては、左側の作業位置（ピッキング位置）に積まれたＬ字状のワークＷＫＬを、ロボットのエンドエフェクタＥＥＴでもって把持し、ロボットのアーム部ＡＲＭをＺ軸を回転軸として旋回させて右側の載置位置（プレース位置）に載置するものとする。すなわち載置位置のステーションはピッキング位置のステーションとロボットを挟んで対向していると仮定する。
【０００５】
この場合において、ロボットの動作可能な範囲は、ロボットの手首に当たる可動点を示すＰ点を基準として、Ｐ点を位置させることが可能な範囲をもって判定する。図１４の例では、Ｐ点を移動させることが可能な範囲の境界線を二点鎖線で示している。この境界線を越えた範囲、図１４において境界線の右側は動作範囲外となる。図１４においては、Ｐ点は動作範囲内にあるので、この状態での載置が可能となる。
【０００６】
ここで、ワークの把持位置をティーチング（教示）する場合に、複数の把持位置を教示（ティーチング）する。例えば図１５に示すような姿勢を把持教示位置ＨＴＰ１として、図１６に示すような姿勢を把持教示位置ＨＴＰ２として、それぞれティーチングを行う。この例では、把持教示位置ＨＴＰ２は、把持教示位置ＨＴＰ１をＺ軸回りに１８０度回転させた把持位置となっている。
【０００７】
ここで、図１７に示すように複数のワークがバラ積みされた状態で、ワークＷＫ１を、把持教示位置ＨＴＰ１（図１５）で把持して載置することを考える。この場合は、把持教示位置ＨＴＰ１の把持では、図１７に示すように載置時にＰ点の第６軸で大きく回転させなければならない。このため、エンドエフェクタＥＥＴの設計上、Ｐ点がワークの奥まで移動された状態でエンドエフェクタＥＥＴを第６軸で旋回させることになる。しかしながら、ロボットのアーム部ＡＲＭのリーチ次第では、図１７に示すようにＰ点が動作範囲外になってしまう。すなわち、この把持教示位置ＨＴＰ１では、ピッキングはできても、載置ができないことになる。
【０００８】
一方で、図１７と同じようにバラ積みされたワークの中から、図１８に示すようにワークＷＫ２を、把持教示位置ＨＴＰ２（図１６）で把持する場合を検討する。この場合は、図１８に示すように、把持教示位置ＨＴＰ２の把持では載置時の第６軸の回転角はゼロで済むため、ワークＷＫ２を載置することが可能となる。このように、把持教示位置ＨＴＰ１、２のいずれも、図１７、図１８に示すようにピッキング自体は可能であるものの、載置は不可能な場合（把持教示位置ＨＴＰ１）が存在する。よってティーチング時にはピッキング可能と判定され、そのようにティーチングした場合でも、実運用時には載置ができないこととなって、ティーチングの不具合が生じる。
【０００９】
また、ティーチング時に、ピッキング位置と同様に載置する際の位置や姿勢を教示することも可能である。例えば図１９に示すようなエンドエフェクタＥＥＴ４を用いて、図１５と同様の姿勢で把持したワークＷＫＬを載置する例を考える。このワークＷＫＬは、断面視Ｌ字状の細い棒状部分と太い棒状部分で構成されている。このワークＷＫＬに対して図１９のエンドエフェクタＥＥＴ４を用いて、ワークＷＫＬの細い棒状部分を把持して、この部分を上に向けた姿勢で載置するようにティーチングしたと仮定する。この場合、図２０Ａに示すように同じ形状のワークＷＫ３の太い棒状部分を把持した場合であっても、ワークＷＫ３を同じ姿勢、すなわち図２０Ｂに示すように細い棒状部分を上に向けた姿勢で載置するように、エンドエフェクタＥＥＴ４の位置や姿勢をロボット設定装置に演算させる。
【００１０】
しかしながら、この場合は図２０Ｃに示すように、エンドエフェクタＥＥＴ４が把持位置の床面と抵触してしまうため、実現困難となる。このような場合も、ティーチング時には把持が可能と判定された把持位置であっても、実運用時にはエンドエフェクタＥＥＴ４の形状等の制約によって載置ができないことがあり、このことがティーチングの精度に影響を与えていた。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１５−８５４７５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、このような事情に鑑みてなされたものであり、その目的の一は、載置時の制約も加味したティーチングを実現可能なロボット設定装置、ロボットシステム、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器を提供することにある。
【課題を解決するための手段及び発明の効果】
【００１３】
本発明の第１の形態に係るロボット設定装置によれば、作業位置に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行うためのロボット設定装置であって、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定可能な把持設定部と、前記把持設定部により設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する基準載置姿勢設定部と、前記把持設定部により設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、前記第一把持候補位置及び第二把持候補位置の差分、前記第一把持姿勢及び第二把持姿勢の差分、及び前記基準載置姿勢とを用いた演算処理により算出する載置姿勢算出部とを備え、前記把持設定部は、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、前記載置姿勢算出部により算出された載置姿勢を、各把持候補位置と対応付けて設定可能に構成できる。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら１対１で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。
【００１４】
また、第２の形態に係るロボット設定装置によれば、上記構成に加えて、ロボットのアーム部及び／又はエンドエフェクタの動作可能範囲を規定した動作条件を記憶する記憶部と、前記載置姿勢算出部により算出された載置姿勢を取るためのロボットのアーム部及び／又はエンドエフェクタの動作が、前記記憶部に記憶された動作条件を満たすか否かを判定するためのロボット動作条件判定部とを備え、前記把持設定部は、前記ロボット動作条件判定部により前記動作条件を満たさないと判定された載置姿勢に対応する把持候補位置を、登録から除外するよう構成できる。上記構成により、算出された載置姿勢の内で、実際に載置可能な載置姿勢のみを登録することが可能となる。すなわち、従来の方法では、実際にロボットを動作させて載置位置を設定していたため、載置不能な載置位置が登録されることはなかったものの、ロボットを動作させることなく載置姿勢を算出して求める方法では、実際にはロボット設定装置と接続するロボットの動作条件によっては、載置不能な姿勢も演算されることが起こり得る。そこで、ロボットの動作条件に合致しない、すなわち載置できない載置姿勢については、登録から除外することにより、このような新たに発生した問題を回避することが可能となる。
【００１５】
さらに、第３の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記把持設定部は、前記載置姿勢算出部による載置姿勢の算出に際して、前記第一把持姿勢との差分が所定値よりも大きい第二把持姿勢については、登録から除外するよう構成できる。上記構成により、載置が不適切となる把持候補位置が選択されないように除外することで、無用な把持候補位置の検討を排除して処理の効率化を図ることができる。
【００１６】
さらにまた、第４の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、ワークを前記載置位置に載置可能なロボットの動作条件を設定するためのロボット動作条件設定部と、ワークの三次元形状を示す三次元形状データに基づいて、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するためのワーク把持候補位置認識部と、前記ワーク把持候補位置認識部により認識されたワーク上の把持候補位置で把持し、前記載置位置に載置するために必要なロボットの動作を、前記ロボット動作条件設定部で設定されたロボット動作条件に従い算出するためのロボット動作算出部と、前記ロボット動作条件判定部の判定により、前記ロボット動作条件を満たすと判定された載置姿勢に基づいて、実際にロボットがワークを把持する把持位置を決定するための把持位置決定部とを備えることができる。上記構成によって、ワークを予め所定の基準載置姿勢で載置可能であると前提で把持候補位置を算出することで、把持は可能でも載置できないという事態を回避することが可能となる。
【００１７】
さらにまた、第５の形態に係るロボット設定装置によれば、上記構成に加えて、前記ロボット動作条件が、アーム部及びエンドエフェクタの、物理的な動作範囲を含むことができる。
【００１８】
さらにまた、第６の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記ロボット動作条件を、アーム部の長さ、エンドエフェクタの回転角度、又は傾斜角度の少なくとも何れかで規定できる。
【００１９】
さらにまた、第７の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、前記作業位置に配置されたワークの三次元形状を三次元計測するためのセンサ部を備え、前記ワーク把持候補位置認識部は、前記センサ部を制御して計測されたワークの三次元計測データを三次元形状データとして、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するよう構成できる。
【００２０】
さらにまた、第８の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記センサ部が、カメラとプロジェクタを含み、前記作業空間の上方に配置されたカメラとプロジェクタで、該作業空間に積み上げられた複数のワークの三次元形状を計測するよう構成できる。
【００２１】
さらにまた、第９の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、三次元形状データを取得するための三次元形状データ入力部と、三次元形状データ中に含まれるワークの位置と姿勢を認識するためのワーク位置姿勢認識部と、ワークとエンドエフェクタと位置関係を登録するための位置関係登録部と、ワークを載置する際のエンドエフェクタの位置と姿勢を算出するためのエンドエフェクタ位置姿勢算出部と、エンドエフェクタの位置姿勢をセンサの座標空間からロボットの座標空間へ変換する変換部と、載置時のエンドエフェクタの位置を登録するための載置位置登録部とを備えることができる。
【００２２】
さらにまた、第１０の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記ワーク把持候補位置認識部は、ワークの三次元形状を示すＣＡＤデータを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータに対して、前記ロボットにより把持が可能なワーク上の一以上の把持候補位置を認識するよう構成できる。
【００２３】
さらにまた、第１１の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記三次元計測データを、位相シフト法に基づいて生成できる。
【００２４】
さらにまた、第１２の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、作業空間に無作為に積み上げられた複数のワークを順次取り出すバラ積みピッキング動作を、ロボットに行わせることができる。
【００２５】
さらにまた、第１３の形態に係るロボットシステムによれば、上記何れかのロボット設定装置と、ワークを把持するための前記エンドエフェクタと、前記エンドエフェクタを可動させるアーム部とを備えるロボットと、前記把持位置決定部で決定された把持位置でワークを把持するように、前記エンドエフェクタ及びアーム部を駆動するためのロボットコントローラとを備えることができる。
【００２６】
さらにまた、第１４の形態に係るロボットシステムによれば、作業位置に配置されたワークの三次元形状を測定し、エンドエフェクタで把持し、把持したワークを所定の載置位置に載置するロボットシステムであって、ワークを把持するための前記エンドエフェクタと、前記エンドエフェクタを可動させるアーム部と、ワークの三次元形状を計測するため、ワークの形状を撮像するためのセンサ部と、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際の前記エンドエフェクタの把持姿勢と対応付けて設定可能な把持設定部と、前記把持設定部により設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要な前記エンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する基準載置姿勢設定部と、前記把持設定部により設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、前記第一把持候補位置及び第二把持候補位置の差分、前記第一把持姿勢及び第二把持姿勢の差分、及び前記基準載置姿勢とを用いた演算処理により算出する載置姿勢算出部と、前記アーム部及び／又はエンドエフェクタの動作可能範囲を規定した動作条件を記憶する記憶部と、前記載置姿勢算出部により算出された載置姿勢を取るための前記アーム部及び／又はエンドエフェクタの動作が、前記記憶部に記憶された動作条件を満たすか否かを判定するためのロボット動作条件判定部と、前記ロボット動作条件判定部の判定により、動作条件を満たすと判定された載置姿勢に基づいて、実際にロボットがワークを把持する把持位置を決定するための把持位置決定部と、前記把持位置決定部で決定された把持位置でワークを把持するように、前記エンドエフェクタ及びアーム部を駆動するためのロボットコントローラとを備え、前記把持設定部は、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、前記載置姿勢算出部により算出された載置姿勢を、各把持候補位置と対応付けて設定可能に構成できる。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら１対１で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。
【００２７】
さらにまた、第１５の形態に係るロボット設定方法によれば、作業位置に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行う方法であって、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定する工程と、前記設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する工程と、前記設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、前記第一把持候補位置及び第二把持候補位置の差分、前記第一把持姿勢及び第二把持姿勢の差分、及び前記基準載置姿勢とを用いた演算処理により算出し、該算出された載置姿勢を、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、各把持候補位置と対応付けて設定する工程とを含むことができる。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら１対１で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。
【００２８】
さらにまた、第１６の形態に係るロボット設定プログラムによれば、作業位置に配置されたワークの三次元形状を測定し、ロボットが備えるアーム部及びアーム部の先端に設けられたワークを把持するためのエンドエフェクタを駆動させて把持し、把持したワークを所定の載置位置に載置するようにロボットの動作設定を行うためのプログラムであって、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定する機能と、前記設定された複数の把持候補位置の内、第一把持候補位置を、該第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定する機能と、前記設定された複数の把持候補位置の内、第二把持候補位置を、該第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に前記所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を、前記第一把持候補位置及び第二把持候補位置の差分、前記第一把持姿勢及び第二把持姿勢の差分、及び前記基準載置姿勢とを用いた演算処理により算出する機能と、前記算出された載置姿勢を、前記複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、各把持候補位置と対応付けて設定する機能とをコンピュータに実現させることができる。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら１対１で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。
【００２９】
さらにまた、第１７の形態に係るコンピュータで読み取り可能な記録媒体または記憶した機器は、上記ロボット設定プログラムを格納するものである。記録媒体には、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷやフレキシブルディスク、磁気テープ、ＭＯ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ＋Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、Ｂｌｕ−ｒａｙ、ＨＤ  ＤＶＤ（ＡＯＤ）等の磁気ディスク、光ディスク、光磁気ディスク、半導体メモリその他のプログラムを格納可能な媒体が含まれる。またプログラムには、上記記録媒体に格納されて配布されるものの他、インターネット等のネットワーク回線を通じてダウンロードによって配布される形態のものも含まれる。さらに記憶した機器には、上記プログラムがソフトウェアやファームウェア等の形態で実行可能な状態に実装された汎用もしくは専用機器を含む。さらにまたプログラムに含まれる各処理や機能は、コンピュータで実行可能なプログラムソフトウエアにより実行してもよいし、各部の処理を所定のゲートアレイ（ＦＰＧＡ、ＡＳＩＣ）等のハードウエア、又はプログラムソフトウエアとハードウェアの一部の要素を実現する部分的ハードウエアモジュールとが混在する形式で実現してもよい。
【図面の簡単な説明】
【００３０】
【図１】ロボットシステムを用いてバラ積みピッキング動作を行う様子を示す模式図である。
【図２】ロボットシステムのブロック図である。
【図３】センサ部の一例を示す斜視図である。
【図４】図４Ａは収納容器にワークを無作為に投入して積み上げた例を示す模式断面図、図４Ｂはワークを床面上に積み上げた例を示す模式断面図、図４Ｃはワークを一定姿勢でトレイ上に配列した状態を示す斜視図である。
【図５】図５Ａはエンドエフェクタでワークを把持する例を示す模式図、図５Ｂは空洞を有するワークを内面から把持する例を示す模式図、図５Ｃは板状のワークを吸引して把持する例を示す模式図である。
【図６】実施形態１に係るロボット設定装置を示すブロック図である。
【図７】載置位置から把持位置を決定する手順の一例を示すフローチャートである。
【図８】実施形態２に係るロボット設定装置を示すブロック図である。
【図９】画像処理部を示す機能ブロック図である。
【図１０】載置条件を利用して把持設定を行う手順を示すフローチャートである。
【図１１】図１０のステップＳ１００１において、載置基準把持を教示する手順の詳細を示すフローチャートである。
【図１２】図１０のステップＳ１００４において、把持位置を教示する手順の詳細を示すフローチャートである。
【図１３】載置条件を利用したバラ積みピッキングの運用時の手順を示すフローチャートである。
【図１４】ロボットでバラ積みピッキングを行う様子を示す模式図である。
【図１５】ワークの把持教示位置ＨＴＰ１を示す模式図である。
【図１６】ワークの把持教示位置ＨＴＰ２を示す模式図である。
【図１７】複数のワークがバラ積みされた状態で、ワークＷＫ１を、図１５の把持教示位置ＨＴＰ１で把持して載置する様子を示す模式図である。
【図１８】複数のワークがバラ積みされた状態で、ワークＷＫ１を、図１６の把持教示位置ＨＴＰ２で把持して載置する様子を示す模式図である。
【図１９】エンドエフェクタを用いて、図１５の姿勢で把持したワークを載置する様子を示す模式図である。
【図２０】図２０Ａはワークの把持教示位置を指定する状態、図２０Ｂはワークを移動させる状態、図２０Ｃは図２０Ｂの姿勢では載置できない状態をそれぞれ示す模式図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施形態を図面に基づいて説明する。ただし、以下に示す実施形態は、本発明の技術思想を具体化するための例示であって、本発明は以下のものに特定されない。また、本明細書は特許請求の範囲に示される部材を、実施形態の部材に特定するものでは決してない。特に実施形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一若しくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
（ロボットシステム）
【００３２】
ワークのピッキングを行うためのロボットシステム１０００の構成例を図１に示す。この例では、作業空間に積み上げられた複数のワークＷＫを、ロボットを用いて順次取り出し、所定の位置に配置するバラ積みピッキングを行う例について示している。ロボットは、アーム部ＡＲＭと、アーム部ＡＲＭの先端に設けられたエンドエフェクタＥＥＴを備える。このロボットは、ロボットコントローラ６で駆動される。またロボットコントローラ６はロボット設定装置１００から、ロボットの制御に必要な情報を取得する。ロボット設定装置１００とロボットコントローラ６で、ロボット設定装置を構成している。例えば、収納容器ＢＸに無作為に投入された多数の部品であるワークＷＫを、カメラや照明等のセンサ部２で三次元形状を取得し、ロボット設定装置１００でワークの位置や姿勢を検出して、情報をロボットコントローラ６に送る。ロボットコントローラ６は、ワークＷＫを一つづつ、ロボットのアーム部ＡＲＭの先端に設けられたエンドエフェクタＥＥＴでもって把持し、ステージＳＴＧ上の所定の位置、例えばコンベアベルト上に並べていく。
【００３３】
ロボットシステム１０００の機能ブロック図を図２に示す。この図に示すロボットシステム１０００は、ロボット設定装置１００と、センサ部２と、表示部３と、操作部４と、ロボット本体５と、ロボット操作具７とを備える。ロボット設定装置１００は、ロボット設定装置１００と、ロボットコントローラ６を含んでいる。
【００３４】
操作部４では、画像処理に関する設定を行う。またセンサ部２で、ワークを撮像しての三次元形状を取得する。さらに表示部３で、設定や動作状態の確認を行う。さらにまたロボット設定装置１００で、三次元サーチや干渉判定、把持解の算出等を行う。一方、ロボットコントローラ６はロボット設定装置１００の結果に従い、ロボットの制御を行う。またロボット操作具７は、ロボットの動作設定を行う。なお、図２の例では操作部４とロボット操作具７を別個の部材としているが、これらを共通の部材としてもよい。また図２の例では、ロボットコントローラ６はロボット設定装置１００に組み込まれているが、この構成に限られず、ロボットコントローラをロボット設定装置と個別に設けてもよい。
【００３５】
センサ部２は、作業空間やワークを撮像する部材である。撮像された画像から、バラ積みされたワークの三次元形状を示す三次元形状データが取得される。なお三次元形状を取得する方法は、パターン投影法、ステレオ法、レンズ焦点法、光切断法、光レーダ法、干渉法、ＴＯＦ方式などがある。本実施形態においては、パターン投影法の内、位相シフト法を用いている。
【００３６】
選択された三次元形状計測技術に応じて、センサ部２の構成が決定される。センサ部２は、カメラ、照明又はプロジェクタ等を備える。例えば位相シフト法でワークの三次元形状を計測する場合は、センサ部２として図３に示すように、プロジェクタＰＲＪと複数のカメラＣＭＥ１、ＣＭＥ２、ＣＭＥ３、ＣＭＥ４を備える。センサ部２は、カメラやプロジェクタといった複数の部材で構成する他、これらを一体的に構成してもよい。例えばカメラやプロジェクタを統合してヘッド状とした３Ｄ撮像ヘッドを、センサ部とすることができる。
【００３７】
また三次元形状データの生成自体を、センサ部側で行うこともできる。この場合、センサ部側に三次元形状データの生成機能を実現する画像処理ＩＣ等を設ける。あるいは、三次元形状データの生成を、画像処理部側で行わず、センサ部で撮像した生画像を、画像処理部側で画像処理して三次元画像等の三次元形状データを生成する構成としてもよい。
【００３８】
ロボット設定装置１００は、このようにして得られたワークの三次元形状データに基づいて、三次元サーチ、干渉判定、把持解算出等を行う。このロボット設定装置１００は、専用のロボット設定プログラムをインストールした汎用のコンピュータや、専用のコントローラ等が利用できる。なお図２では、ロボット設定装置１００を別個の部材で構成する例を示しているが、本発明はこの構成に限られず、例えばセンサ部とロボット設定装置を一体化したり、あるいはロボットコントローラにロボット設定装置を組み込むこともできる。
【００３９】
表示部３は、ロボット設定装置１００で取得されたワークの三次元形状を表示させたり、各種設定や動作状態の確認を行うための部材であり、液晶モニタや有機ＥＬディスプレイ、ＣＲＴ等が利用できる。操作部４は、画像処理等の各種設定を行うための部材であり、キーボードやマウス等の入力デバイスが利用できる。また表示部３をタッチパネルとすることで、操作部と表示部を一体化することもできる。
【００４０】
例えばロボットコントローラ６やロボット設定装置１００を、ロボット設定プログラムをインストールしたコンピュータとした場合、表示部３上にはロボット設定プログラムのグラフィカルユーザインターフェース（ＧＵＩ）画面が表示される。表示部３上に表示されたＧＵＩ上から各種の設定を行うことができ、またシミュレーション結果等の処理結果を表示させることができる。この場合、表示部３を各種の設定を行うための設定部として利用できる。
【００４１】
ロボットコントローラ６は、センサ部２で撮像した情報に基づいてロボットの動作を制御する。またロボット操作具７は、ロボット本体５の動作設定を行うための部材であり、ペンダントなどが利用できる。
【００４２】
ロボット本体５は、可動式のアーム部ＡＲＭと、アーム部ＡＲＭの先端に固定されたエンドエフェクタＥＥＴを備える。このロボット本体５はロボットコントローラ６に駆動されて、アーム部ＡＲＭを動作させ、一個のワークＷＫをピッキングして、これを所望の位置に移動させて載置した後、リリースする。このためアーム部ＡＲＭの先端には、ワークＷＫを把持するためのエンドエフェクタＥＥＴを備えている。またワークＷＫを載置する載置位置は、例えばトレイ上やコンベア上等が挙げられる。
【００４３】
ワークＷＫは、図１に示すように複数個が通い箱等の収容容器ＢＸに無作為に収納されている。このような作業空間の上方には、センサ部２が配置されている。センサ部２はカメラや照明を備えており、このセンサ部２で、ワークＷＫの三次元形状を計測することができる。ロボットコントローラ６は、センサ部２で計測されたワークＷＫの三次元形状に基づいて、複数のワークの内から、把持対象のワークＷＫを特定して、このワークＷＫを把持するよう、ロボットを制御する。そして、ワークＷＫを把持したまま、アーム部ＡＲＭを動作させて予め定められた載置位置、例えばステージＳＴＧ上まで移動させ、所定の姿勢でワークＷＫを載置する。いいかえると、ロボットコントローラ６は、センサ部２でピッキング対象のワークＷＫを特定し、このワークＷＫをエンドエフェクタＥＥＴで把持して、把持したワークＷＫを所定の基準載置姿勢にて、載置する位置である載置位置に載置してエンドエフェクタＥＥＴを開放するようにロボットの動作を制御する。
【００４４】
ここで本明細書においてバラ積みピッキングとは、図４Ａに示すような収納容器ＢＸに入れられて無作為に積み上げられたワークＷＫを、ロボットで把持して、所定の位置に載置する他、図４Ｂに示すような収納容器を用いずに所定の領域に積み上げられたワークＷＫに対して把持、載置を行う例、あるいは図４Ｃに示すような所定の姿勢で並べられて積み上げられたワークＷＫを順次把持、載置する例も含む意味で使用する。
【００４５】
また、図１の例ではセンサ部２を作業空間の上方に固定しているが、作業空間を撮像できる位置であれば足り、例えば斜めや側方、下方など、任意の定位置に配置できる。ただし、アーム部ＡＲＭ上のような、可動する不定位置にセンサ部を配置する態様は除かれる。さらにセンサ部２が有するカメラや照明の数も、一個に限らず複数個としてもよい。さらにまたセンサ部２やロボット、ロボットコントローラ６との接続は、有線接続に限られず、無線接続としてもよい。
【００４６】
またワークの把持とは、図５Ａに示すようにワークＷＫの外側を挟み込む他、図５Ｂに示すような、空洞を有するワークＷＫ２の内部にエンドエフェクタＥＥＴ２の爪部を挿入して拡開させることによって保持する例や、図５Ｃに示すような板状のワークＷＫ３を吸引して保持するエンドエフェクタＥＥＴ３の例を含む意味で使用する。以下では、ワークの把持の例としてワークの外側面を両側から掴む態様について説明する。またワークは、図１に示すように収納容器ＢＸに多数個が収納されて無作為に積み上げられた状態で、このような複数のワークＷＫに対して一つづつ、エンドエフェクタＥＥＴで把持して、載置位置に載置する作業を繰り返すバラ積みピッキング動作における把持位置の設定（ティーチング作業）について、以下説明する。
【００４７】
ロボットシステム１０００でバラ積みピッキング動作を行うにあたり、予めバラ積みピッキング動作を行わせるためのティーチングを行う。具体的には、ワークのどの部位を、エンドエフェクタがどのような姿勢で把持するのか、把持位置などの登録を行う。このような設定は、ペンダント等のロボット操作具７で行う。
（ティーチング作業）
【００４８】
従来のティーチング作業では、実際にロボットを動作させて、一個のワークに対して、エンドエフェクタで把持する把持位置と、この把持位置で把持したワークを載置する載置位置を、それぞれユーザが手動で登録していた。この方法では、ワークに対して複数の把持位置があったり、複数個のワークが存在する場合は、登録すべき位置の数が増え、ティーチング作業に手間がかかる。そこで、このようなティーチング作業の省力化を図るために、まず一個のワークに対して、基準となる把持位置と、この把持位置でワークを載置した時のエンドエフェクタの位置（載置位置）を登録する。これにより、このワークの把持位置と載置位置の相対的な位置関係が決定される。そして、同じワークの他の把持位置については、把持位置のみをそれぞれ登録する。各把持位置に対する載置位置は、決定された位置関係に基づいてそれぞれ演算する。これによって、把持位置毎に載置位置を個別にロボットを動作させて登録する作業を省くことができ、ティーチング作業の労力を軽減できる。
【００４９】
しかしながら、この自動計算方法では、ロボットを実際に動作させることなく計算にて各載置位置を求めているところ、実運用時においては物理的な制約のため、実施できない載置位置となってしまうことがある。例えばロボットを構成するアーム部の可動範囲や、アーム部の長さによって決まる、取り得る姿勢の制限、移動可能な物理的な範囲（水平方向や高さ方向の移動限界）、あるいはワークを収納する収納容器の壁や周囲の異物が存在するため、これらの異物がアーム部と干渉して取り得ない姿勢となることがある。このような物理的な制約が現実には存在するため、演算によって求められた仮想的な載置位置の中には、現実には利用できない載置位置が生じてしまう。この結果、ロボットシステムのティーチング作業を完了できたとしても、実運用時においては計画したとおりに動作できない状態が生じてしまい、ロボットの動作計画自体を見直さないといけないという、大きな手戻りが発生する虞があった。
【００５０】
そこで、本実施形態においては、ティーチング作業の段階において、事前にこのような利用不可能な載置位置を検知して除去することで、このような手戻りの発生を低減する。
（載置位置に基づく把持位置設定機能）
【００５１】
一方で従来のティーチング作業では、エンドエフェクタによるワークの把持のし易さでもって把持位置を登録するものが多かった。しかしながら、把持し易い位置として一以上の把持位置が登録されていても、このような把持位置でエンドエフェクタで把持されたワークが、必ずしも載置に適しているとは限らないという問題があった。すなわち、把持は可能であっても、把持した姿勢で載置できない場合は、その姿勢での把持は適切でないということになる。
【００５２】
これに対して本実施形態に係るロボット設定装置では、載置可能な位置に着目して、この載置位置及び姿勢から、このような載置を実現可能とするにはどのように把持すればよいかを算出することで、載置可能な把持を実現する姿勢及び位置を得たものである。すなわち、載置状態という結果から逆算して、把持状態の条件を演算するものであり、これにより載置可能な状態と把持可能な状態を結びつけることを可能としている。いいかえると、載置に適しない把持位置は対象から外すことで、載置位置の解がある把持位置の解のみを得ることが可能となり、従来のようにティーチング時に把持位置を登録した後、運用時においてこの把持位置では載置できないために登録作業をやり直すという手戻りを回避でき、効率良くティーチング作業を行えるようになる。以下、詳細を説明する。
（ティーチング作業の例）
【００５３】
上述した載置位置に基づいて把持位置をティーチングする機能を実現するロボット設定装置を含むロボットシステムの機能ブロック図を、図６に示す。この図に示すロボットシステム１０００は、ロボット設定装置１００と、センサ部２と、ロボットを備える。
【００５４】
センサ部２は、作業位置に配置されたワークの三次元形状を三次元計測する。このセンサ部２は、センサ制御部２ｂにより制御される。なお、この例ではセンサ制御部２ｂをセンサ部２と個別に設けているが、センサ部にセンサ制御部を組み込んでもよい。ロボット部は、アーム部ＡＲＭとエンドエフェクタＥＥＴを備える。このロボットは、ロボット設定装置１００に制御されて、ワークを把持位置で把持して、載置位置に載置する。ここでは、ワークを把持する際のワークに対するエンドエフェクタの位置姿勢を、センサ部２で撮像して登録する。
【００５５】
図６のロボット設定装置１００は、記憶部９と、演算部１０を備える。演算部１０は、設定部８と、載置姿勢算出部１０ｅと、ワーク把持候補位置認識部１０ａと、ロボット動作算出部１０ｂと、ロボット動作条件判定部１０ｃと、把持位置決定部１０ｄを含む。設定部８は、把持設定部８ｃと、基準載置姿勢設定部８ａと、ロボット動作条件設定部８ｂを含む。
【００５６】
設定部８は、各種の設定を行うための部材であり、ユーザの操作を受け付けるインターフェースとなる。好適には、外部に接続された操作部やロボット操作具などの入力デバイスを介して、各種の設定を受け付けるよう、表示部３上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）が利用できる。
【００５７】
このような設定部８に含まれる把持設定部８ｃは、ワークを把持する際の複数の把持候補位置を、各把持候補位置を把持する際のエンドエフェクタの把持姿勢と対応付けて設定するための部材である。また基準載置姿勢設定部８ａは、把持設定部８ｃにより設定された複数の把持候補位置の内、第一把持候補位置を、この第一把持候補位置に対応付けられた第一把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第一載置姿勢を、基準載置姿勢として設定するための部材である。
【００５８】
載置姿勢算出部１０ｅは、把持設定部８ｃにより設定された複数の把持候補位置の内、第二把持候補位置を、この第二把持候補位置に対応付けられた第二把持姿勢にてエンドエフェクタで把持し、ワークを載置位置に所望の状態で載置するために必要なエンドエフェクタの第二載置姿勢を算出するための部材である。第二載置姿勢の算出は、第一把持候補位置及び第二把持候補位置の差分、第一把持姿勢及び第二把持姿勢の差分、及び基準載置姿勢とを用いた演算処理により行われる。また把持設定部８ｃは、複数の把持候補位置の内、第一把持候補位置を除く各把持候補位置のそれぞれについて、載置姿勢算出部１０ｅにより算出された載置姿勢を、各把持候補位置と対応付けて設定する。これにより、従来、ワークの把持候補位置とエンドエフェクタの把持姿勢を設定した上で、これらの把持位置姿勢条件毎に、ワークをこの把持位置姿勢条件で把持して載置する際のエンドエフェクタの載置姿勢を、実際にエンドエフェクタを操作しながら１対１で個別に設定する必要があったところ、上記構成によれば、一の基準載置姿勢を設定するのみで、他の把持位置姿勢条件に対応する載置姿勢を演算により求めることができるので、ユーザ側の作業負担を大幅に省力化できる利点が得られる。把持設定部８ｃは、載置姿勢算出部１０ｅによる載置姿勢の算出に際して、前記第一把持姿勢との差分が所定値よりも大きい第二把持姿勢については、登録から除外するよう構成してもよい。これにより、載置が不適切となり得る把持候補位置が予め除外され、無用な把持候補位置の検討を排除して処理の効率化を図ることができる。
【００５９】
また記憶部９は、各種設定を保持するための部材であり、不揮発性メモリやハードディスク、記憶媒体等が利用できる。この記憶部９は、例えばロボットのアーム部及び／又はエンドエフェクタの動作可能範囲を規定した動作条件を記憶する。
【００６０】
一方演算部１０は、複数の機能を実現する演算回路であり、例えばマイクロプロセッサ（ＭＰＵ）やＣＰＵ、ＬＳＩ、ＦＰＧＡやＡＳＩＣ等のゲートアレイ、ＤＳＰ等のハードウエアやソフトウエア、あるいはこれらの混在により実現できる。また必ずしも各構成要素が図６等に示した構成と同一でなくてもよく、その機能が実質的に同一であるもの、及び一つの要素が図６に示す構成における複数の要素の機能を備えるものは、本発明に含まれる。
【００６１】
演算部１０に含まれるワーク把持候補位置認識部１０ａは、ワークの三次元計測データに基づいて、ロボットにより把持が可能なワーク上の把持候補位置を認識するための部材である。ここでは、センサ制御部２ｂによりセンサ部２を制御してワークを計測した三次元計測データを取得し、この三次元計測データからワーク上の把持候補位置を認識する。ロボット動作算出部１０ｂは、ワーク把持候補位置認識部１０ａにより認識されたワーク上の把持候補位置を把持し、基準載置姿勢設定部８ａで設定された基準載置姿勢で、載置位置に載置するために必要なロボットの動作を算出するための部材である。
【００６２】
ロボット動作条件判定部１０ｃは、載置姿勢算出部１０ｅにより算出された載置姿勢を取るためのロボットのアーム部及び／又はエンドエフェクタの動作が、記憶部９に記憶された動作条件を満たすか否かを判定するための部材である。把持設定部８ｃは、ロボット動作条件判定部により動作条件を満たさないと判定された載置姿勢に対応する把持候補位置を、登録から除外する。これにより、算出された載置姿勢の内で、実際に載置可能な載置姿勢のみを登録することが可能となる。すなわち、従来の方法では、実際にロボットを動作させて載置位置を設定していたため、載置不能な載置位置が登録されることはなかったものの、ロボットを動作させることなく載置姿勢を算出して求める方法では、実際にはロボット設定装置と接続するロボットの動作条件によっては、載置不能な姿勢も演算されることが起こり得る。そこで、ロボットの動作条件に合致しない、すなわち載置できない載置姿勢については、登録から除外することにより、このような新たに発生した問題を回避することが可能となる。
【００６３】
把持位置決定部１０ｄは、ロボット動作条件判定部１０ｃの判定により、動作条件を満たすと判定された載置姿勢に基づいて、最終的な把持位置を決定するための部材である。
【００６４】
一以上の把持候補位置は、ユーザが予め手動で登録することができる。あるいは、把持候補位置を、ロボット設定装置側で自動的に演算して登録するよう構成してもよい。またワーク把持候補位置認識部１０ａは、予め与えられた複数の把持候補位置の内で、現状のワークの姿勢及び位置に応じて現実に把持可能な把持候補位置を、自動で選択するよう構成してもよい。さらにワーク把持候補位置認識部１０ａは、予め与えられた複数の把持候補位置の内で、現状のワークの姿勢及び位置に応じて現実に把持可能な把持候補位置を、ユーザに選択させて該選択を受け付けるよう構成することもできる。
【００６５】
把持位置決定部１０ｄは、複数の把持候補位置に対応する載置時のエンドエフェクタの姿勢が、基準載置姿勢に近い順に把持位置の優先順位を決定し、この優先順位に基づいて実際にロボットがワークを把持する把持位置を決定するよう構成できる。これにより、複数の把持候補位置の中から、基準載置姿勢に近いものを選択することで、より好ましい姿勢での把持、載置を実現することが可能となる。
【００６６】
以上のロボット設定装置を用いて、ロボットのバラ積みピッキングを行う実運用に先立ち、必要な設定を行う。具体的には、設定作業の内、ワークの把持位置や載置位置、把持姿勢などをロボットシステム側にユーザが教示するティーチング作業を行う。以下では、ワークをエンドエフェクタで把持する例について説明し、ピッキング（把持）の一例として把持に読み替えて説明する。ただし、上述の通り本発明はエンドエフェクタがワークを掴む態様に限らず、他の把持態様にも適用できることは言うまでもない。
【００６７】
ワークを把持する際に、事前にユーザが教示した複数の把持位置候補の中から、最終的な把持位置を決定するよう、把持候補位置の優先順位を定める。ここでは、各把持候補位置に対応する載置時のエンドエフェクタの位置姿勢が、事前に載置位置として教示した際のエンドエフェクタの位置及び姿勢に近くなる順序で、把持位置の優先順位を定める。例えば図１７〜図１８の例では、ワークＷＫ１の把持よりも、ワークＷＫ２の把持を優先させることで、動作範囲外にロボットが移動しようとしてしまう事態を回避できる。
【００６８】
また、載置位置として教示したときのエンドエフェクタの位置姿勢と、ピッキング時に選択した把持での載置時のエンドエフェクタ位置姿勢との差分に上限値を設けることで、そもそも図１７のワークＷＫ１の把持や、図２０のエンドエフェクタＥＥＴ４が床に衝突する把持が選択されないようにすることもできる。
【００６９】
次に、載置位置から把持位置を決定する手順の一例について、図７のフローチャートに基づいて説明する。
【００７０】
まず、ステップＳ７０１において、ワーク載置位置を決定する。ここでは、所定の載置位置にワークを配置し、この位置をワーク載置位置とする。例えばロボットでワークを把持、移動させて載置させたいワークの載置位置に、ユーザが手動でワークを載置する。
【００７１】
次にステップＳ７０２において、基準載置姿勢を登録する。上述のワーク載置位置に載置したワークを把持できる位置にエンドエフェクタが位置するように、ロボットを操作する。このときのエンドエフェクタの姿勢を基準載置姿勢として、記憶部９に記録する。
【００７２】
次にステップＳ７０３において、載置基準把持を登録する。ここでは、ワーク載置位置に配置したワークをロボットで基準載置姿勢で把持し、ロボットを操作してワークをセンサ部の視野内に搬送して、載置する。この視野内での載置時のエンドエフェクタの位置を載置基準把持として、記憶部９に記録する。
【００７３】
その後、ステップＳ７０４において、基準把持情報を登録する。ここでは、ロボットをセンサ部の視野外に退避させて、先ほどの視野内に載置したワークの位置姿勢を認識して、記憶部９に記録する。このワークの位置姿勢と、載置基準把持の相対的位置関係を、基準把持情報として記憶部９に記録する。このワークの位置姿勢が、第一把持候補位置となる。
【００７４】
さらにステップＳ７０５において、登録把持情報を登録する。ここでは、ワークに対して、追加の把持位置を登録し、ワークの位置姿勢とこの把持位置の相対的位置関係を記録する。このときの把持位置を登録把持情報とする。この登録把持情報が、第二把持候補位置となる。
【００７５】
次にステップＳ７０６において、エンドエフェクタの載置姿勢を算出する。把持の結果、上述した所定のワーク載置位置にワークを載置する際のエンドエフェクタの位置、姿勢は、登録把持情報と基準把持情報のそれぞれのエンドエフェクタの把持位置の相対的位置関係と基準載置姿勢とに基づいて算出できる。このようにして算出されたエンドエフェクタの位置・姿勢を載置姿勢とする。
【００７６】
さらにステップＳ７０７において、各登録把持情報の把持判定を行う。ここでは、載置姿勢と基準載置姿勢の近さを、登録把持情報のすべてに対して評価し、最も近い登録把持情報から順に、把持できるかどうかの判定を行う。
【００７７】
このようにして、載置位置から把持位置を決定することができる。この結果、従来のように把持の条件のみを最適化して、ロボットの動作範囲の制約などで載置できないケースが発生することを回避できる。特に本実施形態に係るロボット設定装置では、予め登録した載置時のエンドエフェクタの位置姿勢と、同じく予め登録したそのときのワークに対するエンドエフェクタの把持位置姿勢とに基づいて、ワークに対する任意の把持におけるエンドエフェクタの載置位置姿勢を計算し、載置に適した把持位置を選択できる。
（実施形態２）
【００７８】
以上の例では、実際に作業空間にワークを載置して、ロボットでこのワークを把持したり、センサ部２で撮像したりしながらティーチング作業を行う例について説明した。ただ本発明はこの構成に限らず、実際にワークの現物を用意したりロボットを操作したりセンサ部で撮像したりする作業を必ずしもすべて行わずとも、一部あるいはすべてを仮想的に行わせることもできる。例えばワークのＣＡＤデータ等を利用して、仮想作業空間内で演算により行わせることもできる。このような例を実施形態２として、図８に示す。この図に示すロボットシステムは、演算部１０と、表示部３と、操作部４を備える。
【００７９】
この構成においては、ワークの三次元形状データに代えて、ＣＡＤデータを利用したワークモデルや、エンドエフェクタやアーム部のＣＡＤデータを用いたロボットモデル（エンドエフェクタモデル、ワークモデル）収納容器をモデル化した収納容器モデル、センサ部を模したセンサモデルなどを用いて、仮想作業空間上で演算により三次元サーチや干渉判定、把持解算出等を行う。この構成によれば、ロボットを用いずに、仮想作業空間上で設定することが可能となり、ティーチング作業等をより簡便に行える利点が得られる。
（演算部１０の機能ブロック図）
【００８０】
ここで演算部１０の機能ブロック図の一例を、図９に示す。この図に示す演算部１０は、三次元形状データ入力部１ａと、ワーク位置姿勢認識部１ｂと、位置関係登録部１ｃと、エンドエフェクタ位置姿勢算出部１ｄと、変換部１ｅと、載置位置登録部１ｆとを備える。
【００８１】
三次元形状データ入力部１ａは、センサ部２から三次元形状データを取得する。この例では、センサ部２側に、三次元画像生成部を備えており、センサ部２側の三次元画像生成部で生成された三次元画像を三次元形状データとして、三次元形状データ入力部１ａで取得する。ただ上述の通り、例えばセンサ部２で撮像した生画像を、画像処理部側で画像処理して三次元画像等の三次元形状データを生成する構成としてもよい。
【００８２】
ワーク位置姿勢認識部１ｂは、三次元形状データ中に含まれるワークの位置と姿勢を認識するための部材である。
【００８３】
位置関係登録部１ｃは、ワークとエンドエフェクタと位置関係を登録するための部材である。
【００８４】
エンドエフェクタ位置姿勢算出部１ｄは、ワークの載置時のエンドエフェクタの位置と姿勢を算出するための部材である。
【００８５】
変換部１ｅは、ある位置のセンサの座標空間における位置と、ロボットの座標空間における位置との対応関係を規定する。ここでは、ビジョン−ロボットのキャリブレーションデータに従って、センサ部２の座標空間からロボットの座標空間へ座標位置を変換する。
【００８６】
載置位置登録部１ｆは、載置時のエンドエフェクタの位置を登録するための部材である。
（載置条件を利用した把持設定の手順）
【００８７】
次に、載置条件を利用して把持設定を行う手順を、図１０のフローチャートに基づいて説明する。
【００８８】
まずステップＳ１００１において、載置基準把持を教示する。
（載置把持条件）
【００８９】
次にステップＳ１００２において、載置把持条件を設定する。載置把持条件としては、例えば教示した載置位置でのエンドエフェクタの姿勢に対する傾斜角の上限を設定することが含まれる。また、算出したエンドエフェクタの位置がロボットの動作範囲内であることを含めてもよい。この場合は、例えばロボットの標準の判定機能を使用したり、ロボットの制御点がロボットの動作可能範囲内かどうかを計算する等の方法が利用できる。さらに他の載置把持条件として、載置位置周囲の干渉物とロボットのエンドエフェクタとの干渉を含めてもよい。この場合、仮想作業空間上で載置対象のワークの位置を基準に、障害物のオブジェクト（例えば床）を配置して、載置姿勢におけるエンドエフェクタとの干渉有無を判定することができる。
【００９０】
さらにステップＳ１００３において、ワークをセンサ部の撮像視野内に配置する。
【００９１】
さらにステップＳ１００４において、把持位置を教示する。
【００９２】
次にステップＳ１００５において、把持位置を追加するか否かを判定する。追加する場合はステップＳ１００４に戻って上記工程を繰り返す。一方、追加しない場合はステップＳ１００６に進み、把持設定作業を終了し、必要に応じて実運用に移行する。実運用とは、例えば載置把持条件を利用したバラ積みピッキングの運用である。
（載置基準把持を教示する手順）
【００９３】
ここで、上記図１０のステップＳ１００１において、載置基準把持を教示する手順の詳細を、図１１のフローチャートに基づいて説明する。まず、ステップＳ１１０１において、所定のワーク載置位置に、ワークを設置する。
【００９４】
次にステップＳ１１０２において、ワークを把持できる位置にロボットのエンドエフェクタを移動させる。
【００９５】
さらにステップＳ１１０３において、エンドエフェクタの位置姿勢を基準載置姿勢として記憶部９に記録する。
【００９６】
さらにステップＳ１１０４において、基準載置姿勢でワーク載置位置のワークを把持する。
【００９７】
そしてステップＳ１１０５において、ワークをロボットで搬送してヘッド部の撮像視野内に配置させる。
【００９８】
さらにステップＳ１１０６において、エンドエフェクタの位置姿勢を載置基準把持として記録する。
【００９９】
さらにステップＳ１１０７において、ワークをリリースしてエンドエフェクタを撮像視野外に退避させる。
【０１００】
さらにステップＳ１１０８において、ヘッド部でワークの位置姿勢を記録する。
【０１０１】
最後にステップＳ１１０９において、ワークとロボットエンドエフェクタの把持時の相対位置関係を基準把持情報として記録する。
（把持位置教示の手順）
【０１０２】
さらに図１０のステップＳ１００４において、把持位置を教示する手順の一例を、図１２のフローチャートに基づいて説明する。まずステップＳ１２０１において、ヘッド部でワークの位置姿勢を記録する。
【０１０３】
次にステップＳ１２０２において、ワークを把持できる位置へロボットエンドエフェクタを移動させる。
【０１０４】
さらにステップＳ１２０３において、ロボットエンドエフェクタの位置姿勢を記録する。
【０１０５】
最後にステップＳ１２０４において、ワークとロボットエンドエフェクタの把持時の相対位置関係を記録する。
（載置条件を利用したバラ積みピッキングの運用時の手順）
【０１０６】
以上のようにして、ティーチング作業を終了してワークの把持位置や載置位置を登録し設定作業を終えることで、バラ積みピッキングの運用が行える。最後に、載置条件を利用したバラ積みピッキングの運用時の手順の一例について、図１３のフローチャートに基づいて説明する。まずステップＳ１３０１において、バラ積みされたワーク群をヘッド部で撮像して、各ワークの位置姿勢を認識する。
【０１０７】
次にステップＳ１３０２において、認識したワークの中から一つのワークを選択する。
【０１０８】
さらにステップＳ１３０３において、教示した把持の中から一つの把持を選択する。
【０１０９】
さらにまたステップＳ１３０４において、算出載置位置を計算する。
【０１１０】
次にステップＳ１３０５において、載置姿勢と基準載置姿勢の差分値を計算する。
【０１１１】
そしてステップＳ１３０６において、演算された差分値が所定の最小差分値より小さいか否かを判定し、小さい場合はステップＳ１３０７において、最小差分値を更新した後、ステップＳ１３０８に進む。一方、小さくない場合は、そのままステップＳ１３０８に進む。
【０１１２】
ステップＳ１３０８おいて、未計算の把持が残っているか否かを判定し、残っている場合はステップＳ１３０３に戻って上記工程を繰り返す。一方、残っていない場合はステップＳ１３０９に進み、未計算のワークが残っているか否かを判定する。残っている場合はステップＳ１３０２に戻り、上記工程を繰り返す。残っていない場合はステップＳ１３１０において、載置把持条件の範囲内か否かを判定し、範囲内の場合はステップＳ１３１１において、最小差分値のときのワークと把持を選択して処理を終了する。一方、範囲外の場合はそのまま処理を終了する。
【０１１３】
このようにして、載置条件を利用したバラ積みピッキングの運用を行うことができる。
【０１１４】
以上のように本実施形態に係るロボット設定装置によれば、事前にワークが載置可能であることを前提に、把持位置や把持姿勢といった把持位置姿勢条件を設定することで、実運用の開始後に、登録した把持位置では載置ができないことが発覚して、ロボット動作計画の見直しを迫られるケースを回避できる。
【０１１５】
また、把持設定の段階で、登録した把持位置から求められる載置姿勢が、載置把持条件を満たしているかどうかを判定し、満たしていないと判定されれば、警告を発するように構成してもよい。例えばロボット動作条件判定部１０ｃが、このような載置姿勢が載置把持条件の範囲内かどうかを判定し、範囲外の場合は、設定として不適切である旨をユーザに告知して、再設定を促す。これによって、適切な設定が行えることに加えて、運用時に載置把持条件の範囲内かどうかの計算をする必要性をなくすことができ、運用時の処理の負担を軽減できる利点も得られる。
（追加の把持条件）
【０１１６】
あるいは、載置把持条件とは異なる把持条件を追加で設定することも考えられる。追加の把持条件としては、例えば周囲の障害物とエンドエフェクタとの干渉判定が挙げられる。このような追加の把持条件を設定している場合は、差分が最小値になる把持だけを扱うのではなく、登録した把持を差分が小さい順にソートして、その順に追加の把持条件を判定して、条件に最初に適合する把持を選択するように構成してもよい。
【０１１７】
さらにまた、条件に適合しない把持が発覚した際には、基準載置姿勢を変更することで、登録済みのすべての把持が載置把持条件の範囲内かどうかを再判定することもできる。
【産業上の利用可能性】
【０１１８】
本発明のロボット設定装置、ロボットシステム、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器は、ロボットのバラ積みピッキングの動作を検証する用途に好適に利用できる。
【符号の説明】
【０１１９】
１０００…ロボットシステム
１００…ロボット設定装置
１ａ…三次元形状データ入力部；１ｂ…ワーク位置姿勢認識部；１ｃ…位置関係登録部；１ｄ…エンドエフェクタ位置姿勢算出部；１ｅ…変換部；１ｆ…載置位置登録部
２…センサ部；２ｂ…センサ制御部
３…表示部
４…操作部
５…ロボット本体
６…ロボットコントローラ
７…ロボット操作具
８…設定部；８ａ…基準載置姿勢設定部；８ｂ…ロボット動作条件設定部；８ｃ…把持設定部
９…記憶部
１０…演算部；１０ａ…ワーク把持候補位置認識部；１０ｂ…ロボット動作算出部；
１０ｃ…ロボット動作条件判定部；１０ｄ…把持位置決定部；１０ｅ…載置姿勢算出部
ＥＥＴ、ＥＥＴ２、ＥＥＴ３、ＥＥＴ４…エンドエフェクタ
ＡＲＭ…アーム部
ＳＴＧ…ステージ
ＷＫ、ＷＫＬ、ＷＫ１、ＷＫ２、ＷＫ３…ワーク
ＨＴＰ１、ＨＴＰ２…把持教示位置
ＰＲＪ…プロジェクタ
ＣＭＥ１、ＣＭＥ２、ＣＭＥ３、ＣＭＥ４…カメラ
ＢＸ…収納容器
【図１】
2018144159.tif 000003
【図２】
2018144159.tif 000004
【図３】
2018144159.tif 000005
【図４】
2018144159.tif 000006
【図５】
2018144159.tif 000007
【図６】
2018144159.tif 000008
【図７】
2018144159.tif 000009
【図８】
2018144159.tif 000010
【図９】
2018144159.tif 000011
【図１０】
2018144159.tif 000012
【図１１】
2018144159.tif 000013
【図１２】
2018144159.tif 000014
【図１３】
2018144159.tif 000015
【図１４】
2018144159.tif 000016
【図１５】
2018144159.tif 000017
【図１６】
2018144159.tif 000018
【図１７】
2018144159.tif 000019
【図１８】
2018144159.tif 000020
【図１９】
2018144159.tif 000021
【図２０】
2018144159.tif 000022