(57)【要約】【課題】ロボットを用いた様々な加工に対応可能であり、汎用性が高く、かつ精度が高いシミュレーションを実施することができるロボットシミュレーション装置を提供する。【解決手段】エンドエフェクタ１３を有するロボット１２の３次元モデルと、ワーク１４や周辺機器の３次元モデルとがディスプレイ３の画面上に所定の位置関係で配置された状態で、ワーク１４や周辺機器に対して相対移動するエンドエフェクタ１３の目標とされる移動先の所定位置を、画面上で２次元位置として指定する位置指定手段と、位置指定手段で指定された２次元位置のデータを３次元位置のデータに変換して移動先の３次元位置を取得する位置データ取得手段と、取得された３次元位置に対応するワーク１４の形状データを取得する形状データ取得手段と、３次元位置及び形状データに基づいて、ロボット１４の３次元位置及び３次元姿勢を算出する位置姿勢算出手段と、を備える。【選択図】図２
2007286976.tif 000002
【特許請求の範囲】
【請求項１】
エンドエフェクタを有するロボットの３次元モデルと、ワークや周辺機器の３次元モデルとがディスプレイの画面上に所定の位置関係で配置された状態で、前記ワークや前記周辺機器に対して相対移動する前記エンドエフェクタの目標とされる移動先の所定位置を、前記画面上で２次元位置として指定する位置指定手段と、
前記位置指定手段で指定された前記２次元位置のデータを３次元位置のデータに変換して前記移動先の３次元位置を取得する位置データ取得手段と、を備え、
前記移動先まで前記ロボットと共に前記エンドエフェクタをアニメーション形式で移動させるロボットシミュレーション装置において、
前記位置データ取得手段で取得された前記３次元位置に対応する前記ワークの形状データを取得する形状データ取得手段と、
前記３次元位置及び前記形状データに基づいて、前記ロボットの３次元位置及び３次元姿勢を算出する位置姿勢算出手段と、を備えたことを特徴とするロボットシミュレーション装置。
【請求項２】
前記形状データ取得手段は、前記ワークの形状データベース利用し、前記位置データ取得手段によって特定された前記３次元位置に最も近い位置の形状データを検索する機能を実施する請求項１に記載のロボットシミュレーション装置。
【請求項３】
前記形状データが前記ワークの線情報又は面情報である請求項１又は２に記載のロボットシミュレーション装置。
【請求項４】
前記線情報が、直線、円弧、又は自由曲線である請求項３に記載のロボットシミュレーション装置。
【請求項５】
シミュレーションの実施によって、前記ロボットが予め定められた動作範囲をオーバーして移動すると判断された場合に、前記ロボットの３次元位置及び３次元姿勢を再計算する第１の再計算手段を備えた請求項１〜４のいずれか１項に記載のロボットシミュレーション装置。
【請求項６】
シミュレーションの実施によって、前記ロボットが前記ワーク及び／又は前記周辺機器と干渉すると判断された場合に、前記ロボットの３次元位置及び３次元姿勢を再計算する第２の再計算手段を備えた請求項１〜５のいずれか１項に記載のロボットシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作シミュレーションをアニメーション形式で行うロボットシミュレーション装置に関する。
【背景技術】
【０００２】
一般に、オフラインでロボットの動作シミュレーションを行うロボットシミュレーション装置として、特許文献１に開示されているものが知られている。開示されているロボットシミュレーション装置は、ロボットやワークなどを３次元モデルでグラフィック表示するディスプレイの画面上で、ワークなどに対して相対移動するロボットのエンドエフェクタを２次元位置として指定された所定の移動先まで移動、特に、ジョグ送りさせるものである。
【０００３】
また、本発明と直接に関連するものではないが、他の従来例として、ロボットのジョグ送りの際に、ディスプレイの画面上に、ロボットのグラフィック画像と、ジョグモードの内容と、ジョグ送り方向とを表示し、ジョグ送り動作を不安なく実行できるようにした装置も開示されている。
【０００４】
【特許文献１】国際公開番号ＷＯ９８／０３３１４（特願平１０−５０６８１１号公報）
【特許文献２】特開平７−２９５６２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１で開示されたシミュレーション装置では、エンドエフェクタの移動先として入力された２次元位置から３次元位置が取得（特定）されても、その位置におけるロボットの３次元位置及び３次元姿勢が取得されないため、ロボット及びエンドエフェクタを指定した位置に正確に移動させることは困難であった。殊に、ロボットの３次元姿勢は、ロボット及びエンドエフェクタをワークや周辺機器に対して微調整する場合に重要な要素であり、ロボット及びエンドエフェクタを指定した位置に正確に移動させることができなければ、オフラインシミュレーションにおける検討結果が、実際の作業現場における実機での動作結果とかけ離れ、オフラインシミュレーション装置の結果を有効活用できず、作業現場におけるオペレータの作業負担を軽減できないという問題があった。
【０００６】
実際に、複雑な形状のワークに対して、バリ取り、アーク溶接、スポット溶接などの作業を行う場合は、ワークの加工部位に相当する面情報や線情報をもとにして、ロボットのエンドエフェクタの角度、例えば、溶接条件としてのねらい角や前進角を設定しており、このようなケースにおいて、ロボットの３次元姿勢を考慮せずに、３次元位置だけを指定してオフラインシミュレーションを行っても、実機での調整作業にシミュレーション結果を有効活用できない場合があった。
【０００７】
本発明は、上記した点に鑑み、ロボットを用いた様々な加工に対応可能であり、汎用性が高く、かつ精度が高いシミュレーションを実施することができるロボットシミュレーション装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１記載のロボットシミュレーション装置は、エンドエフェクタを有するロボットの３次元モデルと、ワークや周辺機器の３次元モデルとがディスプレイの画面上に所定の位置関係で配置された状態で、前記ワークや前記周辺機器に対して相対移動する前記エンドエフェクタの目標とされる移動先の所定位置を、前記画面上で２次元位置として指定する位置指定手段と、前記位置指定手段で指定された前記２次元位置のデータを３次元位置のデータに変換して前記移動先の３次元位置を取得する位置データ取得手段と、を備え、前記移動先まで前記ロボットと共に前記エンドエフェクタをアニメーション形式で移動させるロボットシミュレーション装置において、前記位置データ取得手段で取得された前記３次元位置に対応する前記ワークの形状データを取得する形状データ取得手段と、前記３次元位置及び前記形状データに基づいて、前記ロボットの３次元位置及び３次元姿勢を算出する位置姿勢算出手段と、を備えたことを特徴とする。
【０００９】
また、請求項２記載の発明は、請求項１に記載のロボットシミュレーション装置において、前記形状データ取得手段は、前記ワークの形状データベースを利用し、前記位置データ取得手段によって特定された前記３次元位置に最も近い位置の形状データを検索する機能を実施する。
【００１０】
また、請求項３記載の発明は、請求項１又は２に記載のロボットシミュレーション装置において、前記形状データが前記ワークの線情報又は面情報である。
また、請求項４記載の発明は、請求項３に記載のロボットシミュレーション装置において、前記線情報が、直線、円弧、又は自由曲線である。
【００１１】
また、請求項５記載の発明は、請求項１〜４のいずれか１項に記載のロボットシミュレーション装置において、シミュレーションの実施によって、前記ロボットが予め定められた動作範囲を超えて移動すると判断された場合に、前記ロボットの３次元位置及び３次元姿勢を再計算する第１の再計算手段を備えた。
【００１２】
また、請求項６記載の発明は、請求項１〜５のいずれか１項に記載のロボットシミュレーション装置において、シミュレーションの実施によって、前記ロボットが前記ワーク及び／又は前記周辺機器と干渉すると判断された場合に、前記ロボットの３次元位置及び３次元姿勢を再計算する第２の再計算手段を備えた。
【発明の効果】
【００１３】
以上の如く、請求項１記載の発明によれば、形状データ取得手段により３次元位置に対応するワークの３次元形状データが取得され、位置姿勢算出手段により３次元位置及び形状データに基づいてロボットの３次元位置及び３次元姿勢が算出されることで、従来例のようにロボット（エンドエフェクタ）を単に移動先（移動目標）まで移動させるだけでなく、所定の移動先まで移動したロボットにワークの形状データに基づいた位置と姿勢をとらせることができる。したがって、ロボットを用いた様々な加工に対応可能であり、汎用性が高く、精度が高いシミュレーションを実施することができる。また、これにより、実際の作業環境におけるロボットシステムの適用検討の時間を短縮することができ、ロボットシステムの普及を拡大することができる。
【００１４】
また、請求項２記載の発明によれば、形状データベースを利用して、ワークの特定された３次元位置に最も近い形状データが取得されることで、３次元姿勢の精度を高めることができる。
【００１５】
また、請求項３記載の発明によれば、３次元形状データをワークの線情報又は面情報とすることで、選択肢が増えて形状データの適用範囲を広げることができ、ロボットシミュレーション装置の汎用性を高めることができる。
【００１６】
また、請求項４記載の発明によれば、作業点列としての線情報を、直線、円弧、又は自由曲線とすることで、形状が複雑なワークの稜線部分を加工部位とするバリ取り加工などのロボットシミュレーションを行うことができる。
【００１７】
また、請求項５記載の発明によれば、ロボットの３次元位置及び３次元姿勢を再計算する第１の再計算手段を備えたことで、ロボットの移動方向に設定されている座標軸に沿う方向又は座標軸の周りで、リミットオーバとなることを回避することができ、実機での作業負担を軽減することができる。
【００１８】
また、請求項６記載の発明によれば、ロボットがワーク及び／又は周辺機器と干渉すると判断された場合に、ロボットの３次元位置及び３次元姿勢を再計算する第２の再計算手段を備えたことで、ロボットとワーク及び／又は周辺機器との干渉を未然に防止することができ、実機での作業負担を軽減することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明に係るロボットシミュレーション装置（以下、「シミュレーション装置」という）を図面に基づいて説明する。なお、各図において共通する部分には同一の符号を付して重複した説明を省略する。図１において、本実施形態のシミュレーション装置１は、実機でのマニュアル操作によって行われるロボット１０のジョグ送りに相当する動作をオフラインシミュレーションで実施できるようにしたものであり、制御機能を有する装置本体２と、装置本体２に接続されてグラフィック画像を表示するディスプレイ３と、装置本体２に対する操作部としてのキーボード（図示しない）と、ディスプレイ３の画面上で特定の位置を指定するポインティングデバイスとしてのマウス（位置指定手段）５と、を備えている。
【００２０】
装置本体２は、制御部６と、図示しないインターフェースとを備えている。制御部６は、回路体としてのボードと、ＣＰＵと、各種メモリとを備えている。メモリは、ＲＯＭ、ＲＡＭ、不揮発性メモリなどの種々のメモリから構成されている。ＲＯＭには、このシミュレーション装置１を全体的に制御するシステムプログラムが格納される。ＲＡＭは、ＣＰＵが行う処理のためのデータの一時的な記憶に使用されるメモリである。不揮発性メモリには、ロボット１２の動作プログラムデータや諸設定値の他に、後述する本方法の実施に必要なプログラム並びに諸データが格納される。
【００２１】
制御部６は、インターフェースを介して、ディスプレイ３、キーボード４、マウス５、図示しないロボット制御装置やＣＡＤ装置などに電気的に接続され、電気信号の授受が行われるようになっている。入力された信号は、制御部６によって処理され、各種の機能が実施されるようになっている。
【００２２】
一態様として、制御部６では、図示される機能が実施されるようになっている。制御部６は、ディスプレイ３の画面上で位置指定手段としてのマウス５で指定された２次元位置のデータを３次元位置のデータに変換し、ロボット１２のエンドエフェクタ１３の移動先の３次元位置を取得する機能を実施する位置データ取得手段８と、取得した３次元位置に対応するワーク１４の形状データを取得する機能を実施する形状データ取得手段９と、取得した３次元位置及び形状データに基づいて、ロボット１２の３次元位置及び３次元姿勢を算出する機能を実施する位置姿勢算出手段１０と、を備えている。
【００２３】
図２には、ディスプレイ３の画面上で溶接ロボット１２のエンドエフェクタ１３の移動先が矢印１３ａで示されている。矢印１３ａは、ワーク１４の加工部位としての稜線部分近傍を指し示している。エンドエフェクタ１３の先端（ＴＣＰ）が、指定された位置に一致するようにロボット１２が移動し、かつ、ロボット１２が所定の姿勢をとることで、溶接作業がアニメーション形式で実施されるようになっている。
【００２４】
ディスプレイ３には、液晶ディスプレイやＣＲＴなどが適用され、エンドエフェクタ１３を有するロボット１２の３次元モデルとワーク１４や図示しない周辺機器の３次元モデルを画面上でグラフィック表示する。図２は、ロボット１２とワーク１４とが所定の位置関係で配置されている。ロボット１２とワーク１４の３次元モデルデータは、例えば、図示しないＣＡＤ装置から直接的に読み込まれ、又は記録媒体を介して間接的に取り込まれる。ロボット１２とワーク１４の位置関係は、現場における位置関係が再現されるようになっている。グラフィック表示方法は、任意であり、ソリッドモデルや、フレームモデルや、ワイヤモデルとすることができる。
【００２５】
ディスプレイ３の画面上で２次元の位置を指定する方法として、例えば、本実施形態のようにマウス５を動かして矢印５ａで指定したり、十字のカーソルで指定したりする方法を適用することができる。
【００２６】
なお、ディスプレイの他の態様として、ＬＣＤ(Liquid Crystal Display)等と一体化されたコンポーネントであるタッチパネルを適用することもできる。タッチパネルは、指やペンなどで押された位置をＸ−Ｙ座標として検出するものであるから、この場合は、本実施形態におけるポインティングデバイスとしてのマウス５を不要とすることができる。
【００２７】
次に、図３に示すフローチャート及び図４に示す説明図を参照し、本実施形態のシミュレーション装置について説明する。
ステップＳ１では、図４（ａ）に示すように、ロボット（図示せず）、ワーク１４、周辺機器（図示せず）の３次元ワイヤモデルを、実際の作業環境に対応する相互位置関係でディスプレイ３の画面上にグラフィック表示する。
ステップＳ２では、図４（ｂ）に示すように、ディスプレイ３の画面上でエンドエフェクタの先端と一致する２次元位置をマウスを操作して矢印５ａで指定する。
【００２８】
ステップＳ３では、図４（ｃ）に示すように、画面上で指定した２次元位置から３次元位置を位置データ取得手段により算出する。具体的には、視点１５から見たワーク１４の３次元モデル１６が２次元のスクリーンに投影され、画面上にグラフィック表示される（言い換えると、ワークの３次元モデルを２次元モデルに逆変換する）。そして、位置データ算出手段としての２次元３次元変換により、画面上の位置と視線ベクトルに基づいて３次元の形状データベースを検索し、３次元モデル１６上での３次元位置を特定する。
【００２９】
ステップＳ４では、ステップＳ３で用いた３次元の形状データベースからワーク１４の面データ、稜線データ、頂点データ、位置データなどを検索し、求めた３次元位置に最も近い位置の形状データを取得する（形状データ取得手段）。
【００３０】
ステップＳ５では、ステップＳ４で取得した形状データからロボット１２の３次元位置及び姿勢を算出する。具体的には、求める３次元空間上の位置と姿勢をＰとすると、ＰはＰ＝（ｎ，ｏ，ａ，ｐ）として表される。ただし、ｎはノーマルベクトル（ｘ方向ベクトル）、ｏはオリエントベクトル（ｙ方向ベクトル）、ａはアプローチベクトル（ｚ方向ベクトル）、ｐは位置ベクトルである。
【００３１】
位置ベクトルｐはステップＳ３で算出されているため、Ｐを求めるには、残りの姿勢要素、ｎ，ｏ，ａを求めればよい。例えば、ワーク１４の形状データが面の場合、平面の式ａ１＋ｂ１ｙ＋ｃ１ｚ＋ｄ１＝０から、ａが法線ベクトル（ａ１，ｂ１，ｃ１）として求められる。
【００３２】
ノーマルベクトルｎは、アプローチベクトルａと現在のロボット１２のツール先端点の位置姿勢（ｎ１，ｏ１，ａ１）から、以下のように求められる。ただし、ｏ１×ａは外積、|ｏ１×a１|は外積の絶対値である。
【００３３】
【数１】
2007286976.tif 000003
【００３４】
オリエントベクトルｏは、互いに直交するノーマルベクトルｎとアプローチベクトルａの外積として、ｏ＝ｎ×ａとして求められる。
【００３５】
また、現在のロボット１２のツール先端点の位置姿勢を使わずに、求めた線データ（線情報）から、線の方向をｎとし、残りのａを求めることもできる。線が円弧、自由曲線の場合は求めた位置からの接線をｎとしてａを求めることができる。
【００３６】
ステップＳ６では、ロボット１２をアニメーション形式で算出した３次元位置姿勢に移動し、ロボット１２のジョグ送りに相当する動作をオフラインシミュレーションで実施する（当方の発明の理解に不足な点や誤解がございましたら、ご教示を頂ければ幸いに存じます。また、追加の補足説明がございましたら、ご教示下さいますようお願い申し上げます。）。
【００３７】
次に、本実施形態のシミュレーション装置の変形例について説明する。この変形例は、装置本体２の制御部６が、予め定められた動作範囲をオーバーしてロボット１２が移動すると判断された場合にロボット１２の３次元姿勢を再計算する機能を実施する第１の再計算手段をさらに備えたものである。
【００３８】
図５にフローチャートが示されているように、シミュレーションを実施するステップＳ６に続くステップＳＡ７で、予め定められた動作範囲をオーバーしてロボット１２が移動すると判断された場合に、ステップＳＡ８でロボット１２の３次元姿勢を変更するために再計算され、新しい３次元姿勢が求められる。
【００３９】
一具体例として、図示しないサーボガンを備えた６軸の多関節型ロボットで、再計算方法を説明する。サーボガンをＴＣＰ(Tool Center Point)のアプローチ軸（ｚ軸）周りに回転し、再度ロボットを移動させる。求める３次元空間上の位置姿勢Ｐは、前と同様にＰ＝（ｎ，ｏ，ａ，ｐ）として表される。位置姿勢Ｐの変更方法は、サーボガンの回転角θを０度から３６０度まで、任意の角度ずつ、例えば１０度ずつ姿勢変更を繰り返して、その角度における位置姿勢Ｐを求めることにより行う。
【００４０】
ここで、回転の行列をＰθ、ノーマルベクトルｎ＝(cosθ,-sinθ, 0, 0)、オリエントベクトルｏ＝(sinθ,cosθ, 0, 0)、アプローチベクトルａ＝(0, 0, 1, 0)、定数 l＝(0, 0, 0, 1)とし、新しい３次元空間上の位置姿勢Ｐが、Ｐ＝Ｐ・Ｐθとして求められる。
【００４１】
回転角θの０度から３６０度のすべての領域で動作範囲外になったら、全領域で解が見つからないと判断し、エラーとし、処理を終了する。解が見つかったら、移動して処理を終了する。なお、この変形例におけるステップＳ１〜Ｓ６は、前の説明と同様であるため、重複する説明は省略することとする。
【００４２】
次に、本実施形態のシミュレーション装置の他の変形例について説明する。この変形例は、装置本体２の制御部６が、ロボット１２がワーク１４及び／又は周辺機器と干渉すると判断された場合に、ロボット１２の３次元姿勢を再計算する機能を実施する第２の再計算手段をさらに備えたものである。
【００４３】
図６にフローチャートが示されているように、シミュレーションを実施するステップＳＢ６に続くステップＳＢ７で、ロボット１２がワーク１４及び／又は周辺機器と干渉すると判断された場合に、ステップＳＢ８でロボット１２の３次元姿勢を変更するために再計算され、新しい３次元姿勢が求められる。
【００４４】
一具体例としては、上記変形例と同様であり、サーボガンの回転角θを０度から３６０度まで、任意の角度ずつ姿勢変更を繰り返して、その角度における位置姿勢Ｐを求めることにより行い、すべての領域で動作範囲外になったら、全領域で解が見つからないと判断し、エラーとして処理を終了する。解が見つかったら、その角度範囲の中心の値で姿勢を求め、ロボットを移動して処理を終了する。なお、この変形例におけるステップＳ１〜Ｓ６は、前の説明と同様であるため、重複する説明は省略することとする。
【００４５】
以上のように、本実施形態及び本実施形態の他の態様によれば、ワーク１４の３次元モデルの面、線、頂点などの形状データを活用することで、バリ取り、アーク溶接、スポット溶接などのロボットアプリケーションに応じて、意図した位置姿勢に精度良くロボット１２を簡単に短時間で移動でき、ロボットシステムの適用検討の時間を短縮できる。また、熟練者でなくても、適切なロボットジョグ、適用検討が可能となる。
【００４６】
なお、本発明は上記実施形態に限定されるものではなく、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。例えば、本実施形態の変形例において、装置本体２の制御部６が、第１の再計算手段と、第２の再計算手段の両方を備えることもできる。
【図面の簡単な説明】
【００４７】
【図１】本発明のロボットシミュレーション装置の一実施形態を示す構成図である。
【図２】ディスプレイの画面上にロボットとワークとが表示された状態を示す斜視図である。
【図３】図１に示すロボットシミュレーション装置のシミュレーションの流れを示すフローチャートである。
【図４】(ａ)はフローチャートのステップＳ１、（ｂ）は同じくステップＳ２、（ｃ）は同じくステップＳ３に対応する説明図である。
【図５】本実施形態の変形例を示すフローチャートである。
【図６】本実施形態の他の変形例を示すフローチャートである。
【符号の説明】
【００４８】
１    シミュレーション装置
２    装置本体
３    ディスプレイ
５    マウス
６    制御部
８    位置データ取得手段
９    形状データ取得手段
１０    位置姿勢算出手段
１２    ロボット
１４    ワーク
【図１】
2007286976.tif 000004
【図２】
2007286976.tif 000005
【図３】
2007286976.tif 000006
【図４】
2007286976.tif 000007
【図５】
2007286976.tif 000008
【図６】
2007286976.tif 000009