(57)【特許請求の範囲】
【請求項１】
演算装置によって、三次元有限要素法を用いて部品を変形させるシミュレーションを実行するシミュレーション方法において、
前記演算装置は、
変形させる部品の形状を設定する形状設定工程と、
前記部品に複数の節点を設定することでメッシュを設定するメッシュ設定工程と、
前記部品の変形前の位置及び姿勢を設定する位置設定工程と、
前記変形前の部品に対して、任意の位置及び姿勢を有する任意点を設定する任意点設定工程と、
前記部品の変形前に、前記任意点に対して異なる位置に２以上の補助点をそれぞれ異なる方向に設定する補助点設定工程と、
前記部品を変形させる演算を実行する変形演算工程と、
前記部品の変形後における前記任意点の位置及び前記補助点の位置を演算する変形後位置演算工程と、
前記部品の変形後における前記任意点の位置と前記補助点の位置とから前記任意点の姿勢を演算する任意点姿勢演算工程と、を実行する、
ことを特徴とするシミュレーション方法。
【請求項２】
前記演算装置は、
前記任意点設定工程において、前記任意点の位置を設定する際、前記メッシュのうちの１つのメッシュ要素における節点との関係式で記憶し、
前記補助点設定工程において、前記補助点のそれぞれの位置を設定する際、前記１つのメッシュ要素における節点との関係式で記憶し、
前記変形後位置演算工程において、前記部品の変形後における前記任意点の位置及び前記補助点の位置を演算する際、前記任意点設定工程及び前記補助点設定工程で記憶した関係式と前記１つのメッシュ要素の節点の位置とから演算する、
ことを特徴とする請求項１に記載のシミュレーション方法。
【請求項３】
前記任意点設定工程及び前記補助点設定工程で記憶する関係式は、形状関数である、
ことを特徴とする請求項２に記載のシミュレーション方法。
【請求項４】
前記演算装置は、
前記メッシュ設定工程において、前記メッシュを設定する際に、前記複数の節点に関する行列を演算し、
前記任意点設定工程及び前記補助点設定工程において、前記任意点の位置及び姿勢と前記補助点の位置とを変更して再設定可能であり、
前記任意点設定工程及び前記補助点設定工程において前記任意点及び前記補助点が再設定された後、前記変形演算工程において前記部品を変形させる演算を行う際、前記任意点及び前記補助点が再設定される前に前記メッシュ設定工程で演算された行列を用いて演算を実行する、
ことを特徴とする請求項２又は３に記載のシミュレーション方法。
【請求項５】
前記演算装置は、
前記任意点設定工程において、前記任意点の位置を設定する際、前記任意点を新たな節点として設定し、
前記補助点設定工程において、前記補助点のそれぞれの位置を設定する際、それぞれの前記補助点を新たな節点として設定し、
前記変形後位置演算工程において、前記部品の変形後における前記任意点の位置及び前記補助点の位置を演算する際、前記変形演算工程で演算した各節点の位置から前記任意点及び前記補助点となる節点の位置を取得することで前記任意点の位置及び前記補助点の位置を演算する、
ことを特徴とする請求項１に記載のシミュレーション方法。
【請求項６】
前記部品は、複数のフレームを可動自在な関節を複数有する多関節ロボットであり、
前記任意点は、前記関節におけるフレーム同士の接合部分を示す接合点、及び／又は前記多関節ロボットの手先における位置及び姿勢を観察するための観察点であり、
前記多関節ロボットを駆動した際に、前記関節における接合点及び／又は前記手先における観察点、の位置及び姿勢をシミュレーションする、
ことを特徴とする請求項１ないし５のいずれか１項に記載のシミュレーション方法。
【請求項７】
請求項１ないし６のいずれか１項に記載の各工程を前記演算装置に実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを格納したことを特徴としたコンピュータで読み取り可能な記録媒体。
【請求項９】
三次元有限要素法を用いて部品を変形させるシミュレーションを実行する演算部を備えたシミュレーション装置において、
前記演算部は、
変形させる部品の形状を設定する形状設定処理と、
前記部品に複数の節点を設定することでメッシュを設定するメッシュ設定処理と、
前記部品の変形前の位置及び姿勢を設定する位置設定処理と、
前記変形前の部品に対して、任意の位置及び姿勢を有する任意点を設定する任意点設定処理と、
前記部品の変形前に、前記任意点に対して異なる位置に２以上の補助点をそれぞれ異なる方向に設定する補助点設定処理と、
前記部品を変形させる演算を実行する変形演算処理と、
前記部品の変形後における前記任意点の位置及び前記補助点の位置を演算する変形後位置演算処理と、
前記部品の変形後における前記任意点の位置と前記補助点の位置とから前記任意点の姿勢を演算する任意点姿勢演算処理と、を実行する、
ことを特徴とするシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元有限要素法を用いて部品を変形させるシミュレーションを実行するシミュレーション方法及びシミュレーション装置に関する。
【背景技術】
【０００２】
近年、有限要素法を用いて、部品にかかる重力や外力を考慮した部品変形のシミュレーションが行われている。有限要素法には、ビーム要素を用いて演算する一次元有限要素法、シェル要素を用いて演算する二次元有限要素法、ソリッド要素を用いて演算する三次元有限要素法がある。例えば棒状部材の変形などを演算する場合は一次元有限要素法が、例えば板状部材の変形などを演算する場合は二次元有限要素法が好適であるが、複雑な三次元形状の部材の変形を演算する場合は三次元有限要素法が好適である。例えば精密部品を組立てる多関節ロボットなどにおいては、一次元や二次元の要素に置き換えても精度が良好でないので、三次元有限要素法を用いて部品を変形させるシミュレーションを行うことが好適である。
【０００３】
例えば多関節ロボットの場合、各関節の角度などにより加わる負荷力が変化するので、動作に応じた変形をシミュレーションにより求め、多関節ロボットの精密な解析を行う事ができる。また、シミュレーションの結果を用いて、多関節ロボットの軌道計算や駆動指令の計算などにも反映させたり、他の物体への干渉が生じるか否かを確認したりすることができる。例えば多関節ロボットにおいて、三次元有限要素法を用いて部品変形のシミュレーションを行う場合、各関節におけるフレーム同士の接合点を設定し、部品変形後の接合点の位置を求める。また、手先の位置を観察するための観察点を設定し、部品変形後の観察点の位置を求める。このように各関節の接合点の位置、手先の観察点の位置をそれぞれ求めていくことで、部品変形後の多関節ロボットの高精度な位置を求めることが可能となる。
【０００４】
三次元有限要素法では、部品に対して節点を設定することで、例えば四面体、五面体、六面体などのソリッド要素でメッシュを設定する。この際、上述した接合点や観察点などの位置を求めたい点を、節点として設定すると、部品を変形させる演算を行った後の節点の位置から、部品変形後の接合点や観察点の位置が求まる。しかしながら、それら接合点や観察点などを設定する際は、部品上の自由な位置に設定できることが好ましく、それら接合点や関節点を節点として設定するためには、節点を増やしてメッシュを設定し直す作業が求められる。
【０００５】
そのため、機構システムにおける部品変形後の関節位置（つまり接合点の位置）を、形状関数を用いて計算するものが提案されている（特許文献１参照）。この形状関数は、部品の変形に伴う上記関節位置の変位と節点の変位の関係性を表す関数である。このように節点位置と関節位置との関係を、制約条件式である形状関数で表すことで、節点を増やしてメッシュを設定し直す作業を省略できる。また、関節にかかる力が対応する節点に分散され、その力が１つの節点に集中し難くなるという利点もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−３４０１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、三次元有限要素法の演算手法では、節点の位置を演算する際に並進３自由度のみを演算しており、回転方向には拘束されていない。例えば多関節ロボットの関節などは、関節の回転方向が１方向であり、２方向には拘束されているが、三次元有限要素法を用いた部品変形のシミュレーションでは、節点に関して位置のみを演算していることになる。従って、上記特許文献１のように関節位置を形状関数によって計算しても、関節位置だけが求まり、回転方向には拘束できていなく、つまり特許文献１の演算手法は、球面関節の場合のみに有効であるという問題がある。
【０００８】
また、三次元有限要素法を用いた部品変形のシミュレーションを行う際に、関節位置（つまり接合点）に対応するメッシュ要素の節点やその周囲の節点を固定することが考えられる。これにより、部品にかかる力が１つの節点にかかるのを防ぐと共に部品が関節の回転方向以外の方向へ回転してしまうのを防ぐことが可能になる。しかしながら、このように一部の節点を固定してしまうと、固定した部分が変形しないことになるので、関節の周辺で解析の精度が低下し、つまり部品変形後の多関節ロボットの高精度の位置を求めることができなくなるという問題がある。
【０００９】
そこで本発明は、部品に対して設定した任意点の部品の変形後における姿勢を演算可能にし、もって高精度な解析を実行可能なシミュレーション方法及びシミュレーション装置を提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
本発明は、演算装置によって、三次元有限要素法を用いて部品を変形させるシミュレーションを実行するシミュレーション方法において、前記演算装置は、変形させる部品の形状を設定する形状設定工程と、前記部品に複数の節点を設定することでメッシュを設定するメッシュ設定工程と、前記部品の変形前の位置及び姿勢を設定する位置設定工程と、前記変形前の部品に対して、任意の位置及び姿勢を有する任意点を設定する任意点設定工程と、前記部品の変形前に、前記任意点に対して異なる位置に２以上の補助点をそれぞれ異なる方向に設定する補助点設定工程と、前記部品を変形させる演算を実行する変形演算工程と、前記部品の変形後における前記任意点の位置及び前記補助点の位置を演算する変形後位置演算工程と、前記部品の変形後における前記任意点の位置と前記補助点の位置とから前記任意点の姿勢を演算する任意点姿勢演算工程と、を実行することを特徴とする。
【００１１】
また本発明は、三次元有限要素法を用いて部品を変形させるシミュレーションを実行する演算装置を備えたシミュレーション装置において、前記演算装置は、変形させる部品の形状を設定する形状設定処理と、前記部品に複数の節点を設定することでメッシュを設定するメッシュ設定処理と、前記部品の変形前の位置及び姿勢を設定する位置設定処理と、前記変形前の部品に対して、任意の位置及び姿勢を有する任意点を設定する任意点設定処理と、前記部品の変形前に、前記任意点に対して異なる位置に２以上の補助点をそれぞれ異なる方向に設定する補助点設定処理と、前記部品を変形させる演算を実行する変形演算処理と、前記部品の変形後における前記任意点の位置及び前記補助点の位置を演算する変形後位置演算処理と、前記部品の変形後における前記任意点の位置と前記補助点の位置とから前記任意点の姿勢を演算する任意点姿勢演算処理と、を実行することを特徴とする。
【発明の効果】
【００１２】
本発明によると、部品の変形前に任意点と２以上の補助点とを設定し、部品の変形後における任意点と２以上の補助点との位置を演算すると共にそれらの位置から任意点の姿勢を演算することができ、高精度な解析を実行することができる。
【図面の簡単な説明】
【００１３】
【図１】本シミュレーションを実行可能な演算装置を示すブロック図。
【図２】本シミュレーションの各処理を示すメインフローチャート。
【図３】部品設定処理を示すサブフローチャート。
【図４】機構設定処理を示すサブフローチャート。
【図５】シミュレーション処理を示すサブフローチャート。
【図６】第１の実施の形態においてシミュレーションにより変形させる部品及び観察点を示す図。
【図７】第１の実施の形態において部品に節点及びメッシュを設定した状態を示す図。
【図８】第１の実施の形態において変形前に設定した補助点を示す図。
【図９】第１の実施の形態において観察点に対応するメッシュ要素及びその節点を示す図。
【図１０】第１の実施の形態において変形後の部品と観察点及び補助点を示す図。
【図１１】第２の実施の形態においてシミュレーションにより変形させる多関節ロボットと接合点及び観察点とを示す図。
【図１２】第２の実施の形態において多関節ロボットを構成する部品を示す図。
【発明を実施するための形態】
【００１４】
＜第１の実施の形態＞
以下、本発明に係る第１の実施の形態について図１乃至図１０に沿って説明する。まず、本実施の形態に係る部品を変形させるシミュレーションを実行可能な演算装置（コンピュータシステム）の一例を図１に沿って説明する。図１は、本シミュレーションを実行可能な演算装置を示すブロック図である。
【００１５】
図１に示すように、シミュレーション装置として機能する演算装置１は、演算部としてのＣＰＵ２０、記憶媒体としてのＲＯＭ２１、ＲＡＭ２２、ＨＤＤ２３、記録ディスクドライブ２４、及び各種のインターフェース２５，２６，２７，２８を備えている。ＣＰＵ２０には、これらＲＯＭ２１、ＲＡＭ２２、ＨＤＤ２３、記録ディスクドライブ２４及び各種のインターフェース２５，２６，２７，２８が、バス２９を介して相互に通信可能に接続されている。
【００１６】
ＲＯＭ２１には、ＣＰＵ２０を動作させるための各種のプログラムが格納されており、ＣＰＵ２０は、ＲＯＭ２１に格納されたプログラムに基づいて後述する部品変形のシミュレーションの演算処理を実行可能となっている。ＲＡＭ２２は、ＣＰＵ２０の処理結果を一時的に記憶するための記憶手段である。ＨＤＤ２３は、記憶装置であり、部品データ、三次元有限要素法の計算式等の各種情報を予め記憶している。また、ＨＤＤ２３は、ＣＰＵ２０による演算結果等のデータをＣＰＵ２０の指令の下で記憶する。
【００１７】
また、演算装置１には、インターフェース２５を介して接続されたキーボード１１及びインターフェース２６を介して接続されたマウス１２等の操作入力部が備えられており、各種の操作入力を受付可能となっている。さらに、演算装置１には、インターフェース２５を介して接続されたモニタ１３が備えられており、データ入力（編集）画面、部品等を仮想三次元空間に表示する表示画面などの各種画面が表示可能となっている。また、インターフェース２８は、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置１４が接続可能に構成されている。そして、記録ディスクドライブ２４は、記録媒体の一例である記録ディスク１５に記録された各種データを読み出すことができ、記録ディスク１５には、本シミュレーションを実行可能にするプログラムを記録格納できる。
【００１８】
続いて、本実施の形態に係るシミュレーション方法について、上記演算装置１による処理に沿って説明する。本第１の実施の形態では、例えば壁面に対して監視カメラ（不図示）を固定する部品（カメラ取付部品）が、監視カメラや部品の重量により変形する場合を想定したシミュレーションを実行する。以下、本シミュレーションについて、図２乃至図１０に沿って説明する。なお、図２は本シミュレーションの各処理を示すメインフローチャート、図３は部品設定処理を示すサブフローチャート、図４は機構設定処理を示すサブフローチャート、図５はシミュレーション処理を示すサブフローチャートである。また、図６は本シミュレーションにより変形させる部品及び観察点を示す図、図７は部品に節点及びメッシュを設定した状態を示す図、図８は変形前に設定した補助点を示す図である。そして、図９は観察点に対応するメッシュ要素及びその節点を示す図、図１０は変形後の部品と観察点及び補助点を示す図である。
【００１９】
図２で示すように、演算装置１は、本シミュレーションを開始すると、大まかに、部品設定処理（Ｓ１）、機構設定処理（Ｓ２）、シミュレーション処理（Ｓ３）を行う。部品設定処理（Ｓ１）では、図３に示すように、まず、演算装置１が部品形状の設定を行う（形状設定工程、形状設定処理）（Ｓ１１）。即ち、図６に示すように、例えばカメラ取付部品である部品１０１の形状を仮想空間上に設定する。この部品１０１の形状は、ＣＡＤ等のデータから部品座標として読み込んでも良いし、ユーザが部品座標の数値等をキーボード１１又はマウス１２等の操作入力部を用いて入力することで設定しても良い。
【００２０】
ついで、演算装置１は、メッシュの設定を行う（メッシュ設定工程、メッシュ設定処理）（Ｓ１２）。図７に示すように、三次元の連続体である部品１０１に、複数の節点２０１を設定することで、それぞれが四面体要素であるメッシュ４０１を設定する。この状態では、各節点２０１は、部品座標系における位置情報を持ち、メッシュ４０１は、四面体要素を構成する節点２０１の情報を持つ。これらの情報は、有限要素法解析ソフトウェアを用いて設定しても良いし、ユーザがキーボード１１又はマウス１２等の操作入力部を用いて任意に設定しても良い。以上により、図２におけるステップＳ１の部品設定処理は終了し、ステップＳ２の機構設定処理に進む。
【００２１】
次に、機構設定処理（Ｓ２）に進むと、図４に示すように、まず、ユーザの操作入力により演算装置１は、部品１０１の位置と姿勢を壁面１０２において設定する（位置設定工程、位置設定処理）（Ｓ２１）。但し、本実施の形態では、図６に示すように、壁面１０２の原点は世界座標系１０５として設定した。また、部品１０１の座標系原点１０４については、世界座標系１０５を平行移動したものとして設定した。なお、図８に示す部品座標系３０４は、ユーザが設定した部品１０１の姿勢により表される座標系を示している。
【００２２】
このように各座標系を設定した場合、世界座標系１０５から見た部品１０１の座標系原点１０４の位置と姿勢を同次変換行列で表すと次のようになる。
【００２３】
【数１】
0006576125.tif 000002
【００２４】
次にユーザの操作入力により演算装置１は、部品１０１に対して、監視カメラを取付けるカメラ取付位置としてユーザが任意の位置及び姿勢として指定できる観察点（任意点）１０３の位置と姿勢を設定する（任意点設定工程、任意点設定処理）（Ｓ２２）。本実施の形態では、部品１０１が変形した後に監視カメラがどの位置に取付けされているとどのような姿勢になるかを観察するために設定する任意点であるので、この点を「観察点１０３」という。ここではユーザは、変形前の部品１０１に対して観察点１０３の位置と姿勢の情報を入力する。すると、演算装置１は、入力された観察点１０３の部品座標系における位置と姿勢の情報をＨＤＤ２３等に記録する。ここで、観察点１０３の方向は、部品座標系を平行移動したものとして設定した。また、図８に示す観察点座標系３０３は、観察点１０３の姿勢により表わされる座標系を示している。
【００２５】
このように観察点１０３を設定した場合、部品座標系３０４から見た観察点１０３の位置と姿勢を同次変換行列で表すと次のようになる。
【００２６】
【数２】
0006576125.tif 000003
【００２７】
続いて、演算装置１は、図８に示すように、観察点１０３から観察点座標系３０３のｘ方向に微小に移動した位置にｘ方向補助点３０１を設置し、ＨＤＤ２３等に位置を記録する（補助点設定工程、補助点設定処理）（Ｓ２３）。同様に、演算装置１は、観察点１０３から観察点座標系３０３のｙ方向に微小に移動した位置にｙ方向補助点３０２を設置し、ＨＤＤ２３等に位置を記録する（補助点設定工程、補助点設定処理）（Ｓ２４）。これらの補助点は、観察点座標系３０３のｘ方向やｙ方向に限らないが、観察点に対して２以上の独立した異なる方向かつ異なる位置に設置しなければならず、観察点１０３と２以上の補助点が直線上にあってはならない。つまり観察点１０３と２以上の補助点とは、それらによって１つの平面が規定できる関係であればよい。
【００２８】
次に、演算装置１は、図９に示すように、観察点１０３が属する部品１０１において、観察点１０３が含まれる又最も近接しているメッシュ要素４０１−１（つまり任意点に対応するメッシュ要素）を選択する（Ｓ２５）。そして、部品１０１が変形する際の、観察点１０３の変位とメッシュ要素４０１−１を構成する節点２０１−１〜２０１−４の変位との関係を表す関係式である形状関数を計算し、メッシュ要素４０１−１の情報と形状関数をＨＤＤ２３等に記憶する（Ｓ２７）。
【００２９】
この形状関数は一般的なものであるので、この形状関数の導出について説明は省略するが、４つの節点２０１−１〜２０１−４と観察点１０３の変位の関係は、以下のように表すことができる。ここで、左辺第一項は観察点１０３の変位を表しており、右辺第一項は観察点１０３に対応する形状関数を表しており、右辺第二項は観察点１０３が属するメッシュ要素４０１−１を構成する節点２０１−１〜２０１−４の変位量を表している。
【００３０】
【数３】
0006576125.tif 000004
【００３１】
また、このステップＳ２６では、ｘ方向補助点３０１とｙ方向補助点３０２についても同様に、対応するメッシュ要素４０１−１の情報と上記形状関数をＨＤＤ２３等に記憶する。なお、上記形状関数は、どのようなものでもよく、観察点或いは補助点とメッシュ要素或いはその節点との位置関係或いは変位関係が計算可能となる関係式であれば、どのようなものを用いても良い。以上により、ステップＳ２の機構設定処理は終了する。
【００３２】
次に、シミュレーション処理（Ｓ３）について図５に沿って説明する。初めにユーザは、部品の回転に必要なトルクや重力といった外力や、シミュレーション時間などのシミュレーション条件を、キーボード１１やマウス１２等の操作入力部を操作して演算装置１に設定する（Ｓ３１）。
【００３３】
続けてユーザは、シミュレーションの開始命令を操作入力部を介して入力することで、演算装置１は部品を変形させるシミュレーションを実行開始する（Ｓ３２）。そして、演算装置１は、ユーザが設定したシミュレーション条件に従い、部品の変形を計算する（変形演算工程、変形演算処理）（Ｓ３３）。図１０に、部品１０１が変形した後（変形後）のシミュレーション結果を示す。ユーザが設定した外力や部品全体にかかる重力により部品１０１が変形し、部品１０１に設定されている全ての節点２０１の変位量が更新される。
【００３４】
次に、演算装置１は、部品１０１の変形後における観察点１０３’、ｘ方向補助点３０１’、及びｙ方向補助点３０２’の部品座標系での位置を計算する（変形後位置演算工程、変形後位置演算処理）（Ｓ３４）。即ち、演算装置１は、まず、観察点１０３’の変化量を、上記数式（１）を用いて計算する。即ち、数式（１）について、前段で記憶した観察点１０３に対応する形状関数を右辺第一項に代入し、右辺第二項に観察点１０３に対応するメッシュ要素４０１−１を構成する節点２０１−１〜２０１−４の変位量を代入する。これにより、左辺が示す部品１０１の変形後の観察点１０３’の変位を計算することができる。同様に、部品１０１の変形後のｘ方向補助点３０１’及びｙ方向補助点３０２’の変位量も上記数式（１）から形状関数を用いて計算することができる。
【００３５】
次に、部品１０１の変形後の観察点１０３’について、部品座標系３０４における位置を計算する。部品１０１が変形する前の、観察点１０３の部品座標系３０４における位置は上記ステップＳ２２において記憶してあるため、単純に変化量を足し合わせることで、部品座標系３０４における位置を計算できる。これにより、部品１０１の変形後の観察点１０３’の位置は、部品座標系３０４で表すと以下のようになる。
【００３６】
【数４】
0006576125.tif 000005
【００３７】
同様に、部品１０１の変形後のｘ方向補助点３０１’及びｙ方向補助点３０２’の位置は、部品座標系３０４で表すと以下のようになる。
【００３８】
【数５】
0006576125.tif 000006
【００３９】
次に、演算装置１は、観察点１０３’の部品座標系３０４における姿勢について計算する（Ｓ３５）。ここで、部品１０１の変形後の観察点１０３’の観察点座標系３０３’について、ｘ方向補助点３０１’及びｙ方向補助点３０２’を用いて表したい。しかしながら、観察点１０３’からｘ方向補助点３０１’及びｙ方向補助点３０２’に向けた２本のベクトルについて考えた場合、部品１０１の変形による補助点の変位により、これらが直行したままの状態とは限らない。
【００４０】
観察点座標系３０３’のＺ方向については、観察点１０３’、ｘ方向補助点３０１’、及びｙ方向補助点３０２’が位置するＸＹ平面に直行する。そのため、ｘ方向補助点３０１’方向を表すベクトルとＹ方向補助点３０２’方向を表すベクトルにより観察点座標系３０３’のＺ方向を確定できる。また、ｘ方向補助点３０１’の方向をＸ方向としたとすると、Ｘ方向とＺ方向が確定するため、Ｙ方向が確定できる。
【００４１】
つまり、部品１０１の変形後の観察点１０３’の姿勢を表す観察点座標系３０３’の単位ベクトルは、上記数式（２）と上記数式（３）で計算した結果より、以下のように計算できる。
【００４２】
【数６】
0006576125.tif 000007
【００４３】
これにより、部品１０１の変形後の部品座標系３０４’における観察点１０３’の位置と姿勢を確定できる。ここで、観察点座標系３０３’の単位ベクトルの計算方法については一例として表したものであり、この方法に限らず、例えばＺ方向ベクトルを算出した後にＹ方向を算出してもよい。
【００４４】
そして、演算装置１は、世界座標系１０５での観察点１０３’の位置と姿勢について計算する（任意点姿勢演算工程、任意点姿勢演算処理）（Ｓ３６）。即ち、部品１０１の変形による観察点１０３’の移動を考慮し、世界座標系１０５における観察点１０３’の位置と姿勢を計算する。世界座標系１０５における観察点１０３’の位置と姿勢を表す同次変換行列は、世界座標系１０５における部品座標系３０４の位置と姿勢を表す同次変換行列と、部品座標系３０４における変形後の観察点１０３’の位置と姿勢を表す同次変換行列で計算できる。
【００４５】
【数７】
0006576125.tif 000008
【００４６】
上記数式（４）において、右辺第一項は世界座標系１０５における部品座標系３０４の位置と姿勢を表す同次変換行列であり、右辺第二項は部品座標系３０４における部品変形を考慮した観察点１０３’の位置と姿勢を表す同次変換行列である。
【００４７】
以上のように、壁面１０２に固定された部品１０１の変形において、変形前の観察点１０３と変形後の観察点１０３’とについて、位置と姿勢が世界座標系１０５においてどのように変化するかを計算できる。
【００４８】
最後に演算装置１は、ステップＳ３１で設定されたシミュレーション時間が経過したかどうかを確認し、経過していなければステップＳ３３に戻ってシミュレーションを継続し（Ｓ３７のＮＯ）、経過していればシミュレーションを終了する（Ｓ３７のＹＥＳ）。以上で、本実施の形態におけるシミュレーションの全行程が終了となる。
【００４９】
以上のように、本第１の実施の形態におけるシミュレーション方法では、任意に位置と姿勢を設定した任意点としての観察点１０３について、部品１０１の変形後における姿勢を２以上の補助点を用いて演算することができる。
【００５０】
例えば本第１の実施の形態にあっては、壁面１０２に監視カメラを固定する場合のカメラ取付部品としての部品１０１の変形解析を行うことができる。カメラや部品１０１の重量により部品１０１は変形し、部品１０１上のカメラ取付位置としての観察点１０３の位置と姿勢が変化する。従って、部品１０１をどのように設計すれば、カメラ視線がどのように下方向に傾くかが演算でき、カメラ視線を許容値に収められるかどうかという問題に適用できる。
【００５１】
また、本第１の実施の形態におけるシミュレーション方法では、カメラ取付位置の姿勢を計算するために、観察点に対応するメッシュ要素の節点やその周囲の節点の固定を行っていないため、高精度にシミュレーションができる。
【００５２】
さらに、本第１の実施の形態におけるシミュレーション方法では、同一の部品でカメラ取付位置を変更する場合、新しいカメラ取付位置に新しく観察点を再設定することで、新しいカメラ取付位置の変形後の位置と姿勢の解析を容易にできる。即ち、観察点を新たな節点として設定すると、部品に対して新たなメッシュを設定し直すことになる。この場合はステップＳ１２のメッシュ設定処理をやり直すことになり、三次元有限要素法の演算で必要となる行列計算をやり直すことになって、演算処理速度やメッシュの規模にもよるが、時間が長期化する虞がある。しかしながら、本第１の実施の形態では、観察点位置を、その観察点に対応するメッシュ要素の節点に対する形状関数で定義するので、部品に対してメッシュ及び節点の設定を変更する必要を無くすことができる。そのため、観察点や補助点の位置を変更して再設定可能となって、三次元有限要素法の演算で必要となる行列計算をやり直すことなく、観察点を再設定する前にメッシュ設定処理で演算された行列を用いて部品を変形させる演算を実行できる。これにより、長時間要することなく容易に観察点を変更（或いは追加）でき、つまり例えば新しいカメラ取付位置の変更を容易に行うことができる。
【００５３】
なお、本実施の形態では、観察点の位置を、メッシュ要素の節点に対して形状関数で設定するものだけを説明したが、もちろん、ステップＳ１２のメッシュ設定処理のやり直しを許容すれば、観察点や補助点を節点として設定するようにしても構わない。具体的には、観察点の位置を設定する際、観察点を新たな節点として設定し、同様に補助点のそれぞれの位置を新たな節点として設定する。そして、部品の変形後における観察点の位置及び補助点の位置を演算する際、演算した各節点の位置から観察点及び補助点となる節点の位置を取得することで観察点の位置及び補助点の位置を演算する。観察点の位置及び補助点の位置が演算できれば、あとは同様に２つのベクトル方向から座標系を演算し、それを世界座標系に演算することで、観察点の姿勢を求めることができる。
【００５４】
＜第２の実施の形態＞
続いて、上記第１の実施の形態を一部変更した第２の実施の形態について図１１及び図１２に沿って説明する。図１１はシミュレーションにより変形させる多関節ロボットと接合点及び観察点とを示す図、図１２は多関節ロボットを構成する部品を示す図である。
【００５５】
なお、本第２の実施の形態は、上記第１の実施の形態に比して、シミュレーションする対象をカメラ取付部材から関節を複数有する多関節ロボットに変更したものである。本第２の実施の形態におけるシミュレーション方法（演算処理）自体は、第１の実施の形態とほぼ同じものである。多関節ロボットでは、複数の部品（フレーム）がそれぞれ回転関節で１軸周りの回転方向に可動自在に接合された関係にあって、フレーム同士の接合部分を示す接合点の姿勢が次の部品の位置に影響することになる。従って、本第２の実施の形態では、各関節に任意点として接合点を設定し、その接合点の姿勢を解析するものである。また、各関節を駆動して多関節ロボットを駆動する際、多関節ロボットの手先（先端）がどのように移動するかを解析することで、例えば手先の直進性等を検証することができる。そこで、本第２の実施の形態では、多関節ロボットの手先に任意点として観察点を設定し、その観察点の姿勢も解析するものである。以下、本第２の実施の形態におけるシミュレーション方法を、前述の図２乃至図５のフローチャートと図１１及び図１２に示す多関節ロボットの模式図を用いて具体的に説明する。
【００５６】
図１１に示すように、多関節ロボット６０１は、基台となるベース部品７０１に関節Ｊ１を介してフレームとなるロボット部品７０２が接合されている。また、ロボット部品７０２には、関節Ｊ２を介してフレームとなるロボット部品７０３が接合されており、ロボット部品７０３には、関節Ｊ３を介してフレームとなるロボット部品７０４が接合されている。さらに、ロボット部品７０４には、関節Ｊ４を介してフレームとなるロボット部品７０５が接合されており、ロボット部品７０５には、関節Ｊ５を介してフレームとなるロボット部品７０６が接合されている。そして、ロボット部品７０６には、関節Ｊ６を介してエンドエフェクタとなるロボット部品７０７が接合されており、ロボット部品７０７の先端が例えばロボットハンドなどが取り付けられる手先となっている。
【００５７】
演算装置１は、本シミュレーションを開始すると、まず初めに部品設定処理（Ｓ１）を実行する。ユーザは図３で示すように、シミュレーションで用いるベース部品７０１及びロボット部品７０２〜７０７の形状を設定し（Ｓ１１）、三次元要素（四面体、五面体、六面体など）となるメッシュ要素と節点を設定する（Ｓ１２）。メッシュ設定については第１の実施の形態と同様である。
【００５８】
次に、演算装置１は、機構設定処理（Ｓ２）を実行する。ステップＳ２１において、ユーザは、ベース部品７０１及びロボット部品７０２〜７０７の座標系原点の位置と姿勢を設定し、複数の関節Ｊ１〜Ｊ６を有する多関節ロボット６０１を設定する。まず、ベース部品７０１について世界座標系６０４における位置と姿勢を設定する。次に、ベース部品７０１上に設定されるロボット部品７０２の位置と姿勢について、ベース部品７０１の座標系で設定する。以降順々にロボット部品７０３〜７０７の位置と姿勢を設定する。
【００５９】
次に、ステップＳ２２において、ベース部品７０１とロボット部品７０２を接続する関節Ｊ１に任意点である接合点６０２−１を設定して記憶する。簡略化のため、接合点６０２−１の位置と姿勢は、ロボット部品７０２の原点の位置と姿勢に一致しているとした。以降順々にロボット部品７０３〜７０７の関節Ｊ２〜Ｊ６にそれぞれ接合点６０２−２〜６０２−６を設定して記憶する。さらに、ユーザは、多関節ロボット６０１の手先に対して任意点である観察点を設定する。即ちロボット部品７０７に対して観察点６０３を設定する。即ち、ユーザはロボット部品７０７の座標系における観察点６０３の位置と姿勢の情報をシミュレーションシステムに入力する。演算装置１は、入力された観察点６０３の部品７０７座標系における位置と姿勢の情報を記憶する。ここでは、観察点６０３の座標系は、ロボット部品７０７の座標系を平行移動したものとした。
【００６０】
続いて、演算装置１は、ステップＳ２３において、各接合点６０２−１〜６０２−６の座標系において、ｘ方向に微小に移動した位置にｘ方向補助点を設定して位置を記憶する。また、演算装置１は、観察点６０３の座標系において、ｘ方向に微小に移動した位置にｘ方向補助点を設定して位置を記憶する。
【００６１】
さらに、演算装置１は、ステップＳ２４において、各接合点６０２−１〜６０２−６の座標系において、ｙ方向に微小に移動した位置にｙ方向補助点を設定して位置を記憶する。また、演算装置１は、観察点６０３の座標系において、ｙ方向に微小に移動した位置にｙ方向補助点を設定して位置を記憶する。
【００６２】
なお、これらの補助点は、ユーザが設定した座標系におけるｘ方向とｙ方向に限らないが、第１の実施の形態で説明したように、接合点や観察点から見て異なる方向成分を有する必要がある。
【００６３】
次に演算装置１は、ステップＳ２６において、まず、関節Ｊ１が拘束するベース部品７０１とロボット部品７０２において、接合点６０２−１に最も近接しているメッシュ要素を選択する。次に、接合点６０２−１の変位とメッシュ要素を構成する節点の変位の関係を表す形状関数を計算し、メッシュ要素の情報と形状関数を記憶する。接合点６０２−１のｘ方向補助点とｙ方向補助点についても同様に、メッシュ要素の情報と形状関数を記憶する。接合点６０２−２〜６０２−６及びそれらのｘ方向補助点とｙ方向補助点についても同様に、最も近接しているメッシュ要素の情報と形状関数を記憶する。さらに演算装置１は、観察点６０３が属する部品７０７において、観察点６０３に最も近接しているメッシュ要素を選択する。次に、観察点６０３の変位とメッシュ要素を構成する節点との変位の関係を表す形状関数を計算し、メッシュ要素の情報と形状関数を記憶する。
【００６４】
なお、本第２の実施の形態では、形状関数を計算する際のメッシュ要素を接合点或いは観察点に最も近接しているメッシュ要素と言うが、これは、特に接合点が必ずしも部品上に設定されるとは限らないからである。即ち、それぞれの関節の軸の上に接合点が設定される関係上、正確には関節の軸を構成する軸部材に接合点が位置することになるが、軸部材までシミュレーションすると演算量が膨大になる。従って、部品から接合点が僅かに離れている位置に設定されることがある。同様に、観察点もロボットハンド上に位置することになるが、例えばフィンガー部材までシミュレーションすると演算量が膨大になる。従って、部品から観察点が僅かに離れている位置に設定されることがある。そのため、本実施の形態では、「接合点や観察点に最も近接したメッシュ要素」というが、これは接合点や観察点に対応するメッシュ要素が設定できればよく、これら接合点や観察点はその対応するメッシュ要素の中や表面上に設定されるものでもよい。
【００６５】
次に、演算装置１は、シミュレーション処理（Ｓ３）を実行する。初めにユーザは、シミュレーション条件を設定する（Ｓ３１）。例えば多関節ロボット６０１の関節Ｊ１〜Ｊ６にかかるトルクや重力といった外力や、シミュレーション時間などの条件を設定する。
【００６６】
次にユーザは、シミュレーション開始命令を演算装置１に対して入力する（Ｓ３２）。演算装置１は、ユーザが設定したシミュレーション条件に従い、機構のダイナミクスを考慮した運動と、部品の変形を計算する（Ｓ３３）。次に演算装置１は、部品の変形後における接合点６０２−１〜６０２−６、観察点６０３、それぞれの補助点の位置を計算する（Ｓ３４）。そして、演算装置１は、接合点６０２−１〜６０２−６や観察点６０３の位置と姿勢を部品座標系で計算し（Ｓ３５）、さらに接合点６０２−１〜６０２−６や観察点６０３の位置と姿勢を世界座標系で計算する（Ｓ３６）。
【００６７】
図１１に示した多関節ロボット６０１のように複数の関節Ｊ１〜Ｊ６を有する機構では、各部品７０１〜７０７の微小な変形が手先の観察点６０３の位置と姿勢に大きな影響を与える。各関節Ｊ１〜Ｊ６にかかるトルクや各部品７０１〜７０７の全体にかかる重力により部品７０１〜７０７が変形し、各部品７０１〜７０７が変形するとそれらに設定されている各節点の変位量が更新される。これに伴い、各部品７０１〜７０７を接合する接合点６０２−１〜６０２−６の位置と姿勢が変位するため、演算装置１は、この変形を考慮して接合点６０２−１〜６０２−６や観察点６０３の位置姿勢を計算することになる。このような多関節ロボット６０１のシミュレーションでは、ベース部品７０１側である根本側の部品変形が手先側の位置や姿勢に累積的に影響する以外、第１の実施の形態と計算手法は基本的に同様であるので、その計算式等の説明は省略する。
【００６８】
最後に演算装置１は、ステップＳ３１で設定されたシミュレーション時間が経過したかどうかを確認し、経過していなければ（Ｓ３７のＮＯ）ステップＳ３３に戻ってシミュレーションを継続し、経過していれば（Ｓ３７のＹＥＳ）シミュレーションを終了する。以上により、シミュレーションの全処理が終了となる。
【００６９】
以上説明した第２の実施の形態によると、例えば多関節ロボット６０１に取付けたロボットハンドでドライバやピンセットなどのツールを把持した場合に、そのツール先端の位置と姿勢をシミュレーションにより確認できる。
【００７０】
即ち、多関節ロボット６０１がある姿勢を取った時、ベース部品７０１及びロボット部品７０２〜７０７やロボット部品７０７に固定されたツールの重量によって、ベース部品７０１や各ロボット部品７０２〜７０７は変形する。そのため、多関節ロボット６０１の手先の位置と姿勢は変化する。特にツールが長い場合、多関節ロボット６０１の手先の姿勢は、ツール先端の位置や姿勢に大きく影響する。本実施の形態のように、多関節ロボット６０１の手先に観察点６０３を設定し、その位置や姿勢を解析する。すると、ベース部品７０１やロボット部品７０２〜７０７をどのように設計すれば手先の姿勢の変化を抑えられるのか、多関節ロボット６０１の姿勢をどのように駆動制御すれば精密な作業をこなせるのか、という問題の解決に用いることができる。
【００７１】
また、第２の実施の形態でも、各接合点６０２−１〜６０２−６や観察点６０３に対応するメッシュ要素の節点やその周囲の節点の固定を行っていないため、高精度にシミュレーションができる。
【００７２】
また、多関節ロボット６０１に固定されるツールがあるものとして、そこに観察点を設定することで、ツールの位置や姿勢を解析するようにしてもよい。このとき、観察点の表現方法として形状関数を用いると、部品７０７のメッシュや節点を変更することなく観察点を追加できるため、メッシュ設定工程Ｓ１２をやり直す必要が無い。
【００７３】
さらに、ロボット部品７０７を関節がある部品に変更する場合、ロボット部品７０７が関節を有するものとして、ロボット部品７０７が有する関節の位置と姿勢を変更することで、同様にシミュレーションを実行できる。このとき、新たな関節位置の表現方法として形状関数を用いると、ロボット部品７０７のメッシュや節点を変更することなく、新たな関節の位置と姿勢を設定できるため、メッシュ設定工程Ｓ１２をやり直す必要が無い。
【００７４】
以上のようにシミュレーションした多関節ロボットについて、シミュレーション結果を用いて多関節ロボットを設計し、その設計された多関節ロボットを製造することで、高精度で姿勢が制御できる多関節ロボットを得ることができる。このような多関節ロボットで製造された部品や組立品などの物品も精密となり、製造上における歩留まりもよくなる。
【００７５】
なお、以上説明した第１及び第２の実施の形態においては、三次元有限要素法で用いるメッシュ要素を四面体であるものとして説明したが、これに限らず、五面体、六面体などのメッシュ要素を用いて構わない。
【００７６】
また、以上説明した第１及び第２の実施の形態においては、カメラ取付部品や多関節ロボットをシミュレーションした場合について説明したが、これらに限らず、部品が変形することで姿勢が変わるものの位置や姿勢を解析したいものであれば、何でもよい。例えば、コネクタをグリッパで把持した際に、コネクタが変形してコネクタ先端の方向（姿勢）が変化する場合などの解析にも適用できる。
【符号の説明】
【００７７】
１…演算装置、シミュレーション装置：２０…演算部（ＣＰＵ）：２３…記録媒体（ＨＤＤ）：１０１…部品：１０３…任意点（観察点）：２０１…節点：３０１，３０２…補助点（ｘ方向補助点、ｙ方向補助点）：４０１…メッシュ：６０１…多関節ロボット：６０２−１〜６０２−６…任意点、接合点：６０３…任意点、観察点：７０１…部品（ベース部品）：７０２〜７０７…部品、フレーム（ロボット部品）：Ｊ１〜Ｊ６…関節
【図１】
0006576125.tif 000009
【図２】
0006576125.tif 000010
【図３】
0006576125.tif 000011
【図４】
0006576125.tif 000012
【図５】
0006576125.tif 000013
【図６】
0006576125.tif 000014
【図７】
0006576125.tif 000015
【図８】
0006576125.tif 000016
【図９】
0006576125.tif 000017
【図１０】
0006576125.tif 000018
【図１１】
0006576125.tif 000019
【図１２】
0006576125.tif 000020