(57)【要約】【課題】シミュレーションの精度が向上するシミュレーション装置を提供する。【解決手段】シミュレーション装置３は、２台の２次元カメラを含むロボット装置のシミュレーションを実施する。シミュレーション装置３は、ワークモデルの表面に複数の設定点を配置する設定点配置部３５と、３次元センサモデルから設定点までの距離を計算する距離計算部３６とを備える。シミュレーション装置３は、設定点の位置と３次元センサモデルから設定点までの距離とを含む３次元情報を生成する３次元情報生成部３７を備える。シミュレーション装置３は、カメラモデルから見えない設定点を除外する除外部３８を備える。シミュレーション装置３は、３次元情報に基づいて、ロボットモデルの位置および姿勢を変更する。【選択図】図２
2019141943.tif 000002
【特許請求の範囲】
【請求項１】
２台の２次元カメラを含む３次元センサによって取得されるワークの３次元情報に基づいて、ロボットが前記ワークに対して行う作業をシミュレーションするシミュレーション装置であって、
前記ロボットを３次元にて表現したロボットモデル、前記ワークを３次元にて表現したワークモデル、および前記２次元カメラを３次元にて表現したカメラモデルを含む３次元センサモデルを仮想空間に生成するモデル生成部と、
前記ワークモデルの表面に複数の設定点を配置する設定点配置部と、
前記３次元センサモデルからそれぞれの前記設定点までの距離を計算する距離計算部と、
前記設定点の位置と前記３次元センサモデルから前記設定点までの距離とを含む３次元情報を生成する３次元情報生成部と、
前記ワークモデルの表面に配置された前記設定点のうち、少なくとも１つの前記カメラモデルから見えない前記設定点を除外する除外部と、
前記３次元情報に基づいて、前記ワークモデルの位置および姿勢を算出するワーク位置計算部と、
前記ワークモデルの位置および姿勢に基づいて、前記ロボットモデルの位置および姿勢を変更し、前記ワークモデルに対して行う作業のシミュレーションを実施するシミュレーション実行部とを備える、シミュレーション装置。
【請求項２】
前記３次元センサは、前記ワークに対してパターン光を投影するプロジェクタを含み、
前記モデル生成部は、前記プロジェクタを３次元にて表現したプロジェクタモデルを仮想空間に生成し、
前記除外部は、前記２次元カメラの視野に対応する前記カメラモデルの撮像範囲と、前記プロジェクタがパターン光を投影する領域に対応する前記プロジェクタモデルの投影範囲とが重なり合う領域の外側に配置された前記設定点を除外する、請求項１に記載のシミュレーション装置。
【請求項３】
前記３次元センサモデルから前記設定点までの距離を修正する距離修正部を備え、
前記距離修正部は、前記カメラモデルの光軸から前記設定点までの長さが長くなるほど修正量が大きくなるように距離を修正する、請求項１または２に記載のシミュレーション装置。
【請求項４】
前記除外部は、前記カメラモデルから前記設定点に向かう視線を算出し、前記設定点と前記カメラモデルとの間に、前記ワークモデルの表面と前記視線との交点が存在する場合に、前記設定点を除外する、請求項１から３のいずれか一項に記載のシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作をシミュレーションするシミュレーション装置に関する。
【背景技術】
【０００２】
ロボットおよび作業ツールを備えるロボット装置は、ロボットが位置および姿勢を変更することにより、ワークの搬送などの作業を行うことができる。例えば、容器の中に積まれたワークを取り出すロボット装置が知られている（例えば、特開２０１７−１７０５６７号公報および特開２０１０−７１７４３号公報）。このようなロボット装置においては、カメラにて撮像したワークの画像を用いてワークの位置および姿勢を検出することができる。ロボット装置は、ワークの位置および姿勢に応じてロボットの位置および姿勢を変更し、ワークに対して作業を行うことができる。
【０００３】
また、ワークの位置および姿勢を検出するためのカメラを備えるロボット装置において、ロボット装置が実際の作業を行う前にシミュレーションを実施するシミュレーション装置が知られている（例えば、特許第５８９７６２４号公報）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１７０５６７号公報
【特許文献２】特開２０１０−７１７４３号公報
【特許文献３】特許第５８９７６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
シミュレーション装置にてロボット装置のシミュレーションを実施することにより、ロボット装置が所望の作業を行うか否かを判別することができる。または、ロボット装置を駆動する動作プログラムを実際の作業を行う前に評価することができる。作業者は、シミュレーションの結果に基づいて、作業を行う空間における装置の位置を変更したり、作業ツールを変更したり、または動作プログラムを修正したりすることができる。
【０００６】
ところで、従来の技術のシミュレーション装置は、ロボットに対応するロボットモデルおよびワークに対応するワークモデル等のモデルを仮想空間に配置してシミュレーションを実施することができる。このために、シミュレーション装置は、カメラから実際に見えないワークの部分まで検出してシミュレーションを実施する場合があった。この結果、シミュレーションにて得られる距離画像が実際のロボット装置にて得られる距離画像と異なり、シミュレーションの精度が低くなるという問題があった。
【０００７】
例えば、実際のロボット装置では、カメラにてワークの一部が撮像できなくて、ワークの位置および姿勢が検出されない場合がある。この結果、ロボット装置にてワークを搬送できない場合がある。しかしながら、シミュレーション装置では、カメラにて撮像できない部分まで計算してしまうために、ロボット装置がワークを搬送できるようにシミュレーションを実施する場合があった。
【課題を解決するための手段】
【０００８】
本開示の一態様のシミュレーション装置は、２台の２次元カメラを含む３次元センサによって取得されるワークの３次元情報に基づいて、ロボットがワークに対して行う作業をシミュレーションする。シミュレーション装置は、ロボットを３次元にて表現したロボットモデル、ワークを３次元にて表現したワークモデル、および２次元カメラを３次元にて表現したカメラモデルを含む３次元センサモデルを仮想空間に生成するモデル生成部を備える。シミュレーション装置は、ワークモデルの表面に複数の設定点を配置する設定点配置部と、３次元センサモデルからそれぞれの設定点までの距離を計算する距離計算部とを備える。シミュレーション装置は、設定点の位置と３次元センサモデルから設定点までの距離とを含む３次元情報を生成する３次元情報生成部を備える。シミュレーション装置は、ワークモデルの表面に配置された設定点のうち、少なくとも１つのカメラモデルから見えない設定点を除外する除外部を備える。シミュレーション装置は、３次元情報に基づいて、ワークモデルの位置および姿勢を算出するワーク位置計算部を備える。シミュレーション装置は、ワークモデルの位置および姿勢に基づいて、ロボットモデルの位置および姿勢を変更し、ワークモデルに対して行う作業のシミュレーションを実施するシミュレーション実行部を備える。
【発明の効果】
【０００９】
本開示の一態様によれば、ロボットの動作をシミュレーションするシミュレーション装置において、シミュレーションの精度を向上することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態におけるロボット装置およびシミュレーション装置の概略図である。
【図２】実施の形態におけるシミュレーション装置のブロック図である。
【図３】実施の形態における設定点配置部のブロック図である。
【図４】実施の形態におけるシミュレーションの制御のフローチャートである。
【図５】シミュレーション装置の表示部に表示される画像の例である。
【図６】シミュレーションにおいて、設定点を算出するための第１平面を説明するモデルの斜視図である。
【図７】シミュレーションにおいて、設定点を算出するための第２平面を説明するモデルの斜視図である。
【図８】第１平面と第２平面との交線を説明する斜視図である。
【図９】計測領域と第１平面との交線および計測領域と第２平面との交線を説明する図である。
【図１０】設定点配置部によりワークの表面に配置された設定点を説明するワークモデルの斜視図である。
【図１１】レンジセンサモデルからワークモデルまでの距離の算出を説明する概略図である。
【図１２】ワークの表面に配置される設定点を説明する第１の概略図である。
【図１３】ワークの表面に配置される設定点を説明する第２の概略図である。
【図１４】除外部により一部の設定点が除外された時のワークモデルの斜視図である。
【図１５】シミュレーション装置によって得られる距離画像の例である。
【図１６】ワークモデルの表面を検出する制御を説明するワークモデルの斜視図である。
【図１７】シミュレーションを実行するときに表示部に表示される画像の例である。
【図１８】除外部により設定点を除外するときの重複領域を説明する概略図である。
【図１９】ワークモデルの表面に配置された設定点の距離の修正を説明する概略図である。
【発明を実施するための形態】
【００１１】
図１から図１９を参照して、実施の形態におけるシミュレーション装置について説明する。本実施の形態では、ロボットおよびロボットに取り付けられた作業ツールを含むロボット装置が予め定められた作業を実施する。本実施の形態のシミュレーション装置は、ロボットがワークに対して行う作業をシミュレーションする。また、本実施の形態においては、ワークの搬送を行うロボット装置を例に取り上げて説明する。
【００１２】
図１は、本実施の形態におけるロボット装置およびシミュレーション装置の概略図である。ロボット装置９は、ワーク８５を把持するハンド５と、ハンド５を移動するロボット１を含む。ロボット装置９は、ワーク８５の位置および姿勢を検出するためにワーク８５を撮像する３次元センサとしてのレンジセンサ６を含む。ロボット装置９は、ロボット１およびハンド５を制御する制御装置２を備える。本実施の形態の制御装置２は、レンジセンサ６も制御する。
【００１３】
本実施の形態のハンド５は、ワーク８５を把持したり解放したりする作業ツール（エンドエフェクタ）である。ロボット１に取り付けられる作業ツールとしては、この形態に限られず、ロボット装置９が行う作業に応じた任意の作業ツールを採用することができる。例えば、ワークの溶接を実施する作業ツールまたはシール材をワークの表面に配置する作業ツール等を採用することができる。
【００１４】
本実施の形態のロボット１は、複数の関節部１８を含む多関節ロボットである。ロボット１は、上部アーム１１と下部アーム１２とを含む。下部アーム１２は、旋回ベース１３に支持されている。旋回ベース１３は、ベース１４に支持されている。ロボット１は、上部アーム１１の端部に連結されているリスト１５を含む。それぞれのロボット１の構成部材は、予め定められた駆動軸の周りに回転するように形成される。ロボットとしては、この形態に限られず、作業ツールを移動可能な任意のロボットを採用することができる。
【００１５】
制御装置２は、ＣＰＵ（Central Processing Unit）と、ＣＰＵにバスを介して互いに接続されたＲＡＭ（Random Access Memory）およびＲＯＭ（Read Only Memory）等を有する演算処理装置（計算機）を含む。制御装置２には、ロボット装置９およびレンジセンサ６を制御するために、予め作成された動作プログラムが入力される。ロボット１は、制御装置２の動作指令に基づいて駆動する。ロボット装置９は、動作プログラムに基づいてワーク８５を自動的に搬送する。
【００１６】
ワーク８５は、架台８１の表面に配置されている。レンジセンサ６は、ワーク８５を撮像できる位置に配置される。本実施の形態では、レンジセンサ６は、架台８１の上方に配置されている。レンジセンサ６は、支持部材８３により支持されている。
【００１７】
本実施の形態のレンジセンサ６は、２台の２次元カメラ６１，６２を含む。２台の２次元カメラ６１，６２は、互いに離れて配置されている。２次元カメラ６１，６２は、２次元の画像を撮像することができるカメラである。２次元カメラ６１，６２としては、ＣＣＤ（Charge-Coupled Device）センサまたはＣＭＯＳ（Complementary Metal-Oxide Semiconductor）センサなどの撮像素子を備えた任意のカメラを採用することができる。２台の２次元カメラ６１，６２の相対的な位置は予め定められている。
【００１８】
本実施の形態のレンジセンサ６は、ワーク８５に向かってパターン光を投影するプロジェクタ６３を含む。プロジェクタ６３は、レーザダイオードまたは発光ダイオード等の光源を有する。本実施の形態のプロジェクタ６３は、縞模様のパターン光をワーク８５に投影する。
【００１９】
本実施の形態のレンジセンサ６は、２台の２次元カメラ６１，６２にてワーク８５の画像を撮像する。制御装置２は、２次元カメラ６１，６２にて撮像した画像を処理する機能を有する。制御装置２は、ステレオ法によりワーク８５の３次元情報を生成することができる。制御装置２は、２台の２次元カメラ６１，６２にて撮像される２つの画像の視差に基づいて、ワーク８５の所定の部分までの距離を算出する。なお、２次元カメラ６１，６２にて取得した画像を処理する演算処理装置が制御装置２とは別に配置されていても構わない。
【００２０】
３次元情報は、所定の点の位置とレンジセンサから所定の点までの距離とに関する情報を含む。３次元情報には、距離画像または３次元マップが含まれる。距離画像は、距離に応じて画像の画素の明るさ又は色を変化させた画像である。３次元マップは、測定点を予め定められた座標系の座標値（ｘ，ｙ，ｚ）と距離との集合として表現したものである。このように、本実施の形態では、３次元センサの出力により得られるワーク８５の３次元の情報を３次元情報と称する。
【００２１】
制御装置２は、レンジセンサ６の画像から取得される３次元情報に基づいて、ワーク８５の位置および姿勢を検出する。そして、制御装置２は、ワーク８５の位置および姿勢に応じて、ロボット１の位置および姿勢を変更する。この後に、ハンド５は、ワーク８５を把持する。次に、制御装置２は、ロボット１の位置および姿勢を変更してワーク８５を所望の位置まで搬送する。
【００２２】
本実施の形態のシミュレーション装置３は、ＣＰＵおよびＲＡＭ等を含む演算処理装置（計算機）を含む。シミュレーション装置３は、シミュレーションの実行中の状態または結果等を表示する表示部３２を含む。表示部３２は、液晶表示パネル等にて構成することができる。本実施の形態のシミュレーション装置３は、制御装置２と互いに通信できるように通信線にて接続されている。シミュレーション装置３は、制御装置２から動作プログラムを取得することができる。または、シミュレーション装置３にて修正した動作プログラムを制御装置２に送信することができる。なお、シミュレーション装置３は制御装置２と接続されていなくても構わない。本実施の形態のシミュレーション装置３は架台８２に載置されている。
【００２３】
図２に、本実施の形態におけるシミュレーション装置のブロック図を示す。図３に、本実施の形態におけるシミュレーション装置の設定点配置部のブロック図を示す。図４に、本実施の形態におけるシミュレーションを行う制御のフローチャートを示す。
【００２４】
図２から図４を参照して、シミュレーション装置３は、ロボット装置９に含まれる部材のモデルおよびワーク８５のモデルを生成するモデル生成部３４を含む。ステップ９１において、モデル生成部３４は、シミュレーションの対象となる部材を配置した仮想空間を生成する。モデル生成部３４は、仮想空間にシミュレーションに関連する部材のモデルを配置する。シミュレーション装置３は、この仮想空間を表示部３２に表示する。また、表示部３２は、シミュレーションの結果を表示する。例えば、ロボットの位置および姿勢が変化する動作は表示部３２に表示される。
【００２５】
作業者は、ロボット装置９およびワーク８５の３次元モデルを、予めシミュレーション装置３に入力する。３次元モデルとしては、例えば、ＣＡＤ（Computer Aided Design）装置にて生成される３次元データを用いることができる。３次元データには、例えば、部材の形状データが含まれている。モデル生成部３４は、予め入力された３次元データを用いて、それぞれの部材のモデルを生成する。
【００２６】
図５に、本実施の形態におけるシミュレーション装置の表示部に表示される仮想空間の画像の例を示す。モデル生成部３４は、ロボット装置９を３次元にて表現したロボット装置モデル９Ｍを生成する。モデル生成部３４は、ロボット１を３次元にて表現したロボットモデル１Ｍを生成する。モデル生成部３４は、ハンド５を３次元にて表現した作業ツールモデルとしてのハンドモデル５Ｍを生成する。モデル生成部３４は、レンジセンサ６を３次元にて表現した３次元センサモデルとしてレンジセンサモデル６Ｍを生成する。レンジセンサモデル６Ｍには、２次元カメラ６１，６２を３次元にて表現したカメラモデル６１Ｍ，６２Ｍと、プロジェクタ６３を３次元にて表現したプロジェクタモデル６３Ｍが含まれる。
【００２７】
モデル生成部３４は、ワーク８５を３次元にて表現したワークモデル８５Ｍと、ワーク８５を載置する架台８１を３次元にて表現した架台モデル８１Ｍを生成する。モデル生成部３４は、これらのロボット装置モデル９Ｍおよびワークモデル８５Ｍを仮想空間に配置する。ロボット装置の部材のモデルとワークモデル８５Ｍとの相対的な位置は、実際のロボット装置９の部材とワーク８５との相対的な位置に対応している。
【００２８】
モデル生成部３４は、仮想空間に原点１０１を有するワールド座標系を設定する。ワールド座標系は、ロボットモデル１Ｍの位置および姿勢が変化しても原点１０１および座標軸の向きが変化しない座標系である。例えば、仮想空間におけるロボット装置モデル９Ｍの位置およびワークモデル８５Ｍの位置は、ワールド座標系の座標値にて表すことができる。
【００２９】
なお、図５においては、表示部３２は、ロボット装置モデル９Ｍおよびワークモデル８５Ｍ等を２次元の画像にて表示しているが、この形態に限られない。表示部は、入力装置を用いて視点を変更することにより、部材のモデルの位置関係などを３次元の画像にて確認できるように形成されていても構わない。
【００３０】
図２から図４を参照して、シミュレーション装置３は、ワークモデル８５Ｍの表面に複数の設定点を配置する設定点配置部３５を含む。ステップ９２において、設定点配置部３５は、ワークモデル８５Ｍの全ての表面に設定点を配置する。
【００３１】
図６に、設定点を配置するための第１平面を説明する斜視図を示す。図３および図６を参照して、設定点配置部３５は、第１平面を算出する第１平面計算部４５を含む。設定点配置部３５は、レンジセンサモデル６Ｍに対して計測領域ＴＡを設定する。計測領域ＴＡは、例えば、２つのカメラモデル６１Ｍ，６２Ｍのレンズ中心点同士を結ぶ線に平行で、カメラモデル６１Ｍ，６２Ｍの光軸に対して垂直な平面が設定される。または、計測領域ＴＡは、プロジェクタモデル６３Ｍの光軸に対して垂直な平面にて生成することができる。本実施の形態では、計測領域ＴＡは、レンジセンサモデル６Ｍから予め定められた距離にて離れた位置に形成される。また、計測領域ＴＡは、予め定められた大きさにて形成されている。
【００３２】
本実施の形態の計測領域ＴＡは、２つのカメラモデル６１Ｍ，６２Ｍのレンズ中心点同士を結ぶ線に平行な線にて分割される。計測領域ＴＡは、複数の分割線にて等間隔で分割されている。本実施の形態における第１平面Ｐ１は、２つのカメラモデル６１Ｍ，６２Ｍのレンズ中心点同士を結ぶ線と分割線とを含む。第１平面計算部４５は、それぞれの分割線に対応して複数の第１平面Ｐ１を生成する。
【００３３】
図７に、設定点を配置するための第２平面を説明する斜視図を示す。図３および図７を参照して、設定点配置部３５は、第２平面を算出する第２平面計算部４６を含む。本実施の形態におけるプロジェクタモデル６３Ｍは、縞模様のパターン光を投影する。計測領域ＴＡには、明るい部分と暗い部分との境界線が形成される。第２平面Ｐ２は、この境界線とプロジェクタモデル６３Ｍのレンズ中心点を通る平面である。第２平面計算部４６は、縞模様の境界線ごとに第２平面Ｐ２を生成する。第２平面計算部４６は、複数の第２平面Ｐ２を生成する。なお、図６に示される計測領域ＴＡの分割線は、プロジェクタモデル６３Ｍが投影する縞模様の境界線に垂直になるように定められている。
【００３４】
図８に、第１平面と第２平面との交線を説明する概略図を示す。図３および図８を参照して、設定点配置部３５は、第１平面Ｐ１と第２平面Ｐ２との交線を算出する交線計算部４７を含む。交線計算部４７は、第１平面Ｐ１と第２平面Ｐ２とが交差する線である交線Ｌ１を算出する。交線Ｌ１は、例えば、ワールド座標系に基づく式にて表すことができる。
【００３５】
設定点配置部３５は、ワークモデル８５Ｍと交線Ｌ１との交点を算出する交点計算部４８を含む。交点計算部４８は、交線Ｌ１とワークモデル８５Ｍの表面との交点を算出する。設定点配置部３５は、交点を設定点ＰＣ１，ＰＣ１１に定めることができる。設定点ＰＣ１，ＰＣ１１は、例えばワールド座標系における座標値にて表わすことができる。
【００３６】
図９に、計測領域と第１平面とが交差する線および計測領域と第２平面とが交差する線を説明する平面図を示す。本実施の形態においては、計測領域ＴＡにおいて、第１平面Ｐ１と第２平面Ｐ２とは互いに垂直に交わるように生成されている。第１平面Ｐ１と第２平面Ｐ２との複数の交点が生成される。交線計算部４７は、これらの交点を通るように複数の交線Ｌ１を算出する。そして、交点計算部４８は、複数の交線Ｌ１がワークモデル８５Ｍの表面と交わる交点を算出し、これらの交点を設定点に定めることができる。
【００３７】
図１０に、ワークモデルの表面上に配置された設定点を説明するワークモデルの斜視図を示す。設定点配置部３５は、ワークモデル８５Ｍの全ての表面において、設定点ＰＣ１を配置する。本実施の形態では、設定点配置部３５は、ワークモデル８５Ｍの上面、側面、および底面に設定点ＰＣ１を配置する。複数のワークモデルが存在する場合には、設定点配置部３５は、全てのワークモデルの表面に設定点を配置する。
【００３８】
図１１に、レンジセンサモデルからワークモデルの設定点までの距離の計算を説明する概略図を示す。図２、図４、および図１１を参照して、シミュレーション装置３は、レンジセンサモデル６Ｍから設定点ＰＣ１までの距離Ｚを算出する距離計算部３６を含む。ステップ９３において、距離計算部３６は、それぞれの設定点ＰＣ１について、レンジセンサモデル６Ｍから設定点ＰＣ１までの距離Ｚを算出する。
【００３９】
仮想空間において、カメラモデル６１Ｍ，６２Ｍの位置は予め定められている。２つのカメラモデル６１Ｍ，６２Ｍ同士の距離Ｄは予め定められている。また、カメラモデル６１Ｍの光軸ＬＡ１およびカメラモデル６２Ｍの光軸ＬＡ２も予め定められている。このために、距離計算部３６は、カメラモデル６１Ｍから設定点ＰＣ１に向かう視線ＬＶ１と光軸ＬＡ１とがなす角度θ１を算出することができる。同様に、距離計算部３６は、カメラモデル６２Ｍから設定点ＰＣ１に向かう視線ＬＶ２と光軸ＬＡ２とのなす角度θ２を算出することができる。これらの距離Ｄ、角度θ１，θ２を用いて、次の式（１）に基づいてレンジセンサモデル６Ｍから設定点ＰＣ１までの距離Ｚを算出することができる。
【００４０】
【数１】
2019141943.tif 000003
【００４１】
図１０に示すように、ワークモデル８５Ｍの表面には複数の設定点ＰＣ１が配置されている。本実施の形態の距離計算部３６は、全ての設定点ＰＣ１について距離Ｚを算出する。図２および図４を参照して、シミュレーション装置３は、設定点の位置とレンジセンサモデル６Ｍから設定点ＰＣ１までの距離とを含む３次元情報を生成する３次元情報生成部３７を含む。ステップ９４において、３次元情報生成部３７は、設定点ＰＣ１の位置およびレンジセンサモデル６Ｍから設定点ＰＣ１までの距離Ｚに基づいて、ワークモデル８５Ｍに関する３次元情報を生成する。
【００４２】
本実施の形態の設定点配置部３５は、ワークモデル８５Ｍの全ての表面に設定点ＰＣ１を配置する。仮想空間においては、ワークモデル８５Ｍの全ての表面に設定点ＰＣ１を配置する。ところが、実際の作業空間においては、２次元カメラ６１，６２の少なくとも一方から見えないワーク８５の部分が存在する。
【００４３】
本実施の形態のシミュレーション装置３は、２次元カメラ６１，６２の少なくとも一方から見えない部分に配置された設定点を除外する制御を実施する。図２および図４を参照して、シミュレーション装置３は、ワークモデル８５Ｍの表面に配置された複数の設定点ＰＣ１のうち、少なくとも１つのカメラモデル６１Ｍ，６２Ｍから見えない設定点を除外する除外部３８を含む。ステップ９５において、除外部３８は、少なくとも１つのカメラモデル６１Ｍ，６２から見えない設定点ＰＣ１を３次元情報から除外する。すなわち、除外部３８は、実際の２次元カメラ６１，６２にて撮像できない部分に配置されている設定点ＰＣ１を除外する。
【００４４】
図１２に、設定点を除外する工程を説明するためのレンジセンサモデルとワークモデルとの概略図を示す。図１２に示す例においては、両方のカメラモデル６１Ｍおよびカメラモデル６２Ｍから設定点ＰＣ１を見ることができる。すなわち、２次元カメラ６１および２次元カメラ６２にてワーク８５を撮像したときに、両方の画像に設定点ＰＣ１が含まれる。設定点ＰＣ１１は、ワークモデル８５Ｍの側面に配置されている。カメラモデル６１Ｍにて設定点ＰＣ１１を見ることができるが、カメラモデル６２Ｍにて設定点ＰＣ１１を見ることができない。設定点ＰＣ１１は、ワークモデル８５Ｍの上面の死角に配置されている。設定点ＰＣ１１は、カメラモデル６２Ｍに対応する実際の２次元カメラ６２にて撮像した画像には写らない部分に配置されている。
【００４５】
除外部３８は、カメラモデル６２Ｍから見えない設定点ＰＣ１１を除外する。本実施の形態においては、除外部３８は、設定点ＰＣ１１に関して、カメラモデル６１Ｍから設定点ＰＣ１１に向かう視線ＬＶ１およびカメラモデル６２Ｍから設定点ＰＣ１１に向かう視線ＬＶ２を算出する。除外部３８は、視線ＬＶ２とワークモデル８５Ｍの表面との交点ＰＸ１１を検出することができる。除外部３８は、設定点ＰＣ１１とカメラモデル６２Ｍとの間に交点ＰＸ１１が存在する場合に、設定点ＰＣ１１を除外することができる。
【００４６】
または、それぞれの視線とワークモデルの表面との交点が存在し、設定点がカメラモデルに最も近い点である場合には、除外部３８は、その設定点を残すことができる。一方で、視線ＬＶ２とワークモデル８５Ｍの表面との交点ＰＸ１１が、設定点ＰＣ１１よりもカメラモデル６２Ｍに近い場合に、除外部３８は、その設定点ＰＣ１１を除外することができる。除外部３８は、３次元情報生成部３７にて生成された３次元情報から、距離Ｚの情報を含む設定点ＰＣ１１を除外する。
【００４７】
図１３に、設定点を除外する他の例を説明するレンジセンサモデルとワークモデルとの概略図を示す。図１３に示す例においては、ワークモデル８５Ｍの上にワークモデル８６Ｍが積み上げられている。ワークモデル８６Ｍは、上面が曲面である。例えば、設定点ＰＣ１２は、カメラモデル６２Ｍと設定点ＰＣ１２との間に交点ＰＸ１２が存在するために除外される。また、設定点ＰＣ１３は、カメラモデル６１Ｍと設定点ＰＣ１３との間に交点ＰＸ１３が存在するために除外される。
【００４８】
このように、任意の形状のワークモデルに対して、本実施の形態の制御を実施することができる。複数のワークが積み上げられている場合にも、本実施の形態の制御を実施することができる。本実施の形態の除外部３８は、実際の２次元カメラ６１，６２にて２次元画像を撮像したときに、画像に写らない部分に配置される設定点を除外することができる。また、除外部３８は、一方のカメラモデルから見えない設定点を除外する他に、両方のカメラモデルから見えない設定点を除外することができる。
【００４９】
図１４に、除外部が一部の設定点を除外した後のワークモデルの斜視図を示す。図１４は、図１０に示したワークモデル８５Ｍから一部の設定点ＰＣ１を除外した後の図である。この例では、ワークモデル８５Ｍの側面および底面に配置された設定点ＰＣ１が削除されている。そして、ワークモデル８５Ｍの上面に配置された設定点ＰＣ１が残存している。
【００５０】
図１５に、除外部にて設定点が除外された後の３次元情報の例を示す。図１５の例においては、ワークモデルが２段に積み上げられた距離画像６７が示されている。レンジセンサモデル６Ｍからワークモデル８５Ｍまでの距離Ｚに応じて、それぞれの画素の濃さが定められている。例えば、レンジセンサモデル６Ｍに近くなるほど画素を薄く設定することができる。このような画素の濃さを変化させることにより、視覚的に３次元情報を表示することができる。なお、前述の通りに、３次元情報としては距離画像に限られず、設定点の位置と距離との情報を含むテキスト形式の情報であっても構わない。
【００５１】
図２および図４を参照して、シミュレーション装置３は、ワークモデル８５Ｍのそれぞれの表面を検出する表面検出部４０を含む。ステップ９６において、表面検出部４０は、ワークモデル８５Ｍの表面に配置された設定点ＰＣ１に基づいて、ワークモデル８５Ｍのそれぞれの表面を検出する。
【００５２】
図１６に、ワークの表面を検出する制御を説明するワークモデルの斜視図を示す。図１６に示す例では、複数のワークモデル８５Ｍが配置されている。表面検出部４０は、複数の設定点ＰＣ１のうち互いに近接する設定点ＰＣ１の集合ＧＰＣ１，ＧＰＣ２，ＧＰＣ３を作成する。たとえば、表面検出部４０は、互いに隣り合う設定点ＰＣ１の距離が判定値未満である設定点ＰＣ１の集合を生成する。図１６に示す例では、集合ＧＰＣ１，ＧＰＣ２，ＧＰＣ３が形成されている。表面検出部４０は、１つの集合をワークモデルの１つの表面として検出する。複数個のワークモデル８５Ｍが存在する場合に、表面検出部４０は、複数の集合を生成することができる。
【００５３】
図２および図４を参照して、シミュレーション装置３は、ワークモデル８５Ｍの３次元情報に基づいて、ワークモデル８５Ｍの位置および姿勢を算出するワーク位置計算部４１を含む。ステップ９７において、ワーク位置計算部４１は、それぞれのワークモデル８５Ｍの表面に配置された設定点ＰＣ１の集合ＧＰＣ１，ＧＰＣ２，ＧＰＣ３に基づいて、ワークモデル８５Ｍの位置および姿勢を算出する。ワークモデルの位置としては、例えば、ワークモデルの重心位置を採用することができる。また、ワークモデルの姿勢としては、例えば、ワークの表面の法線の方向を採用することができる。
【００５４】
図１７に、ロボット装置モデルのシミュレーションを実行しているときの表示部の画像の例を示す。図２、図４、および図１７を参照して、シミュレーション装置３は、ワークモデルに対して行う作業のシミュレーションを実施するシミュレーション実行部４２を含む。ステップ９８において、シミュレーション実行部４２は、ロボット装置モデル９Ｍのシミュレーションを実行する。シミュレーション実行部４２は、ワーク位置計算部４１にて算出されたワークモデル８５Ｍの位置および姿勢に基づいて、ロボットモデル１Ｍの位置および姿勢を変更する。ロボットモデル１Ｍが位置および姿勢を変化することにより、ワークモデル８５Ｍの近傍までハンドモデル５Ｍが移動する。次に、ハンドモデル５Ｍがワークモデル８５Ｍを把持する。この後に、ロボットモデル１Ｍが位置および姿勢を変更して、ワークモデル８５Ｍを所望の位置まで搬送する。このように、ロボット装置のシミュレーションを実施することができる。
【００５５】
実際のロボット装置においては、２次元カメラにて撮像することができないワークの部分が存在する。従来の技術のシミュレーション装置においては、２次元カメラから見えないワークの部分についても計算を行っていたために、実際のロボット装置の作業と、シミュレーションにおけるロボット装置の作業とが異なる場合があった。これに対して、本実施の形態のシミュレーション装置は、実際のカメラにて撮像できない部分に配置される設定点を除外するために、実際のロボット装置の動作に近いシミュレーションを実施することができる。すなわち、本実施の形態のシミュレーション装置は、シミュレーションの精度を向上することができる。
【００５６】
上記の実施の形態において、除外部３８は、それぞれのカメラモデル６１Ｍ，６２Ｍの視線ＬＶ１，ＬＶ２を計算することによりカメラにて撮像できない設定点を除外している。設定点を除外する制御としては、この形態に限られず、カメラモデルから見えない設定点を除外する任意の制御を実施することができる。また、除外部は、カメラモデルから見えない複数の設定点のうち、少なくとも一部の設定点を除外することができる。
【００５７】
例えば、除外部３８の制御としては、図８に示すようにプロジェクタモデル６３Ｍのレンズ中心点から延びる交線Ｌ１を用いる制御を実施することができる。除外部３８は、ワークモデル８５Ｍの表面の交点を算出する。この時に、一つの交線Ｌ１上に交点としての２つの設定点ＰＣ１，ＰＣ１１が検出された場合には、プロジェクタモデル６３Ｍに最も近い設定点ＰＣ１以外の設定点ＰＣ１１を除外することができる。または、設定点ＰＣ１１とプロジェクタモデル６３Ｍとの間に別の設定点ＰＣ１が存在する場合には、除外部３８は、設定点ＰＣ１１を３次元情報から除外する制御を実施することができる。この制御では、少なくとも一方の２次元カメラ６１，６２から見えない設定点のうち、大部分の設定点を除外することができる。
【００５８】
本実施の形態の除外部３８は、３次元情報からカメラモデルから見えない設定点を除外しているが、この形態に限られない。除外部は、３次元情報の生成前にカメラモデルから見えない設定点を除外しても構わない。例えば、ワークモデルの表面に設定点を配置した次の工程として、一部の設定点を除外しても構わない。
【００５９】
ところで、２次元カメラ６１，６２の視野の外側に配置されているワークは、撮像することができない。また、プロジェクタ６３のパターンが投影されない領域に配置されているワークについては、ワークの位置および姿勢の検出を正確に行うことができない場合がある。本実施の形態の除外部３８は、２つのカメラモデルの視野と、プロジェクタモデルの投影範囲とが重なり合う領域の外側に配置された設定点を除外することができる。
【００６０】
図１８に、設定点の除外を説明するワークモデルおよびレンジモデルの概略図を示す。図１８においては、架台に複数のワークモデル８５Ｍ，８７Ｍ，８８Ｍが配置されている。プロジェクタモデル６３Ｍは、投影範囲ＲＡの内部にパターン光を投影する。投影範囲ＲＡは、実際のプロジェクタ６３がパターン光を投影する領域に対応する。また、カメラモデル６１Ｍは、実際の２次元カメラ６１の視野に対応する撮像範囲ＲＣ１を有する。カメラモデル６２Ｍは、実際の２次元カメラ６２の視野に対応する撮像範囲ＲＣ２を有する。撮像範囲ＲＣ１，ＲＣ２および投影範囲ＲＡは、予め定められている。
【００６１】
除外部３８は、撮像範囲ＲＣ１と、撮像範囲ＲＣ２と、投影範囲ＲＡとが重なり合う領域である重複領域ＲＤを算出する。ワークモデル８５Ｍは重複領域ＲＤの内部に配置されているために、除外部３８は、ワークモデル８５Ｍの表面に配置された設定点ＰＣ１は除外しない。ワークモデル８８Ｍは重複領域ＲＤの外側に配置されているために、除外部３８は、ワークモデル８８Ｍの表面に配置された設定点ＰＣ１１を除外する。
【００６２】
ワークモデル８７Ｍの一部は、重複領域ＲＤの内部に配置されている。このために、除外部３８は、ワークモデル８７Ｍの表面に配置された設定点のうち、重複領域ＲＤの内部に配置されている設定点ＰＣ２は除外しない制御を実施する。一方で、除外部３８は、重複領域ＲＤの外側に配置されている設定点ＰＣ１２を除外する制御を実施する。
【００６３】
図４を参照して、この制御は、ステップ９２のワークモデル８５Ｍの表面に設定点を配置した後に実施することができる。例えば、ステップ９５において、カメラモデル６１Ｍ，６２Ｍの少なくとも一方から見えない設定点を除外した後に実施することができる。または、この制御は、カメラモデル６１Ｍ，６２Ｍの少なくとも一方から見えない設定点を除外する前に実施することができる。または、ステップ９２の次の工程として実施しても構わない。
【００６４】
このように、除外部３８は、２次元カメラ６１，６２の視野とプロジェクタ６３のパターン光の投影範囲を考慮して、設定点を除外することができる。このために、実際の２次元カメラ６１，６２にて見えない部分に配置された設定点およびパターン光が投影されない領域に配置された設定点を排除することができて、より正確なシミュレーションを実施することができる。
【００６５】
なお、図１８に示す例においては、重複領域ＲＤの外側に配置されるワークモデル８７Ｍ，８８Ｍが存在するが、この形態に限られない。実際のロボット装置において、重複領域ＲＤの内部に全てのワーク８５が配置されるように、十分に離れた位置にレンジセンサ６を配置することができる。または、全てのワークが重複領域の内部に配置される性能を有するカメラおよびレンジセンサが選定しても構わない。これらの場合には、重複領域の外側に配置される設定点は存在しないため、除外部は、重複領域の外側に配置される設定点を除外する制御を実施しなくても構わない。
【００６６】
図１を参照して、実際の２次元カメラ６１，６２において、撮像される画像の中央部では実際の物の形状に対応した画像を撮像することできる。しかしながら、２次元カメラ６１，６２の性能に依存して、画像の端の部分においては、画像が歪む場合がある。例えば、カメラのレンズの性能に依存して、画像の周辺部では実際の形状から変形した形状になる場合がある。本実施の形態のシミュレーション装置は、このような実際の画像の特徴に応じて画像を修正することができる。シミュレーション装置は、画像の中心から離れるほど大きなノイズを与える制御を実施する。例えば、距離修正部３９は、撮像される画像の端部に配置される設定点において、大きな誤差を距離に与える制御を実施する。
【００６７】
図２を参照して、本実施の形態のシミュレーション装置３は、３次元情報に含まれる３次元センサモデルから設定点までの距離を修正する距離修正部３９を含む。距離修正部３９は、３次元情報に含まれる設定点ＰＣ１の距離Ｚを修正する。距離修正部３９は、１つのカメラモデルの光軸から設定点までの長さが長くなるほど、修正量を大きくする制御を実施することができる。
【００６８】
図１９に、距離修正部の制御を説明する概略図を示す。図１９においては、２つのカメラモデル６１Ｍ，６２Ｍのうち、１つのカメラモデル６１Ｍが示されている。距離修正部３９は、３次元情報に含まれる１つの設定点ＰＣ１を選択する。距離修正部３９は、カメラモデル６１Ｍの光軸ＬＡ１と設定点ＰＣ１との間の長さＤＸ１を算出する。そして、距離修正部３９は、長さＤＸ１に応じて、設定点ＰＣ１とレンジセンサモデル６Ｍとの距離Ｚ（図１１参照）を修正する。例えば、設定点ＰＣ１の距離Ｚに、長さＤＸ１に応じた係数を乗算することができる。距離修正部３９は、光軸ＬＡ１からの長さが長いほど、修正量（ノイズ）を大きくする制御を実施することができる。例えば、ワークモデル８５Ｍの設定点ＰＣ２の光軸ＬＡ１からの長さＤＸ２は、長さＤＸ１よりも大きくなる。このために、距離修正部３９は、設定点ＰＣ２の距離Ｚの修正量を設定点ＰＣ１の距離Ｚの修正量よりも大きくする。
【００６９】
距離修正部３９による距離の修正においては、レンジセンサモデル６Ｍから設定点までの距離Ｚに係数を乗じる方法に限られず、任意の修正の制御を実施することができる。例えば、光軸ＬＡ１からの長さに応じた補正量を予め定めておくことができる。そして、設定点の距離Ｚに補正量を加算したり減算したりしても構わない。このような係数または補正量は、カメラの性能に応じて予め定めておくことができる。
【００７０】
距離修正部３９は、１つの設定点について、カメラモデル６１Ｍに関する修正およびカメラモデル６２Ｍに関する修正を実施することができる。すなわち、距離修正部３９は、距離Ｚの修正の制御をカメラモデル６１Ｍとカメラモデル６２Ｍとについて実施することができる。例えば、距離修正部３９は、カメラモデル６１Ｍについて距離Ｚの修正を実施した後に、カメラモデル６２Ｍについて距離Ｚの修正を実施することができる。
【００７１】
図４に参照して、距離修正部３９による距離Ｚの修正は、ステップ９６のワークモデルの表面を検出する工程の前に実施することができる。例えば、距離Ｚの修正は、ステップ９５の一部の設定点を除外する工程の次の工程として実施することができる。または、距離Ｚの修正は、ステップ９３の設定点の距離Ｚを算出する工程の次の工程として実施しても構わない。
【００７２】
本実施の形態におけるプロジェクタは、縞模様のパターン光を投影するが、この形態に限られない。プロジェクタが投影する光のパターンは、ドットパターンまたはスリットパターン等の任意のパターンを採用することができる。また、本実施の形態における３次元センサはプロジェクタを備えるが、プロジェクタを備えなくても構わない。
【００７３】
ワークモデルの表面上に設定点を配置する制御は、前述の第１平面および第２平面の交線を用いる方法に限られず、任意の制御を採用することができる。例えば、プロジェクタが投影する光のパターンがドットパターンの場合には、計測領域に投影されるドットの位置とプロジェクタのレンズ中心点とを通る直線を算出することができる。そして、この直線とワークモデルの表面との交点を設定点に定めることができる。また、３次元センサがプロジェクタを備えない場合には、本実施の形態と同様の方法により計測領域を設定し、この計測領域上に等間隔にて通過点を定めることができる。そして、この通過点とプロジェクタモデルのレンズ中心点とを通る直線を算出する。この直線とワークモデルの表面との交点を設定点に定めることができる。
【００７４】
本実施の形態においては、ロボット装置が行う作業としてワークの搬送を例示しているが、この形態に限られない。ワークの位置および姿勢を取得する必要がある任意の作業に本発明を適用することができる。例えば、ワークの組み立て、またはワークの溶接などに本発明を適用することができる。
【００７５】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜スップの順序を変更することができる。
【００７６】
上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。
【符号の説明】
【００７７】
１    ロボット
１Ｍ    ロボットモデル
３    シミュレーション装置
５    ハンド
５Ｍ    ハンドモデル
６    レンジセンサ
６Ｍ    レンジセンサモデル
３４    モデル生成部
３５    設定点配置部
３６    距離計算部
３７    ３次元情報生成部
３８    除外部
３９    距離修正部
４１    ワーク位置計算部
４２    シミュレーション実行部
６１，６２    ２次元カメラ
６１Ｍ，６２Ｍ    カメラモデル
６３    プロジェクタ
６３Ｍ    プロジェクタモデル
６７    距離画像
８５    ワーク
８５Ｍ，８６Ｍ，８７Ｍ，８８Ｍ    ワークモデル
ＬＡ１，ＬＡ２    光軸
ＲＡ    投影範囲
ＲＣ１，ＲＣ２    撮像範囲
ＲＤ    重複領域
ＰＣ１，ＰＣ２    設定点
ＰＣ１１，ＰＣ１２，ＰＣ１３    設定点
Ｚ    距離
ＤＸ１，ＤＸ２    長さ
【図１】
2019141943.tif 000004
【図２】
2019141943.tif 000005
【図３】
2019141943.tif 000006
【図４】
2019141943.tif 000007
【図５】
2019141943.tif 000008
【図６】
2019141943.tif 000009
【図７】
2019141943.tif 000010
【図８】
2019141943.tif 000011
【図９】
2019141943.tif 000012
【図１０】
2019141943.tif 000013
【図１１】
2019141943.tif 000014
【図１２】
2019141943.tif 000015
【図１３】
2019141943.tif 000016
【図１４】
2019141943.tif 000017
【図１５】
2019141943.tif 000018
【図１６】
2019141943.tif 000019
【図１７】
2019141943.tif 000020
【図１８】
2019141943.tif 000021
【図１９】
2019141943.tif 000022