(57)【要約】【課題】ビンピッキング動作を含むロボットのワークハンドリング作業をオフラインで的確にシミュレートして、ロボットと周辺物との相互干渉を事前に確認できるようにする。【解決手段】ロボットシミュレーション装置１０は、センサモデル１６Ｍ、ロボットモデル１８Ｍ及びばら積み状態の複数のワークモデル２０Ｍを仮想作業環境２２に配置する作業環境モデル設定部２４と、センサモデル及びロボットモデルにワーク検出動作及びビンピッキング動作を模擬的に遂行させる動作シミュレート部２６とを備える。動作シミュレート部は、センサモデルにワークモデルを撮像させてその仮想画像ＭＩを生成するワークモデル画像生成部２８と、仮想画像から取出対象ワークモデルを特定してその仮想位置ＭＰを検出するワークモデル位置検出部３０と、仮想位置に基づきロボットモデルに取出対象ワークモデルをピッキングさせるロボットモデル動作制御部３２とを備える。【選択図】図１
2007241857.tif 000002
【特許請求の範囲】
【請求項１】
視覚センサを有するロボットの動作をオフラインで模擬的に遂行するロボットシミュレーション装置において、
視覚センサ、ロボット及びワークをそれぞれにモデル化したセンサモデル、ロボットモデル及びワークモデルを、複数の該ワークモデルが無作為に積み重ねられた状態で、仮想作業環境に配置する作業環境モデル設定部と、
前記仮想作業環境に配置した前記センサモデル及び前記ロボットモデルに、該仮想作業環境に配置した前記複数のワークモデルに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部とを具備し、
前記動作シミュレート部は、
前記センサモデルに前記複数のワークモデルを模擬的に撮像させて、撮像した該複数のワークモデルの仮想画像を生成するワークモデル画像生成部と、
前記ワークモデル画像生成部が生成した前記複数のワークモデルの前記仮想画像から、取出対象ワークモデルを特定して、該取出対象ワークモデルの仮想位置を検出するワークモデル位置検出部と、
前記ワークモデル位置検出部が検出した前記取出対象ワークモデルの前記仮想位置に基づき、前記ロボットモデルに、該取出対象ワークモデルに対する前記ビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部とを具備すること、
を特徴とするロボットシミュレーション装置。
【請求項２】
前記動作シミュレート部が前記センサモデル及び前記ロボットモデルに模擬的に遂行させる前記ワーク検出動作及び前記ビンピッキング動作の、サイクルタイムを算出するサイクルタイム算出部をさらに具備する、請求項１に記載のロボットシミュレーション装置。
【請求項３】
前記動作シミュレート部が前記センサモデル及び前記ロボットモデルに模擬的に遂行させる前記ワーク検出動作及び前記ビンピッキング動作の、それぞれの成功率を指定する成功率指定部をさらに具備し、前記サイクルタイム算出部は、該成功率指定部で指定した該ワーク検出動作及び該ビンピッキング動作のそれぞれの該成功率を考慮して、前記サイクルタイムを算出する、請求項２に記載のロボットシミュレーション装置。
【請求項４】
前記ワークモデル位置検出部及び前記ロボットモデル動作制御部は、前記成功率指定部で指定した前記ワーク検出動作及び前記ビンピッキング動作のそれぞれの前記成功率に基づき、該ワーク検出動作及び該ビンピッキング動作を再試行し、前記サイクルタイム算出部は、該ワーク検出動作及び該ビンピッキング動作の該再試行に要する時間を加算して、前記サイクルタイムを算出する、請求項３に記載のロボットシミュレーション装置。
【請求項５】
前記成功率指定部は、前記ワーク検出動作及び前記ビンピッキング動作のそれぞれの前記成功率を所望範囲で指定し、前記サイクルタイム算出部は、該成功率指定部で指定した該所望範囲の該成功率に対応して、前記サイクルタイムを所与の範囲で算出する、請求項３又は４に記載のロボットシミュレーション装置。
【請求項６】
前記動作シミュレート部は、予め定めたロボット動作プログラムに従い、前記センサモデル及び前記ロボットモデルに前記ワーク検出動作及び前記ビンピッキング動作をそれぞれ模擬的に遂行させる、請求項１〜５のいずれか１項に記載のロボットシミュレーション装置。
【請求項７】
前記ロボットモデル動作制御部は、前記ワークモデル位置検出部が検出した前記取出対象ワークモデルの前記仮想位置に対応して、前記ロボット動作プログラムを補正するとともに、補正した該ロボット動作プログラムに従い、前記ロボットモデルに前記ビンピッキング動作を模擬的に遂行させる、請求項６に記載のロボットシミュレーション装置。
【請求項８】
前記ワークモデル画像生成部は、前記ワークモデルの３次元データに基づき、前記センサモデルが撮像した前記複数のワークモデルの２次元の前記仮想画像を生成する、請求項１〜７のいずれか１項に記載のロボットシミュレーション装置。
【請求項９】
前記ワークモデル位置検出部は、前記ワークモデル画像生成部が生成した前記２次元の仮想画像から特定した前記取出対象ワークモデルに対し、３次元計測を模擬的に遂行する、請求項８に記載のロボットシミュレーション装置。
【請求項１０】
視覚センサを有するロボットの動作をオフラインで模擬的に遂行するために、コンピュータを、
ａ）視覚センサ、ロボット及びワークをそれぞれにモデル化したセンサモデル、ロボットモデル及びワークモデルを、複数の該ワークモデルが無作為に積み重ねられた状態で、仮想作業環境に配置する作業環境モデル設定部、並びに
ｂ）前記仮想作業環境に配置した前記センサモデル及び前記ロボットモデルに、該仮想作業環境に配置した前記複数のワークモデルに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部であって、
前記センサモデルに前記複数のワークモデルを模擬的に撮像させて、撮像した該複数のワークモデルの仮想画像を生成するワークモデル画像生成部と、
前記ワークモデル画像生成部が生成した前記複数のワークモデルの前記仮想画像から、取出対象ワークモデルを特定して、該取出対象ワークモデルの仮想位置を検出するワークモデル位置検出部と、
前記ワークモデル位置検出部が検出した前記取出対象ワークモデルの前記仮想位置に基づき、前記ロボットモデルに、該取出対象ワークモデルに対する前記ビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部とを具備する動作シミュレート部、
として機能させるためのロボットシミュレーションプログラム。
【請求項１１】
視覚センサを有するロボットの動作をオフラインで模擬的に遂行するために、コンピュータを、
ａ）視覚センサ、ロボット及びワークをそれぞれにモデル化したセンサモデル、ロボットモデル及びワークモデルを、複数の該ワークモデルが無作為に積み重ねられた状態で、仮想作業環境に配置する作業環境モデル設定部、並びに
ｂ）前記仮想作業環境に配置した前記センサモデル及び前記ロボットモデルに、該仮想作業環境に配置した前記複数のワークモデルに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部であって、
前記センサモデルに前記複数のワークモデルを模擬的に撮像させて、撮像した該複数のワークモデルの仮想画像を生成するワークモデル画像生成部と、
前記ワークモデル画像生成部が生成した前記複数のワークモデルの前記仮想画像から、取出対象ワークモデルを特定して、該取出対象ワークモデルの仮想位置を検出するワークモデル位置検出部と、
前記ワークモデル位置検出部が検出した前記取出対象ワークモデルの前記仮想位置に基づき、前記ロボットモデルに、該取出対象ワークモデルに対する前記ビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部とを具備する動作シミュレート部、
として機能させるためのロボットシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
視覚センサを有するロボットの動作を、コンピュータを用いてオフラインで模擬的に遂行するためのロボットシミュレーション方法において、
コンピュータの作業環境モデル設定部が、視覚センサ、ロボット及びワークをそれぞれにモデル化したセンサモデル、ロボットモデル及びワークモデルを、複数の該ワークモデルが無作為に積み重ねられた状態で、仮想作業環境に配置する作業環境モデル設定ステップと、
コンピュータの動作シミュレート部が、前記仮想作業環境に配置した前記センサモデル及び前記ロボットモデルに、該仮想作業環境に配置した前記複数のワークモデルに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレートステップとを具備し、
前記動作シミュレートステップは、
前記センサモデルに前記複数のワークモデルを模擬的に撮像させて、撮像した該複数のワークモデルの仮想画像を生成するステップと、
生成した前記複数のワークモデルの前記仮想画像から、取出対象ワークモデルを特定して、該取出対象ワークモデルの仮想位置を検出するステップと、
検出した前記取出対象ワークモデルの前記仮想位置に基づき、前記ロボットモデルに、該取出対象ワークモデルに対する前記ビンピッキング動作を模擬的に遂行させるステップとを具備すること、
を特徴とするロボットシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するロボットシミュレーション装置に関する。本発明はまた、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するためのプログラム及び記録媒体に関する。本発明はさらに、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するロボットシミュレーション方法に関する。
【背景技術】
【０００２】
ロボット、特に産業用ロボットを用いた生産システムにおいて、無作為に積み重ねられた非整列状態（すなわちばら積み状態）の物体（すなわちワーク）を、ロボットのアーム端に装着したハンドで把持して取り出すいわゆるビンピッキング動作を含むワークハンドリング作業は、従来、様々な局面で行なわれている。一般に、ビンピッキング動作を含むワークハンドリング作業では、ハンドに隣接してロボットのアーム端に設置した視覚センサが、ばら積み状態の複数のワークから取出対象ワークを特定して、３次元計測法により、取出対象ワークの位置及び姿勢を計測する。ロボットは、視覚センサが計測した取出対象ワークの位置及び姿勢データに基づき、アームに最適な運動を遂行させて、ばら積み状態のワークから取出対象ワークを取り出す。
【０００３】
上記したビンピッキング動作に際しては、無作為配置したワーク群から順次特定される取出対象ワークは、多様な位置及び姿勢を呈しているから、取出対象ワークが変わるに従い、要求されるロボットアームの運動が様々に変化する。したがって通常、視覚センサを有するロボット（実機）を実際に動作させて、ばら積み状態のワーク（実物）に対するビンピッキング動作を試行させることで、アームの位置及び姿勢の教示を行なっている。このような方法では、ロボット自体又はロボットが把持したワークと、その周辺物（取出対象ワーク以外のワークやワーク収納容器等）との衝突（すなわち相互干渉）を予測することが、通常は困難である。したがって、作成されたワークハンドリング作業の動作プログラムは、そのような相互干渉を考慮しないものとなる。
【０００４】
一般にロボットは、周辺物との相互干渉が生じたときにそれを迅速に検知して、瞬時に動作停止するように制御される。ビンピッキング動作を含むワークハンドリング作業では、この種の予期しない相互干渉が比較的生じ易いので、ロボットの動作停止が頻繁に繰返されて作業効率が低下することが懸念される。そこで従来、ロボットが周辺物との相互干渉等により動作停止したときに、その要因の分析に必要な情報をロボットの動作履歴から取得して、動作停止状況を実機ロボット又はシミュレーション装置で再現することで、ロボットの作業領域の見直し、動作プログラムの修正等を行なえるようにするシステムが提案されている（例えば特許文献１参照）。
【０００５】
【特許文献１】特開２００５−１０３６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述した特許文献１に開示される従来のロボットシステムは、例えばビンピッキング動作を含むワークハンドリング作業をロボットが実行する間に、周辺物との相互干渉等によりロボットが動作停止した場合に、その動作停止状況を再現することでシステムを改善できるようにしたものである。つまり、シミュレーションにより予めロボットの動作停止を予測するものではないから、実際に動作停止状況が生じるまでは、ロボットの動作プログラムを最適化することが困難である。特に前述したように、ビンピッキング動作を含むワークハンドリング作業では、多様な位置及び姿勢を呈する個々のワークに対し、アームの運動を様々に変化させてロボットを動作させる必要が有る。したがって、ワークハンドリング作業のサイクルタイムを最短にするような動作プログラムの最適化を図るためには、実機ロボットによるシミュレーションを繰り返し行なって、平均的なサイクルタイムを算出することが要求され、その結果、システムの立ち上げに要する時間及び費用が増大することが懸念される。
【０００７】
ところで、ロボットシステムを用いた生産現場の稼動率を向上させるべく、コンピュータにロボット及びその作業環境のモデルを持たせ、表示画面上でロボットモデルに所望のロボット動作を模擬的に遂行させることで、実機ロボットに教示すべき位置／姿勢データ及び動作順序データを得るオフライン教示法が知られている。このようなオフライン教示法を、上記したビンピッキング動作を含むワークハンドリング作業を実行するロボットの教示法に採用すれば、システム立ち上げに要する時間及び費用を効果的に削減できると考えられる。しかしながら、ビンピッキング動作を含むワークハンドリング作業をオフライン教示するための有効なシミュレーション技術は、未だ開発されていない。
【０００８】
本発明の目的は、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するロボットシミュレーション装置において、ビンピッキング動作を含むワークハンドリング作業を的確にシミュレートでき、以って、ロボットと周辺物との相互干渉を予備的に確認しつつワークハンドリング作業のサイクルタイムを迅速に算出することを可能にして、最適な動作プログラムを短時間及び低コストで作成できるようにするロボットシミュレーション装置を提供することにある。
【０００９】
本発明の他の目的は、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するためのプログラム及び記録媒体であって、ビンピッキング動作を含むワークハンドリング作業を的確にシミュレートするように、コンピュータを機能させることができるプログラム、及び同プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することにある。
【００１０】
本発明のさらに他の目的は、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するロボットシミュレーション方法であって、コンピュータを用いて、ビンピッキング動作を含むワークハンドリング作業を的確にシミュレートでき、以って、ロボットと周辺物との相互干渉を予備的に確認しつつワークハンドリング作業のサイクルタイムを迅速に算出することを可能にして、最適な動作プログラムを短時間及び低コストで作成できるようにするロボットシミュレーション方法を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１に記載の発明は、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するロボットシミュレーション装置において、視覚センサ、ロボット及びワークをそれぞれにモデル化したセンサモデル、ロボットモデル及びワークモデルを、複数のワークモデルが無作為に積み重ねられた状態で、仮想作業環境に配置する作業環境モデル設定部と、仮想作業環境に配置したセンサモデル及びロボットモデルに、仮想作業環境に配置した複数のワークモデルに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部とを具備し、動作シミュレート部は、センサモデルに複数のワークモデルを模擬的に撮像させて、撮像した複数のワークモデルの仮想画像を生成するワークモデル画像生成部と、ワークモデル画像生成部が生成した複数のワークモデルの仮想画像から、取出対象ワークモデルを特定して、取出対象ワークモデルの仮想位置を検出するワークモデル位置検出部と、ワークモデル位置検出部が検出した取出対象ワークモデルの仮想位置に基づき、ロボットモデルに、取出対象ワークモデルに対するビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部とを具備すること、を特徴とするロボットシミュレーション装置を提供する。
【００１２】
請求項２に記載の発明は、請求項１に記載のロボットシミュレーション装置において、動作シミュレート部がセンサモデル及びロボットモデルに模擬的に遂行させるワーク検出動作及びビンピッキング動作の、サイクルタイムを算出するサイクルタイム算出部をさらに具備する、ロボットシミュレーション装置を提供する。
【００１３】
請求項３に記載の発明は、請求項２に記載のロボットシミュレーション装置において、動作シミュレート部がセンサモデル及びロボットモデルに模擬的に遂行させるワーク検出動作及びビンピッキング動作の、それぞれの成功率を指定する成功率指定部をさらに具備し、サイクルタイム算出部は、成功率指定部で指定したワーク検出動作及びビンピッキング動作のそれぞれの成功率を考慮して、サイクルタイムを算出する、ロボットシミュレーション装置を提供する。
【００１４】
請求項４に記載の発明は、請求項３に記載のロボットシミュレーション装置において、ワークモデル位置検出部及びロボットモデル動作制御部は、成功率指定部で指定したワーク検出動作及びビンピッキング動作のそれぞれの成功率に基づき、ワーク検出動作及びビンピッキング動作を再試行し、サイクルタイム算出部は、ワーク検出動作及びビンピッキング動作の再試行に要する時間を加算して、サイクルタイムを算出する、ロボットシミュレーション装置を提供する。
【００１５】
請求項５に記載の発明は、請求項３又は４に記載のロボットシミュレーション装置において、成功率指定部は、ワーク検出動作及びビンピッキング動作のそれぞれの成功率を所望範囲で指定し、サイクルタイム算出部は、成功率指定部で指定した所望範囲の成功率に対応して、サイクルタイムを所与の範囲で算出する、ロボットシミュレーション装置を提供する。
【００１６】
請求項６に記載の発明は、請求項１〜５のいずれか１項に記載のロボットシミュレーション装置において、動作シミュレート部は、予め定めたロボット動作プログラムに従い、センサモデル及びロボットモデルにワーク検出動作及びビンピッキング動作をそれぞれ模擬的に遂行させる、ロボットシミュレーション装置を提供する。
【００１７】
請求項７に記載の発明は、請求項６に記載のロボットシミュレーション装置において、ロボットモデル動作制御部は、ワークモデル位置検出部が検出した取出対象ワークモデルの仮想位置に対応して、ロボット動作プログラムを補正するとともに、補正したロボット動作プログラムに従い、ロボットモデルにビンピッキング動作を模擬的に遂行させる、ロボットシミュレーション装置を提供する。
【００１８】
請求項８に記載の発明は、請求項１〜７のいずれか１項に記載のロボットシミュレーション装置において、ワークモデル画像生成部は、ワークモデルの３次元データに基づき、センサモデルが撮像した複数のワークモデルの２次元の仮想画像を生成する、ロボットシミュレーション装置を提供する。
【００１９】
請求項９に記載の発明は、請求項８に記載のロボットシミュレーション装置において、ワークモデル位置検出部は、ワークモデル画像生成部が生成した２次元の仮想画像から特定した取出対象ワークモデルに対し、３次元計測を模擬的に遂行する、ロボットシミュレーション装置を提供する。
【００２０】
請求項１０に記載の発明は、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するために、コンピュータを、ａ）視覚センサ、ロボット及びワークをそれぞれにモデル化したセンサモデル、ロボットモデル及びワークモデルを、複数のワークモデルが無作為に積み重ねられた状態で、仮想作業環境に配置する作業環境モデル設定部、並びにｂ）仮想作業環境に配置したセンサモデル及びロボットモデルに、仮想作業環境に配置した複数のワークモデルに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部であって、センサモデルに複数のワークモデルを模擬的に撮像させて、撮像した複数のワークモデルの仮想画像を生成するワークモデル画像生成部と、ワークモデル画像生成部が生成した複数のワークモデルの仮想画像から、取出対象ワークモデルを特定して、取出対象ワークモデルの仮想位置を検出するワークモデル位置検出部と、ワークモデル位置検出部が検出した取出対象ワークモデルの仮想位置に基づき、ロボットモデルに、取出対象ワークモデルに対するビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部とを備える動作シミュレート部、として機能させるためのロボットシミュレーションプログラムを提供する。
【００２１】
請求項１１に記載の発明は、視覚センサを有するロボットの動作をオフラインで模擬的に遂行するために、コンピュータを、ａ）視覚センサ、ロボット及びワークをそれぞれにモデル化したセンサモデル、ロボットモデル及びワークモデルを、複数のワークモデルが無作為に積み重ねられた状態で、仮想作業環境に配置する作業環境モデル設定部、並びにｂ）仮想作業環境に配置したセンサモデル及びロボットモデルに、仮想作業環境に配置した複数のワークモデルに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部であって、センサモデルに複数のワークモデルを模擬的に撮像させて、撮像した複数のワークモデルの仮想画像を生成するワークモデル画像生成部と、ワークモデル画像生成部が生成した複数のワークモデルの仮想画像から、取出対象ワークモデルを特定して、取出対象ワークモデルの仮想位置を検出するワークモデル位置検出部と、ワークモデル位置検出部が検出した取出対象ワークモデルの仮想位置に基づき、ロボットモデルに、取出対象ワークモデルに対するビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部とを備える動作シミュレート部、として機能させるためのロボットシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【００２２】
請求項１２に記載の発明は、視覚センサを有するロボットの動作を、コンピュータを用いてオフラインで模擬的に遂行するためのロボットシミュレーション方法において、コンピュータの作業環境モデル設定部が、視覚センサ、ロボット及びワークをそれぞれにモデル化したセンサモデル、ロボットモデル及びワークモデルを、複数のワークモデルが無作為に積み重ねられた状態で、仮想作業環境に配置する作業環境モデル設定ステップと、コンピュータの動作シミュレート部が、仮想作業環境に配置したセンサモデル及びロボットモデルに、仮想作業環境に配置した複数のワークモデルに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレートステップとを具備し、動作シミュレートステップは、センサモデルに複数のワークモデルを模擬的に撮像させて、撮像した複数のワークモデルの仮想画像を生成するステップと、生成した複数のワークモデルの仮想画像から、取出対象ワークモデルを特定して、取出対象ワークモデルの仮想位置を検出するステップと、検出した取出対象ワークモデルの仮想位置に基づき、ロボットモデルに、取出対象ワークモデルに対するビンピッキング動作を模擬的に遂行させるステップとを備えること、を特徴とするロボットシミュレーション方法を提供する。
【発明の効果】
【００２３】
請求項１に記載の発明によれば、動作シミュレート部が、仮想作業環境に配置したセンサモデル及びロボットモデルに、仮想作業環境に配置した複数のワークモデルに対するワーク検出動作及びビンピッキング動作を模擬的に遂行させることにより、ロボットモデルがビンピッキング動作中に周辺物に対する相互干渉を生じるか否かを確認することができる。したがって、ビンピッキング動作を含むワークハンドリング作業を的確にシミュレートできるので、実際のロボットシステムにおけるロボットと周辺物との相互干渉を予備的に確認しつつワークハンドリング作業のサイクルタイムを迅速に算出することが可能になり、最適なロボット動作プログラムを短時間及び低コストで作成できるようになる。
【００２４】
請求項２に記載の発明によれば、ビンピッキング動作を含むワークハンドリング作業を的確にシミュレートして、実際のロボットシステムにおけるロボットと周辺物との相互干渉を考慮した上で、自ら、ワークハンドリング作業のサイクルタイムを迅速に算出することができる。
【００２５】
請求項３に記載の発明によれば、実際のワークハンドリング作業に一層近似したシミュレーションの結果として、実情に沿ったサイクルタイムを算出できる。
【００２６】
請求項４に記載の発明によれば、ワークモデル位置検出部及びロボットモデル動作制御部は、全てのワークモデルに対する動作シミュレーションにおいて、それぞれに指定した成功率に対応して、ワーク検出動作及びビンピッキング動作の失敗を模擬的に生じて再試行フローを実行する。その結果、サイクルタイム算出部は、ワーク検出動作及びビンピッキング動作の再試行時間を含むサイクルタイムを算出できる。
【００２７】
請求項５に記載の発明によれば、要求されるサイクルタイムを実現可能なワーク検出動作及びビンピッキング動作のそれぞれの成功率を、成功率指定部で指定した範囲の中で確定できる。
【００２８】
請求項６及び７のいずれかに記載の発明によれば、ロボット動作プログラムのオフラインプログラミングの自動化が促進される。
【００２９】
請求項８に記載の発明によれば、予めＣＡＤ（コンピュータ支援設計）等の設計機能により作成された３次元データを使用して、一般的なコンピュータグラフィクスの手法により、複数のワークモデルの２次元の仮想画像を生成することができる。
【００３０】
請求項９に記載の発明によれば、実際の作業環境で視覚センサが取出対象ワークの位置（又は位置及び姿勢）を検出する際の３次元計測法を実行して、取出対象ワークモデルの仮想位置を検出することができる。
【００３１】
請求項１０〜１２のいずれかに記載の発明によれば、請求項１に記載の発明と同等の作用効果が奏される。
【発明を実施するための最良の形態】
【００３２】
以下、添付図面を参照して、本発明の実施の形態を詳細に説明する。全図面に渡り、対応する構成要素には共通の参照符号を付す。
図面を参照すると、図１は、本発明に係るロボットシミュレーション装置１０の基本構成を示す機能ブロック図、図２は、ロボットシミュレーション装置１０を取り入れたロボットシステム１２の概要を例示する図、図３は、ロボットシミュレーション装置１０に付設可能な表示部１４の表示画面の一例を示す図である。ロボットシミュレーション装置１０は、視覚センサ１６を有するロボット１８の動作をオフラインで模擬的に遂行するものであって、例えばパーソナルコンピュータ（ＰＣ）等のコンピュータに所要のソフトウェアをインストールすることにより構成できる。なお、ロボットシミュレーション装置１０は、それ自体、オフライン教示（又はオフラインプログラミング）装置と見なすこともできる。
【００３３】
ロボットシミュレーション装置１０は、視覚センサ１６、ロボット１８及びワーク２０をそれぞれにモデル化したセンサモデル１６Ｍ、ロボットモデル１８Ｍ及びワークモデル２０Ｍを、複数のワークモデル２０Ｍが無作為に積み重ねられた非整列状態（すなわちばら積み状態）で、仮想作業環境２２に配置する作業環境モデル設定部２４と、仮想作業環境２２に配置したセンサモデル１６Ｍ及びロボットモデル１８Ｍに、仮想作業環境２２に配置した複数のワークモデル２０Ｍに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部２６とを備える。
【００３４】
動作シミュレート部２６は、センサモデル１６Ｍに複数のワークモデル２０Ｍを模擬的に撮像させて、撮像した複数のワークモデル２０Ｍの仮想画像ＭＩを生成するワークモデル画像生成部２８と、ワークモデル画像生成部２８が生成した複数のワークモデル２０Ｍの仮想画像ＭＩから、取出対象ワークモデル２０Ｍｎを特定して、取出対象ワークモデル２０Ｍｎの仮想位置ＭＰを検出するワークモデル位置検出部３０と、ワークモデル位置検出部３０が検出した取出対象ワークモデル２０Ｍｎの仮想位置ＭＰに基づき、ロボットモデル１８Ｍに、取出対象ワークモデル２０Ｍｎに対するビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部３２とを備える。なお、ワークモデル位置検出部３０が検出する取出対象ワークモデル２０Ｍｎの仮想位置ＭＰとは、位置のみのデータであってもよいし、位置及び姿勢のデータであってもよい。
【００３５】
図２に例示するロボットシステム１２では、垂直多関節型アーム構造を有するロボット１８のアーム先端に、ワーク２０を把持するエンドエフェクタとしてのハンド３４が装着されるとともに、ハンド３４に隣接して、ワーク２０の３次元計測を実行可能な視覚センサ１６が設置される。視覚センサ１６は、例として、撮像装置（例えばＣＣＤカメラ）とレーザ投光器（スポット光又はスリット光）とを備えたレンジファインダの構成を有する。なお、ロボット１８及び視覚センサ１６の構成は、上記に限定されず、他の様々な構成を採用することができる。
【００３６】
複数のワーク２０は、籠型の収納容器３６にばら積み状態で収納されて、ロボット１８の作業環境３８の所定位置に配置される。さらに、ロボット１８及びハンド３４の運動を制御するロボット制御装置（ＲＣ）４０が、ロボット１８に接続され、ワーク２０の位置（又は位置及び姿勢）計測を制御する視覚センサ制御装置（ＳＣ）４２が、視覚センサ１６に接続される。ロボット制御装置４０と視覚センサ制御装置４２とは、データや指令の送受信のために互いに接続される。そして、ロボット制御装置４０及び視覚センサ制御装置４２に、ＬＣＤ（液晶ディスプレイ）等の表示部（Ｄ）１４を付設したロボットシミュレーション装置１０が、ＬＡＮ（構内通信網）等の通信回線４４を介して接続される。
【００３７】
ロボット１８は、ロボット動作プログラム４６（図１）に従い、ロボット制御装置４０による制御下でアーム及びハンド３４を効率良く運動させて、ばら積みされた複数のワーク２０を１つずつ、ハンド３４に把持して収納容器３６から取り出し、作業環境３８の他の所定位置に移送する（ビンピッキング動作）。また、視覚センサ１６は、ロボット動作プログラム４６（図１）に従い、視覚センサ制御装置４２による制御下で、ばら積み状態の複数のワーク２０を最初に２次元計測して、取出対象ワーク２０ｎを特定し、次いで、特定した取出対象ワーク２０ｎを３次元計測して、取出対象ワーク２０ｎの位置（又は位置及び姿勢）を計測する（ワーク検出動作）。ロボット１８は、視覚センサ１６が計測した取出対象ワーク２０ｎの位置（又は位置及び姿勢）データに基づき、アーム及びハンド３４に最適な運動を遂行させて、上記したようにばら積み状態のワーク２０から取出対象ワーク２０ｎを取り出す。なお、ロボット動作プログラム４６は、ロボットシミュレーション装置１０によるシミュレーションの結果として作成されるものであって、シミュレーション中にロボット（アーム）１８又はハンド３４の位置（又は位置及び姿勢）データが適宜補正されるものである。
【００３８】
上記したロボットシステム１２の構成に対応して、ロボットシミュレーション装置１０の作業環境モデル設定部２４で設定される仮想作業環境２２では、図３に表示部１４の表示画面の一例として示すように、ロボットモデル１８Ｍのアーム先端に、ワークモデル２０Ｍを把持するハンドモデル３４Ｍが装着されるとともに、ハンドモデル３４Ｍに隣接して、ワークモデル２０Ｍを３次元計測するセンサモデル１６Ｍが設置される。また、複数のワークモデル２０Ｍは、収納容器モデル３６Ｍにばら積み状態で収納されて、ロボットモデル１８Ｍの仮想作業環境２２の所定位置に配置される。仮想作業環境２２に設置されるこれらモデルのデータに関しては、例えばロボットシミュレーション装置１０自体が任意に有するＣＡＤ（コンピュータ支援設計）等の設計機能により作成する構成としてもよいし、或いはＣＡＤ等の設計機能を有する外部装置によって作成したデータをロボットシミュレーション装置１０に取り込んで使用する構成としてもよい。
【００３９】
上記構成を有するロボットシミュレーション装置１０によれば、動作シミュレート部２６が、仮想作業環境２２に配置したセンサモデル１６Ｍ及びロボットモデル１８Ｍに、仮想作業環境２２に配置した複数のワークモデル２０Ｍに対するワーク検出動作及びビンピッキング動作を模擬的に遂行させることにより、ロボットモデル１８Ｍがビンピッキング動作中に、周辺物に対する相互干渉（すなわちロボットモデル１８Ｍ自体又はロボットモデル１８Ｍが把持した取出対象ワークモデル２０Ｍｎと、取出対象ワークモデル２０Ｍｎ以外のワークモデル２０Ｍや収納容器モデル３６Ｍ等との衝突）を生じるか否かを、（好ましくは表示部１４の表示画面上で）確認することができる。したがって、そのような相互干渉が生じないように、ロボットモデル１８Ｍ（又はハンドモデル３４Ｍ）の位置（又は位置及び姿勢）データを適宜補正することで、ロボット動作プログラム４６を最適化することができる。
【００４０】
特に、ロボットシミュレーション装置１０によれば、多様な位置及び姿勢を呈する個々のワークモデル２０Ｍに対し、ロボットモデル１８Ｍ及びハンドモデル３４Ｍの運動を様々に変化させて、ビンピッキング動作を繰り返し模擬的に遂行することが、極めて容易である。したがって、複数のワークモデル２０Ｍに対するワークハンドリング作業に要するサイクルタイムを迅速に算出でき、サイクルタイムを最短にするようなロボット動作プログラム４６の最適化を容易に実現できる。その結果、生産現場でのロボットシステム１２の立ち上げに要する時間及び費用を効果的に削減することができる。
【００４１】
このように、ロボットシミュレーション装置１０によれば、ビンピッキング動作を含むワークハンドリング作業を的確にシミュレートできるので、実際のロボットシステム１２におけるロボット１８と周辺物との相互干渉を予備的に確認しつつワークハンドリング作業のサイクルタイムを迅速に算出することが可能になり、最適なロボット動作プログラム４６を短時間及び低コストで作成できるようになる。
【００４２】
上記構成において、作業環境モデル設定部２４は、仮想作業環境２２に複数のワークモデル２０Ｍを、収納容器モデル３６Ｍにばら積み状態で収納して配置するが、このようなばら積み状態を、実際の作業環境３８においても予測困難なワーク配置に合致させてモデル化することは、一般に困難である。これに関し、例えばロボットシミュレーション装置１０では、乱数等を用いて複数のワークモデル２０Ｍを収納容器モデル３６Ｍの底部から無作為に積み上げて配置し、これらワークモデル２０Ｍに対し上記シミュレーションを行なうとともに、その結果として作成されたロボット動作プログラム４６のある程度の試行錯誤を経ることで、実際の作業環境３８における予測困難なワークばら積み状態をモデル化する手法を採用することができる。
【００４３】
図４は、本発明の一実施形態によるロボットシミュレーション装置５０の構成を機能ブロック図で示す。ロボットシミュレーション装置５０は、上記したワークハンドリング作業のサイクルタイムの迅速な算出を可能にするための構成を有するものであり、他の基本構成は図１のロボットシミュレーション装置１０で説明したものと同じであるから、対応する構成要素には共通の符号を付してその説明を省略する。
【００４４】
ロボットシミュレーション装置５０は、前述した基本構成に加えて、動作シミュレート部２６がセンサモデル１６Ｍ及びロボットモデル１８Ｍに模擬的に遂行させるワーク検出動作及びビンピッキング動作の、全所要時間であるサイクルタイムＴを算出するサイクルタイム算出部５２をさらに備える。このような構成により、ロボットシミュレーション装置５０は、ビンピッキング動作を含むワークハンドリング作業を的確にシミュレートして、実際のロボットシステム１２におけるロボット１８と周辺物との相互干渉を考慮した上で、自ら、ワークハンドリング作業のサイクルタイムＴを迅速に算出することができる。
【００４５】
上記構成を有するロボットシミュレーション装置５０によるシミュレーション手順の一例を、図５のフローチャートに従って以下に説明する。
前提として、ロボットシミュレーション装置５０は、パーソナルコンピュータ（ＰＣ）に所要のソフトウェアをインストールしたものであって、図４に示す作業環境モデル設定部２４及び動作シミュレート部２６は、ＰＣのＣＰＵ（中央処理装置）が構成するものとする。そして、作業環境モデル設定部２４が設定する仮想作業環境２２（図３）においては、ロボットモデル１８Ｍのアーム先端に装着されたセンサモデル１６Ｍの、撮像装置の視点及び視線方向とレーザ投光器の出射点及び照射方向とが定義され、また、ロボットモデル１８Ｍの近傍に、複数のワークモデル２０Ｍをばら積み状態で収納した収納容器モデル３６Ｍが配置される。
【００４６】
まず、動作シミュレート部２６（ロボットモデル動作制御部３２（図４））が、表示部１４の画面上で、ロボットモデル１８Ｍに適当なアーム運動を生じさせて、センサモデル１６Ｍを、収納容器モデル３６Ｍに収納された複数のワークモデル２０Ｍの上方に配置する。その状態で、動作シミュレート部２６（ワークモデル画像生成部２８（図４））が、センサモデル１６Ｍに、複数のワークモデル２０Ｍを模擬的に撮像させて、撮像した複数のワークモデル２０Ｍの仮想画像ＭＩ（図６（ａ））を生成する（ステップＱ１）。
【００４７】
上記ステップＱ１では、ワークモデル画像生成部２８は、ワークモデル２０Ｍの３次元データ５４（図１）に基づき、センサモデル１６Ｍが撮像した複数のワークモデル２０Ｍの２次元の仮想画像ＭＩを生成することができる。ワークモデル２０Ｍの３次元データ５４は、予めＣＡＤ（コンピュータ支援設計）等の設計機能により作成されて、ロボットシミュレーション装置５０自体又は外部記憶装置に格納されているものを使用できる。このような仮想画像ＭＩの生成は、センサモデル１６Ｍの撮像装置の視点及び視線方向と上記３次元データ５４とに基づいて、一般的なコンピュータグラフィクスの手法により行なうことができる。
【００４８】
次に、ワークモデル位置検出部３０（図４）が、ステップＱ１で１つ以上のワークモデル２０Ｍの仮想画像ＭＩが生成されているか否かを判断し（ステップＱ２）、１つ以上のワークモデル２０Ｍの仮想画像ＭＩが生成されていた場合は、仮想画像ＭＩから取出対象ワークモデル２０Ｍｎ（図３）を特定する（ステップＱ３）。これらステップＱ２及びＱ３では、実際の作業環境３８（図２）で視覚センサ１６（図２）が取得した画像から取出対象ワーク２０ｎを特定する際の、視覚センサ制御装置４２（図２）による２次元計測法を実行することができる。一般には、ばら積みされた複数のワークモデル２０Ｍの中で、最上部に位置するワークモデル２０Ｍが、取出対象ワークモデル２０Ｍｎとなる。なお、ステップＱ２で、仮想画像ＭＩが１つも生成されていないと判断した場合は、収納容器モデル３６Ｍにワークモデル２０Ｍが収納されていないと見做して、後述するサイクルタイム算出ステップＱ９に進む。
【００４９】
ステップＱ３で取出対象ワークモデル２０Ｍｎが特定されると、再びロボットモデル動作制御部３２が、表示部１４の画面上で、ロボットモデル１８Ｍに適当なアーム運動を生じさせて、センサモデル１６Ｍを、取出対象ワークモデル２０Ｍｎにレーザ光を照射できる位置に配置する。その状態で、ワークモデル画像生成部２８が、センサモデル１６Ｍに複数のワークモデル２０Ｍを模擬的に撮像させて仮想画像ＭＩを再度生成し、この仮想画像ＭＩを元に、センサモデル１６Ｍのレーザ投光器からレーザ光（例えばスリット光）を模擬的に照射したときの、取出対象ワークモデル２０Ｍｎを中心とした複数のワークモデル２０Ｍの仮想画像ＭＩ´（図６（ｂ））を生成する。そして、ワークモデル位置検出部３０が、仮想画像ＭＩ´から、レーザ光を照射した取出対象ワークモデル２０Ｍｎの画像データを抽出して、取出対象ワークモデル２０Ｍｎの仮想位置ＭＰ（位置データ又は位置及び姿勢データ）を検出する（ステップＱ４）。
【００５０】
上記ステップＱ４では、ワークモデル画像生成部２８は、ワークモデル２０Ｍの３次元データ５４（図１）に基づき、レーザ光を照射したときの、取出対象ワークモデル２０Ｍｎを中心とした複数のワークモデル２０Ｍの２次元の仮想画像ＭＩ´を生成することができる。この仮想画像ＭＩ´の生成は、センサモデル１６Ｍの撮像装置の視点及び視線方向とレーザ投光器の出射点及び照射方向と上記３次元データ５４とに基づいて、一般的なコンピュータグラフィクスの手法により行なうことができる。また、ワークモデル位置検出部３０は、実際の作業環境３８（図２）で視覚センサ１６（図２）が取出対象ワーク２０ｎの位置（又は位置及び姿勢）を検出する際の、視覚センサ制御装置４２（図２）による３次元計測法を実行することができる。つまり、レーザ光照射前の仮想画像ＭＩとレーザ光照射後の仮想画像ＭＩ´とをＸＯＲ演算して、ワークモデル２０Ｍ上に投影されているレーザ光のみの仮想画像ＬＩ（図６（ｃ））を抽出し、このレーザ光の仮想画像ＬＩから、取出対象ワークモデル２０Ｍｎの仮想位置ＭＰを検出する。
【００５１】
次に、ワークモデル位置検出部３０は、ステップＱ４で取出対象ワークモデル２０Ｍｎの仮想位置ＭＰが検出されているか否かを判断する（ステップＱ５）。取出対象ワークモデル２０Ｍｎの仮想位置ＭＰが検出されていた場合は、ロボットモデル動作制御部３２が、表示部１４の表示画面上で、ロボットモデル１８Ｍ及びハンドモデル３４Ｍに適当な運動を生じさせて、取出対象ワークモデル２０Ｍｎに対するビンピッキング動作を模擬的に遂行させる（ステップＱ６）。また、取出対象ワークモデル２０Ｍｎの仮想位置ＭＰが検出されていないと判断した場合は、３次元計測の失敗と見做して、当該取出対象ワークモデル２０Ｍｎの画像データを仮想画像ＭＩのデータから除外し（ステップＱ７）、前述したステップＱ３に戻って新たな取出対象ワークモデル２０Ｍｎを特定し、再び３次元計測を実行する。
【００５２】
次に、ロボットモデル動作制御部３２は、ステップＱ６で取出対象ワークモデル２０Ｍｎを適正にピッキングできたか否かを判断する（ステップＱ８）。取出対象ワークモデル２０Ｍｎを適正にピッキングできていれば、前述したステップＱ１に戻り、動作シミュレート部２６が、残りのワークモデル２０Ｍに対して、ステップＱ１〜Ｑ８のワーク検出動作及びビンピッキング動作を実行する。また、取出対象ワークモデル２０Ｍｎを適正にピッキングできていないと判断したときには、ビンピッキングの失敗と見做して、前述したステップＱ６に戻り、当該取出対象ワークモデル２０Ｍｎに対するビンピッキング動作を再試行する。
【００５３】
このようにして、ステップＱ２でワークモデル２０Ｍの画像が無いと判断されるまで、ステップＱ１〜Ｑ８を繰返して実行する。ステップＱ２でワークモデル２０Ｍの画像が無いと判断されると、サイクルタイム算出部５２が、複数のワークモデル２０Ｍに対するワーク検出動作及びビンピッキング動作のサイクルタイムＴを算出する（ステップＱ９）。これにより、シミュレーションが終了する。
【００５４】
上記シミュレーションフローにおいて、動作シミュレート部２６のロボットモデル動作制御部３２は、予め定めた（すなわち当該運動の対象となる取出対象ワークモデル２０Ｍｎの位置検出に応じたデータ補正前の）ロボット動作プログラム４６（図１）に従い、ロボットモデル１８Ｍ（ハンドモデル３４Ｍを含む）に模擬的な運動を生じさせることが有利である。この場合、ロボットモデル動作制御部３２は、ワークモデル位置検出部３０が検出した取出対象ワークモデル２０Ｍｎの仮想位置ＭＰに対応して、ロボット動作プログラム４６を補正するとともに、補正したロボット動作プログラム４６に従い、ロボットモデル１８Ｍ（ハンドモデル３４Ｍを含む）にビンピッキング動作を模擬的に遂行させることができる。同様に、上記シミュレーションフローにおいて、動作シミュレート部２６のワークモデル画像生成部２８及びワークモデル位置検出部３０は、予め定めた（すなわち当該運動の対象となる取出対象ワークモデル２０Ｍｎの位置検出に応じたデータ補正前の）ロボット動作プログラム４６（図１）に従い、センサモデル１６Ｍにワーク検出動作を模擬的に遂行させることが有利である。このような構成により、ロボット動作プログラム４６のオフラインプログラミングの自動化が促進される。
【００５５】
ところで、ロボットシステム１２（図２）による実際のワークハンドリング作業では、取出対象ワーク２０ｎの位置検出ステップ及びビンピッキングステップで、レーザ光の検出ミスやワーク把持中の周辺物との干渉等に起因して、３次元計測及びピッキングの失敗を生じることが予測される。そのような場合には、通常、ロボット制御装置４０（図２）は、ロボット１８（図２）に、取出対象ワーク２０ｎに対する３次元計測及びピッキングを再試行させるように構成される。その結果、ワークハンドリング作業のサイクルタイムは必然的に増加する。
【００５６】
これに関連して、ロボットシミュレーション装置５０は、上記シミュレーションフローで説明したように、取出対象ワークモデル２０Ｍｎの仮想位置検出ステップＱ４及びビンピッキングステップＱ６において３次元計測及びピッキングが失敗したときにも、適当に対応してシミュレーションを進めることができるように構成されている。このとき、３次元計測及びピッキングの失敗の頻度（すなわち成功率）を予めデータ化して、成功率に対応したシミュレーションを実行するようにすれば、実際のワークハンドリング作業に一層近似したシミュレーションの結果として、実情に沿ったサイクルタイムを算出できる利点が得られる。
【００５７】
ロボット動作の成功率を予め定量的に考慮した上記シミュレーションを実現するために、ロボットシミュレーション装置５０は、図４に補足して示すように、動作シミュレート部２６がセンサモデル１６Ｍ及びロボットモデル１８Ｍに模擬的に遂行させるワーク検出動作及びビンピッキング動作の、それぞれの成功率Ｓを指定する成功率指定部５６を、さらに備えることができる。この場合、サイクルタイム算出部５２は、成功率指定部５６で指定したワーク検出動作及びビンピッキング動作のそれぞれの成功率Ｓを考慮して、サイクルタイムＴを算出する。
【００５８】
さらに詳述すれば、ワークモデル位置検出部３０及びロボットモデル動作制御部３２は、成功率指定部５６で指定したワーク検出動作及びビンピッキング動作のそれぞれの成功率ＤＳ、ＢＳに基づき、ワーク検出動作及びビンピッキング動作を再試行する（図５のステップＱ５→Ｑ７→Ｑ３及びステップＱ８→Ｑ６）ように構成できる。そして、サイクルタイム算出部５２は、ワーク検出動作及びビンピッキング動作の再試行に要する時間を加算して、サイクルタイムＴを算出する。
【００５９】
例えば、成功率指定部５６でワーク検出動作の成功率ＤＳを９０％と設定したときには、ワークモデル位置検出部３０は、全てのワークモデル２０Ｍに対する動作シミュレーション（図５）において、１０％の割合で、３次元計測の失敗を模擬的に生じてステップＱ５→Ｑ７→Ｑ３の再試行フローを実行する。同様に、成功率指定部５６でビンピッキング動作の成功率ＢＳを８５％と設定したときには、ロボットモデル動作制御部３２は、全てのワークモデル２０Ｍに対する動作シミュレーション（図５）において、１５％の割合で、ピッキングの失敗を模擬的に生じてステップＱ８→Ｑ６の再試行フローを実行する。その結果、サイクルタイム算出部５２は、ワーク検出動作及びビンピッキング動作の再試行時間を含むサイクルタイムＴを算出できる。
【００６０】
成功率指定部５６を有するロボットシミュレーション装置５０による上記したシミュレーション手順は、図７のフローチャートで表すことができる。このシミュレーションフローでは、図示のように、最初に成功率指定部５６で、ワーク検出動作及びビンピッキング動作のそれぞれの成功率ＤＳ、ＢＳを指定する（ステップＲ１）。続いて、動作シミュレート部２６が、ステップＲ１で指定した成功率ＤＳ、ＢＳを考慮しながら、前述したステップＱ１〜Ｑ９を実行する。
【００６１】
上記構成において、成功率指定部５６は、ワーク検出動作及びビンピッキング動作のそれぞれの成功率ＤＳ、ＢＳを所望範囲で指定できることが有利である。この場合、サイクルタイム算出部５２は、成功率指定部５６で指定した所望範囲の成功率ＤＳ、ＢＳに対応して、サイクルタイムＴを所与の範囲で算出する。このような構成によれば、要求されるサイクルタイムＴを実現可能なワーク検出動作及びビンピッキング動作のそれぞれの成功率ＤＳ、ＢＳを、成功率指定部５６で指定した範囲の中で確定できる。特に、指定範囲の中で予めワーク検出動作の成功率ＤＳとビンピッキング動作の成功率ＢＳとの幾つかの組み合わせを設定しておけば、いずれの組み合わせの成功率ＤＳ、ＢＳを採用したときにサイクルタイムＴが許容値になるかを、容易に確認できる。このようにして確定した許容範囲の成功率ＤＳ、ＢＳは、実際のロボットシステム１２（図２）におけるロボット１８の作業領域３８の見直しやロボット動作プログラム４６の修正を行なう際の、指標として利用することができる。
【００６２】
例えば、成功率指定部５６で、ワーク検出動作及びビンピッキング動作の成功率ＤＳ、ＢＳをいずれも９０％以上１００％未満と指定したときに、さらにこの範囲の成功率ＤＳ、ＢＳを例えば１％刻みに細分することで、計１００通りの成功率ＤＳ、ＢＳの組み合わせを設定することができる。このような成功率ＤＳ、ＢＳの細分単位も、成功率指定部５６で自由に指定できるように構成することが有利である。そして、ワークモデル位置検出部３０及びロボットモデル動作制御部３２が、全てのワークモデル２０Ｍに対する動作シミュレーション（図５）において、所望の組み合わせの成功率ＤＳ、ＢＳに従う再試行フローを含むシミュレーションを実行し、サイクルタイム算出部５２が、その成功率ＤＳ、ＢＳでの再試行時間を含むサイクルタイムＴを算出する。このようにして、全てのワークモデル２０Ｍに対し、全ての組み合わせの成功率ＤＳ、ＢＳに従う再試行フローを含むシミュレーションが完了すると、全ての組み合わせの成功率ＤＳ、ＢＳに対応するサイクルタイムＴ（上記例では１００通り）が算出される。そこで、算出したサイクルタイムＴの中から、要求されるサイクルタイムＴを特定すれば、それを実現可能なワーク検出動作及びビンピッキング動作の成功率ＤＳ、ＢＳの組み合わせを特定できる。
【００６３】
許容される成功率ＤＳ、ＢＳの組み合わせを特定する上記したシミュレーション手順は、図８のフローチャートで表すことができる。このシミュレーションフローでは、図示のように、最初に成功率指定部５６で、ワーク検出動作及びビンピッキング動作のそれぞれの成功率ＤＳ、ＢＳを所望範囲で指定するとともに、この範囲の成功率ＤＳ、ＢＳを適当に細分して複数通りの成功率ＤＳ、ＢＳの組み合わせを設定する（ステップＲ２）。そこで、動作シミュレート部２６は、成功率ＤＳ、ＢＳの組み合わせを１つ選択し（ステップＲ３）、続いて、ステップＲ３で選択した成功率ＤＳ、ＢＳを考慮しながら、前述したステップＱ１〜Ｑ９を実行する。ステップＱ９でサイクルタイムを算出した後に、動作シミュレート部２６は、成功率ＤＳ、ＢＳの組み合わせの残りが有るか否かを判断し（ステップＲ４）、残りが有った場合には、ステップＲ３に戻って次の成功率ＤＳ、ＢＳの組み合わせを選択し、残りが無かった場合にはシミュレーションを終了する。
【００６４】
以上、本発明の好適な実施形態を説明したが、ロボットシミュレーション装置１０をパーソナルコンピュータで構成できることから、本発明は下記のように規定することもできる。
すなわち、本発明は、視覚センサ１６を有するロボット１８の動作をオフラインで模擬的に遂行するために、コンピュータ１０を、ａ）視覚センサ１６、ロボット１８及びワーク２０をそれぞれにモデル化したセンサモデル１６Ｍ、ロボットモデル１８Ｍ及びワークモデル２０Ｍを、複数のワークモデル２０Ｍが無作為に積み重ねられた状態で、仮想作業環境２２に配置する作業環境モデル設定部２４、並びにｂ）仮想作業環境２２に配置したセンサモデル１６Ｍ及びロボットモデル１８Ｍに、仮想作業環境２２に配置した複数のワークモデル２０Ｍに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部２６であって、センサモデル１６Ｍに複数のワークモデル２０Ｍを模擬的に撮像させて、撮像した複数のワークモデル２０Ｍの仮想画像ＭＩを生成するワークモデル画像生成部２８と、ワークモデル画像生成部２８が生成した複数のワークモデル２０Ｍの仮想画像ＭＩから、取出対象ワークモデル２０Ｍｎを特定して、取出対象ワークモデル２０Ｍｎの仮想位置ＭＰを検出するワークモデル位置検出部３０と、ワークモデル位置検出部３０が検出した取出対象ワークモデル２０Ｍｎの仮想位置ＭＰに基づき、ロボットモデル１８Ｍに、取出対象ワークモデル２０Ｍｎに対するビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部３２とを備える動作シミュレート部２６、として機能させるためのロボットシミュレーションプログラムである。
【００６５】
また、本発明は、視覚センサ１６を有するロボット１８の動作をオフラインで模擬的に遂行するために、コンピュータ１０を、ａ）視覚センサ１６、ロボット１８及びワーク２０をそれぞれにモデル化したセンサモデル１６Ｍ、ロボットモデル１８Ｍ及びワークモデル２０Ｍを、複数のワークモデル２０Ｍが無作為に積み重ねられた状態で、仮想作業環境２２に配置する作業環境モデル設定部２４、並びにｂ）仮想作業環境２２に配置したセンサモデル１６Ｍ及びロボットモデル１８Ｍに、仮想作業環境２２に配置した複数のワークモデル２０Ｍに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレート部２６であって、センサモデル１６Ｍに複数のワークモデル２０Ｍを模擬的に撮像させて、撮像した複数のワークモデル２０Ｍの仮想画像ＭＩを生成するワークモデル画像生成部２８と、ワークモデル画像生成部２８が生成した複数のワークモデル２０Ｍの仮想画像ＭＩから、取出対象ワークモデル２０Ｍｎを特定して、取出対象ワークモデル２０Ｍｎの仮想位置ＭＰを検出するワークモデル位置検出部３０と、ワークモデル位置検出部３０が検出した取出対象ワークモデル２０Ｍｎの仮想位置ＭＰに基づき、ロボットモデル１８Ｍに、取出対象ワークモデル２０Ｍｎに対するビンピッキング動作を模擬的に遂行させるロボットモデル動作制御部３２とを備える動作シミュレート部２６、として機能させるためのロボットシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００６６】
また、本発明は、視覚センサ１６を有するロボット１８の動作を、コンピュータ１０を用いてオフラインで模擬的に遂行するためのロボットシミュレーション方法において、コンピュータ１０の作業環境モデル設定部２４が、視覚センサ１６、ロボット１８及びワーク２０をそれぞれにモデル化したセンサモデル１６Ｍ、ロボットモデル１８Ｍ及びワークモデル２０Ｍを、複数のワークモデル２０Ｍが無作為に積み重ねられた状態で、仮想作業環境２２に配置する作業環境モデル設定ステップと、コンピュータ１０の動作シミュレート部２６が、仮想作業環境２２に配置したセンサモデル１６Ｍ及びロボットモデル１８Ｍに、仮想作業環境２２に配置した複数のワークモデル２０Ｍに対するワーク検出動作及びビンピッキング動作を、模擬的に遂行させる動作シミュレートステップとを備え、動作シミュレートステップは、センサモデル１６Ｍに複数のワークモデル２０Ｍを模擬的に撮像させて、撮像した複数のワークモデル２０Ｍの仮想画像ＭＩを生成するステップと、生成した複数のワークモデル２０Ｍの仮想画像ＭＩから、取出対象ワークモデル２０Ｍｎを特定して、取出対象ワークモデル２０Ｍｎの仮想位置ＭＰを検出するステップと、検出した取出対象ワークモデル２０Ｍｎの仮想位置ＭＰに基づき、ロボットモデル１８Ｍに、取出対象ワークモデル２０Ｍｎに対するビンピッキング動作を模擬的に遂行させるステップとを備える、ロボットシミュレーション方法である。
【図面の簡単な説明】
【００６７】
【図１】本発明に係るロボットシミュレーション装置の基本構成を示す機能ブロック図である。
【図２】本発明に係るロボットシミュレーション装置を組み込んだロボットシステムの概要を例示する図である。
【図３】図１のロボットシミュレーション装置に付設可能な表示部の表示画面の一例を示す図である。
【図４】本発明の一実施形態によるロボットシミュレーション装置の構成を示す機能ブロック図である。
【図５】図４のロボットシミュレーション装置によるシミュレーション手順の一例を示すフローチャートである。
【図６】図５のシミュレーションフローにおいて生成される仮想画像の一例を示す図で、（ａ）複数のワークモデル、（ｂ）レーザ光を照射したワークモデル、及び（ｃ）レーザ光のみの、それぞれの仮想画像を示す。
【図７】図４のロボットシミュレーション装置によるシミュレーション手順の変形例を示すフローチャートである。
【図８】図４のロボットシミュレーション装置によるシミュレーション手順の他の変形例を示すフローチャートである。
【符号の説明】
【００６８】
１０、５０    ロボットシミュレーション装置
１２    ロボットシステム
１４    表示部
１６    視覚センサ
１６Ｍ    センサモデル
１８    ロボット
１８Ｍ    ロボットモデル
２０    ワーク
２０ｎ    取出対象ワーク
２０Ｍ    ワークモデル
２０Ｍｎ    取出対象ワークモデル
２２    仮想作業環境
２４    作業環境モデル設定部
２６    動作シミュレート部
２８    ワークモデル画像生成部
３０    ワークモデル位置検出部
３２    ロボットモデル動作制御部
４６    ロボット動作プログラム
５２    サイクルタイム算出部
５４    ３次元データ
５６    成功率指定部
【図１】
2007241857.tif 000003
【図２】
2007241857.tif 000004
【図３】
2007241857.tif 000005
【図４】
2007241857.tif 000006
【図５】
2007241857.tif 000007
【図６】
2007241857.tif 000008
【図７】
2007241857.tif 000009
【図８】
2007241857.tif 000010