(57)【要約】【課題】ロボットの負荷を考慮して、対象物の適正な把持姿勢を評価できる把持姿勢評価装置を提供する。【解決手段】把持姿勢評価装置１０は、ロボットＲＢが備えるロボットハンドＨがワークを把持する際のロボットハンドＨの把持姿勢を導出する把持姿勢導出部１０１と、把持姿勢導出部１０１により導出された把持姿勢によりロボットハンドＨがワークを把持して搬送する場合の、ロボットＲＢにかかる負荷を表す負荷指標値を算出する負荷指標値算出部１０３と、負荷指標値算出部１０３により算出された負荷指標値に基づいて、把持姿勢が適正か否かを評価する把持姿勢評価部１０４と、を有し、把持姿勢評価部１０４により把持姿勢が適正でないと評価される度に、把持姿勢導出部１０１による新たな把持姿勢の導出、負荷指標値算出部１０３による負荷指標値の算出及び把持姿勢評価部１０４による評価を繰り返す。【選択図】図４
2020011317.tif 000002
【特許請求の範囲】
【請求項１】
ロボットが備えるロボットハンドがワークを把持する際の前記ロボットハンドの把持姿勢を導出する把持姿勢導出部と、
前記把持姿勢導出部により導出された前記把持姿勢により前記ロボットハンドが前記ワークを把持して搬送する場合の、前記ロボットにかかる負荷を表す負荷指標値を算出する負荷指標値算出部と、
前記負荷指標値算出部により算出された前記負荷指標値に基づいて、前記把持姿勢が適正か否かを評価する把持姿勢評価部と、
を有し、
前記把持姿勢評価部により把持姿勢が適正でないと評価される度に、前記把持姿勢導出部による新たな把持姿勢の導出、前記負荷指標値算出部による負荷指標値の算出及び前記把持姿勢評価部による評価を繰り返す把持姿勢評価装置。
【請求項２】
前記把持姿勢導出部により導出された前記把持姿勢により前記ロボットハンドが前記ワークを把持して搬送する場合の、前記ワークの把持の安定性を表す安定指標値を算出する安定指標値算出部を更に有し、
前記把持姿勢評価部は、前記負荷指標値算出部により算出された前記負荷指標値及び前記安定指標値算出部により算出された安定指標値に基づいて、前記把持姿勢が適正か否かを評価する請求項１に記載の把持姿勢評価装置。
【請求項３】
前記ロボットが前記ワークを搬送する際の動作軌道を生成する動作軌道生成部を更に有し、
前記負荷指標値算出部は、前記動作軌道生成部により生成された前記動作軌道に従って前記ロボットが前記ロボットハンドにより前記ワークを把持して搬送する場合の前記負荷指標値を算出し、
前記安定指標値算出部は、前記動作軌道生成部により生成された前記動作軌道に従って前記ロボットが前記ロボットハンドにより前記ワークを把持して搬送する場合の前記安定指標値を算出し、
前記把持姿勢評価部により把持姿勢が適正でないと評価される度に、前記把持姿勢導出部による新たな把持姿勢の導出及び前記動作軌道生成部による新たな動作軌道の生成の少なくとも一方、前記負荷指標値算出部による負荷指標値の算出、前記安定指標値算出部による安定指標値の算出及び前記把持姿勢評価部による評価を繰り返す請求項２に記載の把持姿勢評価装置。
【請求項４】
前記負荷指標値算出部は、算出した前記負荷指標値が適正か否かを評価し、
前記負荷指標値算出部により前記負荷指標値が適正でないと評価された場合、適正でないと評価された前記負荷指標値に関する把持姿勢を前記把持姿勢評価部により評価することなく、前記把持姿勢導出部により新たな把持姿勢を導出する請求項１〜３のいずれか一項に記載の把持姿勢評価装置。
【請求項５】
前記安定指標値算出部は、算出した前記安定指標値が適正か否かを評価し、
前記安定指標値算出部により前記安定指標値が適正でないと評価された場合、適正でないと評価された前記安定指標値に関する把持姿勢を前記把持姿勢評価部により評価することなく、前記把持姿勢導出部により新たな把持姿勢を導出する請求項２または請求項３に記載の把持姿勢評価装置。
【請求項６】
前記ワークを取り上げ又は載置する場合に、前記把持姿勢導出部により導出した把持姿勢を、前記ロボットが実現可能か否かを評価する把持可能性評価部を更に有し、
前記把持可能性評価部により前記ロボットの姿勢が実現不可能と評価された場合、前記把持姿勢導出部は、前記把持可能性評価部により評価された姿勢に関する把持姿勢とは異なる新たな把持姿勢を更に導出する請求項１〜５の何れか一項に記載の把持姿勢評価装置。
【請求項７】
前記把持姿勢導出部は、複数の把持姿勢を導出し、
前記把持姿勢評価部は、前記把持姿勢導出部により導出された前記複数の把持姿勢の各々ついて適正か否かを判断し、前記複数の把持姿勢のうち適正と判断した把持姿勢が複数存在する場合、適正と判断した複数の把持姿勢の各々について前記負荷指標値算出部により算出された前記負荷指標値を比較して、最適な把持姿勢を決定する請求項１〜６のいずれか一項に記載の把持姿勢評価装置。
【請求項８】
前記把持姿勢導出部は、複数の把持姿勢を導出し、
前記把持姿勢評価部は、前記把持姿勢導出部により導出された前記複数の把持姿勢の各々ついて適正か否かを判断し、前記複数の把持姿勢のうち適正と判断した把持姿勢が複数存在する場合、適正と判断した複数の把持姿勢の各々について前記負荷指標値算出部により算出された前記負荷指標値及び前記安定指標値算出部により算出された前記安定指標値をそれぞれ比較して、最適な把持姿勢を決定する請求項２、請求項３又は請求項５に記載の把持姿勢評価装置。
【請求項９】
前記把持姿勢導出部は、前記ロボットハンド及び前記ワークの相対的な位置関係をランダムに決定することにより、把持姿勢を導出する請求項１〜８の何れか一項に記載の把持姿勢評価装置。
【請求項１０】
前記把持姿勢導出部は、前記ロボットハンドが取り付けられるロボットの手先位置と前記ワークの重心位置が一致するところから優先的に把持姿勢を導出し、前記把持姿勢の導出回数を重ねる程、前記ロボットハンドが取り付けられる前記ロボットの手先と、前記ワークの重心との距離が離れるように、前記把持姿勢を導出する請求項１〜８の何れか一項に記載の把持姿勢評価装置。
【請求項１１】
ロボットが備えるロボットハンドがワークを把持する際の前記ロボットハンドの把持姿勢を導出する把持姿勢導出ステップと、
前記把持姿勢導出ステップにより導出された前記把持姿勢により前記ロボットハンドが前記ワークを把持して搬送する場合の、前記ロボットにかかる負荷を表す負荷指標値を算出する負荷指標値算出ステップと、
前記負荷指標値算出ステップにより算出された前記負荷指標値に基づいて、前記把持姿勢が適正か否かを評価する把持姿勢評価ステップと、
を有し、
前記把持姿勢評価ステップにより把持姿勢が適正でないと評価される度に、前記把持姿勢導出ステップにより新たな把持姿勢を導出し、前記負荷指標値算出ステップによる負荷指標値の算出及び前記把持姿勢評価ステップによる評価を繰り返す、
ことをコンピュータに実行させる把持姿勢評価プログラム。
【請求項１２】
前記把持姿勢導出ステップにより導出された前記把持姿勢により前記ロボットハンドが前記ワークを把持して搬送する場合の、前記ワークの把持の安定性を表す安定指標値を算出する安定指標値算出ステップを更に有し、
前記把持姿勢評価ステップにおいては、前記負荷指標値算出ステップにより算出された前記負荷指標値及び前記安定指標値算出ステップにより算出された安定指標値に基づいて、前記把持姿勢が適正か否かを評価する請求項１１に記載の把持姿勢評価プログラム。
【請求項１３】
前記ロボットが前記ワークを搬送する際の動作軌道を生成する動作軌道生成ステップを更に有し、
前記負荷指標値算出ステップにおいては、前記動作軌道生成ステップにおいて生成された前記動作軌道に従って前記ロボットが前記ロボットハンドにより前記ワークを把持して搬送する場合の前記負荷指標値を算出し、
前記安定指標値算出ステップにおいては、前記動作軌道生成ステップにより生成された前記動作軌道に従って前記ロボットが前記ロボットハンドにより前記ワークを把持して搬送する場合の前記安定指標値を算出し、
前記把持姿勢評価ステップにおいて把持姿勢が適正でないと評価される度に、前記把持姿勢導出ステップによる新たな把持姿勢の導出及び前記動作軌道生成ステップによる新たな動作軌道の生成の少なくとも一方、前記負荷指標値算出ステップによる負荷指標値の算出、前記安定指標値算出ステップによる安定指標値の算出及び前記把持姿勢評価ステップによる評価が繰り返される請求項１２に記載の把持姿勢評価プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持姿勢評価装置及び把持姿勢評価プログラムに関する。
【背景技術】
【０００２】
ロボットのティーチング作業においては、ロボットがロボットハンドにより把持したワークが落下しないように、作業者が把持姿勢等を含む搬送条件を調整する。把持姿勢は、把持の安定性を考慮して決定されることが一般的であり、トライアンドエラーによりワークが落下しない把持姿勢が作業者により決定されている。
【０００３】
トライアンドエラーにより把持姿勢を決定する場合、最適な把持姿勢を得るには、作業者の熟練が必要となる。作業者の熟練度によっては、最適な把持姿勢が得られなかったり、また、得られるまでに多大な時間を要したりする場合がある。さらに、バラ積みされたワークをロボットによってピッキングさせるような事例においては、ワークの向きが定まっていないため、起こり得るワークの向きを想定して複数の最適な把持姿勢をティーチングする必要があった。
【０００４】
このため、自動で適正な把持姿勢を得ることが望まれている。これに関連して、ワーク（対象物）の三次元形状と対象物の内容物の状態とに基づいて、ロボットによる対象物の搬送方法を自動で決定し、決定された搬送方法に基づいてロボットを制御する制御装置が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−０３４６８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１記載の発明では、搬送方法として、対象物の把持姿勢を自動で決定するものの、把持姿勢は、対象物の内容物を拡散させないことを目的として決定される。これでは、対象物が安定的な搬送されるかもしれないが、ロボットに無理な負荷がかかる場合があり、ロボットの負荷という観点においては適切な把持姿勢を達成できるとは言えない。もし、ロボットに無理な負荷がかかる把持姿勢でロボットに搬送を行わせた場合、ロボットが非常停止してしまい、作業を継続できなくなる。
【０００７】
本発明は、上記の点に鑑みてなされたものであり、ロボットの負荷を考慮して、対象物の適正な把持姿勢を評価できる把持姿勢評価装置及び把持姿勢評価プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る把持姿勢評価装置は、ロボットが備えるロボットハンドがワークを把持する際のロボットハンドの把持姿勢を導出する把持姿勢導出部と、把持姿勢導出部により導出された把持姿勢によりロボットハンドがワークを把持して搬送する場合の、ロボットにかかる負荷を表す負荷指標値を算出する負荷指標値算出部と、負荷指標値算出部により算出された負荷指標値に基づいて、把持姿勢が適正か否かを評価する把持姿勢評価部と、を有し、把持姿勢評価部により把持姿勢が適正でないと評価される度に、把持姿勢導出部による新たな把持姿勢の導出、負荷指標値算出部による負荷指標値の算出及び把持姿勢評価部による評価を繰り返す。
【０００９】
把持姿勢導出部により導出された把持姿勢によりロボットハンドがワークを把持して搬送する場合の、ワークの把持の安定性を表す安定指標値を算出する安定指標値算出部を更に有し、把持姿勢評価部は、負荷指標値算出部により算出された負荷指標値及び安定指標値算出部により算出された安定指標値に基づいて、把持姿勢が適正か否かを評価しうる。
【００１０】
ロボットがワークを搬送する際の動作軌道を生成する動作軌道生成部を更に有し、負荷指標値算出部は、動作軌道生成部により生成された動作軌道に従ってロボットがロボットハンドによりワークを把持して搬送する場合の負荷指標値を算出し、安定指標値算出部は、動作軌道生成部により生成された動作軌道に従ってロボットがロボットハンドによりワークを把持して搬送する場合の安定指標値を算出し、把持姿勢評価部により把持姿勢が適正でないと評価される度に、把持姿勢導出部による新たな把持姿勢の導出及び動作軌道生成部による新たな動作軌道の生成の少なくとも一方、負荷指標値算出部による負荷指標値の算出、安定指標値算出部による安定指標値の算出及び把持姿勢評価部による評価を繰り返しうる。
【００１１】
負荷指標値算出部は、算出した負荷指標値が適正か否かを評価し、負荷指標値算出部により負荷指標値が適正でないと評価された場合、適正でないと評価された負荷指標値に関する把持姿勢を把持姿勢評価部により評価することなく、把持姿勢導出部により新たな把持姿勢を導出しうる。
【００１２】
安定指標値算出部は、算出した安定指標値が適正か否かを評価し、安定指標値算出部により安定指標値が適正でないと評価された場合、適正でないと評価された安定指標値に関する把持姿勢を把持姿勢評価部により評価することなく、把持姿勢導出部により新たな把持姿勢を導出しうる。
【００１３】
ワークを取り上げ又は載置する場合に、把持姿勢導出部により導出した把持姿勢を、ロボットが実現可能か否かを評価する把持可能性評価部を更に有し、把持可能性評価部によりロボットの姿勢が実現不可能と評価された場合、把持姿勢導出部は、把持可能性評価部により評価された姿勢に関する把持姿勢とは異なる新たな把持姿勢を更に導出しうる。
【００１４】
把持姿勢導出部は、複数の把持姿勢を導出し、把持姿勢評価部は、把持姿勢導出部により導出された複数の把持姿勢の各々ついて適正か否かを判断し、複数の把持姿勢のうち適正と判断した把持姿勢が複数存在する場合、適正と判断した複数の把持姿勢の各々について負荷指標値算出部により算出された負荷指標値を比較して、最適な把持姿勢を決定しうる。
【００１５】
把持姿勢導出部は、複数の把持姿勢を導出し、把持姿勢評価部は、把持姿勢導出部により導出された複数の把持姿勢の各々ついて適正か否かを判断し、複数の把持姿勢のうち適正と判断した把持姿勢が複数存在する場合、適正と判断した複数の把持姿勢の各々について負荷指標値算出部により算出された負荷指標値及び安定指標値算出部により算出された安定指標値をそれぞれ比較して、最適な把持姿勢を決定しうる。
【００１６】
把持姿勢導出部は、ロボットハンド及びワークの相対的な位置関係をランダムに決定することにより、把持姿勢を導出しうる。
【００１７】
把持姿勢導出部は、前記ロボットハンドが取り付けられるロボットの手先位置と前記ワークの重心位置が一致するところから優先的に把持姿勢を導出し、把持姿勢の導出回数を重ねる程、ロボットハンドが取り付けられるロボットの手先と、ワークの重心との距離が離れるように、把持姿勢を導出しうる。
【００１８】
本発明に係る把持姿勢評価プログラムによれば、ロボットが備えるロボットハンドがワークを把持する際のロボットハンドの把持姿勢を導出する把持姿勢導出ステップと、把持姿勢導出ステップにより導出された把持姿勢によりロボットハンドがワークを把持して搬送する場合の、ロボットにかかる負荷を表す負荷指標値を算出する負荷指標値算出ステップと、負荷指標値算出ステップにより算出された負荷指標値に基づいて、把持姿勢が適正か否かを評価する把持姿勢評価ステップと、を有し、把持姿勢評価ステップにより把持姿勢が適正でないと評価される度に、把持姿勢導出ステップにより新たな把持姿勢を導出し、負荷指標値算出ステップによる負荷指標値の算出及び把持姿勢評価ステップによる評価を繰り返す、ことをコンピュータに実行させる。
【００１９】
把持姿勢導出ステップにより導出された把持姿勢によりロボットハンドがワークを把持して搬送する場合の、ワークの把持の安定性を表す安定指標値を算出する安定指標値算出ステップを更に有し、把持姿勢評価ステップにおいては、負荷指標値算出ステップにより算出された負荷指標値及び安定指標値算出ステップにより算出された安定指標値に基づいて、把持姿勢が適正か否かを評価しうる。
【００２０】
ロボットがワークを搬送する際の動作軌道を生成する動作軌道生成ステップを更に有し、負荷指標値算出ステップにおいては、動作軌道生成ステップにおいて生成された動作軌道に従ってロボットがロボットハンドによりワークを把持して搬送する場合の負荷指標値を算出し、安定指標値算出ステップにおいては、動作軌道生成ステップにより生成された動作軌道に従ってロボットがロボットハンドによりワークを把持して搬送する場合の安定指標値を算出し、把持姿勢評価ステップにおいて把持姿勢が適正でないと評価される度に、把持姿勢導出ステップによる新たな把持姿勢の導出及び動作軌道生成ステップによる新たな動作軌道の生成の少なくとも一方、負荷指標値算出ステップによる負荷指標値の算出、安定指標値算出ステップによる安定指標値の算出及び把持姿勢評価ステップによる評価が繰り返されうる。
【発明の効果】
【００２１】
本発明の把持姿勢評価装置及び把持姿勢評価プログラムによれば、ロボットの負荷を考慮して、対象物の適正な把持姿勢を評価できる。
【図面の簡単な説明】
【００２２】
【図１】ロボット及び把持姿勢評価装置の概略構成を示す図である。
【図２】垂直多関節ロボットであるロボットの構成を示す図である。
【図３】第１実施形態に係る把持姿勢評価装置のハードウェア構成を示すブロック図である。
【図４】把持姿勢評価装置の機能構成の例を示すブロック図である。
【図５】ロボットハンドとワークの一例を示す図である。
【図６】ロボットハンドによりワークを把持する把持姿勢の例を示す図である。
【図７】例示する把持姿勢における、把持姿勢指標値及び負荷指標値の例を示す図である。
【図８】把持姿勢評価処理の流れを示すフローチャートである。
【図９】第２実施形態に係る把持姿勢評価処理の流れを示すフローチャートである。
【図１０】第３実施形態に係る把持姿勢評価装置の機能構成の例を示す図である。
【図１１】第３実施形態の把持姿勢評価処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【００２４】
（第１実施形態）
図１は、ロボット及び把持姿勢評価装置の概略構成を示す図である。
【００２５】
図１に示すように、把持姿勢評価装置１０は、ロボットＲＢに接続され、ロボットＲＢを制御する。把持姿勢評価装置１０は、ロボットＲＢを制御する制御装置の一機能として、制御装置に組み込まれても良い。
【００２６】
把持姿勢評価装置１０は、搬送の対象物であるワーク等をロボットＲＢが把持する姿勢を評価する装置である。把持姿勢評価装置１０の詳細な構成については、後述する。
【００２７】
ロボットＲＢは、例えば、先端にエンドエフェクタとしてロボットハンドＨが取り付けられたロボットアームＡを有する。ロボットＲＢは、ロボットハンドＨでワークを把持することによってワークを保持した状態となる。そして、ワークを保持した状態で所定の目的地まで搬送し、ワークの保持を解除してワークを載置する。このように、ロボットＲＢは、ワークを所定の場所で取り上げ、目的地に載置する、いわゆるピックアンドプレース装置である。
【００２８】
把持姿勢評価装置１０の詳細について説明する前に、ロボットＲＢの構成について説明する。本実施形態では、一例としてロボットＲＢが垂直多関節ロボットである場合について説明する。しかし、水平多関節ロボット（スカラーロボット）等にも本発明は適用可能である。また、パラレルリンクロボット、ヒューマノイド型ロボット、及びモバイルマニピュレータ等のロボットアームを備えた装置にも本発明は適用可能である。また、ロボットハンドのような把持部を有するモバイルロボット、ドローン等にも本発明は適用可能である。
【００２９】
図２は、垂直多関節ロボットであるロボットの構成を示す図である。
【００３０】
図２に示すように、ロボットＲＢは、ベースリンクＢＬ、リンクＬ１〜Ｌ６、ジョイントＪ１〜Ｊ６を備えた６自由度の６軸ロボットである。なお、ジョイントとは、リンク同士を接続する関節である。ジョイントＪ１〜Ｊ６は、図示しないモータによりリンク同士を回転可能に接続する。また、以下では、リンクＬ１〜Ｌ６及びリンクＬ６に接続されたロボットハンドＨを含めてロボットアームと称する。
【００３１】
ベースリンクＢＬとリンクＬ１とは、図２において鉛直軸Ｓ１を中心として矢印Ｃ１方向に回転するジョイントＪ１を介して接続されている。従って、リンクＬ１は、ジョイントＪ１を支点として矢印Ｃ１方向に回転する。
【００３２】
リンクＬ１とリンクＬ２とは、図２において水平軸Ｓ２を中心として矢印Ｃ２方向に回転するジョイントＪ２を介して接続されている。従って、リンクＬ２は、ジョイントＪ２を支点として矢印Ｃ２方向に回転する。
【００３３】
リンクＬ２とリンクＬ３とは、図２において軸Ｓ３を中心として矢印Ｃ３方向に回転するジョイントＪ３を介して接続されている。従って、リンクＬ３は、ジョイントＪ３を支点として矢印Ｃ３方向に回転する。
【００３４】
リンクＬ３とリンクＬ４とは、図２において軸Ｓ４を中心として矢印Ｃ４方向に回転するジョイントＪ４を介して接続されている。従って、リンクＬ４は、ジョイントＪ４を支点として矢印Ｃ４方向に回転する。
【００３５】
リンクＬ４とリンクＬ５とは、図２において軸Ｓ５を中心として矢印Ｃ５方向に回転するジョイントＪ５を介して接続されている。従って、リンクＬ５は、ジョイントＪ５を支点として矢印Ｃ５方向に回転する。
【００３６】
リンクＬ５とリンクＬ６とは、図２において軸Ｓ６を中心として矢印Ｃ６方向に回転するジョイントＪ６を介して接続されている。従って、リンクＬ６は、ジョイントＪ６を支点として矢印Ｃ６方向に回転する。なお、図２では図示は省略したが、リンクＬ６にロボットハンドＨが取り付けられる。
【００３７】
ジョイントＪ１〜Ｊ６は、予め定めた回転角度の範囲が可動域として各々設定されている。
【００３８】
ロボットＲＢの姿勢は、ジョイントＪ１〜Ｊ６の各々の回転角度によって定まる。従って、ロボットＲＢを動作させるための動作指令値は、ロボットＲＢが取るべき姿勢に対応したジョイントＪ１〜Ｊ６の各々の回転角度である。例えば、ロボットＲＢがワークを把持する把持姿勢も、ジョイントＪ１〜Ｊ６の回転角度データとして得られる。
【００３９】
次に、把持姿勢評価装置１０について説明する。
【００４０】
図３は、第１実施形態に係る把持姿勢評価装置のハードウェア構成を示すブロック図である。
【００４１】
本実施形態の把持姿勢評価装置１０は、ロボット、ロボットに取り付けられるロボットハンド、ロボットハンドにより把持される対象物であるワークのモデルを用いて、ロボットアームによりワークを把持する際の把持姿勢を評価する。モデルとしては、例えば、ロボット等に働く物理現象を数式で表現した物理モデル、又は実機の計測データからシステム同定あるいは機械学習などにより得られた動的モデルがある。モデルには、ロボット、ロボットハンド及びワークの形状、質量及び重心位置等の情報が含まれる。
【００４２】
図３に示すように、把持姿勢評価装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、ストレージ１４、入力部１５、モニタ１６、光ディスク駆動装置１７及び通信インタフェース１８を有する。各構成は、バス１９を介して相互に通信可能に接続されている。
【００４３】
本実施形態では、ＲＯＭ１２又はストレージ１４には、把持姿勢の評価を実行する把持姿勢評価プログラムが格納されている。ＣＰＵ１１は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４からプログラムを読み出し、ＲＡＭ１３を作業領域としてプログラムを実行する。ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【００４４】
ＲＯＭ１２は、各種プログラム及び各種データを格納する。ＲＡＭ１３は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ１４は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、又はフラッシュメモリにより構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【００４５】
入力部１５は、キーボード１５１、及びマウス１５２等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ１６は、例えば、液晶ディスプレイであり、ワークの吸着の成否等の各種の情報を表示する。モニタ１６は、タッチパネル方式を採用して、入力部１５として機能してもよい。光ディスク駆動装置１７は、各種の記録媒体(ＣＤ−ＲＯＭ又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【００４６】
通信インタフェース１８は、他の機器と通信するためのインタフェースであり、例えば、イーサネット（登録商標）、ＦＤＤＩ又はＷｉ−Ｆｉ（登録商標）等の規格が用いられる。
【００４７】
次に、把持姿勢評価装置１０の機能構成について説明する。
【００４８】
図４は、把持姿勢評価装置の機能構成の例を示すブロック図である。
【００４９】
図４に示すように、把持姿勢評価装置１０は、機能構成として、把持姿勢導出部１０１、安定指標値算出部１０２、負荷指標値算出部１０３、把持姿勢評価部１０４及び把持姿勢出力部１０５を有する。各機能構成は、ＣＰＵ１１がＲＯＭ１２又はストレージ１４に記憶された把持姿勢評価プログラムを読み出し、ＲＡＭ１３に展開して実行することにより実現される。
【００５０】
把持姿勢導出部１０１は、ロボットＲＢが備えるロボットハンドＨが対象物であるワークを把持する際のロボットハンドの把持姿勢を導出する。把持姿勢は、ワークのモデル及びロボットハンドＨのモデルに基づいて、所定の規則に従って、或いはランダムに決定される。把持姿勢の決定について、詳細は後述する。
【００５１】
安定指標値算出部１０２は、把持姿勢導出部１０１により導出された把持姿勢によりロボットハンドＨがワークを把持して搬送する場合の、ワークの把持の安定性を表す安定指標値を算出する。ここで、安定指標値算出部１０２は、把持姿勢導出部１０１により導出された把持姿勢、及び、ワークを把持して搬送する際のロボットＲＢの動作軌道を入力として、安定指標値を算出する。安定指標値は、例えば、ロボット工学の特にハンドリングにおける安定性を示すフォースクロージャ（力拘束）の考え方を適用できる。フォースクロージャは、ワークに対する外力のつり合いの評価指標を表す。或いは、安定指標値には、フォームクロージャ（形態拘束）の考え方を適用してもよい。フォームクロージャは、ワークに対する拘束によってワークが動ける方向がない状態、すなわち拘束状態の評価指標を表す。フォースクロージャ及びフォームクロージャについては、公知の考え方であるので、ここでの説明は省略する。以下の本実施形態では、フォースクロージャを安定指標値として適用する例について説明する。フォースクロージャを安定指標値とした場合、例えば、フォースクロージャとならない場合は、安定指標値は０、フォースクロージャとなる場合は、安定性の高さに応じて、０より大きく１以下の数値を与える。
【００５２】
具体的には、例えば、ロボットハンドＨの仕様やワークＷの重量によって決められるメーカ推奨の把持力をロボットＲＢの把持力として設定し，把持姿勢をランダムに複数回導出した際の安定性の最良値を１とする。回数は多いほど最良値の信憑性が高まるが、実時間で処理できる回数を設定するのが現実的である。ランダムでなく、ロボットハンドＨが取り付けられるロボットＲＢの手先位置とワークＷの重心位置が一致するところから優先的に把持姿勢を導出しても良い。或いは、ワークＷが脆くメーカ推奨の把持力をかけると壊れてしまう場合は、ユーザが一度ロボットハンドＨに任意の姿勢でワークＷを把持させることによって壊れない限界の把持力を特定し、特定された把持力をロボットハンドＨの把持力として設定し、把持姿勢をランダムに複数回導出した際の安定性の最良値を１としてもよい。
【００５３】
負荷指標値算出部１０３は、把持姿勢導出部１０１により導出された把持姿勢によりロボットハンドＨがワークを把持して搬送する場合の、ロボットＲＢに作用する負荷を表す負荷指標値を算出する。ここで、ロボットＲＢに作用する負荷は、ロボットＲＢのジョイントＪ１〜Ｊ６を回転させるモータに作用するトルクとして得られる。負荷指標値算出部１０３は、ワークを把持して搬送する際のロボットＲＢの動作軌道、及びワークを搬送する際にロボットＲＢに作用する運動の運動方程式を入力として、負荷指標値を算出する。負荷指標値は、例えば、ロボットＲＢに作用する負荷の大きさに反比例する数値であって、０から１の数値として算出される。すなわち、ロボットＲＢに作用する負荷が大きい程、小さい負荷指標値となるように、負荷指標値が算出される。負荷指標値は、例えば次のような式に（１）により算出される。
【数１】
2020011317.tif 000003
【００５４】
把持姿勢評価部１０４は、少なくとも負荷指標値算出部１０３により算出された負荷指標値に基づいて、把持姿勢が適正か否かを評価する。本実施形態では、把持姿勢評価部１０４は、安定指標値算出部１０２により算出された安定指標値、及び負荷指標値算出部１０３により算出された負荷指標値に基づいて、把持姿勢が適正か否かを評価する。
【００５５】
把持姿勢出力部１０５は、把持姿勢評価部１０４によって適正と評価された把持姿勢により、ロボットＲＢ及びロボットハンドＨを動作させるために、制御信号を出力する。
【００５６】
次に、把持姿勢導出部１０１により導出されるロボットハンドＨによるワークの把持姿勢の例について、説明する。
【００５７】
図５は、ロボットハンドとワークの一例を示す図である。図６は、ロボットハンドによりワークを把持する把持姿勢の例を示す図である。図７は、例示する把持姿勢における、把持姿勢指標値及び負荷指標値の例を示す図である。
【００５８】
本実施形態では、図５に示すように、ロボットハンドＨにより、Ｌ字型のワークＷを把持する場合を例に説明する。ロボットハンドＨによりワークＷを把持する把持姿勢を導き出すための基本となる考え方は、例えば、図６に示される。なお、図６では、白黒の丸により、ワークＷの重心Ｇの位置を示している。
【００５９】
図６には、把持姿勢（Ａ）〜（Ｄ）の４つが例示されている。把持姿勢（Ａ）では、ワークＷの重心ＧとロボットＲＢの手先（リンクＬ６の先端）との距離を最短にする。把持姿勢（Ａ）は、他の把持姿勢と比べて、安定指標値及び負荷指標値に高い値が出やすい。把持姿勢（Ａ）が採用される場合、把持姿勢導出部１０１は、最初に、把持姿勢（Ａ）を導出し、更に、別の把持姿勢の導出の必要がある場合は、重心Ｇを中心としたワークＷとロボットハンドＨとの相対的な角度を変化させたり、重心Ｇに対するワークＷの距離を遠ざけたりすることにより、様々な把持姿勢を導出できる。すなわち、把持姿勢（Ａ）が採用される場合、把持姿勢導出部１０１は、把持姿勢の導出回数を重ねる程、ロボットＲＢの手先と、ワークＷの重心Ｇとの距離が離れるように、把持姿勢を導出する。
【００６０】
把持姿勢（Ｂ）では、ロボットハンドＨの中心（重心）とワークＷの重心Ｇとを一致させる。把持姿勢（Ｂ）は、把持姿勢（Ａ）よりも安定指標値及び負荷指標値は低くなる傾向がある。把持姿勢（Ｂ）が採用される場合、把持姿勢導出部１０１は、最初に、把持姿勢（Ｂ）を導出し、更に、別の把持姿勢の導出の必要がある場合は、重心Ｇを中心としたワークＷとロボットハンドＨとの相対的な角度を変化させたり、重心Ｇに対するワークＷの重心Ｇまでの距離を遠ざけたりすることにより、様々な把持姿勢を導出できる。すなわち、把持姿勢（Ｂ）が採用される場合、把持姿勢導出部１０１は、把持姿勢の導出回数を重ねる程、ロボットハンドＨの中心と、ワークＷの重心Ｇとの距離が離れるように、把持姿勢を導出する。
【００６１】
把持姿勢（Ｃ）では、ロボットハンドＨによる把持位置と、ワークＷの重心Ｇとを一致させる。把持姿勢（Ｃ）は、安定性の高い把持姿勢であるが、ワークＷの形状によっては把持が実現できない。また、負荷指標値は低くなる傾向がある。把持姿勢（Ｃ）が採用される場合、把持姿勢導出部１０１は、最初に、把持姿勢（Ｃ）を導出し、更に、別の把持姿勢の導出の必要がある場合は、重心Ｇを中心としたワークＷとロボットハンドＨとの相対的な角度を変化させたり、把持位置とワークＷの重心Ｇまでの距離を遠ざけたりすることにより、様々な把持姿勢を導出できる。
【００６２】
このように、把持姿勢（Ａ）〜（Ｃ）の何れかが採用される場合、それぞれの把持姿勢を起点として、少しずつ把持姿勢をずらしていくことにより、様々な把持姿勢が得られる。あるいは、把持姿勢（Ａ）〜（Ｃ）が全て採用されても良い。この場合、例えば、把持姿勢（Ａ）〜（Ｃ）が順に採用され、把持姿勢が算出される。
【００６３】
また、把持姿勢（Ａ）〜（Ｃ）以外に、把持姿勢（Ｄ）のように、ランダムに把持姿勢が決定されても良い。ランダムの場合、導出される把持姿勢に規則性がないため、安定指標値及び負荷指標値が安定しない。しかし、ランダムな把持姿勢（Ｄ）によれば、規則性に縛られず、把持姿勢が偏らないため、最適な把持姿勢が得られる可能性がある。
【００６４】
上記のように、様々な考え方に基づいて、把持姿勢が導出されうる。しかし、把持姿勢の導出は上記の考え方に限定されず、いかなる考え方によって導出されても良い。
【００６５】
なお、上記のような把持姿勢（Ａ）〜（Ｄ）により把持姿勢が決定された場合の安定指標値及び負荷指標値は、例えば、図７に示す表のようになる。図７によれば、把持姿勢（Ａ）の場合、把持姿勢指標値及び負荷指標値が、それぞれ、０．６及び０．９である。ここで、把持姿勢評価部１０４は、把持姿勢指標値及び負荷指標値の合計値である１．５を評価値として算出する。把持姿勢（Ｂ）の場合、把持姿勢指標値及び負荷指標値が、それぞれ、０．２及び０．５である。把持姿勢評価部１０４は、把持姿勢指標値及び負荷指標値の合計値である０．７を評価値として算出する。把持姿勢（Ｃ）の場合、上記のワークＷの形状の例ではロボットハンドＨがワークＷを把持できない。このため、把持姿勢指標値及び負荷指標値が算出できず、評価値も得られない。把持姿勢（Ｄ）の場合、ランダムな姿勢で一義的に把持姿勢が求められないので、把持姿勢指標値及び負荷指標値は、いずれも０．０〜１．０の可能性があり、評価値は、０．０〜２．０となる。
【００６６】
このように、把持姿勢評価部１０４は、把持姿勢指標値及び負荷指標値に基づいて、評価値を算出できる。なお、把持姿勢評価部１０４は、把持姿勢指標値及び負荷指標値にそれぞれ重みを付けて、評価値を算出しても良い。
【００６７】
次に、把持姿勢評価装置１０の作用について説明する。
【００６８】
図８は、把持姿勢評価処理の流れを示すフローチャートである。ＣＰＵ１１がＲＯＭ１２又はストレージ１４から把持姿勢評価プログラムを読み出して、ＲＡＭ１３に展開し実行することにより、把持姿勢評価処理が行なわれる。
【００６９】
最初に、ＣＰＵ１１は、ワークＷのモデルを取得し（ステップＳ１０１）、更に、ロボットハンドＨのモデルを取得する（ステップＳ１０２）。具体的には、ＣＰＵ１１は、ワークＷ及びロボットハンドＨのモデルとして、ワークＷ及びロボットハンドＨの形状、質量及び重心位置の情報を取得する。
【００７０】
ＣＰＵ１１は、把持姿勢導出部１０１として、把持姿勢を導出する（ステップＳ１０３）。把持姿勢の導出は、上述の通りである。例えば、ＣＰＵ１１は、図６の把持姿勢（Ａ）の把持姿勢を導出する。続けて、ＣＰＵ１１は、ロボットＲＢがワークＷを搬送する際の動作軌道を取得する（ステップＳ１０４）。ここで、動作軌道は、ロボットＲＢが動作する軌道のことであり、ロボットＲＢの各ジョイントＪ１〜Ｊ６の角度、角速度及び角加速度等のデータの時系列の集合として表される。
【００７１】
ＣＰＵ１１は、安定指標値算出部１０２として、ステップＳ１０３において導出された把持姿勢、及びステップＳ１０４で取得した動作軌道に基づいて、安定指標値を算出する（ステップＳ１０５）。ＣＰＵ１１は、算出した安定指標値が適正か否か判断する（ステップＳ１０６）。安定指標値が適正か否かは、所定の閾値と比較することにより判断される。例えば、安定指標値が、０．０から１．０の値の範囲内で算出される場合、当該範囲内の数値として閾値が設定される。閾値は、例えば、０．３として設定される。この場合、ステップＳ１０５において算出した安定指標値が０．３以上の場合、ステップＳ１０６において、安定指標値が適正と判断される。閾値は、作業者が必要とする安定性に応じて、適宜決定される。
【００７２】
安定指標値が適正でない場合（ステップＳ１０６：ＮＯ）、ＣＰＵ１１は、ステップＳ１０３に戻り、別の把持姿勢を導出する。別の把持姿勢は、例えば、ワークＷの重心Ｇを中心としたワークＷとロボットハンドＨとの相対的な角度を変化させたり、重心Ｇに対するワークＷの距離を遠ざけたりすることにより、導出される。
【００７３】
安定指標値が適正である場合（ステップＳ１０６：ＹＥＳ）、ＣＰＵ１１は、ワークＷの搬送によりロボットＲＢに作用する運動方程式を取得する（ステップＳ１０７）。
【００７４】
ＣＰＵ１１は、負荷指標値算出部１０３として、ステップＳ１０３において導出された把持姿勢、ステップＳ１０４で取得した動作軌道、及びステップＳ１０７で取得した運動方程式に基づいて、負荷指標値を算出する（ステップＳ１０８）。ＣＰＵ１１は、算出した負荷指標値が適正か否か判断する（ステップＳ１０９）。負荷指標値が適正か否かは、所定の閾値と比較することにより判断される。例えば、負荷指標値が、０．０から１．０の値の範囲内で算出される場合、当該範囲内の数値として閾値が設定される。閾値は、例えば、０．３として設定される。この場合、ステップＳ１０８において算出した負荷指標値が０．３以上の場合、ステップＳ１０９において、安定指標値が適正と判断される。閾値は、作業者が許容できる負荷に応じて、適宜決定される。
【００７５】
負荷指標値が適正でない場合（ステップＳ１０９：ＮＯ）、ＣＰＵ１１は、ステップＳ１０３に戻り、別の把持姿勢を導出する。
【００７６】
負荷指標値が適正である場合（ステップＳ１０９：ＹＥＳ）、ＣＰＵ１１は、把持姿勢評価部１０４として、評価値を算出する（ステップＳ１１０）。評価値は、例えば、ステップＳ１０５で算出した安定指標値及びステップＳ１０８で算出した負荷指標値の合計値である。
【００７７】
ＣＰＵ１１は、評価値が適正か否か判断する（ステップＳ１１１）。評価値が適正か否かは、所定の閾値と比較することにより判断される。例えば、評価値が、０．０から２．０の値の範囲内で算出される場合、当該範囲内の数値として閾値が設定される。閾値は、例えば、１．２として設定される。この場合、ステップＳ１１０において算出した評価値が１．２以上の場合、ステップＳ１１１において、評価値が適正と判断される。閾値は、作業者により適宜決定される。
【００７８】
評価値が適正でない場合（ステップＳ１１１：ＮＯ）、ＣＰＵ１１は、ステップＳ１０３に戻り、別の把持姿勢を導出する。
【００７９】
評価値が適正である場合（ステップＳ１１１：ＹＥＳ）、ＣＰＵ１１は、ステップＳ１１１で評価値が適正であると判断された把持姿勢を、最適な把持姿勢であると特定し、ストレージ１４に記憶する（ステップＳ１１２）。そして、ＣＰＵ１１は、把持姿勢評価処理を終了する。なお、この後の処理として、ＣＰＵ１１は、把持姿勢出力部１０５として、ストレージ１４に記憶された最適な把持姿勢により、ロボットＲＢを制御し、ワークＷの搬送に適用する。
【００８０】
以上のように、第１実施形態の把持姿勢評価装置１０によれば、負荷指標値算出部１０３により算出された負荷指標値に基づいて、把持姿勢が適正か否か判断する。従って、ロボットＲＢに作用する負荷を考慮して、ワークの適正な把持姿勢を評価できる。
【００８１】
また、把持姿勢評価装置１０は、安定指標値算出部１０２により算出した安定指標値も考慮する。従って、ロボットＲＢに作用する負荷だけでなく、ワークＷが安定的に搬送されることも考慮して、ワークの適正な把持姿勢を評価できる。
【００８２】
把持姿勢評価装置１０は、安定指標値自体についても個別に適正か否かを判断し、安定指標値が所定の閾値を満足しなければ、別の把持姿勢を導出する。従って、安定しない把持姿勢の場合、評価値を算出するまでもなく、別の把持姿勢を検討できる。適正な把持姿勢をより早く探索できる。
【００８３】
把持姿勢評価装置１０は、負荷指標値自体についても個別に適正か否かを判断し、負荷指標値が所定の閾値を満足しなければ、別の把持姿勢を導出する。従って、負荷が大きい把持姿勢の場合、評価値を算出するまでもなく、別の把持姿勢を検討できる。適正な把持姿勢をより早く探索できる。
【００８４】
把持姿勢評価装置１０は、把持姿勢を導出する際に、まずは、ロボットＲＢの手先の位置がワークＷの重心Ｇの位置に最も近づくような把持姿勢とする。そして、把持姿勢が適正でなければ、徐々にロボットハンドＨとワークＷとの相対な位置関係が変化するように、把持姿勢を導出する。ロボットＲＢの手先の位置がワークＷの重心Ｇの位置に近い程、安定指標値及び負荷指標値が大きくなりやすいので、完全にランダムに把持姿勢を導出する場合に比べて、適正な把持姿勢を早く発見しやすい。
【００８５】
一方、把持姿勢評価装置１０は、把持姿勢を完全にランダムに導出することもできる。この場合、ロボットＲＢの手先の位置がワークＷの重心Ｇの位置に近い把持姿勢という制限がないので、把持姿勢に偏りができず、より大きな評価値の把持姿勢を発見できる可能性がある。
【００８６】
以上、第１実施形態の把持姿勢評価装置１０について説明した。しかし、本発明は、第１実施形態に限定されない。種々な改良又は改変が可能である。
【００８７】
例えば、上記第１実施形態では、安定指標値及び負荷指標値の両方から評価値を算出している。しかし、ステップＳ１０５、ステップＳ１０６、ステップＳ１１０、及びステップＳ１１１を省略して、負荷指標値自体を評価値としても良い。
【００８８】
以下に、更なる改変例について、説明する。
【００８９】
（第２実施形態）
第１実施形態においては、図８のステップＳ１１１において、評価値が適正な把持姿勢が１つ見つかった時点で、最適な把持姿勢とみなして、ステップＳ１１２に進んでいた。第２実施形態では、評価値が適正な把持姿勢を複数求め、その中から最適な把持姿勢を特定する。
【００９０】
図９は、第２実施形態に係る把持姿勢評価処理の流れを示すフローチャートである。なお、図９に示す把持姿勢評価処理においては、多くのステップが第１実施形態の把持姿勢評価処理と重複する。従って、図９において図８と同様のステップには同様の参照符号を付して説明を省略する。すなわち、図９のステップＳ１０１〜ステップＳ１１１は、図８のステップＳ１０１〜ステップＳ１１１と同様である。
【００９１】
評価値が適正である場合（ステップＳ１１１：ＹＥＳ）、ＣＰＵ１１は、適正と判断した評価値と、当該評価値の把持姿勢とを関連付けてストレージ１４に記憶する（ステップＳ２０１）。
【００９２】
ＣＰＵ１１は、適正と判断してストレージ１４に記憶した評価値が所定数以上か否か判断する（ステップＳ２０２）。ここで、所定数は、任意に決定される。所定数は、例えば１０である。
【００９３】
ストレージ１４に記憶した評価値の数が所定数未満の場合（ステップＳ２０２：ＮＯ）、ＣＰＵ１１は、ステップＳ１０３に戻り、新たな把持姿勢を導出する。
【００９４】
一方、ストレージ１４に記憶した評価値の数が所定数以上の場合（ステップＳ２０２：ＹＥＳ）、ＣＰＵ１１は、ストレージ１４に記憶されている評価値のうち最も高い値に関連づけられている把持姿勢を最適な把持姿勢として特定する（ステップＳ２０３）。
【００９５】
以上のように、第２実施形態の把持姿勢評価装置１０によれば、把持姿勢導出部１０１は、複数の把持姿勢を導出する。そして、把持姿勢評価部１０４は、把持姿勢導出部１０１により導出された複数の把持姿勢の各々の評価値について適正か否か判断する。把持姿勢評価部１０４は、複数の把持姿勢のうち適正と判断した把持姿勢が複数存在する場合、適正と判断した複数の把持姿勢の各々について算出された評価値を比較して、最適な把持姿勢を決定する。従って、図８に示す把持姿勢評価処理よりも、最適な把持姿勢を特定しうる。
【００９６】
なお、図９のステップＳ２０２において、適正な評価値の把持姿勢の数の代わりに、ステップＳ１０３で導出した把持姿勢の数が所定数以上か否かを判断しても良い。この場合、例えば、所定数は、５０〜１００００等に設定される。このように、導出する把持姿勢の数をカウントし、さらに、所定数を多めに設定することで、網羅的に導出された複数の把持姿勢について、評価値を算出し、最適な把持姿勢を特定できる。また、導出する数に上限を設けるため、演算時間が長くなり過ぎることを防止できる。
【００９７】
また、上記第２実施形態では、安定指標値及び負荷指標値の両方から評価値を算出している。しかし、ステップＳ１０５、ステップＳ１０６、ステップＳ１１０、及びステップＳ１１１を省略して、負荷指標値自体を評価値としても良い。
【００９８】
（第３実施形態）
第３実施形態では、第１実施形態に更に追加の構成を含む。
【００９９】
図１０は、第３実施形態に係る把持姿勢評価装置の機能構成の例を示す図である。
【０１００】
図１０に示すように、第３実施形態に係る把持姿勢評価装置１０は、追加の構成として、始／終点姿勢算出部１１０、把持可能性評価部１１１及び動作軌道生成部１１２を有する。各機能構成は、ＣＰＵ１１がＲＯＭ１２又はストレージ１４に記憶された把持姿勢評価プログラムを読み出し、ＲＡＭ１３に展開して実行することにより実現される。
【０１０１】
始／終点姿勢算出部１１０及び把持可能性評価部１１１は、把持姿勢導出部１０１を支援する機能を実現する。具体的には、始／終点姿勢算出部１１０は、ロボットＲＢがワークＷを取り上げる場合のロボットＲＢの姿勢、及びロボットＲＢがワークＷを載置する場合のロボットＲＢの姿勢の少なくとも一方を算出する。ここで、例えば、把持姿勢導出部１０１は、図示しない三次元カメラ又は赤外線カメラの画像情報からワークＷの現在（初期）の位置及び姿勢を取得する。そして、把持姿勢導出部１０１によりロボットハンドＨのモデル及びワークＷのモデルから導出された把持姿勢を、取得したワークＷの現在の位置及び姿勢に当てはめる。換言すると、始／終点姿勢算出部１１０は、現在の位置及び姿勢のワークＷを、導出された把持姿勢により把持する時のロボットＲＢの姿勢を始点姿勢として算出する。
【０１０２】
更に、始／終点姿勢算出部１１０は、図示しない三次元カメラ又は赤外線カメラにより、ワークＷを搬送する目標位置の画像情報を取得する。始／終点姿勢算出部１１０は、取得した目標位置の画像情報から、目標位置まで搬送し載置した時のワークＷの目標の位置及び姿勢を決定する。そして、把持姿勢導出部１０１によりロボットハンドＨのモデル及びワークＷのモデルから導出された把持姿勢を、目標位置におけるワークＷの位置及び姿勢に当てはめる。換言すると、始／終点姿勢算出部１１０は、目標の位置及び姿勢のワークＷを、導出された把持姿勢により把持する時のロボットＲＢの姿勢を終点姿勢として算出する。
【０１０３】
なお、始／終点姿勢算出部１１０は、ワークＷの現在の位置及び姿勢、並びにワークＷの目標の位置及び姿勢を、作業者が予め登録した規定値として取得しても良い。
【０１０４】
把持可能性評価部１１１は、始／終点姿勢算出部１１０により算出したロボットＲＢの始点姿勢及び終点姿勢が、ロボットＲＢが実現可能な姿勢か否かを評価する。
【０１０５】
動作軌道生成部１１２は、ロボットＲＢがワークＷを搬送する際のロボットＲＢの動作の軌道を生成する。動作軌道は、例えば、作業者が予め規定値として登録したワークＷの現在の位置及び姿勢からワークＷの目標の位置及び姿勢を結ぶ軌道である。或いは、動作軌道は、上記の始／終点姿勢算出部１１０により算出されたワークＷの現在の位置及び姿勢からワークＷの目標の位置及び姿勢を結ぶ軌道である。動作軌道生成部１１２は、例えば、ＲＲＴ（Ｒａｐｉｄｌｙ−ｅｘｐｌｏｒｉｎｇ  Ｒａｎｄｏｍ  Ｔｒｅｅ）又はＰＲＭ（Ｐｒｏｂａｂｉｌｉｓｔｉｃ  Ｒｏａｄｍａｐ）などのランダムサンプリング手法、或いは、ＣＨＯＭＰ（Ｃｏｖａｒｉａｎｔ  Ｈａｍｉｌｔｏｎｉａｎ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  Ｍｏｔｉｏｎ  Ｐｌａｎｎｉｎｇ）又はＳＴＯＭＰ（Ｓｔｏｃｈａｓｔｉｃ  Ｔｒａｊｅｃｔｏｒｙ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  Ｍｏｔｉｏｎ  Ｐｌａｎｎｉｎｇ）などの最適化手法により、軌道を生成できる。このような手法を用いることにより、始点から終点までの経路を高速に探索し、動作軌道を生成できる。そして、動作軌道は生成の度にランダムに変更され得る。
【０１０６】
次に、第３実施形態の把持姿勢評価装置１０の作用について説明する。
【０１０７】
図１１は、第３実施形態の把持姿勢評価処理の流れを示すフローチャートである。なお、第３実施形態の把持姿勢評価処理の一部のステップは、図８に示す処理と同様である。図１１において図８と同様のステップについては、図８と同様の参照番号を付し、説明を省略する。
【０１０８】
ＣＰＵ１１は、ステップＳ１０３において把持姿勢を導出した後、始／終点姿勢算出部１１０として、始点におけるロボットＲＢの姿勢及び終点におけるロボットＲＢの姿勢を算出する（ステップＳ３０１）。ここで、ＣＰＵ１１は、ワークＷの現在の位置及び姿勢、並びにワークＷの目標の位置及び姿勢に、ステップＳ１０３において導出した把持姿勢を適用することにより、始点におけるロボットＲＢの姿勢及び終点におけるロボットＲＢの姿勢を算出する。
【０１０９】
続けて、ＣＰＵ１１は、把持可能性評価部１１１として、算出した把持姿勢の実現の可能性を評価する（ステップＳ３０２）。具体的には、ＣＰＵ１１は、ステップＳ３０１において算出した始点及び終点におけるロボットＲＢの姿勢がそれぞれ、実際にロボットＲＢの可動により実現できるか否か判断する。始点及び終点の少なくとも一方において、ロボットＲＢの可動範囲を超えている場合、ステップＳ１０３において導出した把持姿勢は実現可能性がないことになる。また、ワークＷの周辺に障害物があるなどして、導出した把持姿勢を実行するとロボットＲＢが障害物に接触する場合、ステップＳ１０３において導出した把持姿勢は実現可能性がないことになる。
【０１１０】
ＣＰＵ１１は、把持姿勢が実現可能か否か判断する（ステップＳ３０３）。把持姿勢が実現可能でない場合（ステップＳ３０３：ＮＯ）、ＣＰＵ１１は、ステップＳ１０３に戻る。ステップＳ１０３に戻った場合、ＣＰＵ１１は、ステップＳ３０４において、新たな動作軌道を生成することになる。従って、ステップＳ１０３において導出される把持姿勢と、ステップＳ３０４において生成される動作軌道とがランダムに組み合わされ、最適な把持姿勢と動作軌道との組み合わせも探索されることになる。
【０１１１】
把持姿勢が実現可能である場合（ステップＳ３０３：ＹＥＳ）、ＣＰＵ１１は、ステップＳ３０１で算出した始点から終点まで、ロボットＲＢが動作する動作軌道を生成する（ステップＳ３０４）。そして、ＣＰＵ１１は、生成した動作軌道をロボットＲＢが動作する際の安定指標値及び負荷指標値を算出する（ステップＳ１０５、ステップＳ１０８）。
【０１１２】
以上のように、第３実施形態においては、実際のワークＷの位置及び姿勢、並びに目標とするワークＷの位置及び姿勢に、算出した把持姿勢が対応できるか否かを判断する。対応できない場合には、即座に新しい把持姿勢の導出に移るため、実現できないワークＷの把持姿勢に関する試行を低減できる。結果として、把持姿勢の最適化を効率的に実現できる。
【０１１３】
また、ステップＳ１０３に戻る度に、ステップＳ１０３における把持姿勢の導出と、ステップＳ３０４における動作軌道の生成とが、繰り返される。従って、把持姿勢の導出と、動作軌道の生成とが１回だけ試行される場合と比べて、高い確率で、ロボットＲＢに作用する負荷が小さい把持姿勢が得られうる。なお、図１１のフローチャートに、図９のステップＳ２０１及びステップＳ２０２を適用しても良い。この場合、確実に、把持姿勢の導出と、動作軌道の生成が繰り返される。
【０１１４】
なお、上記第３実施形態においては、ロボットの動作軌道を特定の手法により生成する点について説明した。しかし、ロボットの負荷が最適であった動作軌道をストレージ１４等のデータベースに蓄積し、過去の最適な動作軌道を基準として、今回の動作軌道を生成しても良い。過去に採用した動作軌道を参照することにより、作業者の好み等に合わせた動作軌道が生成可能となる。
【０１１５】
また、上記第３実施形態においては、図１１に示すように、ステップＳ１０６において安定性指標値が適正でない場合、ステップＳ１０３まで戻っていた。そして、把持姿勢が実現可能である限り、ステップＳ１０３の把持姿勢の導出及びステップＳ３０４の動作軌道の生成の両方を繰り返していた。しかし、必ずしも把持姿勢の導出及び動作軌道の生成の両方を繰り返さなくても良い。例えば、ワークＷの種類、大きさ又は質量等によって、或いは、ユーザの指定によって、把持姿勢の導出及び動作軌道の生成の少なくとも一方だけを繰り返しても良い。把持姿勢の導出だけでなく、動作軌道の生成によっても、負荷及び安定性が変化するため、動作軌道の生成を繰り返すことも有意義である。
【０１１６】
上記第１実施形態から第３実施形態においては、ロボットＲＢに装着されたロボットハンドＨによりワークＷを把持する場合について説明した。しかし、本発明は、ワークＷを把持する場合に限定されず、ロボットハンドＨの代わりに吸着パッド等により吸着保持する場合にも適用できる。
【０１１７】
なお、上記各実施形態でＣＰＵがソフトウェア（プログラム）を読み込んで実行した把持姿勢評価処理を、ＣＰＵ以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の製造後に回路構成を変更可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、及びＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、把持姿勢評価処理を、これらの各種のプロセッサのうちの１つで実行してもよいし、同種又は異種の２つ以上のプロセッサの組み合わせ（例えば、複数のＦＰＧＡ、及びＣＰＵとＦＰＧＡとの組み合わせ等）で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【０１１８】
また、上記各実施形態では、把持姿勢評価処理のプログラムがＲＯＭ１２又はストレージ１４に予め記憶（インストール）されている態様を説明したが、これに限定されない。プログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及びＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【０１１９】
１０   把持姿勢評価装置
１１   ＣＰＵ
１２   ＲＯＭ
１３   ＲＡＭ
１４   ストレージ
１５   入力部
１６   モニタ
１７   光ディスク駆動装置
１８   通信インタフェース
１９   バス
１０１ 把持姿勢導出部
１０２ 安定指標値算出部
１０３ 負荷指標値算出部
１０４ 把持姿勢評価部
１０５ 把持姿勢出力部
１１０ 始／終点姿勢算出部
１１１ 把持可能性評価部
１１２ 動作軌道生成部
ＲＧ   ロボット
Ｈ     ロボットハンド
【図１】
2020011317.tif 000004
【図２】
2020011317.tif 000005
【図３】
2020011317.tif 000006
【図４】
2020011317.tif 000007
【図５】
2020011317.tif 000008
【図６】
2020011317.tif 000009
【図７】
2020011317.tif 000010
【図８】
2020011317.tif 000011
【図９】
2020011317.tif 000012
【図１０】
2020011317.tif 000013
【図１１】
2020011317.tif 000014