図面 (/)

技術 ロボットシミュレーション装置、ロボットシミュレーション方法、ロボットシミュレーションプログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器

出願人 株式会社キーエンス
発明者 高山直輝山内逸平下平真達
出願日 2017年3月3日 (3年11ヶ月経過) 出願番号 2017-040971
公開日 2018年9月20日 (2年5ヶ月経過) 公開番号 2018-144156
状態 特許登録済
技術分野 マニプレータ
主要キーワード 許容回転角度 不定位置 排除条件 難領域 投下位置 姿勢条件 排除対象 つやなし
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年9月20日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

ピッキング動作シミュレーションの結果、取り出しが不可能なワークモデルが存在する場合の原因の解析支援する。

解決手段

バラ積みデータ生成部で生成されたバラ積みデータに基づいて、仮想作業空間内のワークモデルのバラ積みピッキング動作を検証するためのピッキング動作シミュレート部と、ピッキング動作シミュレート部によるピッキング動作シミュレーションの結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、当該ワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析するための原因解析部24と、原因解析部24による解析の結果を表示させるための表示部とを備える。

概要

背景

マニピュレータロボットビジョンを組み合わせて、対象となるワークを撮像して高さ情報を取得した上で、適切な位置を把持ピック)して、所望の位置に載置(プレース又はプレースメント)可能なロボット装置が開発されている。このようなロボット装置を用いて、バラ積みピッキングと呼ばれる、通い箱に入れられた多数のワークを、カメラセンサ部で撮像して姿勢を把握し、適切な把持位置を把握した上で、この把持位置までロボットアームを移動させ、ハンド部等のエンドエフェクタで把持して、通い箱の外の決められた位置にプレースすることが行われている。

このバラ積みピッキングを正しく運用できるよう、予めバラ積みピッキングを行うロボットのピックやプレース動作シミュレーションを三次元的に行うロボットシミュレーション装置が開発されている。このようなロボットシミュレーション装置では、ワークの三次元形状を有するCADモデルワークモデルとして、仮想作業空間無作為に配置して、ロボットの取出工程、すなわちバラ積みピッキングをシミュレーションしている。

このようなバラ積みピッキングシミュレーションではワークがとり切れずに残ってしまうことがある。この場合は、残ってしまったワークをピッキングできるように、ユーザ側で設定を変更する必要がある。

しかしながら従来のロボットシミュレーション装置では、シミュレーションでピッキングに失敗した場合に、その原因や解決策が提示されないため、ユーザがどのようにパラメータ等を変更すればよいのかが分からないという問題があった。また、パラメータを変更した場合においても、当該変更がどの程度効果的であったのかを検証することができなかった。

概要

ピッキング動作シミュレーションの結果、取り出しが不可能なワークモデルが存在する場合の原因の解析支援する。バラ積みデータ生成部で生成されたバラ積みデータに基づいて、仮想作業空間内のワークモデルのバラ積みピッキング動作を検証するためのピッキング動作シミュレート部と、ピッキング動作シミュレート部によるピッキング動作シミュレーションの結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、当該ワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析するための原因解析部24と、原因解析部24による解析の結果を表示させるための表示部とを備える。

目的

本発明は、このような事情に鑑みてなされたものであり、その目的の一は、シミュレーション結果、取り出しが不可能なワークモデルが存在する場合に、その原因の解析を支援し、シミュレーション条件の再設定に資するようにしたロボットシミュレーション装置、ロボットシミュレーション方法ロボットシミュレーションプログラム及びコンピュータ読み取り可能な記録媒体並びに記録した機器を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

作業空間に積み上げられた複数のワークをロボットによって順次取り出すバラ積みピッキング動作シミュレーションするためのロボットシミュレーション装置であって、ワークの三次元形状をモデル化したワークモデルを設定するためのワークモデル設定部と、前記ワークモデル設定部で設定された複数のワークモデルを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータを生成するためのバラ積みデータ生成部と、前記バラ積みデータ生成部で生成されたバラ積みデータに基づいて、前記仮想作業空間内の前記ワークモデルのバラ積みピッキング動作を検証するためのピッキング動作シミュレート部と、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、当該ワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析するための原因解析部と、前記原因解析部による解析の結果を表示させるための表示部とを備えるロボットシミュレーション装置。

請求項2

請求項1に記載のロボットシミュレーション装置であって、前記原因解析部が、原因候補としてロボットの動作範囲外か否かを解析するよう構成してなるロボットシミュレーション装置。

請求項3

請求項1に記載のロボットシミュレーション装置であって、前記原因解析部が、原因候補としてロボットとワークモデル又はワークモデルを投入する容器を仮想的に表示させる容器モデルとの干渉の有無を解析するよう構成してなるロボットシミュレーション装置。

請求項4

請求項1に記載のロボットシミュレーション装置であって、前記原因解析部が、原因候補としてロボットと周囲の障害物モデルとの干渉の有無を解析するよう構成してなるロボットシミュレーション装置。

請求項5

請求項1に記載のロボットシミュレーション装置であって、前記原因解析部が、原因候補としてサーチ可否を解析するよう構成してなるロボットシミュレーション装置。

請求項6

請求項1〜5のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部が、原因候補をワークモデル単位で前記表示部上に表示させてなるロボットシミュレーション装置。

請求項7

請求項1〜6のいずれか一項に記載のロボットシミュレーション装置であって、前記表示部が、前記仮想作業空間内に配置された、エンドエフェクタを仮想的に表現したエンドエフェクタモデル表示可能に構成してなるロボットシミュレーション装置。

請求項8

請求項7に記載のロボットシミュレーション装置であって、前記原因解析部が、原因候補をエンドエフェクタモデル側に識別表示させてなるロボットシミュレーション装置。

請求項9

請求項7又は8に記載のロボットシミュレーション装置であって、前記原因解析部が、原因候補として、エンドエフェクタモデルが他のワークモデル又はワークモデルを投入する容器を仮想的に表示させる容器モデルに干渉するか否かを前記表示部上に表示可能に構成してなるロボットシミュレーション装置。

請求項10

請求項7〜9のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部が、原因候補として、エンドエフェクタモデルが周囲の障害物モデルと干渉するか否かを前記表示部上に表示可能に構成してなるロボットシミュレーション装置。

請求項11

請求項7〜10のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部が、取り出しが不可能とされたワークモデルに対して取り出し失敗原因を解析して、前記表示部上に表示可能に構成してなるロボットシミュレーション装置。

請求項12

請求項1〜11のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部が、取り出しができないワークモデルを取り出し失敗原因別に色分けして表示可能に構成してなるロボットシミュレーション装置。

請求項13

請求項1〜12のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部が、ワークモデルが取り出しができない全体的な主原因が何かを統計的に解析して前記表示部上に表示可能に構成してなるロボットシミュレーション装置。

請求項14

請求項1〜13のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部が、ユーザが前記表示部上で選択した特定の取り出し失敗とされたワークモデルに対する取り出し失敗原因を、前記表示部上に表示可能に構成してなるロボットシミュレーション装置。

請求項15

請求項7〜14のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部が、ワークモデルを取り出し失敗とされた取り出し失敗原因が、該エンドエフェクタモデルと他のワークモデル又は容器モデルとの干渉である場合に、どのような干渉が問題になっているかを前記表示部上にグラフカルに表示可能に構成してなるロボットシミュレーション装置。

請求項16

請求項1〜15のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部が、取り出しが不可能とされたワークモデルの取り出し失敗原因に応じて、取り得る解決策を前記表示部上に提案又は誘導するよう構成してなるロボットシミュレーション装置。

請求項17

請求項16に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、三次元サーチでワークモデルを検出不可能であった場合、前記ピッキング動作シミュレート部によりワークモデルの検出するためのサーチ設定の変更を促すよう構成してなるロボットシミュレーション装置。

請求項18

請求項16又は17に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、三次元サーチでワークモデルを検出不可能であった場合、前記ピッキング動作シミュレート部によりワークモデルの検出するためのサーチ設定の変更として、サーチモデルの回転・傾斜角度、サーチ精度、一致度に対する閾値の変更の少なくとも何れかを含むロボットシミュレーション装置。

請求項19

請求項16〜18のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、三次元サーチでワークモデルを検出不可能であった場合、ワークを撮像するセンサ部の撮像又は投影の設定の変更を促すよう構成してなるロボットシミュレーション装置。

請求項20

請求項19に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが他のワークモデル、容器モデル、障害物モデルのいずれかと干渉することであった場合、前記仮想作業空間上でロボットがワークモデルを把持する位置の追加又は修正を促すよう構成してなるロボットシミュレーション装置。

請求項21

請求項19又は20に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが他のワークモデル、容器モデル、障害物モデルのいずれかと干渉することであった場合、前記仮想作業空間上におけるロボットのエンドエフェクタの形状の変更を促すよう構成してなるロボットシミュレーション装置。

請求項22

請求項1〜21のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、エンドエフェクタモデルの可動範囲外であった場合、前記仮想作業空間上におけるロボットをモデル化したロボットモデル、容器モデル、センサモデル位置関係の修正を促すよう構成してなるロボットシミュレーション装置。

請求項23

請求項19〜22のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、エンドエフェクタモデルの取り出し失敗の主原因または選択されたワークモデルの原因に対し、調整すべきパラメータウィンドウ優先的に立ち上げるよう構成してなるロボットシミュレーション装置。

請求項24

請求項23に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、エンドエフェクタモデルの取り出し失敗の主原因または選択されたワークモデルの原因に対し、調整すべきパラメータのウィンドウを順番に立ち上げていくよう構成してなるロボットシミュレーション装置。

請求項25

請求項1〜24のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが干渉することである場合に、どのような干渉が問題になっているかを前記表示部上にグラフィカルに表示可能に構成してなるロボットシミュレーション装置。

請求項26

請求項25に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが干渉することである場合に、追加すべき把持位置の候補を前記表示部上に提示するよう構成してなるロボットシミュレーション装置。

請求項27

請求項26に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが干渉することである場合に、複数のワークモデルから共通して干渉が発生しにくい領域を算出して前記表示部上に提示するよう構成してなるロボットシミュレーション装置。

請求項28

請求項1〜27のいずれか一項に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ワークモデルが干渉することである場合に、エンドエフェクタの形状の修正を前記表示部上に提示するよう構成してなるロボットシミュレーション装置。

請求項29

請求項27に記載のロボットシミュレーション装置であって、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ワークモデルが干渉することである場合に、エンドエフェクタの形状を設定するための設定ウィンドウを前記表示部上に提示するよう構成してなるロボットシミュレーション装置。

請求項30

作業空間に積み上げられた複数のワークをロボットによって順次取り出すバラ積みピッキング動作をシミュレーションするロボットシミュレーション方法であって、ワークの三次元形状をモデル化したワークモデルを設定するワークモデル設定工程と、前記ワークモデル設定工程で設定された複数のワークモデルを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータを生成するバラ積みデータ生成工程と、前記バラ積みデータ生成工程で生成されたバラ積みデータに基づいて、前記仮想作業空間内の前記ワークモデルのピッキング動作を検証するためのピッキング動作シミュレーションを実行するピッキング動作シミュレーション工程と、前記ピッキング動作シミュレーション工程の結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、当該ワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析して、解析の結果を表示部に表示させる工程と、を含むロボットシミュレーション方法。

請求項31

作業空間に積み上げられた複数のワークをロボットによって順次取り出すバラ積みピッキング動作をシミュレーションするロボットシミュレーションプログラムであって、ワークの三次元形状をモデル化したワークモデルを設定するワークモデル設定機能と、前記ワークモデル設定機能で設定された複数のワークモデルを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータを生成するバラ積みデータ生成機能と、前記バラ積みデータ生成機能で生成されたバラ積みデータに基づいて、前記仮想作業空間内の前記ワークモデルのピッキング動作を検証するためのピッキング動作シミュレーションを実行するピッキング動作シミュレーション機能と、前記ピッキング動作シミュレーション機能の結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、当該ワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析して、解析の結果を表示部に表示させる機能と、をコンピュータに実現させるためのロボットシミュレーションプログラム。

請求項32

請求項31に記載のプログラムを記録したコンピュータで読み取り可能な記録媒体または記憶した機器

技術分野

背景技術

0002

マニピュレータロボットビジョンを組み合わせて、対象となるワークを撮像して高さ情報を取得した上で、適切な位置を把持ピック)して、所望の位置に載置(プレース又はプレースメント)可能なロボット装置が開発されている。このようなロボット装置を用いて、バラ積みピッキングと呼ばれる、通い箱に入れられた多数のワークを、カメラセンサ部で撮像して姿勢を把握し、適切な把持位置を把握した上で、この把持位置までロボットのアームを移動させ、ハンド部等のエンドエフェクタで把持して、通い箱の外の決められた位置にプレースすることが行われている。

0003

このバラ積みピッキングを正しく運用できるよう、予めバラ積みピッキングを行うロボットのピックやプレース動作シミュレーションを三次元的に行うロボットシミュレーション装置が開発されている。このようなロボットシミュレーション装置では、ワークの三次元形状を有するCADモデルワークモデルとして、仮想作業空間無作為に配置して、ロボットの取出工程、すなわちバラ積みピッキングをシミュレーションしている。

0004

このようなバラ積みピッキングシミュレーションではワークがとり切れずに残ってしまうことがある。この場合は、残ってしまったワークをピッキングできるように、ユーザ側で設定を変更する必要がある。

0005

しかしながら従来のロボットシミュレーション装置では、シミュレーションでピッキングに失敗した場合に、その原因や解決策が提示されないため、ユーザがどのようにパラメータ等を変更すればよいのかが分からないという問題があった。また、パラメータを変更した場合においても、当該変更がどの程度効果的であったのかを検証することができなかった。

先行技術

0006

特許第4153528号公報
特開2015−215259号公報
特開2002−331480号公報

発明が解決しようとする課題

0007

本発明は、このような事情に鑑みてなされたものであり、その目的の一は、シミュレーション結果、取り出しが不可能なワークモデルが存在する場合に、その原因の解析支援し、シミュレーション条件の再設定に資するようにしたロボットシミュレーション装置、ロボットシミュレーション方法、ロボットシミュレーションプログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器を提供することにある。

課題を解決するための手段及び発明の効果

0008

本発明の第1の形態に係るロボットシミュレーション装置によれば、作業空間に積み上げられた複数のワークをロボットによって順次取り出すバラ積みピッキング動作をシミュレーションするためのロボットシミュレーション装置であって、ワークの三次元形状をモデル化したワークモデルを設定するためのワークモデル設定部と、前記ワークモデル設定部で設定された複数のワークモデルを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータを生成するためのバラ積みデータ生成部と、前記バラ積みデータ生成部で生成されたバラ積みデータに基づいて、前記仮想作業空間内の前記ワークモデルのバラ積みピッキング動作を検証するためのピッキング動作シミュレート部と、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、当該ワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析するための原因解析部と、前記原因解析部による解析の結果を表示させるための表示部とを備えることができる。上記構成により、取り出しが不可能となった取り出し失敗原因を表示させることで、どのように修正すればよいかの対策を講じ易くなり、バラ積みピッキング動作をシミュレーションしながら、適切な設定に調整する作業を容易に行うことが可能となる。

0009

また、第2の形態に係るロボットシミュレーション装置によれば、上記構成に加えて、前記原因解析部が、原因候補としてロボットの動作範囲外か否かを解析するよう構成できる。

0010

さらに、第3の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、原因候補としてロボットとワークモデル又はワークモデルを投入する容器を仮想的に表示させる容器モデルとの干渉の有無を解析するよう構成できる。

0011

さらにまた、第4の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、原因候補としてロボットと周囲の障害物モデルとの干渉の有無を解析するよう構成できる。

0012

さらにまた、第5の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、原因候補としてサーチ可否を解析するよう構成できる。

0013

さらにまた、第6の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、原因候補をワークモデル単位で前記表示部上に表示させることができる。

0014

さらにまた、第7の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記表示部が、前記仮想作業空間内に配置された、エンドエフェクタを仮想的に表現したエンドエフェクタモデル表示可能に構成できる。

0015

さらにまた、第8の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、原因候補をエンドエフェクタモデル側に識別表示させることができる。

0016

さらにまた、第9の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、原因候補として、エンドエフェクタモデルが他のワークモデル又はワークモデルを投入する容器を仮想的に表示させる容器モデルに干渉するか否かを前記表示部上に表示可能に構成できる。

0017

さらにまた、第10の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、原因候補として、エンドエフェクタモデルが周囲の障害物モデルと干渉するか否かを前記表示部上に表示可能に構成できる。

0018

さらにまた、第11の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、取り出しが不可能とされたワークモデルに対して取り出し失敗原因を解析して、前記表示部上に表示可能に構成できる。

0019

さらにまた、第12の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、取り出しができないワークモデルを取り出し失敗原因別に色分けして表示可能に構成できる。上記構成により、取り出し失敗の原因が色分けによって視覚的に一目で判るようにでき、何を修正したらよいのかユーザが判断しやすくなる。

0020

さらにまた、第13の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、ワークモデルが取り出しができない全体的な主原因が何かを統計的に解析して前記表示部上に表示可能に構成できる。

0021

さらにまた、第14の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、ユーザが前記表示部上で選択した特定の取り出し失敗とされたワークモデルに対する取り出し失敗原因を、前記表示部上に表示可能に構成できる。

0022

さらにまた、第15の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、ワークモデルを取り出し失敗とされた取り出し失敗原因が、該エンドエフェクタモデルと他のワークモデル又は容器モデルとの干渉である場合に、どのような干渉が問題になっているかを前記表示部上にグラフカルに表示可能に構成できる。

0023

さらにまた、第16の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部が、取り出しが不可能とされたワークモデルの取り出し失敗原因に応じて、取り得る解決策を前記表示部上に提案又は誘導するよう構成できる。

0024

さらにまた、第17の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、三次元サーチでワークモデルを検出不可能であった場合、前記ピッキング動作シミュレート部によりワークモデルの検出するためのサーチ設定の変更を促すよう構成できる。

0025

さらにまた、第18の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、三次元サーチでワークモデルを検出不可能であった場合、前記ピッキング動作シミュレート部によりワークモデルの検出するためのサーチ設定の変更として、サーチモデルの回転・傾斜角度、サーチ精度、一致度に対する閾値の変更の少なくとも何れかを含むことができる。

0026

さらにまた、第19の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、三次元サーチでワークモデルを検出不可能であった場合、ワークを撮像するセンサ部の撮像又は投影の設定の変更を促すよう構成できる。

0027

さらにまた、第20の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが他のワークモデル、容器モデル、障害物モデルのいずれかと干渉することであった場合、前記仮想作業空間上でロボットがワークモデルを把持する位置の追加又は修正を促すよう構成できる。

0028

さらにまた、第21の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが他のワークモデル、容器モデル、障害物モデルのいずれかと干渉することであった場合、前記仮想作業空間上におけるロボットのエンドエフェクタの形状の変更を促すよう構成できる。

0029

さらにまた、第22の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボットの可動範囲外であった場合、前記仮想作業空間上におけるロボットをモデル化したロボットモデル、容器モデル、センサモデル位置関係の修正を促すよう構成できる。

0030

さらにまた、第23の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、エンドエフェクタモデルの取り出し失敗の主原因または選択されたワークモデルの原因に対し、調整すべきパラメータのウィンドウ優先的に立ち上げるよう構成できる。

0031

さらにまた、第24の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、エンドエフェクタモデルの取り出し失敗の主原因または選択されたワークモデルの原因に対し、調整すべきパラメータのウィンドウを順番に立ち上げていくよう構成できる。

0032

さらにまた、第25の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが干渉することである場合に、どのような干渉が問題になっているかを前記表示部上にグラフィカルに表示可能に構成できる。上記構成により、把持位置やエンドエフェクタの形状をどのように修正したら良いかが判り易くなる。

0033

さらにまた、第26の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが干渉することである場合に、追加すべき把持位置の候補を前記表示部上に提示するよう構成できる。

0034

さらにまた、第27の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、前記原因解析部により解析されたワークモデルの取り出し失敗原因が、前記ピッキング動作シミュレート部によるピッキング動作シミュレーションの実行時に、ロボット又はエンドエフェクタモデルが干渉することである場合に、複数のワークモデルから共通して干渉が発生しにくい領域を算出して前記表示部上に提示するよう構成できる。

0035

さらにまた、第28の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、エンドエフェクタの形状の修正を前記表示部上に提示するよう構成できる。

0036

さらにまた、第29の形態に係るロボットシミュレーション装置によれば、上記いずれかの構成に加えて、エンドエフェクタの形状を設定するための設定ウィンドウを前記表示部上に提示するよう構成できる。

0037

さらにまた、第30の形態に係るロボットシミュレーション方法によれば、作業空間に積み上げられた複数のワークをロボットによって順次取り出すバラ積みピッキング動作をシミュレーションするロボットシミュレーション方法であって、ワークの三次元形状をモデル化したワークモデルを設定するワークモデル設定工程と、前記ワークモデル設定工程で設定された複数のワークモデルを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータを生成するバラ積みデータ生成工程と、前記バラ積みデータ生成工程で生成されたバラ積みデータに基づいて、前記仮想作業空間内の前記ワークモデルのピッキング動作を検証するためのピッキング動作シミュレーションを実行するピッキング動作シミュレーション工程と、前記ピッキング動作シミュレーション工程の結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、当該ワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析して、解析の結果を表示部に表示させる工程とを含むことができる。これにより、取り出しが不可能となった取り出し失敗原因を表示させることで、どのように修正すればよいかの対策を講じ易くなり、バラ積みピッキング動作をシミュレーションしながら、適切な設定に調整する作業を容易に行うことが可能なる。

0038

さらにまた、第31の形態に係るロボットシミュレーションプログラムによれば、作業空間に積み上げられた複数のワークをロボットによって順次取り出すバラ積みピッキング動作をシミュレーションするロボットシミュレーションプログラムであって、ワークの三次元形状をモデル化したワークモデルを設定するワークモデル設定機能と、前記ワークモデル設定機能で設定された複数のワークモデルを、仮想的な作業空間である仮想作業空間内に積み上げた、仮想的なバラ積みデータを生成するバラ積みデータ生成機能と、前記バラ積みデータ生成機能で生成されたバラ積みデータに基づいて、前記仮想作業空間内の前記ワークモデルのピッキング動作を検証するためのピッキング動作シミュレーションを実行するピッキング動作シミュレーション機能と、前記ピッキング動作シミュレーション機能の結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、当該ワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析して、解析の結果を表示部に表示させる機能とをコンピュータに実現させることができる。上記構成により、取り出しが不可能となった取り出し失敗原因を表示させることで、どのように修正すればよいかの対策を講じ易くなり、バラ積みピッキング動作をシミュレーションしながら、適切な設定に調整する作業を容易に行うことが可能なる。

0039

さらにまた、第32の形態に係るコンピュータで読み取り可能な記録媒体または記憶した機器は、上記ロボットシミュレーションプログラムを格納するものである。記録媒体には、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)等のハードウエア、又はプログラムソフトウエアとハードウェアの一部の要素を実現する部分的ハードウエアモジュールとが混在する形式で実現してもよい。

図面の簡単な説明

0040

ロボットシステムを用いてバラ積みピッキング動作を行う様子を示す模式図である。
ロボットシステムのブロック図である。
実施形態1に係るロボットシミュレーション装置を示すブロック図である。
実施形態1Bに係るピッキング動作シミュレーションシステムを示すブロック図である。
実施形態2に係るピッキング動作シミュレーションシステムを示すブロック図である。
センサ部の一例を示す斜視図である。
図7Aは収納容器にワークを無作為に投入して積み上げた例を示す模式断面図、図7Bはワークを床面上に積み上げた例を示す模式断面図、図7Cはワークを一定姿勢トレイ上に配列した状態を示す斜視図である。
図8Aはエンドエフェクタでワークを把持する例を示す模式図、図8Bは空洞を有するワークを内面から把持する例を示す模式図、図8Cは板状のワークを吸引して把持する例を示す模式図である。
ピッキング動作シミュレーションシステムを示すブロック図である。
実施形態4に係るピッキング動作シミュレーションシステムを示すブロック図である。
実施形態5に係るロボットシミュレーション装置を示すブロック図である。
実施形態6に係るロボットシミュレーション装置を示すブロック図である。
実施形態7に係るロボットシミュレーション装置を示すブロック図である。
シミュレーション環境設定手順を示すフローチャートである。
図15Aはワークモデルを示す斜視図、図15Bは図15Aのワークモデル上に領域を指定した状態を示す斜視図である。
図16Aは図IAのワークモデルをワイヤーフレームで表示した斜視図、図16Bは図16Aのワークモデル上で領域を指定する様子を示す斜視図である。
ワークモデルの一例を示す斜視図である。
図17のワークモデルの展開図である。
図19AはLambert反射モデルを説明する模式図、図19BはPhong鏡面反射モデルを説明する模式図である。
反射光分布の例を示すグラフである。
図21Aは入射光観測点方向と正反射方向の関係を示す模式図、図21Bは入射光と観測点の方向に対してワークの角度を変化させる様子を示す模式図である。
図21Bのワークで傾斜角度を変化させたときの入射光と反射光の比率を示すグラフである。
図23Aは拡散反射の割合が高い高さ画像を二次元表示した例を示すイメージ図、図23Bは図23Aを三次元表示した斜視図、図23Cは鏡面反射の割合が高い高さ画像の例を示すイメージ図、図23Dは図23Cの斜視図である。
実施形態8に係るロボットシミュレーション装置の機能ブロック図である。
ピッキング動作シミュレーションの手順を示すフローチャートである。
物理シミュレーションでワークモデルのバラ積み状態を生成する手順を示すフローチャートである。
円筒形のワークモデルをバラ積みしたバラ積みデータを示すイメージ図である。
図28Aは円筒形のワークモデルをバラ積みした初期状態図28Bは終了状態から20回遡った状態、図28Cは終了状態から10回遡った状態、図28Dは終了状態を、それぞれ示すイメージ図である。
図29Aはデータの保存を考慮した物理シミュレーションの手順の一部を示すフローチャートである。
図29B図29Aに続くデータの保存を考慮した物理シミュレーションの手順を示すフローチャートである。
字型のワークが不安定な姿勢で存在している状態を示す模式図である。
ワークモデルの投下時の姿勢に制限を加えてバラ積み状態を生成する手順を示すフローチャートである。
ワークモデルの投下後の姿勢に制限を加えてバラ積み状態を生成する手順を示すフローチャートである。
ワークモデルの投下時と投下後の姿勢に制限を加えてバラ積み状態を生成する手順を示すフローチャートである。
図34Aはワークの表面、図34Bはワークの裏面を示す斜視図である。
図34A、図34Bのワークがバラ積みされた状態を示す斜視図である。
図36Aは収納容器にワークが整列されて詰め込まれた状態を示す斜視図、図36Bはワークが収納容器内段積みされた状態を示す斜視図である。
実施形態9に係るワークモデルの位置、姿勢に制限を加えてバラ積み状態を生成する手順を示すフローチャートである。
ワークモデルの基本姿勢設定画面の一例を示すイメージ図である。
姿勢条件設定画面の一例を示すイメージ図である。
ワークモデルの傾斜角度0°、回転角度±180°に指定した場合のワークモデルの姿勢の例を示すイメージ図である。
ワークモデルの傾斜角度15°、回転角度±180°に指定した場合のワークモデルの姿勢の例を示すイメージ図である。
配置条件設定画面の一例を示すイメージ図である。
図43Aはワークモデルを収納容器内に完全ランダムに配置した例、図43Bは一方向に配置した例、図43Cは複数方向、複数段に配列した例を示すイメージ図である。
姿勢安定性演算方法を示すフローチャートである。
図45AはT字状のワークを示す斜視図、図45Bは図45Aに対する外接立方体を設定した状態を示す斜視図、図45Cは図45Bの最大面積を取る面を示す平面図である。
図46Aは図45Aのワークが傾斜姿勢で置かれた状態を示す斜視図、図46Bは図46Aの接触部の領域を示す平面図である。
図47Aは図45Aのワークが直立姿勢で置かれた状態を示す斜視図、図47Bは図47Aの接触部の領域を示す平面図である。
図48Aは図45Aのワークが壁面に寄りかかった姿勢で置かれた状態を示す斜視図、図48Bは図48Aの接触部の領域を示す平面図である。
図49Aは図46Bの平面図、図49Bは図49Aから最小面積外接矩形を得た状態を示す平面図である。
図50Aは図47Bの平面図、図50Bは図50Aから最小面積外接矩形を得た状態を示す平面図である。
図51Aは図48Bの平面図、図51Bは図51Aから最小面積外接矩形を得た状態を示す平面図である。
実施形態10に係るロボットシミュレーション装置を示すブロック図である。
実施形態11に係るロボットシミュレーション装置を示すブロック図である。
ワークを収納容器内に中敷きを介して複数段に配列した例を示す模式断面図である。
ワークを収納容器内に間仕切りを介して配列した例を示す模式断面図である。
バラ積みされたワークモデル群を示すイメージ図である。
図56においてハッチングされたワークモデルを除去した状態を示すイメージ図である。
図56においてハッチングされたワークモデルを除去した状態で物理シミュレーションを再実行した結果を示すイメージ図である。
ピッキング動作シミュレーションにおいて、ワークモデルの数を一つ減らす手順の詳細を示すフローチャートである。
図60Aはバラ積みデータの斜視図、図60Bは図60Aを高さ画像に変換したバラ積み画像、図60Cは図60Bを点群で示した斜視図、図60Dは図60Aを傾斜面を無効として高さ画像に変換したバラ積み画像、図60Eは図60Dを点群で示した斜視図である。
図61Aは鏡面反射の弱いワークの三次元形状を取得可能な角度範囲を示す模式断面図、図61Bは鏡面反射の強いワークの三次元形状を取得可能な角度範囲を示す模式断面図である。
図62Aは樹脂製のワークをバラ積みしたバラ積みデータを示すイメージ図であり、図62Bは図62Aの内、樹脂製ワークを拡大した要部拡大図であり、図62Cは金属製のワークをバラ積みしたバラ積みデータを示すイメージ図であり、図62Dは図62Cの内、金属製のワークを拡大した要部拡大図である。
バラ積み画像を示すイメージ図である。
パターンプロジェクション方式カメラ側からワークが見えない状態を示す模式図である。
図65Aはカメラからワークが見えている例、図65Bにカメラからワークが見えない例、図65Cは複数のカメラのいずれかで見えている例を示す模式図である。
実施形態12に係るピッキング動作シミュレーションの手順を示すフローチャートである。
実施形態12に係る物理シミュレーションでワークモデルのバラ積み状態を生成する手順を示すフローチャートである。
バラ積み画像を生成する手順を示すフローチャートである。
ワーク上の注目位置と各カメラと結ぶ直線を示す模式図である。
カメラと注目位置とを結ぶ直線上に障害物がないかをチェックする様子を示す模式図である。
実施形態13に係るロボットシミュレーション装置を示すブロック図である。
バラ積みされたワーク群を実際に三次元計測した高さ画像を示すイメージ図である。
樹脂製のワークの角度分布ヒストグラムを示すグラフである。
金属製のワークの角度分布ヒストグラムを示すグラフである。
シミュレーション環境の設定手順を示すフローチャートである。
バラ積み状態のワーク群を撮像した高さ画像を示すイメージ図である。
図77Aは実際に撮像した三次元計測データプロファイル図77Bは図77Aに三次元サーチ結果を重ね合わせた状態を示す図である。
実施形態14に係るシミュレーション環境の設定手順を示すフローチャートである。
図79Aはあるワークをシミュレーション上で表示する様子を示すイメージ図であり、図79Bは図79Aのワークの実運用時計測した状態を示すイメージ図である。
ピッキング動作シミュレーション結果として、把持の失敗原因を示す原因解析結果表示画面のイメージ図である。
原因解析機能を含めたピッキング動作シミュレーションの手順を示すフローチャートである。
三次元サーチ設定画面を示すイメージ図である。
干渉確認画面を示すイメージ図である。
把持位置登録画面を示すイメージ図である。
ロボットモデル位置修正画面を示すイメージ図である。
図86Aは、エンドエフェクタモデルがワークモデルを把持可能な状態、図86Bはエンドエフェクタモデルと周辺データが干渉している状態、図86Cはエンドエフェクタモデルがロボットの動作範囲外の状態を示す原因解析結果表示画面のイメージ図である。
ワークモデルに対してエンドエフェクタモデルの位置姿勢を移動させて、把持位置を登録する方法を示すイメージ図である。
図88Aは、ピッキング動作シミュレーションの結果、エンドエフェクタモデルが周辺データと干渉してNGである状態を表示する原因解析結果表示画面のイメージ図、図88Bは図88Aの状態からエンドエフェクタモデルを移動させて取り出しOKとなった状態を表示する原因解析結果表示画面のイメージ図である。

実施例

0041

以下、本発明の実施形態を図面に基づいて説明する。ただし、以下に示す実施形態は、本発明の技術思想を具体化するための例示であって、本発明は以下のものに特定されない。また、本明細書は特許請求の範囲に示される部材を、実施形態の部材に特定するものでは決してない。特に実施形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一若しくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
(ロボットシステム)

0042

ロボットシステム1000を用いた、ワークのバラ積みピッキング動作が行われている。このようなロボットシステム1000の構成例を図1に、またロボットシステム1000のブロック図を図2に、それぞれ示す。このようなバラ積みピッキングでは、作業空間に積み上げられた複数のワークWKを、ロボットを用いて順次取り出し、所定の位置に配置する。例えば、収納容器BXに無作為に投入された多数の部品を、カメラや照明等のセンサ部で三次元形状を取得し、ワークWKを一つづつ、ロボットのアームARMの先端に設けられたエンドエフェクタEETでもって把持し、所定の位置、例えばコンベアベルト状に並べていく。
(ピッキング動作シミュレーション)

0043

このようなロボットシステム1000でバラ積みピッキング動作を行うにあたり、予めシミュレーションを行ってバラ積みピッキング動作の検証を行うことが行われている。例えばロボットの設置位置やワークの収納容器BX、載置位置の相対位置、高さ等によっては、正しくワークを把持できないことがある。またセンサ部の設置される位置や角度によっては、ワークを正しく撮像できず、その三次元形状を正確に測定することも困難となる。そこで、予めバラ積みピッキングを行うロボットのピックやプレース動作の三次元的なピッキング動作シミュレーションを、ロボットシミュレーション装置を用いて行う。ロボットシミュレーション装置では、ワークの三次元形状を有するCADモデルをワークモデルとして、仮想的な作業空間である仮想作業空間に無作為に配置して、ロボットの取出工程、すなわちバラ積みピッキングをシミュレーションする。このようなシミュレーションで十分にピッキングが成功していないとユーザが判断した場合、ユーザはロボットを動作させるパラメータを修正してシミュレーションをやり直す。例えば、ピッキング動作シミュレーションの結果に基づいて、三次元サーチのパラメータの変更や、ロボットのエンドエフェクタなどの改善を行う。このようなシミュレーションパラメータの調整後に、再度、ピッキング動作シミュレーションを実行する。

0044

ところで従来のロボットシミュレーション装置では、ワークモデルの配置はランダムとなっている。ランダムに配置されたワークモデルを初期状態としてピッキング動作シミュレーションを行った結果、ある時点で何らかの要因により、それ以上シミュレーションの処理が先に進めなくなる状態が発生することがある。例えば、三次元サーチができない、ロボットがワークモデルに接近できない等の状態となると、シミュレーション処理を進めることができなくなる。このような際に、ユーザは先に進めなくなった要因に応じて、三次元サーチのパラメータを変更したり、ロボットのエンドエフェクタの形状を変更する等して、ワークモデルを適切にピッキング可能と考えられる状態とするように、各種のシミュレーションパラメータを変更していく。

0045

このようにシミュレーションパラメータを修正した状態において、新たにピッキング動作シミュレーションを行った結果、改めてランダムに配置された全てのワークモデルを取り出せる状態と判断された場合を考える。ここで奏功した原因としては、ユーザの設定に起因する場合と、シミュレーションに起因する場合が考えられる。すなわち、ユーザの行った三次元サーチのパラメータ変更やエンドエフェクタの形状変更が適切だったという場合以外に、改めてワークモデルがランダムに配置された結果、ワークモデルの初期状態が前回とは異なる状態となって、しかもこの初期状態が偶偶良かったために、パラメータを変更せざるを得ない要因となった状態が発生しなかった場合にあたるという偶発的な要因が考えられる。

0046

しかしながら、従来のようなワークモデルを毎回ランダムに配置する方法では、両者の区別が難しく、ユーザが行ったパラメータ変更などの対応がどの程度効果的であったかを見極めることが難いという問題があった。
(実施形態1)
(ロボットシミュレーション装置)

0047

そこで、実施形態1においては、このようなユーザによるシミュレーションパラメータの調整作業の影響が明確となるようにすることを企図している。

0048

このような本発明の実施形態1に係るロボットシミュレーション装置100のブロック図を図3に示す。図3に示すロボットシミュレーション装置100は、ワークモデル設定部11と、バラ積みデータ生成部20と、バラ積みデータ記憶部23と、ピッキング動作シミュレート部30と、シミュレーションパラメータ調整部29とを備える。

0049

ワークモデル設定部11は、ワークの三次元形状をモデル化したワークモデルを設定するための部材である。

0050

バラ積みデータ生成部20は、姿勢条件設定部16により設定された姿勢条件に従って、仮想作業空間内に複数のワークモデルを積み上げたバラ積みデータを生成するための部材である。

0051

ピッキング動作シミュレート部30は、バラ積みデータ生成部20で生成されたバラ積みデータに対して、仮想作業空間内のワークモデルのピッキング動作を検証するバラ積みピッキング動作シミュレーションを実行するための部材である。

0052

バラ積みデータ記憶部23は、ピッキング動作シミュレート部30によるピッキング動作シミュレーションの実行前のバラ積みデータ、又はピッキング動作シミュレーション実行途中のバラ積みデータの少なくとも何れかを記憶するための部材である。

0053

シミュレーションパラメータ調整部29は、ピッキング動作シミュレート部30によるピッキング動作シミュレーションの結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、ロボットの動作に係るシミュレーションパラメータを調整するための部材である。

0054

ピッキング動作シミュレート部30は、シミュレーションパラメータ調整部29により調整されたシミュレーションパラメータを用いて、バラ積みデータ記憶部23に記憶されたシミュレーション実行前またはシミュレーション実行途中のバラ積みデータを読み出して、ピッキング動作シミュレーションを再実行としている。これにより、ピッキング動作シミュレーションに用いたバラ積みデータを記憶することで、シミュレーションパラメータを調整した結果が効果的であったかどうかの判断が容易となる。
(表示部3)

0055

またロボットシミュレーション装置は、バラ積みデータ記憶部23に記憶されたバラ積みデータを表示可能な表示部3を備えることもできる。これにより、保存済みのバラ積みデータをユーザが視覚的に確認しながら、シミュレーションパラメータを調整することが可能となり、操作性を向上させることができる。
(実施形態1B)

0056

さらにロボットシミュレーション装置は、ピッキング動作シミュレート部30によるピッキング動作シミュレーションの結果、ロボットによる取り出しが不可能なワークモデルが存在する場合に、このワークモデルの取り出し失敗原因が、予め定義された複数の原因候補の中のいずれに該当するかを解析するための原因解析部24を備えることもできる。これにより、取り出しが不可能となった取り出し失敗原因を表示させることで、どのように修正すればよいかの対策を講じ易くなり、バラ積みピッキング動作をシミュレーションしながら、適切な設定に調整する作業を容易に行うことが可能なる。このような例を実施形態1Bとして、図4に示す。この図に示すロボットシミュレーション装置は、ワークモデル設定部11と、バラ積みデータ生成部20と、バラ積みデータ記憶部23と、ピッキング動作シミュレート部30と、シミュレーションパラメータ調整部29と、表示部3と、原因解析部24を備える。実施形態1Bにおいても、上述した実施形態1と同じ部材については、同一の符号を付して詳細説明を適宜省略する。原因解析部24の詳細については後述する。
(実施形態2)

0057

ピッキング動作シミュレーションにおいて、ロボットのエンドエフェクタを模したエンドエフェクタモデルで把持可能と判定されても、実際に運用しようとすると、うまくバラ積みピッキングできないことがある。これは、ピッキング動作シミュレーション時には、図79Aに示すような、仮想的な三次元形状を有するワークモデルWMでもって判定しているところ、実際の運用時にはワークの三次元形状を取得できない場合があることに起因する。例えばワークが金属製の場合など、鏡面反射が強い場合には、ワークの姿勢によって計測できない部位が生じる。例えば図79Bに示すように、作業空間の上方からセンサ部で撮像する結果、ワークWKの傾斜が急峻となる部位については三次元形状を計測できない。さらに複数のワークが重なり合っている際に、下側にあるワークの形状を三次元計測できないという問題もある。この結果、シミュレーション上では三次元形状をサーチできるが、実運用時にはサーチに失敗してしまうことがあった。

0058

そこで、実施形態2においては、実際のワークを三次元計測した状態にできる限り近い状態でシミュレーションできるように、バラ積み状態のワークモデルの姿勢に基づいて、計測不可能となる部分を除外した三次元計測データを生成し、これに基づいてピッキング動作シミュレーションを行う。具体的には、バラ積み状態の姿勢から定まる、ワークモデルの表面の角度に基づいて、一定以上急峻な角度となる部分は三次元計測不可として、ピッキング動作シミュレーションで生成するバラ積みデータから除外する。これにより、センサ部を設置したりワークを実際に準備するといった手間のかかる確認作業設定調整をしなくても、実際にバラ積みワークを撮像した状態に近い状態を実現できる。
(物理シミュレーション部)

0059

またロボットシミュレーション装置は、ワークを積み上げたバラ積み状態を仮想的に再現する物理シミュレーションを行って、バラ積みデータを生成することもできる。このような例を実施形態2として図5に示す。この図に示すロボットシミュレーション装置は、ワークモデル設定部11と、姿勢条件設定部16と、物理シミュレーション部60と、バラ積みデータ生成部20と、バラ積みデータ記憶部23と、領域推定部22と、ピッキング動作シミュレート部30とを備える。このロボットシミュレーション装置は、ワークを積み上げたバラ積み状態を仮想的に再現する物理シミュレーションを行って、バラ積みデータを生成する。

0060

これにより、明らかに不自然な姿勢のワークモデルを除外するなど、ユーザの実運用環境に合わせたバラ積みデータを生成してピッキング動作シミュレーションを行えるため、実際にワークを用意することなく、実運用時に近い形で事前に適切な設定調整や、検証を行うことができるようになる。

0061

バラ積みデータ生成部20は、姿勢条件設定部16で設定された姿勢条件に合致しないワークモデルを排除したバラ積みデータを生成することができる。あるいはバラ積みデータ生成部20は、物理的に発生確率が低いワークモデルを排除したバラ積みデータを生成するよう構成してもよい。この場合は、物理的に発生確率が低いワークモデルを、ユーザが姿勢条件設定部16で指定する他、予めロボットシミュレーション装置側で物理的に発生確率が低いワークモデルの条件を用意しておくこともできる。このような規定値による姿勢条件の設定も、姿勢条件設定部16に包含する。

0062

またバラ積みデータ生成部20は、姿勢条件設定部16で設定された姿勢条件に合致しないワークモデルが、バラ積みデータ内に存在する場合、あるいは所定割合以上存在する場合は、バラ積みデータを作成し直すよう構成してもよい。これにより、実運用時から懸け離れたバラ積みデータが得られた場合には、ピッキング動作シミュレーションを行わずに、バラ積みデータを作成し直し、実運用時に近いバラ積みデータに対してのみピッキング動作シミュレーションを行うことで、より正確なシミュレーション結果を得ることができる。

0063

姿勢条件設定部16は、ワークモデル設定部11で設定されたワークモデルを、仮想的な作業空間である仮想作業空間内に配置する際に、このワークモデルが取り得る姿勢に関する条件を姿勢条件として設定するための部材である。姿勢条件は、ユーザが手動で設定する他、予めロボットシミュレーション装置側で既定値として提示する構成としてもよい。また、ロボットシミュレーション装置が提示する姿勢条件の初期値を、ユーザが調整可能としてもよい。なお姿勢条件設定部16は、ワークモデルの基準姿勢からの許容回転角度、傾斜角度を姿勢条件として設定可能に構成できる。また姿勢条件設定部16は、ワークモデルの床面または他のワークモデルとの接触位置を真上から投影し、投影された接触位置を囲む外接矩形の面積と、ワークモデルの最大外接矩形の最大面積の比率を、姿勢条件として設定可能に構成してもよい。さらに姿勢条件設定部16は、ワークモデルの床面との接触位置や他のワークモデルとの接触位置、あるいは接触面の内で、最下方に位置する接触位置と重心位置との高さ方向の差分を姿勢条件として設定可能に構成することもできる。重心に対して低い位置で支えられているワークモデルは不安定と捉えることができる。さらにまた姿勢条件設定部16は、ワークモデルの特定の面が底面となるように姿勢条件を設定可能に構成してもよい。加えて姿勢条件設定部16は、ワークモデル間のX方向及び/またはY方向の配置間隔と、ワークモデルの段数を、姿勢条件として設定可能に構成することも可能である。

0064

物理シミュレーション部60は、ワークモデル設定部11で設定されたワークモデルを用いて、ワークを重力の作用を受けて作業空間に投入する動作を、ワークモデルを仮想作業空間に投入することでシミュレーションするための部材である。また、このようなワークモデルを仮想作業空間に投入するシミュレーションを、物理シミュレーションや投入動作シミュレーションと呼ぶ。また、本明細書において「投入」や「投下」とは、物理的に高所から落下させる動作に限られず、例えば転がりを検証するため、所定の高さから水平方向に押し出しながら落下させたり、放物線状に投げ上げて落下させたり、あるいは収納容器や床面にワークモデルを載置、あるいは静置する動作も含む意味で使用する。さらに、物理シミュレーションは、ワークモデルを一つづつ作業空間内に順次投入する他、複数のワークモデルを同時に投入、例えば落下させたり静置させる動作をシミュレーションすることもできる。

0065

このようにして物理シミュレーションを複数回繰り返し、あるいは一括して行い、得られた結果、すなわち複数のワークモデルが無作為に、あるいは所定の態様で積み上げられたワークモデル群に基づいて、バラ積みデータ生成部20は、仮想作業空間内に複数のワークモデルが積み上げられた、仮想的な三次元のバラ積みデータを生成する。

0066

ピッキング動作シミュレート部30は、生成されたバラ積みデータに対して、仮想作業空間内の前記ワークモデルのバラ積みピッキング動作を検証するための部材である。これにより、ワークの三次元位置及び姿勢の検出可否など、手間のかかる確認作業や設定調整を、実際にワークを用意することなく、実運用に近い形で事前に行うことができる(詳細は後述)。

0067

特に物理シミュレーション部60は、ピッキング動作シミュレート部30による一のワークモデルを把持し少なくとも取り出し動作を開始した後、このワークモデルが取り出された後の状態のバラ積みデータに対して物理シミュレーションを再度実行する。物理シミュレーションを再度実行するタイミングは、ワークモデルを把持し、載置位置にプレースされた後とする他、ワークモデルの取り出し作業の途中であってもよい。すなわち、エンドエフェクタモデルでワークモデルを把持して、このワークモデルが持ち上げられた状態では、一のワークモデルが除去されたことで、このワークモデルの周辺にあった他のワークモデルの配置が移動可能となるため、把持されたワークモデルが載置されるまで待つ必要はない。よって、物理シミュレーションの再実行のタイミングは、一のワークモデルが把持されて持ち上げられたタイミング、あるいはその後、他のワークモデルの状態が重力の作用で移動して安定するまで待った後のタイミングとすることができる。例えば、ワークモデルが把持されて持ち上げられた時点から所定の時間の経過後(例えば10秒後)としてもよい。

0068

これを受けてバラ積みデータ生成部20は、物理シミュレーション部60による物理シミュレーションの再実行の結果に応じて、ピッキング動作シミュレート部30によるピッキング動作のシミュレーション中に、バラ積みデータを更新する。このようにしてピッキング動作シミュレート部30は、ピッキング動作シミュレーション中にバラ積みデータからワークモデルが一つ取り出されると、これに応じてバラ積みされたワークモデル群が崩れるといった動作も物理シミュレーションにより演算されるので、より正確なバラ積みピッキングのシミュレーションが実現される。

0069

また物理シミュレーション部は、バラ積みデータ生成部20が姿勢条件設定部16で設定された姿勢条件に合致しないワークモデルを排除した場合、この姿勢条件に合致しないワークモデルを排除した後の状態のバラ積みデータに対して、再度物理シミュレーションを適用するよう構成することもできる。これにより、例えば空中に浮いている等、物理的に存在し得ない姿勢のワークモデルが物理シミュレーション時には発生し得るため、このようなワークモデルを排除することで、信頼性の高い物理シミュレーション結果を得ることが可能となる。
初期姿勢

0070

物理シミュレーション部は、姿勢条件設定部16により設定された姿勢条件に基づいてワークモデルの初期姿勢を決定し、初期姿勢のワークを作業空間に落下させる物理シミュレーションを実行するよう構成してもよい。また物理シミュレーション部により物理シミュレーションを実行した場合、更に姿勢条件設定部16により設定された姿勢条件に合致しないワークモデルを排除するよう構成してもよい。

0071

これらの部材は、例えばマイクロプロセッサ(MPU)やCPU、LSI、FPGAやASIC等のゲートアレイ、DSP等のハードウエアやソフトウエア、あるいはこれらの混在により実現できる。また必ずしも各構成要素が図3等に示した構成と同一でなくてもよく、その機能が実質的に同一であるもの、及び一つの要素が図3に示す構成における複数の要素の機能を備えるものは、本発明に含まれる。

0072

例えば、図5の例では物理シミュレーション部60はバラ積みデータ生成部20と個別に用意されているが、バラ積みデータ生成部に物理シミュレーション部を統合することもできる。あるいはピッキング動作シミュレート部に、物理シミュレーション部とバラ積みデータ生成部とを統合させてもよい。

0073

一方、図2のブロック図に示すロボットシステム1000は、センサ部2と、画像処理部1と、表示部3と、操作部4と、ロボット本体5と、ロボットコントローラ6と、ロボット操作具7とを備える。センサ部2は、作業空間を撮像すると共に、三次元形状を計測する部材である。また画像処理部1は、三次元サーチ、干渉判定、把持解算出を行う部材である。なおセンサ部2を、作業空間を撮像するのみとして、画像処理部1側で三次元形状を計測する構成とすることもできる。三次元形状を取得する方法は、パターン投影法ステレオ法レンズ焦点法、光切断法、光レーダ法、干渉法、TOF方式などがある。本実施形態においては、パターン投影法の内、位相シフト法を用いている。

0074

このような三次元形状計測技術に応じて、センサ部2の構成が決定される。センサ部2は、カメラ、照明又はプロジェクタ等を備える。例えば位相シフト法でワークの三次元形状を計測する場合は、センサ部2として図6に示すように、プロジェクタPRJと複数のカメラCME1、CME2、CME3、CME4を備える。センサ部2は、カメラやプロジェクタといった複数の部材で構成する他、これらを一体的に構成してもよい。例えばカメラやプロジェクタを統合してヘッド状とした3D撮像ヘッドをセンサ部とすることができる。

0075

画像処理部1は、このようにして得られたワークのバラ積みデータに基づいて、三次元サーチ、干渉判定、把持解算出等を行う。この画像処理部1は、専用の画像処理プログラムインストールした汎用のコンピュータや、専用のコントローラ等が利用できる。なお図2では、画像処理部1を別個の部材で構成する例を示しているが、本発明はこの構成に限られず、例えばセンサ部と画像処理部を一体化したり、あるいはロボットコントローラに画像処理部を組み込むこともできる。また、センサ部側で撮像したデータに基づいて、画像処理部側でワークの三次元形状を取得するように構成してもよい。

0076

表示部3は、画像処理部1で取得されたワークの三次元形状を表示させたり、各種設定や動作状態の確認を行うための部材であり、液晶モニタ有機ELディスプレイ、CRT等が利用できる。操作部4は、画像処理等の各種設定を行うための部材であり、キーボードマウス等の入力デバイスが利用できる。また表示部3をタッチパネルとすることで、操作部と表示部を一体化することもできる。

0077

例えばロボットシミュレーション装置や画像処理部を、ロボットシミュレーションプログラムをインストールしたコンピュータとした場合、表示部上にはロボットシミュレーションプログラムのグラフィカルユーザインターフェースGUI)画面が表示される。表示部上に表示されたGUI上から各種の設定を行うことができ、またシミュレーション結果等の処理結果を表示させることができる。この場合、表示部を各種の設定を行うための設定部として利用できる。

0078

ロボットコントローラ6は、センサ部2で撮像した情報に基づいてロボットの動作を制御する。またロボット操作具7は、ロボット本体5の動作設定を行うための部材であり、ペンダントなどが利用できる。

0079

ロボット本体5は、可動式のアームARMと、アームARMの先端に固定されたエンドエフェクタEETを備える。このロボット本体5はロボットコントローラ6に制御されて、アームARMを動作させ、一個のワークWKをピッキングして、これを所望の位置に移動させてプレースした後、リリースする。このためアームARMの先端には、ワークWKを把持するためのエンドエフェクタEETを備えている。またワークWKをプレースする載置位置は、例えばトレイ上やコンベア上等が挙げられる。

0080

ワークWKは、図1に示すように複数個が通い箱等の収容容器BXに無作為に収納されている。このような作業空間の上方には、センサ部2が配置されている。センサ部2はカメラや照明を備えており、このセンサ部2で、ワークWKの三次元形状を計測することができる。ロボットコントローラ6は、センサ部2で計測されたワークWKの三次元形状に基づいて、複数のワークの内から、把持対象のワークWKを特定して、このワークWKを把持するよう、ロボットを制御する。そして、ワークWKを把持したまま、アームARMを動作させて予め定められた載置位置まで移動させ、所定の姿勢でワークWKを載置する。いいかえると、ロボットコントローラ6は、センサ部2でピッキング対象のワークWKを特定し、このワークWKをエンドエフェクタEETで把持して、把持したワークWKを所定の基準姿勢にて、プレースする位置である載置位置に載置してエンドエフェクタEETを開放するようにロボットの動作を制御する。

0081

ここで本明細書においてバラ積みピッキングとは、図7Aに示すような収納容器BXに入れられて無作為に積み上げられたワークWKを、ロボットで把持して、所定の位置に載置する他、図7Bに示すような収納容器を用いずに所定の領域に積み上げられたワークWKに対して把持、載置を行う例、あるいは図7Cに示すような所定の姿勢で並べられて積み上げられたワークWKを順次把持、載置する例も含む意味で使用する。

0082

また、図1の例ではセンサ部2を作業空間の上方に固定しているが、作業空間を撮像できる位置であれば足り、例えば斜めや側方、下方など、任意の定位置に配置できる。ただし、アームARM上のような、可動する不定位置にセンサ部を配置する態様は除かれる。さらにセンサ部が有するカメラや照明の数も、一に限らず複数としてもよい。さらにまたセンサ部2やロボット、ロボットコントローラ6との接続は、有線接続に限られず、無線接続としてもよい。

0083

またワークの把持とは、図8Aに示すようにワークWKの外側を挟み込む把持の他、図8Bに示すような、空洞を有するワークWK2の内部にエンドエフェクタEET2の爪部を挿入して拡開させることによって保持する例や、図8Cに示すような板状のワークWK3を吸引して保持するエンドエフェクタEET3の例を含む意味で使用する。以下では、ワークの把持の例としてワークの外側面を両側から掴む態様について説明する。またワークは、図1に示すように収納容器BXに多数個が収納されて無作為に積み上げられた状態で、このような複数のワークWKに対して一つづつ、エンドエフェクタEETでピックして、載置位置にプレースする作業を繰り返すバラ積みピッキング動作を、シミュレーションすることについて、以下説明する。

0084

次に、ピッキング動作シミュレーション時のシステム構成のブロック図を図9に示す。この図に示すピッキング動作シミュレーションシステムは、画像処理部1と、表示部3と、操作部4を備える。この構成においては、画像処理部1上ですべてのシミュレーションを行う。すなわち、実運用時に画像処理部1となる部材が、ピッキング動作シミュレーション時にはロボットシミュレーション装置として機能する。ただ、ロボットシミュレーション装置を画像処理部と兼用する構成に限られず、ロボットシミュレーション装置を画像処理部とは個別に用意することもできる。
(実施形態4)

0085

また本発明は、物理シミュレーションによりバラ積みされたワークモデル群に対して、そのままピッキング動作シミュレーションを実行する構成に限られず、バラ積みされたワークモデル群に対して、部位毎に三次元計測が可能かどうかを判定し、判定結果に基づいてピッキング動作シミュレーションを行うように構成してもよい。このような例を実施形態4に係るロボットシミュレーション装置として、図10に示す。この図に示すロボットシミュレーション装置は、ワークモデル設定部11と、姿勢条件設定部16と、バラ積みデータ生成部20と、領域推定部22と、ピッキング動作シミュレート部30と、表示部3とを備える。実施形態4において、上述した実施形態1と同じ部材については、同一の符号を付して詳細説明を適宜省略する。
(領域推定部22)

0086

図10に示す領域推定部22は、バラ積みデータ内の各ワークモデルの位置と姿勢に基づいて、センサ部により三次元計測が困難と推定される推定領域を特定するための部材である。

0087

このようにして得られた推定領域のデータに基づいて、ピッキング動作シミュレート部30は、仮想作業空間内のワークモデルのバラ積みピッキング動作を検証するピッキング動作シミュレーションを実行する。すなわちピッキング動作シミュレート部30は、バラ積みデータから推定領域を除去して、ピッキング動作シミュレーションを実行する。

0088

なお、上記の例では領域推定部で推定される推定領域を、センサ部で三次元計測が困難と推定される領域としたが、逆にセンサ部で三次元計測が可能と推定される領域を推定領域としてもよい。
(実施形態5)

0089

また、バラ積みデータから推定領域を除去したシミュレーション用データを生成するシミュレーション用データ生成部を付加してもよい。このような例を実施形態5として図11に示す。この図に示すロボットシミュレーション装置200は、ワークモデル設定部11と、姿勢条件設定部16と、物理シミュレーション部60と、バラ積みデータ生成部20と、領域推定部22と、ピッキング動作シミュレート部30と、シミュレーション用データ生成部40と、表示部3を備えている。実施形態5において、上述した実施形態1と同じ部材については、同一の符号を付して詳細説明を適宜省略する。
(シミュレーション用データ生成部40)

0090

シミュレーション用データ生成部40は、領域推定部22により特定された推定領域のデータを含まないバラ積みデータをシミュレーション用データとして生成するための部材である。ピッキング動作シミュレート部30は、シミュレーション用データ生成部40で生成されたシミュレーション用データを用いて、ピッキング動作シミュレーションを実行する。

0091

また表示部3は、バラ積みデータ生成部20で生成されたバラ積みデータを表示させることができる。このバラ積みデータは、物理シミュレーション部60により更新された際には、リアルタイムに更新して表示部3に表示させることもできる。これにより、従来のようにワークモデルが取り出された後、物理シミュレーションが再実行されずに中に浮いたワークモデルが存在するような状態を回避すると共に、表示部3上で物理シミュレーションを再実行した結果を表示させることで、ユーザに対し違和感なくバラ積み状態のワークを表示させることができる。

0092

さらに表示部3は、シミュレーション用データ生成部40で生成されたシミュレーション用データを表示させて、ユーザに対し、確認させることが可能となる。この際、後述する図60Dや図62A、図62C等に示すように、実運用時には計測できない領域を、測定可能な領域と区別して表示させてもよい。これにより、ユーザに対して実運用時にどのような見え方となるのかを視覚的に把握させやすくなる。
(実施形態6)

0093

さらに、ピッキング動作シミュレーションに際して、仮想的なセンサモデルを設定するセンサモデル設定部を付加することもできる。このような例を実施形態6に係るロボットシミュレーション装置300として図12に示す。

0094

図12に示す実施形態6に係るロボットシミュレーション装置300は、シミュレーション環境設定部10と、検出用設定部50と、バラ積みデータ生成部20と、領域推定部22と、シミュレーション用データ生成部40と、ピッキング動作シミュレート部30と、表示部3を備える。バラ積みデータ生成部20は、物理シミュレーション部60を備える。実施形態6においても、上述した実施形態1等と同じ部材については、同一の符号を付して詳細説明を適宜省略する。
(検出用設定部50)

0095

検出用設定部50は、位置や姿勢の検出や、干渉判定、把持解算出を行うための各種の設定を行うための部材である。ここでの設定には、位置や姿勢の検出(三次元サーチ)に関する設定(例えば、データの間引き量や、姿勢制限、重視する特徴部位の指定など)、ワークに対するエンドエフェクタの把持姿勢の設定等が挙げられる。
(シミュレーション環境設定部10)

0096

またシミュレーション環境設定部10は、バラ積み画像を取得するための各種の設定を行うための部材である。ここでのシミュレーション環境の設定には、バラ積みをさせるワークの数、収納容器の情報、床の情報、センサ部を構成するカメラやプロジェクタの設計情報等が挙げられる。またピッキング動作シミュレーション時には、収納容器に対して、実運用上発生し得る、ランダムな位置ずれを発生させることもでき、この際の位置ずれの範囲等をシミュレーション環境の設定に含めることもできる。シミュレーション環境設定部10は、ワークモデル設定部11と、センサモデル設定部15と、姿勢条件設定部16を備える。
(ワークモデル設定部11)

0097

ワークモデル設定部11は、ワークモデルに関する条件を設定する。ワークモデルは、CADで作成されたCADデータが利用できる。ワークのCADデータについて、CADのデータ形式は特に限定されないが、本実施形態においては、三次元のCADデータとして、最もシンプルなSTL形式を用いている。STLは、三角形ポリゴン情報(3点の座標とその面の法線ベクトル)の羅列のみで構成されるデータである。あるいはワークモデルとして、三次元情報を有する点群データで構成してもよい(後述する図60Eにおいて、表示部3に表示された点群表示画像を示している)。あるいはまた、ワークモデルを、高さ情報を有する画像データ、例えば高さ画像や距離画像で構成してもよい。
表面状態パラメータ設定部)

0098

またワークモデル設定部11は、表面状態パラメータ設定部12を備えてもよい。表面状態パラメータ設定部12は、ワークモデルの表面状態に関するパラメータを入力するための部材である。表面状態パラメータは、例えばワーク表面反射率等を数値で規定する。あるいは、ワークの材質を規定する。個の場合、選択肢として「金属」、「ガラス」、「樹脂」等を挙げて、何れかをユーザに選択させるように構成してもよい。あるいはまた、表面状態を区別する官能的な選択肢、例えば「ぴかぴか」、「ざらざら」、「透明」、「つや消し」、「白っぽい」、「黒っぽい」等から選択させてもよい。この表面状態パラメータ設定部12で設定された表面状態パラメータによって、後述する角度閾値(しきい値)を変化させることができる。
(容器モデル設定部14)

0099

さらにシミュレーション環境設定部10は、通い箱など、ワークを収納する収納容器をモデル化した容器モデルを設定する容器モデル設定部14を含めてもよい。この場合は、センサモデルと容器モデルとの相対的な位置関係に基づいて、推定領域を推定するよう構成できる。

0100

姿勢条件設定部16は、ワークモデルの特定の面又は辺が、容器モデルに対して、特定の関係となるように姿勢条件を設定可能に構成できる。

0101

また物理シミュレーション部は、容器モデル設定部で設定される容器モデルの段数を設定し、複数のワークモデルを容器モデル内に同時に落下させる物理シミュレーションを実行可能に構成してもよい。
(センサモデル設定部15)

0102

センサモデル設定部15は、センサ部を構成する部材、例えばワークの三次元計測を行うためのカメラやのいずれか又はすべてについて、位置や姿勢を仮想的に示すカメラモデルやプロジェクタモデルを設定する。センサモデルがカメラモデルのみか、あるいはプロジェクタモデルも含むかについては、センサ部が採用するワークの三次元形状の測定方法、及びこれを実現するための部材に依存する。例えばパッシブステレオ方式の場合は、プロジェクタが不要なのでカメラモデルのみで足りる。

0103

この場合、領域推定部22は、推定領域を、センサモデル設定部15で設定されたセンサモデルから見て死角となる領域を、計測困難な死角領域として推定するよう構成できる。死角領域の定義は、センサモデル設定部15で設定されたセンサモデルの種別によって異なる。例えばセンサ部で採用された三次元計測方法投影方式光切断方式の場合は、カメラモデルとプロジェクタモデルのいずれかから死角となる領域が死角領域となる。また複数のカメラを用いたステレオ法の場合は、複数のカメラモデルのいずれかから死角となる領域が死角領域となる。

0104

さらに死角領域を、ワークモデルの平面内の位置に応じて変化させてもよい。計測視野の中央部よりも周辺部の方が死角が発生し易いため、これに対応させて死角領域を変化させることで、シミュレーションの精度を高めることできる。
(シミュレーション用データを更新)

0105

さらにピッキング動作シミュレーションの実行中に、いずれか一つのワークモデルが取り出されると、残りのワークモデルに対して領域推定部22が計測可能な領域を再度推定し、シミュレーション用データを更新することもできる。すなわちシミュレーション用データ生成部40は、ピッキング動作シミュレート部30によるバラ積みピッキング動作のシミュレーション実行中にいずれか一のワークモデルが取り出されると、残りのワークモデルに対して計測可能な領域を再度推定し、シミュレーション用データを更新することができる。これにより、従来は一度ピッキング動作シミュレーションが実行されると、ワークモデルが順次取り出されてもシミュレーション用データはそのまま維持されている結果、宙に浮いたような不自然なワークモデルが残る状態となっていたところ、実施形態5によれば、上方のワークモデルが取り出された場合に生じ得る、残りのワークモデルの変化を考慮した上で、その下方に位置するワークモデルの計測が可能となり、より正確なバラ積みピッキングのシミュレーションが実現される。

0106

なおこの動作は、上述した実施形態1や後述する他の実施形態においても、領域推定部22で再度推定された死角領域を、ピッキング動作シミュレート部30で再度読み出してピッキング動作シミュレーション結果を更新させることができる。
(実施形態7)

0107

以上の例では、領域推定部でバラ積みデータ内の各ワークモデルの位置と姿勢に基づいて、センサ部により三次元計測が可能か否かを推定して推定領域を特定している。ただ本発明はこの構成に限られず、例えばワークモデルの表面状態に応じて三次元計測の可否を推定するよう構成することもできる。このような例を実施形態7に係るロボットシミュレーション装置として、図13に基づき説明する。この図に示すロボットシミュレーション装置600は、シミュレーション環境設定部10と、バラ積みデータ生成部20と、領域推定部22と、シミュレーション用データ生成部40と、ピッキング動作シミュレート部30と、表示部3を備える。バラ積みデータ生成部20は、物理シミュレーション部60を備える。実施形態7においても、上述した実施形態1等と同じ部材については、同一の符号を付して詳細説明を適宜省略する。

0108

シミュレーション環境設定部10は、ワークモデル設定部11と、姿勢条件設定部16を備える。ワークモデル設定部11は、表面状態パラメータ設定部12と、角度閾値決定部13を備える。表面状態パラメータ設定部12は、ワークモデルの表面状態に関する表面状態パラメータを設定するための部材である。この表面状態パラメータ設定部12により設定された表面状態パラメータに基づいて、角度閾値決定部13は、センサ部により三次元計測が困難となるセンサ部の測定軸に対するワークモデル表面の角度閾値を決定する。そして領域推定部は、角度閾値決定部13で決定された角度閾値よりも大きな傾斜角度を有するバラ積みデータ内の領域を、三次元計測が困難と推定される推定領域として特定する。この結果、シミュレーション用データ生成部は、領域推定部により推定された推定領域のデータを含まないバラ積みデータを、シミュレーション用データとして生成し、ピッキング動作シミュレート部30が、このシミュレーション用データを用いて、ピッキング動作シミュレーションを実行する。これによって、ワークの表面状態に応じた三次元計測の結果を推測でき、より精度の高いピッキング動作のシミュレーションが可能となる。すなわち、ユーザが指定したワークの表面状態の情報から、三次元計測データとして採否を決定する角度閾値を決定できるので、用いるワークに応じた柔軟な調整が容易に行える利点が得られる。

0109

特に従来のピッキング動作シミュレーションでは、単にワークモデルを読み込み、物理シミュレーションを行ってバラ積みデータを生成し、各ワークモデルが安定する位置や姿勢を求めて、その位置や姿勢にワークモデルを配置しているに過ぎなかった。このため、現実に作業空間内のワークを三次元計測する際には、計測できないはずの領域、例えばオクルージョンが発生していたり、ワークの表面が鏡面に近く、データが得られないといったデータも得られることになる。この結果、ピッキング動作シミュレーションン上では三次元サーチができたのに、実運用時にはサーチに失敗するなど、シミュレーション結果と、実際の結果が大きく乖離してしまうことが発生していた。

0110

これに対して実施形態7では、ワークの表面状態を示す表面状態パラメータをユーザが指定可能としたことで、センサ部でプロジェクタの反射光をカメラで適切に受光できるかを正確に予測しやすくなり、ワーク上の各位置における三次元計測の可否の判定の精度を向上できる。
(実施形態7に係るシミュレーション環境の設定手順)

0111

ここで、実施形態7に係るシミュレーション環境を設定する手順を、図14のフローチャートに基づいて説明する。

0112

まずステップS1401において、ワークモデルの表面状態を指定する。ここでは表面状態パラメータ設定部12にて、対象となるワークに応じた表面状態パラメータを、ワークモデルの表面状態として指定する。

0113

次にステップS1402において、表面状態が指定されたワークモデルのCADデータを、所定の数だけバラ積みして、三次元のバラ積みデータを得る。この例では、Zバッファ法を用いて高さ画像を生成していく中で、内部的に1ワーク毎に処理を行っている。1つのバッファに対し、全データを書き込んでいった後に、高さ画像が完成する。

0114

そしてステップS1403において、このバラ積みデータから高さ画像を生成する。ここで高さ画像の生成方法について説明する。まず、ワークのCADデータであるワークモデルで構成された三次元のバラ積みデータに基づいて、陰影消去するレンダリングによって二次元の高さ画像を描画する。レンダリング方法には、Zバッファ法、Zソート法スキャンライン法レイトレーシング法等が利用できる。ここではZバッファ法を用いて、複数のワークモデルを高さ画像に描画していく。Zバッファ法では、Zバッファ=高さ画像として実現される。また、Zバッファの初期化を、無限遠で行うのではなく、床面や箱の情報で最小に初期化する形を取る。Zバッファ法の過程で、各画素毎にワークモデルの面の法線情報を保持した、法線画像も同時に作成する。ここではZバッファを上書きした画素について、法線データも更新する。なお、本明細書中では、高さ画像への変換方法としてZバッファ法を例示するが、本発明はZバッファ法に限定するものでなく、上述の通り、他の方法も適宜利用できる。

0115

このようにして三次元のバラ積みデータから高さ画像に描画し直す。次に、ステップS1404において、すべてのワークモデルを描画したかを判定し、未だの場合はステップS1403に戻って処理を繰り返す。この結果、すべてのワークモデルの描画を終えた場合は、ステップS1405に進む。

0116

ステップS1405では、画素毎に、指定された表面状態に基づいてデータを除去する角度閾値を決定する。この角度閾値の決定は、角度閾値決定部13で行われ、詳細については後述する。そしてステップS1406において、当該画素における法線の角度が、決定された閾値を超えるものを除去する。この処理も、ワークモデル設定部11の、例えば角度閾値決定部13で行う。さらにステップS1407において、すべての画素で実施したか否かを判定し、未だの場合はステップS1406に戻って処理を繰り返す。そして、すべての画素で実施したと判定されると、処理を終了する。このようにして、ピッキング動作シミュレーションの環境設定が行われる。
(表面状態パラメータ)

0117

ここで、ステップS1401においてワークモデルの表面状態を指定する手順について詳述する。表面状態を指定する表面状態パラメータには、ワークの材質、表面粗さ、加工方法、色、反射率等が挙げられる。これらは単独でも、あるいは複数を組み合わせて用いてもよい。

0118

ワークの材質を表すパラメータ値の例としては、金属、樹脂、セラミック等が挙げられる。また表面粗さを表すパラメータ値の例としては、Raなどの数値、三角記号仕上げ面の名称(粗仕上げ、鏡面仕上など)等が挙げられる。さらに加工方法を表すパラメータの例としては、研削フライスラップなどが挙げられる。さらにまた色を表すパラメータとして、黒、白、銀、つやあり、つやなし等が挙げられる。

0119

また、ワークに対する指定方法として、ワーク全体に対して同じ表面状態を指定してもよいし、あるいは部分的に異なる表面状態を指定することもできる。このようなワークの表面を指定するには、ワークを仮想的に表したワークモデルを表示部上に表示させて行う。ここで、部分的に異なる表面状態の指定方法の一例として、図15A〜図15Bに示すように、表示部上に三次元状に表示されたワークモデルに対して設定を行う方法が挙げられる。例えば図15Aに示すワークモデルWMの斜視図上において、表面状態を設定したい面をユーザがマウス等のポインティングデバイス直接指定する。指定された指定領域DSAは、図15Bに示すように着色されたりハイライトされる等して、指定された領域が他の領域と視覚的に区別し易くなるように表示態様を変更させることが好ましい。

0120

あるいは図16Aに示すように、ワークモデルをワイヤーフレーム状WMFに表示させた状態で、表面状態を指定したい面を構成する頂点DSPを、図16Bに示すように個別に指定あるいは選択するように構成してもよい。この場合は、選択された頂点で規定された領域が、表面状態を指定する領域として特定される。

0121

また、3D表示状態で設定を行う方法に限られず、2D表示状態で設定を行う方法としてもよい。例えば、図17に示すワークをA、Bの方向からそれぞれ見た平面図を、図18に示すように表示させる。このように、ワークモデルの展開図WMDを作成して表示部上に表示させ、展開図WMD上で指定を行ってもよい。
(角度閾値の決定方法

0122

次に、以上のようにしてワークモデルの表面状態が指定された状態から、図14のステップS1405において、角度閾値を決定する方法を説明する。ここでは、プロジェクタモデルの光源の位置と反射モデルの式に基づいて、観測点における光と入射光との比率をワーク角度毎に算出し、この比率に対して閾値を設定する。設定された閾値を外れるワーク角度では計測できないものと判断して、三次元計測データから除去する。以下、具体的な方法を説明する。

0123

シミュレーションにおける反射のモデルは、主にコンピュータグラフィックスの分野において多く研究され、提唱されている。ここでは簡単のため、Phongの反射モデルを用いて具体的な手順を記載する。なお本発明においては、反射モデルはPhongの反射モデルに限定されず、他の反射モデルを用いてもよい。

0124

Phong反射モデルによれば、表面からの反射光は次式のように表現される。


…(1)式
なお上式において、各項は以下を表している。
I:反射光;Id:拡散反射成分;Is:鏡面反射成分;Ia:環境光成分

0125

ここでは、光源から出射した光線がどの程度、観測点に到達するかを算出することが目的であるので、簡単のため、ここではIa=0とする。なお環境光が強い場合には、計測可否に影響が発生する場合があるので、Ia≠0として計算することもできる。Ia=0と仮定した結果、(1)式は次式のように表現できる。


…(2)式

0126

次に、それぞれの成分について説明する。ここでは、各反射成分を記述する数式は入射光が平行光線だった場合を想定している。なお、光源が他の様態であった場合には、その光源に合ったモデル式を用いればよい。
[拡散反射成分]

0127

まず拡散反射のモデルとして、Lambert反射モデルを用いることができる。Lambert反射モデルは、理想的な拡散反射面が持つべき性質であり、どの方向から見ても輝度が一定になる反射モデルである。この様子を図19Aに示す。ここで入射光の輝度をI、入射角をα、拡散反射成分の割合をkd、拡散反射光の反射率をrdとすると、拡散反射光の輝度Idは次式で表される。

0128

上式において、α:ワーク法線と入射光の角度を示している。なおここではLambert反射モデルを用いて説明を行うものの、本発明においてはLambert反射モデルに限定せず、他の拡散反射モデルを用いてもよい。
[鏡面反射成分]

0129

次に鏡面反射モデルとして、例えばPhong鏡面反射モデル、Blinn−Phong鏡面反射モデル、Torrance−Sparrow鏡面反射モデル、Blinn鏡面反射モデル等が挙げられる。本明細書においてはPhong鏡面反射モデルを説明するが、本発明はこれに限らず、上述したものを含め、他の鏡面反射モデルを用いることもできる。

0130

図19Bに、Phong鏡面反射モデルの概略図を示す。この図において、αはワーク表面に対する法線と入射光の角度、βは正反射方向と観測点の角度、nは光の広がり度合いを表すパラメータを、それぞれ示している。図19Bに示すように、鏡面反射の場合、正反射方向を中心として少し広がりを持って反射する。また正反射方向から観測点が外れると、輝度が低下する。ここで入射光の輝度をI、正反射方向と観測点の角度をβ、拡散反射成分の割合をks、鏡面反射光の反射率をrsとすると、拡散反射光の輝度Isは次式で表される。

0131

上式におけるnは、鏡面反射の度合いを表す係数である。nが大きいほど、広がりが少ない反射をすることになる。またここでは、環境光だけでなく、物体自発光や物体による光の吸収がないものとして計算する。この反射光の輝度Irは次式で表される。

0132

上式における各係数をどのように設定するかについては、前もって積分球などを使った測定器によって計測された値を設定しておいてもよい。あるいは、複数方向から照明をあてて簡易的に求めたり、ユーザが入力したりするのでも良い。ここでは各係数を、kd=0.5ks;ks=0.5;rd=0.7;rs=0.98;入射角度(α)=25°;鏡面反射光の広がり度合い(n)=200;観測点角度=15°とする。この係数での反射光の分布は、図20のようになる。

0133

このように、観測される方向によって、光の強さが変化する。観測される光の強さが小さいということは、光が当たっていない部分との差が小さいので、三次元計測ができないことになる。ここでプロジェクタから構造化されたパターンの光(構造光)をワークに照射することを考えると、光が当たっている部分からの反射光が、観測点にどの程度届くかによって、光が当たっていない部分とのコントラストが取れるかが決まってくるため、その度合いによって計測ができるかどうかが決まる。例えば、下記のような実施例を考える。
(実施例1)

0134

拡散反射:鏡面反射=9:1;ワークの傾き=40°;入射光の強さ=I;kd=0.9I;ks=0.1I;rd=0.70;rs=0.98;α=40°;β=50°;n=100

0135

この場合、ある点に当たった光を観測点から観察した時の輝度は、次式で表現される。


(実施例2)

0136

拡散反射:鏡面反射=1:9;ワークの傾き=40°;入射光の強さ=I;kd=0.1I;ks=0.9I;rd=0.70;rs=0.98;α=40°;β=50°;n=100

0137

この場合、ある点に当たった光を観測点から観察した時の輝度は、次式で表現される。

0138

このように、図21Aに示すような入射光、観測点方向、正反射方向において、入射方向や観測方向、ワークの角度が同じであったとしても、拡散反射と鏡面反射の割合が異なると、観測される輝度は大きく異なることになる。ここで図21Bのような状況を考える。ここで、入射光の強さ=I;kd=0.1I;ks=0.9I;rd=0.70;rs=0.98;n=100とすると、図21Bのワークを傾けた時の入射光と反射光の比率は、図22のグラフに示すようになる。

0139

入射光と反射光の比率が低いということは、ワークのある部分に光が当たっていても、観測点に光が返ってこないので、光が当たっていない部分との区別がつかないということを意味する。つまり、この比率はワーク面を観測したときに得られるコントラストの値に近いものと考えられる。そこで、この比率に対して閾値を設け、計測結果を計算する時の角度閾値とする。例えば、比率の閾値を0.4としたとき、ワーク角度20°のものについては、拡散反射割合が0.6より大きいワークであれば計測できるものとする。

0140

また、閾値は、上述したように一つの固定値としてもよいし、何らかの関数としたり、ユーザに指定させてもよい。

0141

鏡面反射成分が大きい場合、観測点がちょうど正反射方向にあると、かなり強い光が観測点方向に来てしまうため(例えば図21Bのワーク角度10°の場合)、カメラなどで受けた場合、画素が飽和して計測できなくなってしまうことがある。そういった箇所も判断するために、上側に閾値を設けるようにしてもよい。

0142

このように決められた閾値を用いて計測を行った時の模式図を、図23A〜図23Dに示す。これらの図において、図23Aは拡散反射の割合が高い高さ画像を二次元表示した例を示すイメージ図、図23Bは図23Aを三次元表示した斜視図、図23Cは鏡面反射の割合が高い高さ画像の例を示すイメージ図、図23Dは図23Cの斜視図を、それぞれ示している。

0143

この方法を用いれば、より現実に近いシミュレーションを行うことができる。また、そのための設定方法をユーザがわかりやすい「材質」や「表面粗さ」などのキーワードで設定することができるようになるので、より簡単に設定を行うことができる。

0144

以上の例では、ピッキング動作シミュレート部30とは別に、バラ積みデータ生成部20や領域推定部22を設ける例を説明した。ただ本発明はこの構成に限らず、ピッキング動作シミュレート部にバラ積みデータやバラ積み画像の生成機能を持たせてもよい。このような例を実施形態8に係るシミュレーション装置400として、図24の機能ブロック図に示す。この図に示すロボットシミュレーション装置400は、ピッキング動作シミュレート部30Bと、シミュレーション環境設定部10と、検出用設定部50と、バラ積みデータ記憶部23を備える。実施形態8においても、上述した実施形態1等と同じ部材については、同一の符号を付して詳細説明を適宜省略する。

0145

ピッキング動作シミュレート部30Bは、バラ積み画像生成部31と、位置姿勢検出部32と、把持解算出部33を備える。バラ積み画像生成部31は、複数のワークモデルがバラ積みされた三次元のバラ積みデータから、バラ積みされた状態を示す二次元の高さ画像として、バラ積み画像を生成する。このバラ積み画像は、センサ部から見た平面図とできる。位置姿勢検出部32は、バラ積み画像に含まれる各ワークモデルの位置及び姿勢を検出するための部材である。把持解算出部33は、各ワークモデルの位置及び姿勢から、ワークモデル同士の干渉判定を行い、さらにエンドエフェクタを模したエンドエフェクタモデルで把持可能な場合は、このワークモデルを把持するためのエンドエフェクタモデルの姿勢を算出する。
(ピッキング動作シミュレーションの手順)

0146

次に、ピッキング動作シミュレーションの手順を、図25のフローチャートに基づいて説明する。まず、ステップS2501において、シミュレーション環境を設定する。例えば、図24のシミュレーション環境設定部10から、バラ積み画像を生成するための設定をユーザに行わせる。

0147

次にステップS2502において、ワークモデルのバラ積み画像を生成する。ここでは、ワークを作業空間内に積み上げた状態を仮想的に再現するため、物理シミュレーションを実行する。物理シミュレーションは、ワークモデルを一つづつ仮想作業空間に落下させる動作を繰り返して、複数のワークモデルが無作為に積み上げられたバラ積みデータを構成するものである(詳細は後述)。

0148

このようにしてステップS2502でバラ積み画像が得られると、次にステップS2503において、ワークモデルの位置及び姿勢を示す位置姿勢情報を出力するか否かを判定する。出力する場合はステップS2504に進み、ワークモデルの位置姿勢情報を出力した上でステップS2505に進む。一方、位置姿勢情報を出力しない場合は、ステップS2504を経ることなく、ステップS2505に進む。

0149

そしてステップS2505において、各ワークモデルの位置及び姿勢の検出を試みる。さらにステップS2506において、各ワークモデルの位置と姿勢が検出できたか否かを判定し、検出できる場合はステップS2507に進む。

0150

一方、検出できない場合はステップS2511にジャンプして、残ったワークモデルに関する情報を抽出する。ここで残ったワークモデルに関する情報には、認識が正しくなされなかった結果ピッキングできずに残ってしまったワークモデルの個数や、位置姿勢情報が検出できたワークモデルについては当該位置姿勢情報を含む。

0151

続いてステップS2512で、この抽出されたワークモデルの位置姿勢情報を出力するか否かを判定する。出力する場合はステップS2513に進み、ワークモデルの位置姿勢情報を出力して処理を終了し、一方出力しない場合はそのまま処理を終了する。

0152

ステップS2506でワークモデルの位置と姿勢が検出できた場合は、ステップS2507において、エンドエフェクタモデルと周辺データとの干渉判定と、把持解の算出を試みる。そしてステップS2508において、把持解を算出できたか否かを判定し、算出できた場合はステップS2509に進み、算出できない場合はステップS2511にジャンプして、上述の通り残ったワークモデルに関する位置姿勢情報を抽出し、ステップS2512で出力を判定した後、処理を終了する。

0153

ステップS2508で把持解を算出できた場合は、ステップS2509に進み、バラ積みデータを構成するワークモデルの数を一つ減らす。そしてステップS2510において、未処理のワークモデルが残っているか否かを判定し、残っている場合はステップS2502に戻ってバラ積み画像の生成から上記処理を繰り返し、一方残っていない場合は処理を終了する。

0154

このようにして、ピッキング動作シミュレーションがピッキング動作シミュレート部によって実行される。実行された結果は、必要に応じて表示部に表示させることができる。ユーザはこれに基づいて、現在の設定の適否を判断できる。また必要に応じて、各種の設定を変更する。例えばロボット本体部の設置位置や収納容器を置く位置、センサ部の姿勢などを調整する。変更した設定を、シミュレーション環境設定部に入力して、再度ピッキング動作シミュレーションを実行し、その適否を確認するという作業を繰り返して、ユーザの環境に応じた適切な設定条件を決定できる。
(バラ積み画像の生成手順

0155

次に、上記図25のフローチャートのステップS2502において、ワークモデルのバラ積み画像を生成する手順の詳細を、図26のフローチャートを用いて説明する。

0156

まずステップS2601において、初期状態データを読み込むか否かを判定する。この判定は、ユーザに対して初期状態データを読み込むか否かの判断を促す。なお、初期状態データは、予めバラ積みデータ記憶部23等に保存されているものとする。

0157

初期状態データを読み込む場合はステップS2602に進み、保存された初期状態データに記録されている位置、姿勢にワークモデルを設定する。次いでステップS2603において、物理シミュレーションを実行する。例えば、ワークモデルを所定の高さから落下させる(詳細は後述)。さらにステップS2604において、シミュレーション環境設定部で指定された数のワークモデルが配置されたか否かをシミュレーションパラメータが判定し、未だの場合はステップS2602に戻って処理を繰り返す。そして、指定された数のワークモデルが投下されたと判定されると、ステップS2608に進み、ワークモデルの位置及び姿勢に基づいたバラ積み画像を生成し、処理を終了する。

0158

一方、ステップS2601において初期状態データを読み込まないと判定された場合は、ステップS2605に進み、ワークモデルの初期状態を設定する。初期状態には、ワークモデルに物理シミュレーションを行う開始位置と姿勢が含まれる。例えば、収納容器の壁際の位置にワークモデルを配置したい場合等、ユーザが所望の位置にワークモデルをバラ積みしたい場合は、そのような位置と姿勢とを決定する。あるいは、乱数に基づいてワークモデルの位置と姿勢とを決定する。

0159

次にステップS2606において、このワークモデルに対して物理シミュレーションを実行する。さらにステップS2607において、指定された数のワークモデルが配置されたか否かを判定し、未だの場合はステップS2605に戻って処理を繰り返す。そして、指定された数のワークモデルが投下されたと判定されると、上記と同様にステップS2608に進み、ワークモデルの位置及び姿勢に基づいたバラ積み画像を生成し、処理を終了する。このようにしてバラ積み画像が生成される。
(物理シミュレーション)

0160

なお、物理シミュレーションを行うに際には、必ずしもワークモデルを落下させる必要はない。例えば床面上にワークモデルを配置させたり、あるいは既存のワークモデルの上に他のワークモデルを接するように配置させた状態から物理シミュレーションをスタートさせても良い。すなわち、ワークモデルを落下させるという動作は、物理シミュレーションにおいては必ずしも必要でない。ただし、ワークを実際に床面上やバラ積みされた他のワーク上に置いた状態で、倒れたり、傾いたり、滑ったりといった、実際のワークが重力や摩擦などの自然に作用する応力抵抗を受けて動く可能性を考慮する。また、ワークを配置させた直後のみならず、その後に他のワークをピッキングしたことで、バラ積みされたワークのバランスが崩れてさらに動くといった動作も考慮して、ワークモデルの仮想的な動きをシミュレーションする。すなわち本明細書でいうワークやワークモデルが「重力の作用を受け」るとは、ワーク等を落下させることに限定されず、載置されたワーク等が傾いたり崩れたり滑ったり、あるいは摩擦によって滑らない状態となること、ワークの反発係数により移動量が変わること等、自然界に働く応力や抵抗力により、安定した状態から不安定な状態となって動くことを包含する意味で使用する。
(シミュレーションの初期状態の再現)

0161

ここで、図27に示すような円筒形のワークモデルWMCをバラ積みして、ピッキング動作シミュレーションを行う例について説明する。ここでは、図28Aに示すワークモデルWMCをバラ積みしたバラ積みデータの初期状態に対して、ピッキング動作シミュレーションを行い、ワークモデルの一つづつ取り出す処理を行った結果、図28Dに示す状態で、ピッキング動作シミュレーションが終了した場合を考える。

0162

ここで、バラ積みデータの初期状態がランダムの場合は、以前の物理シミュレーションで得られた状態を同じ状態を作ることができない。すなわち、物理シミュレーションの度毎にランダムなバラ積みデータが生成されるため、図28Aに示す初期状態は一過性のものとなって、再現性がない。

0163

一方、ユーザがピッキング動作パラメータの設定の見直しなどを行い、その効果を確認しようとする場合、以前のピッキング動作シミュレーションでうまくいかなかった状態を再現して、このバラ積みデータに対して確認するのが最も効率的である。例えば、あるワークモデルに対するエンドエフェクタモデルの把持解が見つからずに全てのワークモデルを取り出せなかった場合に、その対策としてユーザが把持の教示位置を増やした場合を考える。この場合、ユーザが変更した設定が、前回発生した問題に対して有効であったか否かを判断するためには、前回うまく行かなかった状態、又はこれと近い状態を再現して確認することが最も有効である。

0164

加えて、問題が発生した正にその状態だけでなく、その問題が発生するに至った過程の状態から開始できるようにしてもよい。例えば問題が発生したバラ積みデータを、ワークモデルを順次追加して構成している場合は、問題が発生した段階の数回前の、ワークモデルの数が数回分少ない状態で、対応できるかどうかを確認することが考えられる。

0165

これらを実現するために、本実施形態においては、バラ積みデータの初期状態や終了状態、あるいは中間状態等、ユーザが再利用したいと考える状態のデータを保存しておき、ピッキング動作パラメータの調整後に、このような保存済みのバラ積みデータを呼び出して、検証することを可能としている。

0166

例えば図28Dの終了状態をバラ積みデータ記憶部23に保存しておくことで、ユーザがピッキング動作に失敗した原因を推測し、予想されるシミュレーションパラメータをシミュレーションパラメータ設定部で再設定後、この状態で再度ピッキング動作シミュレーションを実行し、ピッキングが可能かどうかを確認できる。あるいは、ピッキング動作シミュレーションに失敗して終了した状態のみならず、その前の段階からピッキング動作を検証するため、ピッキング途中の状態のバラ積みデータをバラ積みデータ記憶部23に保存しておくこともできる。例えば図28Cは、図28Dの終了状態から10回遡った状態のバラ積みデータを示しており、この段階から、シミュレーションパラメータを再設定したピッキング動作を検証することもできる。あるいはより古いデータに遡って、図28Bに示すように、図28Dの終了状態から20回遡った状態のバラ積みデータを保存し、これを読み出して再度ピッキング動作シミュレーションを実行することもできる。

0167

また、バラ積みデータの保存は、上述したようにユーザが所定のタイミングで行う他、所定のタイミングで自動で保存されるように構成してもよい。所定のタイミングとして、例えば、ピッキング動作シミュレーション実行前の初期状態や、ピッキング動作シミュレーション完了後の最終状態で、これ以上ピッキングできるワークモデルがない状態、あるいは中間でワークモデルが取り出される際毎に定期的に保存するようにしてもよい。

0168

また、別の所定のタイミングとして、例えばバラ積みされるワークの数が、5個おきや10個おきといった一定個数毎としたり、あるいはバラ積みデータを作成する経過時間で5分おき、10分おきなどとしてもよい。また、自動保存されるバラ積みデータの容量や数に制限を設けてもよい。例えば自動保存されたバラ積みデータが500個を越えると、古いデータを上書きするようにしたり、あるいは自動保存されたデータの総和が500MBを越えた場合に、古いデータから順に上書きして削除するようにするなどのルールを設けることができる。

0169

さらに、これら自動又は手動で保存されたデータを遡って読み出す際のユーザインターフェース画面として、例えば早送り、巻き戻しのようなVTR等で一般的なボタン類を配置したり、ジョグシャトルジョグダイヤルのような回転式の部材でもって送り方向と戻し方向をスムーズに切り替え可能な操作部を用意することもできる。または、スクロールバースライダのような、直線的な部材でもって過去の位置を指定するように構成してもよい。

0170

また、このような保存済みのバラ積みデータを読み出す代わりに、新たにバラ積みデータをランダムに生成することもできる。例えばピッキング動作シミュレーション中にユーザに対し、過去のバラ積みデータを利用するか、新規のバラ積みデータを利用するかを選択させるように構成してもよい。
(物理シミュレーションの過程におけるデータの保存)

0171

一般的にバラ積みデータでシミュレーションを行うには、物理シミュレーションが用いられる。物理シミュレーションでは、重力が設定された仮想作業空間において、質量を持つワーク等の物体の動きが動的にシミュレーションされる。各々の物体が衝突した場合には、予め設定された反発係数や摩擦係数を考慮して、物体が衝突後どのような動きになるかが示される。このような物理シミュレーションの手順を、図29A図29Bのフローチャートに基づいて以下説明する。

0172

まずステップS2901において、仮想空間を作成する。次にステップS2902において、作成された仮想空間の設定を行う。ここでは、仮想空間内の重力など、物理シミュレーション全体に拘わるパラメータを設定する。なお、仮想空間の作成と設定を同時に行ってもよい。

0173

さらにステップS2903において、ワークモデルをばら積みする収納容器を設定する。例えば、収納容器の縦、横、高さの長さ等を設定する。次にステップS2904において、ワークモデルをばら積みする収納容器の配置を設定する。バラ積みデータを生成する物理シミュレーションでは多くの場合、収納容器は静的なオブジェクトとして配置される。

0174

そしてステップS2905において、ワークモデルのサイズを設定する。例えばワークモデルのサイズや形状、密度、重量など、ワークモデルに特有の設定を行う。次にステップS2906において、ワークモデル位置情報の読み取りを行う。

0175

さらにステップS2907において、ワークモデルの初期位置が指定されているか否かの判定を行う。指定されていない場合は、ステップS2908において、ワークモデルの初期位置及び姿勢をランダムに設定してステップS2910に進む。一方、ワークモデルの初期位置が設定されている場合は、ステップS2909において、ワークモデルの位置及び姿勢を指定位置姿勢に設定してステップS2910に進む。なお、ワークモデルの初期位置は、例えばテキストデータ等の設定ファイルを読み込んで設定してもよいし、あるいはGUI等を用いてユーザが指定できるようにしてもよい。

0176

次にステップS2910において、ワークモデルの生成を行う。そしてステップS2911において、指定された数量のワークモデルが生成されたか否かを判定し、未だの場合はステップS2906に戻って上記工程を繰り返す。一方、指定された数のワークモデルが生成された場合は、ステップS2912に進み、単位時間後のワークモデルの位置・姿勢をシミュレーションする。ここでは、ワークモデルに限らず、全ての物体について、他のワークモデルとの衝突なども考慮した上で、単位時間後のワークモデルの位置・姿勢を計算する。そしてステップS2913において、全てのワークモデルがその位置及び姿勢で安定しているか否かを判定する。安定していない場合はステップS2912に戻って上記工程を繰り返す。一方、安定していると判定された場合はステップS2914に進み、ワークモデルの位置・姿勢情報を保存するか否かを判定する。保存の要否はユーザが判断する。ユーザは、例えば後に設定の見直しやシミュレーションのやり直しをする可能性がある場合など、データ保存の必要性を感じる場合に保存する。保存する場合はステップS2915に進み、ワークモデルの位置・姿勢情報の保存や出力処理を行った上で処理を終了する。なおここで、ユーザに出力の有無を都度指定させても良い。あるいは物理シミュレーション部の内部で、常にロギングしておいてもよい。さらには、保存するデータを回数で指定させてもよい。例えばN回ごとや10回分など、任意のタイミングや数を指定できる。一方、保存が不要と判断された場合は、そのまま処理を終了する。

0177

このようにして、ワークモデルの位置や姿勢を考慮した物理シミュレーションが行われる。この方法によれば、ステップS2914においてユーザが設定の見直しをする必要性を感じた状態を保持しておき、後から呼び出すことが可能となる。この結果、ユーザが行った設定の見直しが、ユーザが直面している課題に対して効果的だったかどうかを明確に判断することが可能となる。このため、ユーザがロボットの立ち上げを行うときに、より短い時間で正しい設定を行うことができるようになり、立ち上げ時間の短縮、実運用の安定化に?がる。
(ワークモデルの姿勢の制限)

0178

また、三次元のバラ積みデータやバラ積み画像の生成において、仮想作業空間上に配置するワークモデルの姿勢に制限を加えてもよい。すなわち従来のバラ積みピッキングのシミュレーションに際して、ワークモデルを仮想作業空間上にランダムに配置させる結果、実際の運用時の環境と異なる状態でのシミュレーションとなってしまっていることがあった。例えば図30に示すように、T字型のワークモデルWMT直立するような不安定な姿勢で存在することが生じていた。実際の運用時には、このような不安定な姿勢でワークが存在することは起こり難い。

0179

また実際にピッキング対象のワークが提供される態様は、無作為に積み上げられた状態に限られず、段積み状態ケースや、ワークの向きが固定化された状態で積まれているケースも多く、実運用時のワークの状態に合わせた適切な設定調整や、検証が行えない状態であった。

0180

そこで本実施の形態では、ワークの姿勢を完全にランダムとするのでなく、一定の制限を加えた状態でバラ積みデータを準備することにより、実運用時の環境や条件に合わせたシミュレーション結果が得られるようにしている。すなわち、バラ積みデータの生成を、ユーザの用途やワークの形状等に応じてカスタマイズした、バラ積みデータ生成の個別設定を可能としている。

0181

このようなワークの姿勢の制限は、物理シミュレーションの実行に際して行うことができる。一例として、(I)物理シミュレーションを行う際に、仮想作業空間上にワークモデルをランダムな姿勢で投下させるのではなく、姿勢制限を加えた状態で投下させる。また、姿勢制限を超えた姿勢になってしまったものは、物理シミュレーション過程で除外することで、姿勢制限を行うこともできる。

0182

あるいは、(II)物理シミュレーションを行う際に、仮想作業空間上にワークモデルを1つ1つランダムな姿勢で投下させるのではなく、規定の姿勢で、一定の間隔で複数配置させた状態で、同時に落下させてもよい。

0183

このようにして、実運用時の状態に合わせたバラ積みデータを生成することができるため、ピッキング動作シミュレーションの結果も実運用時に近い状態で実行でき、より正確なシミュレーション結果が得られる。これにより、実際にワークを用意することなく、実運用時に近い形で事前に適切な設定調整や、検証を行うことができるようになる。以下、図25のステップS2502において、ワークモデルのバラ積み状態を、姿勢条件設定部16で姿勢に制限を加えた上で、バラ積みデータ生成部20で生成する際の手順を説明する。
(I:ワークモデルを一つづつ投下させる物理シミュレーションにおける姿勢制限)

0184

まず、物理シミュレーションにおいてワークモデルを一つづつ投下させる際の姿勢制限について、説明する。ここでは、ワークモデルの姿勢のみに制限を加える方法について説明する。ここでは、ワークモデルの位置については制約のないランダムとしている。姿勢制限を加える方法としては、
1.物理シミュレーションにおけるワークモデルの投下時に、姿勢制限を加える。
2.物理シミュレーションの実行後に、姿勢制限範囲外のワークモデルを除外する。
3.上記1.、2.の両方を行う。
の3パターンが挙げられる。
(1.ワークモデルの投下時に姿勢制限)

0185

まず、1.の物理シミュレーションにおけるワークモデルの投下時に、姿勢制限を加える手順について、図31のフローチャートに基づいて説明する。ここでは、ワークモデルに対して許容される姿勢を、姿勢条件設定部16で予め姿勢条件として設定されたものとする。例えば、ワークモデルに対して許容される姿勢の角度範囲を、姿勢制限範囲として規定する。あるいは、ワークモデルの基準姿勢からの許容回転角度、傾斜角度を姿勢条件として設定することもできる。

0186

このように姿勢条件が設定された状態で、まずステップS3101において、乱数に基づいてワークモデルの姿勢及び投下位置を生成する。次に、ステップS3102において、生成されたワークモデルの姿勢が、姿勢条件設定部で設定された姿勢制限範囲内の姿勢か否かを判定する。この判定は、バラ積みデータ生成部で行う。姿勢制限範囲でないと判定された場合は、ステップS3101に戻って、新たなワークモデルの姿勢及び投下位置を生成し直す。なお、姿勢及び投下位置を生成して投下されるワークモデルは、1つずつとすることもできるし、複数のワークを一括して姿勢、投下位置を生成して、これらを同時に落下させてもよい。

0187

一方、姿勢制限範囲と判定された場合は、ステップS3103に進み、このワークモデルを投下させる物理シミュレーションを実施する。そしてステップS3104において、指定された数だけワークモデルが投下されたか否かを判定し、未だの場合はステップS3101に戻り、処理を繰り返す。このようにして、指定された数のワークモデルが投下されたと判定された場合は、処理を終了する。以上のようにして、ワークモデルを投下させる前の姿勢を、姿勢制限範囲内にあるか判定し、制限範囲外のワークモデルを除外することで、不自然なワークモデルの存在を排除できる。この方法であれば、制限範囲外のワークモデルに対しては、落下させる物理シミュレーション自体を行わないので、シミュレーションに係る処理を簡素化できる利点が得られる。
(2.ワークモデルの投下後に姿勢制限)

0188

一方、ワークモデルを投下させた後の姿勢に対して、制限範囲内にあるか否かを判定することでも、不自然なワークモデルを排除できる。以下、2.の物理シミュレーションの実行後に、姿勢制限範囲外のワークモデルを除外してバラ積みデータを生成する手順について、図32のフローチャートに基づいて説明する。

0189

まずステップS3201において、乱数に基づいてワークモデルの姿勢及び投下位置を生成する。次にステップS3202において、このワークモデルを投下させる物理シミュレーションを実施する。ここでも、姿勢及び投下位置を生成して投下されるワークモデルは、1つずつとすることもできるし、複数のワークを一括して姿勢、投下位置を生成して、これらを同時に落下させてもよい。

0190

そしてステップS3203において、落下されたワークモデルの内、姿勢条件設定部で設定された姿勢制限範囲外のワークモデルがあるか否かを判定する。姿勢制限範囲外にあるワークありと判定された場合は、ステップS3204に進み、姿勢制限範囲外のワークモデルを除外して、再度落下させる物理シミュレーションを実施した上で、ステップS3203に戻って判定を繰り返す。

0191

一方、姿勢制限範囲外のワークモデルなしと判定された場合は、ステップS3205に進み、指定された数だけワークモデルが投下されたか否かを判定し、未だの場合はステップS3201に戻り、処理を繰り返す。このようにして、指定された数のワークモデルが投下されたと判定された場合は、処理を終了する。以上のようにして、ワークモデルを投下させた後の姿勢が、姿勢制限範囲内にあるかを判定し、制限範囲外のワークモデルを除外することで、不自然なワークモデルの存在を排除できる。この方法であれば、落下されたワークモデルに対して姿勢を判定することから、不自然なワークモデルをより確実に除外できる利点が得られる。
(3.ワークモデルの投下前後に姿勢制限)

0192

さらに、ワークモデルを投下させる前の姿勢と、透過後の姿勢の両方に対して、制限範囲内にあるか否かを判定することでも、不自然なワークモデルを排除できる。ここでは、ワークモデルに対して許容される投下時の姿勢を投下後の姿勢を、姿勢条件設定部で予め設定する。これらは同じ姿勢とすることもできるが、好ましくは投下時のワークモデルの姿勢と、投下後のワークモデルの姿勢とを個別に設定することが好ましい。以下、3.の物理シミュレーションの実行の前後に、姿勢制限範囲外のワークモデルを除外してバラ積みデータを生成する手順について、図33のフローチャートに基づいて説明する。

0193

まずステップS3301において、乱数に基づいてワークモデルの姿勢及び投下位置を生成する。次に、ステップS3302において、生成されたワークモデルの姿勢が、姿勢条件設定部で設定された姿勢制限範囲内の姿勢か否かを判定する。姿勢制限範囲でないと判定された場合は、ステップS3301に戻って、新たなワークモデルの姿勢及び投下位置を生成し直す。なお、ここでも姿勢及び投下位置を生成して投下されるワークモデルは、1つずつとすることもできるし、複数のワークを一括して姿勢、投下位置を生成して、これらを同時に落下させてもよい。

0194

一方、姿勢制限範囲と判定された場合は、ステップS3303に進み、このワークモデルを投下させる物理シミュレーションを実施する。そしてステップS3304において、落下されたワークモデルの内、姿勢条件設定部で設定された姿勢制限範囲外のワークモデルがあるか否かを判定する。姿勢制限範囲外にあるワークありと判定された場合は、ステップS3305に進み、姿勢制限範囲外のワークモデルを除外して、再度落下させる物理シミュレーションを実施した上で、ステップS3304に戻って判定を繰り返す。

0195

一方、姿勢制限範囲外のワークモデルなしと判定された場合は、ステップS3306に進み、指定された数だけワークモデルが投下されたか否かを判定し、未だの場合はステップS3301に戻り、処理を繰り返す。このようにして、指定された数のワークモデルが投下されたと判定された場合は、処理を終了する。以上のようにして、ワークモデルを投下させた後の姿勢が、姿勢制限範囲内にあるかを判定し、制限範囲外のワークモデルを除外することで、不自然なワークモデルの存在を排除できる。この方法であれば、落下の前後でワークモデルの姿勢を確認することから、最も確実に不自然なワークモデルを除外できる。

0196

このようにして、ワークモデル投下時や投下後、あるいはその両方のタイミングでワークの姿勢に対し制限を加えることで、不自然な形で直立するワークが存在しこのようなワークに対してもピッキング動作シミュレーションを実行してしまう事態を避けることが可能となる。また、ワークの形状によって片面しか見えないようなバラ積み状態を実現することもできる。例えば図34A、図34Bに示すような、表面と裏面の面積が異なるワークWK6に対して、図35に示すように、バラ積み状態では各ワークWK6の表面側のみしか見えないような場合であっても、実運用に合わせてこのようなバラ積み状態を生成し、仮想的に再現することが可能となる。例えば、許容される姿勢条件として、ワークモデルの特定の面が底面となるように姿勢条件設定部で設定する。これによって、ピッキング動作シミュレーションにおける設定の調整や検証といった時間のかかる作業を、実際にワークを用意することなく、実運用に近い形で事前に行うことができるようになる。また、対象となるワークがどのようなバラ積みをされるかによって、最適な設定が変わるところ、姿勢条件に制限を加えることで、ピッキング動作シミュレーションの実行前に設定を合わせこむことが可能となる。
(実施形態9)

0197

以上の方法では、バラ積みデータの生成に際してワークモデルの姿勢にのみ制限をかける例を説明した。ただ本発明は、この例に限られず、ワークモデルの姿勢と位置の両方に制限を加えることもできる。例えば、図36Aに示すように、収納容器に板状のワークWK7が整列されて詰め込まれた状態や、図36Bに示すように、円筒状のワークWK8が収納容器内で段積みされた状態を考える。このようなバラ積み状態にあるワークは、収納容器内にランダムに存在しているのでなく、概ね一定の姿勢や位置にあるという制約を受ける。このため、従来の物理シミュレーションのような、ワークを完全にランダムに生成される方法では、このようなバラ積み状態を再現できない。そこで、このようなバラ積み状態にあるワークに対しても、正確なピッキング動作シミュレーションが実行できるよう、バラ積み状態を生成する条件として、ワークの姿勢のみならず位置にも制約を設ける。以下、このような方法を実施形態9として、図37のフローチャートに基づき説明する。

0198

まずステップS3701において、規定の姿勢、規定の間隔で複数のワークモデルの投下位置及び姿勢を設定する。ここでは、ワークモデルに対して許容される姿勢や位置、間隔などの配置条件を、姿勢条件設定部で設定する。例えば、ワークモデルの姿勢、X方向の配置数と配置間隔、Y方向の配置数と配置間隔、ワークモデル段数等が挙げられる。例えば図36AのワークWK7のバラ積み状態を物理シミュレーションするには、配置条件として、X方向の配置数を8個、Y方向の配置数を1個、段数を1に設定する。また例えば図36BのワークWK8のバラ積み状態を物理シミュレーションするには、配置条件として、X方向の配置数を5個、Y方向の配置数を3個、段数を3に設定する。

0199

次にステップS3702において、乱数に基づいて、複数のワークモデルの位置及び姿勢に外乱を加える。さらにステップS3703において、ワークモデルを同時に投下させて物理シミュレーションを実施する。このようにして、規定の姿勢で、指定された配置位置にワークモデルを用意した状態で、ワークモデルを同時に投下させて物理シミュレーションを行うことができる。特にワークモデルを投下させる前に、乱数に基づいて、位置及び姿勢に外乱を加えることで、毎回異なる状態のデータを作成することができる。

0200

そしてステップS3704において、指定された段数分、ワークモデルが投下されたか否かを判定し、未だの場合はステップS3701に戻って処理を繰り返す。すべてのワークモデルが投下されたと判定された場合は、処理を終了する。このようにして、ワークが収納容器内に整列されて詰め込まれた状態や、段積み状態にあるバラ積み状態を再現したシミュレーション用のバラ積みデータを作り出すことができる。特に規定の姿勢で一定の間隔で複数配置させた状態で、ワークモデルを同時に投下させることで、ワークモデルの位置と姿勢の両方に制限を加えることが可能となる。この結果、設定の調整や検証といった時間のかかる作業を、実際にワークを用意することなく、実運用時に近い形で事前に行うことができるようになる。特に対象となるワークがどのようなバラ積みにされるかに応じて、最適な設定が変わるところ、事前に設定をカスタマイズして合わせこむことができる。
(姿勢条件の設定画面)

0201

次に、このような姿勢条件を設定する手順の一例を、図38図39等に基づいて説明する。これらの図において、図38は姿勢条件設定部の一態様であるロボットシミュレーションプログラムのユーザインターフェース画面において、表示部上に示されたワークモデルWM6に対して基本姿勢を規定する様子を示すイメージ図であり、図39は、同じく姿勢条件を設定する姿勢条件設定画面110を示している。
(基本姿勢の設定)

0202

まず、ワークモデルの投下時の基本姿勢を規定する。例えば、図38に示す基本姿勢設定画面上で、投下方向に対するワークモデルWM6の姿勢を調整する。この例では、Z軸方向が投下方向である。例えば画面上でワークモデルWM6をドラッグして投下姿勢を自由に変更できる。

0203

次に、基本姿勢の状態に対する、許容角度を指定する。角度の指定方法は、投下方向の軸に対する傾斜角度と、投下方向に軸に対する回転角度の2つを、範囲で指定する。例えば、図39に示す姿勢条件設定画面110上で、傾斜角度と回転角度を数値で入力する。この例では回転角度の範囲を±で示しているが、下限と上限の値を個別に指定可能にしてもよい。例えば傾斜角度を0°、回転角°を±180°に指定した場合、図40に示すように、基本姿勢に対し、投下方向に向かって傾斜のない姿勢で投下される。なお、投下方向の軸に対する回転角度はランダムに変化される。また傾斜角度を15°、回転角度を±0°に指定すると、図41に示すように、基本姿勢に対し、投下方向の軸に対する回転方向には変化がないが、傾斜角のみに外乱が加わった姿勢にてワークモデルが投下されることになる。なお、傾斜角度の範囲、回転角度の範囲がいずれもゼロでない場合、それぞれの範囲内で傾斜角度、回転角度がランダムに変化させた姿勢にて、ワークモデルが投下されることになる。

0204

このようにして、基本姿勢と、この基本姿勢に対する傾斜角度、回転角度の範囲を1セットとし、これを必要に応じて複数セット設定する。例えば、ワークの表面のみが見えるようなバラ積み状態に対しては、1セットのみを設定して実現できる。一方、ワークの側面は上を向かないが、表面と裏面の両面が上を向くようなバラ積みに対しては、「表面が上を向いた状態の基本姿勢で設定」したものと、「裏面が上を向いた状態の基本姿勢で設定」したものの2セットをそれぞれ定義し、1回の投下毎に、どのセットが選ばれるか自体をランダムに選択させることで、所望のバラ積み状態を実現できる。
(ワークモデルの配置条件設定)

0205

次に、実施形態9として説明した、ワークモデルの配置条件を設定する方法について、以下説明する。ワークモデルの姿勢のみならず、位置等に関しても設定する方法としては、例えば、1.X方向の配置数と配置間隔、Y方向の配置数と配置間隔、ワークモデルの段数を入力させる方法や、2.最初に配置パターンを選択させ、それに応じて必要な配置条件を入力させる方法等が挙げられる。まず、1.の方法について説明する。姿勢条件設定部の他の態様として、例えば図42に示すような配置条件設定画面120から、ワークモデルのX方向の配置数と配置間隔、Y方向の配置数と配置間隔、ワークモデルの段数を、それぞれ入力させる。
(配置パターン選択)

0206

次に、2.の方法について説明する。この方法では、先にワークモデルの配置パターンをユーザに選択させて、次に選択に応じた必要なパラメータを入力させる。ワークモデルの配置パターン選択画面として、例えば、図43A、図43B、図43Cに示すように、ワークモデルが収納容器内で完全ランダムな場合、一方向に配置されている場合、それ以外の複数方向、複数段に配列されている場合の3パターンを、表示部にそれぞれ表示させる。表示は、これらを一覧表示させてもよいし、複数の画面を切り替えて表示させてもよい。ユーザが、いずれかの配置パターンを選択すると、詳細な配置条件のパラメータを設定する配置条件設定画面が表示される。例えば、図43Aの完全ランダムな配置パターンが選択された場合、配置条件としてバラ積みの個数のみを入力させる。また図43Bの一方向に配置されている配置パターンが選択された場合は、配置数、配置方向(X又はY)、配置間隔をそれぞれ入力させる。あるいは図43Cの複数方向、複数段に配列されている配置パターンが選択された場合は、X方向の配置数、配置間隔、Y方向の配置数、配置間隔、Z方向の段数を、それぞれ入力させる。このようにして、ユーザは表示部に表示されたガイダンスに従い、必要な設定を順次遺漏なく行うことができる。
(姿勢安定性パラメータ決定部17)

0207

以上のようにして、ユーザがワークモデルの許容される姿勢等の姿勢条件を予め設定し、条件に合致しないワークモデルを排除することで、バラ積みデータに不自然な姿勢や不安定な姿勢のワークモデルが含まれないようにできる。ただ本発明は、ワークモデルが安定な姿勢にあるかどうかを判定できるよう、ワークモデルが不安定な姿勢であることを自動検知するように構成してもよい。例えば、不安定な姿勢のワークモデルが検知されると、このようなワークモデルをバラ積みデータから自動的に除外するよう構成することで、同様にバラ積みデータを実運用環境に近い状態として、ピッキング動作シミュレーションの精度を高めることが期待できる。またこの場合は、姿勢安定性が悪いワークモデルを表示部上で、排除対象のワークモデル候補として表示させてユーザに対し排除するよう促したり、あるいはこのような姿勢安定性のワークモデルを選択する指針をユーザに対して与えることもできる。さらには、ユーザが姿勢条件等を手動で設定しなくとも、ロボットシミュレーション装置側で自動的に不自然な姿勢や不安定な姿勢のワークモデルを排除させて、適切な条件に設定された状態でピッキング動作シミュレーションを実行させることもでき、ユーザの利便性の面でも有利となる。

0208

このような姿勢安定性の演算は、姿勢安定性パラメータ決定部で行うことができる。姿勢安定性パラメータ決定部17は、例えば図12に示すように、姿勢条件設定部16に含めることができる。例えば、姿勢条件設定部16で姿勢条件を設定する際、姿勢安定性パラメータ決定部17で演算された姿勢安定性に基づき、好ましい数値範囲をユーザに提示することができる。ユーザは提示された数値を参照して、姿勢条件として姿勢範囲の角度などを設定、あるいはこれを微調整することができる。また姿勢安定性パラメータ決定部は、必ずしも姿勢条件設定部に含める必要はなく、別部材としてもよい。

0209

さらに、予め姿勢安定性パラメータをロボットシミュレーション装置側で規定しておき、既定値の姿勢安定性パラメータに従い、姿勢安定性が低いワークモデルを自動的に排除するよう構成してもよい。この場合は、姿勢安定性パラメータを含めた姿勢条件の設定をユーザが行う必要はない。このように、姿勢条件の設定をユーザが行わない態様も、本発明に包含する。いいかえると、姿勢条件設定部16は、必ずしもユーザによる姿勢条件の設定を受け付ける構成は必須でなく、姿勢条件設定部16による姿勢条件の設定には、ユーザ指定の他、既定値による設定も含む意味で使用する。
(姿勢安定性の演算方法)

0210

ここで、姿勢安定性を演算する方法を、図44のフローチャートに基づいて説明する。ここでは、図30に示したT字型のワークモデルWMTを例に挙げて説明する。まず、ステップS4401でワークモデルWMTの形状に外接する立方体を求める。例えば図45Aに示すワークモデルWMTに対する外接立方体を求めると、図45Bのようになる。次に、外接立方体を構成する6面の中で最大面積となる面を求める。例えば図45Bの例では、図45Cのように側面が最大面積となる。

0211

次にステップS4402で、ワークモデルWMTに対して物理シミュレーションを行い、このワークモデルWMTが他の物体に接触している部位を、真上から投影した領域を求める。例えば物理シミュレーションの結果、図45AのワークモデルWMTが図46Aのように倒れた姿勢で仮想作業空間内に置かれた場合は、このワークモデルWMTが仮想作業空間の床面と接触している部位を真上から見た投影領域は、図46Bのようになる。

0212

また、物理シミュレーションの結果、図45AのワークモデルWMTが図47Aのように直立した姿勢で仮想作業空間内に置かれた場合は、このワークモデルWMTが仮想作業空間の床面と接触している部位の投影領域は、図47Bのようになる。

0213

あるいはまた、物理シミュレーションの結果、図45AのワークモデルWMTが図48Aのように収納容器の壁面にもたれかかる姿勢で置かれた場合は、このワークモデルWMTが仮想作業空間の床面と接触している部位の投影領域は、図48Bのようになる。

0214

このようにして得られた投影領域に対して、ステップS4403で最小面積で外接する矩形を求める。例えば図49Aに示す投影領域に対する最小面積外接矩形は、図49Bのようになる。また図50Aに示す投影領域に対する最小面積外接矩形は、図50Bのようになる。さらに図51Aに示す投影領域に対する最小面積外接矩形は、図51Bのようになる。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ