(57)【特許請求の範囲】
【請求項１】
ロボット機構部に配設された線条体の、該ロボット機構部の外側に露出した部分をシミュレーション対象部位とし、前記ロボット機構部の動作に伴う該シミュレーション対象部位の動作をシミュレートするロボットシミュレーション装置であって、
前記シミュレーション対象部位の３次元モデルを、複数の質点、及び該複数の質点間を結ぶバネで構成される立体構造として作成する３次元モデル作成部と、
前記質点に作用する、バネの弾性力、重力及び減衰力を単位時間毎に算出し、前記質点が前記ロボット機構部又は周辺装置と干渉した場合に、前記質点にかかる反発力を単位時間毎に算出し、前記質点にかかる前記バネの弾性力、重力、減衰力及び反発力によって、単位時間毎に前記質点の位置を変更する物理シミュレーションを行うシミュレーション部と、
実際の線条体の静的な振る舞い、動的な振る舞い、及び線条体が剛体に衝突したときの動的な振る舞いを予め記憶する記憶部と、
前記記憶部に記憶されている実際の線条体の静的な振る舞いと前記物理シミュレーションの結果とが一致するように、前記バネのバネ定数を自動的に調整し、前記記憶部に記憶されている実際の前記線条体の動的な振る舞いと前記物理シミュレーションの結果が一致するように、さらに前記減衰力の係数を自動的に調整し、前記記憶部に記憶されている実際の前記線条体が剛体に衝突したときの動的な振る舞いと前記物理シミュレーションの結果が一致するように、前記反発力の係数を自動的に調整する自動調整部と、
を有することを特徴とするロボットシミュレーション装置。
【請求項２】
前記シミュレーション対象部位の動作を動画表示する表示部をさらに有する、請求項１に記載のロボットシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに配設されたホースやケーブル等の線条体の振る舞いをシミュレートするロボットシミュレーション装置に関する。
【背景技術】
【０００２】
ロボットをオフラインで教示する際等に使用するロボットシミュレーション装置において、ロボット機構部に配設されたホースやケーブル等の線条体の振る舞いを、物理シミュレーションによって再現することは一般に行われている。
【０００３】
例えば特許文献１には、ロボットにケーブルやホース等のロボットへの巻き付きや過伸縮をチェックするロボット動作シミュレーション方法が開示されている。ここでは、所定の角度を求めて比較演算を行うという少ない演算量で非剛体物全体としてそれのアームへの巻き付きを検出するので、十分高速にかつ十分正確に非剛体物のアームへの巻き付きをチェックすることができる、とされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２７５００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、ロボットに非剛体物が巻き付くときの振る舞いを、２次元平面に投影することで簡易に算出している。従って、実際には３次元物体である線条体の振る舞いを正確にシミュレートすることは困難である。すなわち従来のロボットシミュレーションでは、ロボットに配置された線条体の振る舞いについて物理シミュレーションを行うにあたり、実際の線条体の振る舞いと一致するように、バネ定数、減衰力の係数等の、物理シミュレーションモデルの各係数を調整することが困難であった。
【０００６】
そこで本発明は、線条体の実際の振る舞いに合わせて、物理シミュレーションモデルで使用する各係数を自動調整する機能を備えたロボットシミュレーション装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本願第１の発明は、ロボット機構部に配設された線条体の、該ロボット機構部の外側に露出した部分をシミュレーション対象部位とし、前記ロボット機構部の動作に伴う該シミュレーション対象部位の動作をシミュレートするロボットシミュレーション装置であって、前記シミュレーション対象部位の３次元モデルを、複数の質点、及び該複数の質点間を結ぶバネで構成される立体構造として作成する３次元モデル作成部と、前記質点に作用する、バネの弾性力、重力及び減衰力を単位時間毎に算出し、前記質点が前記ロボット機構部又は周辺装置と干渉した場合に、前記質点にかかる反発力を単位時間毎に算出し、前記質点にかかる前記バネの弾性力、重力、減衰力及び反発力によって、単位時間毎に前記質点の位置を変更する物理シミュレーションを行うシミュレーション部と、実際の線条体の静的な振る舞い、動的な振る舞い、及び線条体が剛体に衝突したときの動的な振る舞いを予め記憶する記憶部と、前記記憶部に記憶されている実際の線条体の静的な振る舞いと前記物理シミュレーションの結果とが一致するように、前記バネのバネ定数を自動的に調整し、前記記憶部に記憶されている実際の前記線条体の動的な振る舞いと前記物理シミュレーションの結果が一致するように、さらに前記減衰力の係数を自動的に調整し、前記記憶部に記憶されている実際の前記線条体が剛体に衝突したときの動的な振る舞いと前記物理シミュレーションの結果が一致するように、前記反発力の係数を自動的に調整する自動調整部と、を有することを特徴とするロボットシミュレーション装置を提供する。
【０００８】
第２の発明は、第１の発明において、前記シミュレーション対象部位の動作を動画表示する表示部をさらに有する、ロボットシミュレーション装置を提供する。
【発明の効果】
【０００９】
本発明によれば、線条体の３次元モデルを構成するバネのバネ定数、減衰力の係数及び反発力の係数を段階的に調整するため、物理シミュレーションによる線条体の振る舞いが、実際の線条体の振る舞いに極めて近いものとなり、より実際的なオフライン教示を行うことができるようになる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るロボットシミュレーション装置の概略構成を示す図である。
【図２】図１のロボットシミュレーション装置の処理の流れを示すフローチャートである。
【図３】線条体のシミュレーションモデルの一例を表す図である。
【図４】バネ定数の自動調整を説明する図である。
【図５】減衰力の係数の自動調整を説明する図である。
【図６】反発力の係数の自動調整を説明する図である。
【発明を実施するための形態】
【００１１】
図１は、本発明に係るロボットシミュレーション装置（以降、シミュレーション装置と称する）の一実施形態の概要図である。なお本発明は、ロボット機構部に配設された線条体の、該ロボット機構部の外側に露出した部分をシミュレーション対象部位としており、該ロボット機構部の動作に伴う該シミュレーション対象部位の動作をシミュレートするものである。具体的には、ロボットシミュレーション装置１０は、シミュレーション対象部位である線条体の３次元モデル（図３参照）を、複数の質点と、質点間を結ぶバネで構成される立体構造として生成する３次元モデル生成部１２と、後述する物理シミュレーションを行うシミュレーション部１４と、実際の線条体の静的な振る舞い、動的な振る舞い、及び線条体が剛体に衝突したときの動的な振る舞いを予め記憶する記憶部１６と、記憶部１６に記憶されている実際の線条体の静的な振る舞いと物理シミュレーションの結果とが一致するように、後述する自動調整を行う自動調整部１８とを有する。またシミュレーション装置１０は、シミュレーション対象部位である線条体の動作を動画として表示する表示部２０をさらに有してもよい。
【００１２】
図２は、ロボットシミュレーション装置１０の処理の流れを示すフローチャートである。以下、各ステップについて詳細に説明する。
【００１３】
ステップＳ１
ステップＳ１では、仮想のロボット（機構部）及び線条体を配置したワークセルを生成する。ワークセルの生成は作業者がシミュレーション装置１０に必要なデータを入力して生成してもよいし、予め用意した各種データを所定のロボットプログラム等で読み込んで生成してもよい。また生成されたワークセルは、上述の表示部２０に表示することができる。
【００１４】
ステップＳ２
ステップＳ２では、線条体の３次元モデルを作成し、線条体の動作の物理シミュレーションを行う。線条体のシミュレーションモデル（３次元モデル）２２は、例えば図３に示すように、複数の質点２４と、各質点２４間を結ぶバネ２６から構成される立体構造物として定義される。さらにバネ２６は、円周上にならんだ質点間を結ぶバネ２６ａ、線条体の長手方向（図３では上下方向）に質点間を結ぶバネ２６ｂ、及び、長さ方向に対して斜めに質点間を結ぶバネ２６ｃから構成されるものとする。円周上にならんだ質点間を結ぶバネ２６ａは、線条体２２が径方向に潰れるように作用した力に対する弾性を表す。線条体の長さ方向に質点間を結ぶバネ２６ｂは、伸縮方向の力に対する弾性を表す。また線条体の長さ方向に対して斜めに質点間を結ぶバネ２６ｃは、曲げおよび捻り方向の力に対する弾性を表す。
【００１５】
各質点２４は、質量、３次元の位置、３次元の速度の情報を持つものとする。各質点の質量は、線条体の質量を、質点の個数で割った値とする。また速度の初期値は、静止した状態を初期状態（０，０，０）とする。
【００１６】
上記条件下、各質点に作用する力は以下のように算出される。
（ａ）バネの弾性力
ある１本のバネに、質点Ａ及びＢが接続されているとする。このとき、質点Ａにかかる弾性力Ｆ１は、以下の式（１）で表される。
Ｆ１＝（Ａ→Ｂの単位ベクトル）×（バネ定数）×（バネの伸縮量）    （１）
なおバネの伸縮量は、ある状態でのバネの長さから、バネの自然長（すなわち線条体の物理シミュレーションモデルが、伸び縮み、曲げがない自然な状態のときの、質点Ａ、Ｂ間の距離）を差し引いた値とする。
【００１７】
（ｂ）バネの振動の減衰力
バネの振動を抑える減衰力Ｆ２は、以下の式（２）で表される。但し、ｖは（質点Ｂの速度−質点Ａの速度）の単位ベクトルである。
Ｆ２＝ｖ×（ｖの内積）×（振動の減衰係数）    （２）
【００１８】
（ｃ）並進運動の減衰力
各質点の並進運動を抑える減衰力Ｆ３は、以下の式（３）で表される。
Ｆ３＝（各質点の速度）×（並進運動の減衰係数）    （３）
なお、バネの振動の減衰力及び並進運動の減衰力は、バネの動きを遅くするように作用する。
【００１９】
（ｄ）反発力
質点がある干渉面に衝突した場合、その質点の速度の、衝突した面の面直方向の成分の値は、衝突前の値に反発係数を掛けて符号を反転した値になる。このとき、反発力Ｆ４は、衝突した前後の速度の変位を単位時間で割って得られる加速度に、質点の質量を掛けることで算出される。
【００２０】
（ｅ）重力
各質点に掛かる重力Ｆ５は、以下の式（４）で表される。
Ｆ５＝（重力方向の単位ベクトル）×（重力加速度）×（質点の質量）    （４）
【００２１】
以上のようにして、各質点に掛かる力Ｆ１〜Ｆ５を算出したとき、加速度は、（（Ｆ１〜Ｆ５の合力）／質量）として算出される。また、速度の変位量を、（加速度×単位時間）として算出して、その速度の変位量を質点の速度に加算する。さらに、各質点の位置の変位量を、（速度×単位時間）として算出して、その位置の変位量を質点の位置に加算する。
【００２２】
単位時間おきに、ロボットの動きにあわせて両端の質点の位置を変更してから、上記のように各質点にかかる力を算出して、各質点の位置及び速度を更新することにより、線条体の振る舞いをシミュレートする。
【００２３】
ステップＳ３
ステップＳ３では、実際の線条体の静的な振る舞い、動的な振る舞い、及び線条体が剛体に衝突したときの動的な振る舞いを上述の記憶部１６に記憶する。これらの振る舞いは、後述する実験等により測定することができる。なおステップＳ３は、ステップＳ１又はＳ２の前に行ってもよい。
【００２４】
実際の線条体の静的な振る舞いは、例えば以下のようにして計測することができる。図４に示すように、２つの剛体２８、３０の間に線条体３２を懸架した試験装置３４を用意して、線条体３２が重力で垂れ下がるような状態にする。このとき、線条体３２の両端を固定する方法は、実際にロボットに線条体の固定する方法と同様とする。また、線条体３２には均等な間隔で複数の目印（マーク）３６を付けておき、線条体３２が静止状態になった時点で各目印の位置を計測することにより、線条体３２の静的な垂れ下がり方を計測することができる。
【００２５】
実際の線条体の動的な振る舞いは、例えば以下のようにして計測することができる。上述の試験装置３４において、線条体３２が静止した状態から、少なくとも一方の剛体（図示例では右側の剛体３０）を揺動する。そのときの線条体３２の動きをハイスピードカメラ等の撮像手段で撮影して、得られた画像の各々における目印３６の位置を計測することで、動的な振る舞いを計測する。
【００２６】
線条体が剛体に衝突したときの実際の線条体の動的な振る舞いは、例えば以下のようにして計測することができる。上述の試験装置３４において、少なくとも一方の剛体（図示例では右側の剛体３０）を揺動させて、線条体３２を他の剛体（周辺物）３８に衝突させる。そのときの線条体３２の動きをハイスピードカメラ等の撮像手段で撮影して、得られた画像の各々における目印３６の位置を計測することで、剛体３８に衝突したときの線条体３２の動的な振る舞いを計測する。
【００２７】
ステップＳ４
ステップＳ４では、バネ定数の自動調整を行う。詳細には、先ず上述の試験装置３４と同様の状態をシミュレーションモデルとして再現する。次に静止状態になるまで十分な時間だけシミュレーションを実行して、線条体３２の目印３６の各々の位置と、シミュレーションモデル上で相当する位置との距離の差を算出することで、線条体の静的な振舞い（垂れ下がり方）を計測する。さらにこの処理を、バネ定数を変化させながら繰り返し実行して、距離の差が最小となるバネ定数（式（１）参照）を自動的に算出する。またこのとき、両端近傍のバネ定数を、他のバネ定数とは別の値とすることにより、線条体の固定方法の違いによる、線条体の振る舞いの違いを再現することができる。
【００２８】
ステップＳ５
ステップＳ５では、減衰力の係数の自動調整を行う。詳細には、先ずシミュレーションモデル上で、剛体を揺動したのと同様に、取り付け位置の質点の位置を変更しながらシミュレーションを実行して、各画像に相当する時間における、線条体３２の目印３６の位置と、シミュレーションモデル上で相当する位置の距離の差を算出する。さらにこの処理を、バネの振動の減衰係数（式（２）参照）および並進運動の減衰係数（式（３）参照）を変化させながら繰り返し実行して、距離の差が最小となる各減衰力の係数を自動的に算出する。
【００２９】
ステップＳ６
ステップＳ６では、反発力の係数（反発係数）の自動調整を行う。詳細には、先ずシミュレーションモデル上で、剛体を揺動したのと同様に、取り付け位置の質点の位置を変更しながらシミュレーションを実行して、各画像に相当する時間における、線条体３２の目印３６の位置と、シミュレーションモデル上で相当する位置の距離の差を算出する。さらにこの処理を、反発力の係数を変化させながら繰り返し実行して、距離の差が最小となる反発力の係数を自動的に算出する。
【００３０】
このように本発明では、バネ定数、減衰力の係数及び反発力の係数を段階的かつ自動的に調整でき、物理シミュレーションによる線条体の振る舞いが、実際の線条体の振る舞いと高い精度で一致する。このシミュレーションを利用すれば、より正確かつ実際的なオフライン教示を行うことができる。
【符号の説明】
【００３１】
１０    ロボットシミュレーション装置
１２    ３次元モデル生成部
１４    シミュレーション部
１６    記憶部
１８    自動調整部
２０    表示部
２２    ３次元モデル
２４    質点
２６    バネ
２８、３０    剛体
３２    線条体
３４    試験装置
３６    目印
３８    剛体
【図１】
0005166579.tif 000002
【図２】
0005166579.tif 000003
【図３】
0005166579.tif 000004
【図４】
0005166579.tif 000005
【図５】
0005166579.tif 000006
【図６】
0005166579.tif 000007