(57)【要約】【課題】シミュレーションの精度の低下を抑制すること。【解決手段】シミュレーションプログラム１２１は、コンピュータに次の処理を実行させる。すなわち、シミュレーションプログラム１２１は、３次元シミュレーション空間上に搬送物とプッシャー部の押し出し面で押すことで搬送物を移動させる動作をする搬送機とが配置され、搬送機が搬送物を搬送するシミュレーション演算をコンピュータに実行させる。シミュレーションプログラム１２１は、コンピュータに、プッシャー部の押し出し面、が位置する座標と、搬送物の所定の基準点が位置する座標とが所定の距離以内になった場合に、所定の基準点を中心に搬送物を回転させる処理を実行させる。【選択図】図１２
2014148388.tif 000002
【特許請求の範囲】
【請求項１】
３次元シミュレーション空間上に搬送物と、プッシャー部の押し出し面で押すことで該搬送物を移動させる動作をするまたはリフター部の支え面により下から支えることで該搬送物を上方に上げる動作をする搬送機とが配置され、該搬送機が該搬送物を搬送するシミュレーション演算を実行し、
前記シミュレーション演算を実行する際に、前記プッシャー部の押し出し面、または、前記リフター部の支え面が位置する座標と、前記搬送物の所定の基準点が位置する座標とが所定の距離以内になった場合に、該所定の基準点を中心に前記搬送物を回転させる
処理を前記コンピュータに実行させるプログラム。
【請求項２】
前記搬送物を回転させる処理は、前記プッシャー部の押し出し面、または、前記リフター部の支え面が位置する座標と、前記搬送物の重心が位置する座標とが所定の距離以内になった場合に、該重心を中心に前記搬送物を回転させる
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記搬送物を回転させる処理は、前記プッシャー部の押し出し面、または、前記リフター部の支え面が位置する座標と、前記搬送物の所定の基準点が位置する座標とが所定の距離以内になった場合に、該所定の基準点を中心に該搬送物の縁と該プッシャー部の押し出し面または該リフター部の支え面とが平行になるように、前記搬送物を回転させる
ことを特徴とする請求項１または２に記載のプログラム。
【請求項４】
前記搬送物を回転させる処理は、前記プッシャー部の押し出し面、または、前記リフター部の支え面が位置する座標と、前記搬送物の重心が位置する座標とが該重心から前記搬送物の縁までの距離以内になった場合に、該重心を中心に前記搬送物を回転させる
ことを特徴とする請求項２に記載のプログラム。
【請求項５】
前記搬送物を回転させる処理は、前記プッシャー部の押し出し面、または、前記リフター部の支え面が位置する座標と、前記搬送物の所定の基準点が位置する座標とが所定の距離以内になった場合に、前記搬送物と前記プッシャー部の押し出し面とが接触すると判定される該搬送物の角と該搬送物の重心位置との関係から回転の方向を決定し、該所定の基準点を中心に、決定した回転方向に前記搬送物を回転させる
ことを特徴とする請求項１〜４のいずれか一項に記載のプログラム。
【請求項６】
３次元シミュレーション空間上に搬送物と、プッシャー部の押し出し面で押すことで該搬送物を移動させる動作をするまたはリフター部の支え面により下から支えることで該搬送物を上方に上げる動作をする搬送機とが配置され、該搬送機が該搬送物を搬送するシミュレーション演算を実行する実行部と
前記プッシャー部の押し出し面、または、前記リフター部の支え面が位置する座標と、前記搬送物の所定の基準点が位置する座標とが所定の距離以内になった場合に、該所定の基準点を中心に回転させる回転部
を有することを特徴とする演算装置。
【請求項７】
コンピュータが、
３次元シミュレーション空間上に搬送物と、プッシャー部の押し出し面で押すことで該搬送物を移動させる動作をするまたはリフター部の支え面により下から支えることで該搬送物を上方に上げる動作をする搬送機とが配置され、該搬送機が該搬送物を搬送するシミュレーション演算を実行し、
前記シミュレーション演算を実行する際に、前記プッシャー部の押し出し面、または、前記リフター部の支え面が位置する座標と、前記搬送物の所定の基準点が位置する座標とが所定の距離以内になった場合に、該所定の基準点を中心に前記搬送物を回転させる
処理を実行する演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、演算装置および演算方法に関する。
【背景技術】
【０００２】
従来、ワークと呼ばれる搬送物の搬送状態をシミュレートする技術が知られている。例えば、ベルトコンベア、吸着チャック、プッシャー、リフター等の搬送機器を制御する制御プログラムのデバッグを行うため、制御プログラムに従ってシミュレーション空間上の搬送機器を動作させ、ワークが適切に搬送されるか確認する技術が知られている。
【０００３】
ここで、シミュレート空間上でワークの搬送を実現する方法として、搬送機器がワークに干渉したことを検知し、ワークに干渉した搬送機器の動作に応じてワークの搬送をシミュレートする方法が考えられる。しかし、多くのワークや複数の搬送機器の動作を同時にシミュレートする際に、各搬送機器がワークに干渉しているか否かを全ての要素に対して判断した場合は、演算量が膨大になってしまう。
【０００４】
そこで、シミュレーションの演算を簡単化する技術が知られている。例えば、搬送機器とワークとが所定の距離内に近づいたときに、搬送機器とワークとが一体になったものとしてシミュレーションの演算を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−３３９５５号公報
【特許文献２】特開２００２−６８４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、搬送機器とワークとが一体になったものとしてシミュレーションの演算を行う上述の技術では、実際に搬送機器によって搬送される姿勢でワークが搬送されない場合や、搬送機器にワークがめり込んでしまったまま搬送される場合がある。かかる場合には、実際とは異なる状態でワークが搬送されてしまうので、ワークの位置ずれが発生することがある。そのため、搬送機器とワークとが一体になったものとしてシミュレーションの演算を行う上述の技術は、シミュレーションの精度が良好でないという問題がある。
【０００７】
１つの側面では、本発明は、シミュレーションの精度の低下を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
１つの側面では、プログラムは、３次元シミュレーション空間上に搬送物と、プッシャー部の押し出し面で押すことで該搬送物を移動させる動作をするまたはリフター部の支え面により下から支えることで該搬送物を上方に上げる動作をする搬送機とが配置され、該搬送機が該搬送物を搬送するシミュレーション演算をコンピュータに実行させる。プログラムは、コンピュータに、前記プッシャー部の押し出し面、または、前記リフター部の支え面が位置する座標と、前記搬送物の所定の基準点が位置する座標とが所定の距離以内になった場合に、該所定の基準点を中心に搬送物を回転させる。
【発明の効果】
【０００９】
１つの側面では、シミュレーションの精度の低下を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係る演算装置の機能構成の一例を示す図である。
【図２Ａ】図２Ａは、演算装置が実行する、搬送機器とワークとを一体化させる処理の一例について説明するための図である。
【図２Ｂ】図２Ｂは、演算装置が実行する、搬送機器とワークとを一体化させる処理の一例について説明するための図である。
【図３】図３は、搬送部品形状テーブルの一例を説明する図である。
【図４】図４は、搬送動作情報テーブルの一例を説明する図である。
【図５】図５は、ワーク形状テーブルの一例を説明する図である。
【図６】図６は、ワーク姿勢テーブルの一例を説明する図である。
【図７】図７は、接触判定直方体テーブルの一例を説明する図である。
【図８】図８は、接触平面テーブルの一例を説明する図である。
【図９】図９は、ワークの接触判定直方体を説明する図である。
【図１０Ａ】図１０Ａは、プッシャーの搬送可能領域を説明する図である。
【図１０Ｂ】図１０Ｂは、リフターの搬送可能領域を説明する図である。
【図１１】図１１は、あるタイムステップにおけるワークと搬送機器との一体化を判定する処理の流れを説明するためのフローチャートである。
【図１２】図１２は、シミュレートプログラムを実行するコンピュータの一例を説明するための図である。
【発明を実施するための形態】
【００１１】
以下に図面を参照して実施例に係るプログラム、演算装置および演算方法について説明する。
【００１２】
実施例では、ワークの搬送をシミュレートする演算装置について説明する。図１は、実施例に係る演算装置の機能構成の一例を示す図である。図１に示すように、演算装置１は、入力装置２、および出力装置３と接続されている。また、演算装置１は、管理情報記憶部５、動作パラメータ記憶部６、３次元データ管理部７を有する。また、演算装置１は、制御ソフトウェア実行部８、モータ動作演算部９、シミュレーション演算部１０、３次元姿勢演算部１１、３次元形状表示制御部１２を有する。
【００１３】
また、管理情報記憶部５は、搬送部品形状テーブル５ａ、搬送動作情報テーブル５ｂ、ワーク形状テーブル５ｃ及びワーク姿勢テーブル５ｄを有する。また、動作パラメータ記憶部６は、接触判定直方体テーブル６ａ、接触平面テーブル６ｂを有する。また、シミュレーション演算部１０は、動作パラメータ作成部１０ａ、接触姿勢演算部１０ｂ、ワーク移動演算部１０ｃを有する。
【００１４】
演算装置１は、タイムステップＴ１、Ｔ２、・・・ＴＮまでの各タイムステップにおけるワークの搬送状態をシミュレートし、シミュレートした結果を出力装置２から出力させる。これにより、搬送機器を制御する制御ソフトウェアの開発者などに、制御ソフトウェアによる搬送機器の制御が適切かを検証させることができる。演算装置１は、例えば、入力装置２から、シミュレーション空間上で搬送をシミュレートするワークの形状及びワークの初期（タイムステップＴ１）のワークの姿勢、および、ワークを搬送する搬送機器の機能や初期の配置等の情報を取得する。例えば、演算装置１は、ＣＡＤ（Computer  Aided  Design）によって作成されたワークの３次元モデルデータ及び初期のワークの姿勢データを取得する。また、演算装置１は、ＣＡＤによって作成されたプッシャー、ベルトコンベア、吸着チャック、リフター等の搬送機器の３次元モデルデータ、および、初期の搬送機器の配置位置等を取得する。そして、演算装置１は、取得した３次元モデルデータ等を用いて、タイムステップＴ１〜ＴＮまでのワークの搬送シミュレーションを実行し、実行結果をモニタやプリンタである出力装置３に出力させる。例えば、演算装置１は、各種搬送機器によってワークが搬送される映像を出力装置３に出力し表示させる。
【００１５】
ここで、演算装置１は、シミュレーションの演算を簡単化するため、ワークと、ワークを搬送している搬送機器とが一体化したものとして演算を行うことで、シミュレーションに要する演算量を削減する。例えば、演算装置１は、各搬送機器がワークを押し出す面または上に持ち上げる面である接触平面からワークを押し出す方向に向けて所定の搬送可能領域を設定する。
【００１６】
そして、演算装置１は、あるタイムステップにおいて、ある搬送機器に設定された搬送可能領域にワークの接触判定直方体の重心が含まれる場合には、搬送機器がワークの搬送を開始したと判定し、搬送機器とワークとを一体化してシミュレーションの演算を行う。すなわち、演算装置１は、ワークの動作を演算するのではなく、ワークと一体化した搬送機器の動作を演算することで、演算量を削減することができる。
【００１７】
ここで、搬送機器とワークとを一体化させるタイミングとしては、例えば、搬送機器とワークとの干渉チェックを行って、搬送機器とワークとが干渉し、かつ、干渉した部分の長さが所定の閾値以内となったタイミングが考えられる。しかしながら、かかるタイミングを、搬送機器とワークとを一体化させるタイミングとする場合には、ワークに対して搬送機器がめり込んだままワークの搬送状態をシミュレートすることになる。すなわち、実際に、搬送機器によってワークを搬送する状況とは異なった状況でワークの搬送状態をシミュレートすることになる。そのため、上述したタイミングを搬送機器とワークとを一体化させるタイミングとして採用する場合には、シミュレーションにおいて演算されるワークの位置の精度が悪くなる。したがって、上述したタイミングを搬送機器とワークとを一体化させるタイミングとして採用する場合には、制御プログラムの検証を精度良く行うことができない。
【００１８】
そこで、演算装置１は、以下の処理を実行する。図２Ａは、演算装置が実行する、搬送機器とワークとを一体化させる処理の一例について説明するための図である。例えば、図２Ａの例に示すように、あるタイムステップにおいて、演算装置１は、プッシャー３０が移動して、プッシャー３０に設定された搬送可能領域にワーク４０の接触判定直方体の重心４１が含まれることとなった場合には、プッシャー３０がワーク４０の搬送を開始したと判定する。そして、プッシャー３０の接触判定直方体に設定されたワーク４０を押し出す面である接触面３１とワーク４０の面とが平行となるように、演算装置１は、ワーク４０の接触判定直方体を回転させる。例えば、演算装置１は、重心４１を中心として、接触面３１に最も近いワーク４０の接触判定直方体の点４２をプッシャー３０の移動方向に押した場合にワーク４０の接触判定直方体が回転する方向４３にワーク４０の接触判定直方体を回転させることを開始する。そして、演算装置１は、接触面３１とワーク４０の接触判定直方体の面４４とが平行となった場合に、接触判定直方体の回転を停止する。そして、演算装置１は、接触面３１に対して平行となったワーク４０の接触判定直方体の面４４と、接触面３１とが接触するように、接触判定直方体を移動させる。そして、演算装置１は、プッシャー３０とワーク４０とが一体化したものとみなす。これにより、演算装置１は、ワーク４０に対してプッシャー３０がめり込むことなく、プッシャーがワークを搬送する実際の状況と同様の状況でワーク４０の搬送状態をシミュレートすることができる。それゆえ、演算装置１によれば、シミュレーションにおいて演算されるワークの位置の精度の低下を抑制することができる。したがって、演算装置１によれば、制御プログラムの検証を精度良く行うことができる。
【００１９】
また、演算装置１によれば、ワーク４０がプッシャー３０によって搬送される際の姿勢が、プッシャーがワークを実際に搬送する際のワークの姿勢と同様となる。そのため、演算装置１は、プッシャーがワークを搬送する実際の状況と同様の状況でワーク４０の搬送状態をシミュレートすることができる。それゆえ、演算装置１によれば、シミュレーションにおいて演算されるワークの位置の精度の低下を抑制することができる。したがって、演算装置１によれば、制御プログラムの検証を精度良く行うことができる。
【００２０】
図２Ｂは、演算装置が実行する、搬送機器とワークとを一体化させる処理の一例について説明するための図である。例えば、図２Ｂの例に示すように、あるタイムステップにおいて、演算装置１は、リフター６０が移動して、リフター６０に設定された搬送可能領域にワーク７０の接触判定直方体の重心７１が含まれることとなった場合には、リフター６０がワーク７０の搬送を開始したと判定する。そして、リフター６０に設定されたワーク７０を下から支えてワーク７０を上方に上げるための面である接触面６１とワーク７０の接触判定直方体の面とが平行となるように、演算装置１は、接触判定直方体を回転させる。例えば、演算装置１は、重心７１を中心として、接触面６１に最も近いワーク７０の接触判定直方体の点７２をリフター６０の移動方向に押した場合に接触判定直方体が回転する方向７３に接触判定直方体を回転させることを開始する。そして、演算装置１は、接触面６１とワーク７０の接触判定直方体の面７４とが平行となった場合に、接触判定直方体の回転を停止する。そして、演算装置１は、接触面６１に対して平行となったワーク７０の接触判定直方体の面７４と、接触面６１とが接触するように、ワーク７０の接触判定直方体を移動させる。そして、演算装置１は、リフター６０とワーク７０とが一体化したものとみなす。これにより、演算装置１は、ワーク７０に対してリフター６０がめり込むことなく、リフターがワークを搬送する実際の状況と同様の状況でワーク７０の搬送状態をシミュレートすることができる。それゆえ、演算装置１によれば、シミュレーションにおいて演算されるワークの位置の精度の低下を抑制することができる。したがって、演算装置１によれば、制御プログラムの検証を精度良く行うことができる。
【００２１】
また、演算装置１によれば、ワーク７０がリフター６０によって搬送される際の姿勢が、リフターがワークを実際に搬送する際のワークの姿勢と同様となる。そのため、演算装置１は、リフターがワークを搬送する実際の状況と同様の状況でワーク７０の搬送状態をシミュレートすることができる。それゆえ、演算装置１によれば、シミュレーションにおいて演算されるワークの位置の精度の低下を抑制することができる。したがって、演算装置１によれば、制御プログラムの検証を精度良く行うことができる。
【００２２】
次に、先の図１に示す各機能の一例について説明する。搬送部品形状テーブル５ａは、入力装置２から入力されたプッシャーやリフターなどの搬送機器の形状を示すデータが格納されたテーブルである。図３は、搬送部品形状テーブルの一例を説明する図である。図３に示す例では、搬送部品形状テーブル５ａは、シミュレーション空間上に配置されたプッシャーやリフターなどの形状として、プッシャーやリフターなどの表面を構成する３角形平面（ポリゴン）の頂点座標が格納されている。
【００２３】
例えば、図３の例は、搬送部品形状テーブル５ａが、あるプッシャーの表面を構成する複数のポリゴンの各頂点座標「（ＸＰ１、ＹＰ１、ＺＰ１）、…」を記憶した場合を示す。なお、図３に示す例では、最も単純なポリゴンデータを記憶する例について記載したが、実施例はこれに限定されるものではなく、例えば、搬送部品形状テーブル５ａには、辺データを考慮したポリゴンデータが格納されても良い。また、搬送部品形状テーブル５ａには、自由曲面を構成する線、および線を構成する点を階層的に記憶しても良い。すなわち、搬送部品形状テーブル５ａは、シミュレーション空間上で搬送機器を表現する任意形式のデータが格納される。
【００２４】
搬送動作情報テーブル５ｂは、搬送機器の動作を示すデータが格納されたテーブルである。例えば、図４は、搬送動作情報テーブルの一例を説明する図である。図４に示す例では、搬送動作情報テーブルには、演算装置１が実行するシミュレーションでの最新のタイムステップＴｋ（ｋ＝１，・・・，Ｎ）における各搬送機器の重心位置と移動量及び移動方向を示す移動ベクトルと姿勢角とが対応付けて格納される。
【００２５】
例えば、図４に示す例は、搬送動作情報テーブル５ｂが、あるタイムステップにおけるあるプッシャーの重心位置が「（ＸＰ１、ＹＰ１、ＺＰ１）」であり、移動量及び移動方向が「（Ｘ１、Ｙ１、Ｚ１）」であり、姿勢角が「（θ１、ρ１、φ１）」を記憶した場合を示す。ここで、θ、ρ、φは、３次元空間内の各軸（Ｘ軸、Ｙ軸、Ｚ軸）を中心にしてどれだけ回転しているかを示す角度の情報である。なお、タイムステップＴｋにおいて搬送動作情報テーブル５ｂに格納される搬送機器の重心位置及び姿勢角については、３次元姿勢演算部１１がタイムステップＴｋにおいて新たに算出した値に更新される。また、タイムステップＴｋにおいて搬送動作情報テーブル５ｂに格納される移動ベクトルについては、モータ動作演算部９がタイムステップＴｋにおいて新たに演算した移動ベクトルに更新される。したがって、タイムステップＴｋにおいて、モータ動作演算部９により移動ベクトルが登録されてから、３次元姿勢演算部１１により搬送機器の重心位置及び姿勢角が登録されるまでの間における搬送動作情報テーブル５ｂの登録内容は次の内容となる。すなわち、搬送動作情報テーブル５ｂには、タイムステップＴｋにおける移動ベクトルと、タイムステップＴｋ−１における搬送機器の位置及び姿勢角とが対応付けて登録される。よって、タイムステップＴｋにおいて、後述する動作パラメータ作成部１０ａ、接触姿勢演算部１０ｂ、ワーク移動演算部１０ｃによって参照される搬送動作情報テーブル５ｂの登録内容は、次の内容となる。すなわち、かかる登録内容は、タイムステップＴｋにおける移動ベクトル、並びに、タイムステップＴｋ−１における搬送機器の位置及び姿勢角となる。
【００２６】
図１の説明に戻り、ワーク形状テーブル５ｃは、シミュレーション空間内において各種の搬送機器が搬送を行うワークの形状が格納されている。図５は、ワーク形状テーブルの一例を説明する図である。図５に示す例は、ワーク形状テーブル５ｃが、ワーク＃１の表面を構成する３角形平面（ポリゴン）の頂点座標を記憶する場合を示す。図５の例は、ワーク形状テーブル５ｃが、ワーク＃１の表面を構成するポリゴンの座標データ「（ＸＷ１、ＹＷ１、ＺＷ１）、・・・」を記憶した場合を示す。なお、ワーク形状テーブル５ｃは、搬送部品形状テーブル５ａと同様に、自由曲面等のデータが格納されていても良い。
【００２７】
ワーク姿勢テーブル５ｄは、は、ワークの姿勢を示すデータが格納されたテーブルである。例えば、図６は、ワーク姿勢テーブルの一例を説明する図である。図６に示す例では、ワーク姿勢テーブル５ｄには、各ワークの接触判定直方体の重心の位置と、各ワークの接触判定直方体の重心を原点として、各接触判定直方体が３次元空間内の各軸を中心にどれだけ回転しているかを示す姿勢の情報が格納されている。
【００２８】
例えば、図６に示す例は、ワーク姿勢テーブル５ｄが、ワーク＃１の接触判定直方体の重心の位置「（Ｘ１、Ｙ１、Ｚ１）」、姿勢角（θＷ１、ρＷ１、φＷ１）」を記憶した場合を示す。また、タイムステップＴｋにおいてワーク姿勢テーブル５ｄに格納される重心位置及び姿勢については、３次元姿勢演算部１１がタイムステップＴｋにおいて新たに演算した重心位置及び姿勢に更新される。したがって、タイムステップＴｋにおいて、３次元姿勢演算部１１によりワークの接触判定直方体の重心位置及び姿勢角が登録されるまでのワーク姿勢テーブル５ｄの登録内容は次の内容となる。すなわち、ワーク姿勢テーブル５ｄには、タイムステップＴｋ−１における各ワークの接触判定直方体の重心位置及び姿勢角とが対応付けて登録される。よって、タイムステップＴｋにおいて、後述する動作パラメータ作成部１０ａ、接触姿勢演算部１０ｂ、ワーク移動演算部１０ｃによって参照されるワーク姿勢テーブル５ｄの登録内容は、次の内容となる。すなわち、かかる登録内容は、タイムステップＴｋ−１における各ワークの接触判定直方体の重心位置及び姿勢角となる。
【００２９】
図１に戻って、接触判定直方体テーブル６ａは、各ワークに外接する直方体である接触判定直方体の表面を構成するポリゴンデータを記憶するテーブルである。接触判定直方体は、タイムステップＴｋにおいて、タイムステップＴｋよりも１つ前のタイムステップＴｋ−１における各ワークの重心位置及び形状に基づいて後述の動作パラメータ作成部１２により作成される。図７は、接触判定直方体テーブルの一例を説明する図である。図７に示す例は、接触判定直方体テーブル６ａが、タイムステップＴｋにおいてタイムステップＴｋ−１におけるワーク＃１の形状に基づいて作成された接触判定直方体の表面を構成するポリゴンデータ「（ＸＳ１、ＹＳ１、ＺＳ１）、・・・」を記憶した場合を示す。
【００３０】
接触平面テーブル６ｂは、各搬送機器の種別ごとに、ワークを搬送する際にワークと一体化する接触平面の頂点座標を記憶する。図８は、接触平面テーブルの一例を説明する図である。図８に示す例は、接触平面テーブル６ｂが、あるプッシャーの接触平面の頂点座標「（ＸＰ１Ｐ、ＹＰ１Ｐ、ＺＰ１Ｐ）、・・・」を記憶した場合を示す。なお、図８では記載を省略したが、搬送機器の接触平面のどちら側がワークと接触するかを示す情報が接触平面テーブル６ｂに登録されるものとする。また、各タイムステップにおける接触平面の頂点座標は、後述の動作パラメータ作成部１０ａによって作成される。そして、動作パラメータ作成部１０ａによって、各タイムステップにおける接触平面の頂点座標が、接触平面テーブル６ｂに登録され、接触平面テーブル６ｂが更新される。
【００３１】
図１に戻って、３次元データ管理部７は、シミュレーション画像を作成する際に用いる各種データを記憶する。例えば、３次元データ管理部７は、各ワークや搬送機器のポリゴンデータ、表示する際の色を指定する情報等を記憶する。
【００３２】
制御ソフトウェア実行部８は、デバッグ対象となる制御ソフトウェアを実行する。例えば、制御ソフトウェア実行部８は、シミュレーション対象となる工場において、各搬送機器を動作させるサーボモータの制御信号を生成する制御ソフトを実行する。そして、制御ソフトウェア実行部８は、制御ソフトウェアが生成した制御信号の内容を、タイムステップＴ１からタイムステップＴＮまでのタイムステップごとに順番にモータ動作演算部９に出力する。例えば、制御ソフトウェア実行部８は、サーボモータのオンとオフを示すパルス信号がオン状態となるタイミング、オン状態となる時間、パルスの正負等をモータ動作演算部９に通知する。
【００３３】
モータ動作演算部９は、制御ソフトウェア実行部８から受信した制御信号の内容に従って、タイムステップごとに各搬送機器を動作させるサーボモータの回転数等を演算する。そして、モータ動作演算部９は、演算結果を用いて、タイムステップごとに各搬送機器の移動量及び移動方向を示す移動ベクトルを生成し、生成した移動ベクトルを搬送動作情報テーブル５ｂに格納する。例えば、モータ動作演算部９は、あるタイムステップにおいて、プッシャーを動作させるサーボモータの制御信号の内容を受信すると、受信した制御信号に従ってサーボモータの回転方向や回転数を演算する。そして、モータ動作演算部９は、演算したサーボモータの回転方向や回転数に応じてプッシャーの移動量及び移動方向を示す移動ベクトルを算出し、算出した移動ベクトルを搬送動作情報テーブル５ｂに格納して、搬送動作情報テーブル５ｂを更新する。なお、モータ動作演算部９は、各搬送機器の各軸の回転量も演算し、搬送動作情報テーブル５ｂの図示しない項目に格納する。
【００３４】
動作パラメータ作成部１０ａは、タイムステップごとに、管理情報記憶部５が記憶する各種情報を用いて、動作パラメータを生成し、生成した動作パラメータを動作パラメータ記憶部６に格納する。
【００３５】
ここで、動作パラメータとは、演算装置１がワークの搬送状態をシミュレートするために用いる情報である。例えば、動作パラメータとは、各ワークと各搬送機器が接触しているか否かを判定する接触判定に用いる情報であり、ワークに外接する接触判定直方体の位置情報と、搬送機器がワークを搬送する際にワークと接触する接触平面の位置情報である。
【００３６】
以下、動作パラメータ作成部１０ａの動作について説明する。まず、動作パラメータ作成部１０ａは、タイムステップＴｋにおいて、ワーク形状テーブル５ｃとワーク姿勢テーブル５ｄから、各ワークの形状とタイムステップＴｋ−１におけるワークの接触判定直方体の重心位置及び姿勢とを取得する。そして、動作パラメータ作成部１０ａは、取得した各ワークの形状、重心位置及び姿勢に基づいて、各ワークに外接する接触判定直方体の表面を構成するポリゴンデータを作成し、作成したポリゴンデータを接触判定直方体テーブル６ａに格納する。
【００３７】
図９は、ワークの接触判定直方体を説明する図である。例えば、動作パラメータ作成部１０ａは、図９中の直線で示すワーク４０の接触判定直方体として、図９中の点線で示す直方体５０を識別する。すなわち、動作パラメータ作成部１０ａは、ワーク４０に外接する直方体５０を識別する。そして、動作パラメータ作成部１０ａは、識別した直方体５０の表面を構成するポリゴンのポリゴンデータを生成し、生成したポリゴンデータを接触判定直方体テーブル６ａに格納する。動作パラメータ作成部１０ａは、上述したポリゴンデータを生成する処理をタイムステップごとに、各ワークに対して行う。
【００３８】
また、動作パラメータ作成部１０ａは、タイムステップＴｋにおいて、搬送部品形状テーブル５ａ及び搬送動作情報テーブル５ｂから、各搬送機器の形状とタイムステップＴｋ−１における重心位置及び姿勢とを取得する。そして、動作パラメータ作成部１０ａは、取得した各搬送機器の形状とタイムステップＴｋ−１における重心位置及び姿勢とを用いて、次のデータを生成する。すなわち、動作パラメータ作成部１０ａは、搬送機器がワークと接触した場合に、接触したワークを押し出す面または持ち上げる面である接触平面の頂点座標を作成し、作成した接触平面の頂点座標を接触平面テーブル６ｂに格納する。ここで、動作パラメータ作成部１０ａは、搬送機器がワークを押し出すまたは持ち上げる方向のベクトルを法線ベクトルとする搬送機器の面を接触平面とすることができる。例えば、先の図２Ａの例に示すように、動作パラメータ作成部１０ａは、プッシャー３０の接触平面３１の頂点座標を作成し、接触平面テーブル６ｂに格納する。動作パラメータ作成部１０ａは、上述した接触平面を作成する処理をタイムステップごとに、各搬送機器に対して行う。
【００３９】
接触姿勢演算部１０ｂは、動作パラメータ記憶部６が記憶する情報を用いて、ワークの接触判定を行う。例えば、接触姿勢演算部１０ｂは、接触判定直方体の形状と、各搬送機器の接触平面の形状とを接触判定直方体テーブル７ａ及び接触平面テーブル７ｂから取得する。そして、接触姿勢演算部１０ｂは、搬送機器の接触平面上に、ワークの搬送を開始するか否かを判定する搬送可能領域を設定する。例えば、接触姿勢演算部１０ｂは、接触平面上に、搬送機器が移動する方向に、所定の搬送可能領域を設定する。図１０Ａは、プッシャーの搬送可能領域を説明する図である。例えば、図１０Ａの例に示すように、接触姿勢演算部１０ｂは、プッシャー３０の接触平面３１上に設定される、ワークの搬送を開始するか否かを判定する搬送可能領域３２のポリゴンデータを作成する。図１０Ａの例に示すように、搬送可能領域３２は、プッシャー３０の接触平面３１の幅と同様の幅３３を有し、プッシャー３０の移動方向３４におけるプッシャー３０が搬送を行うワークの接触判定直方体の長さと同様の長さ３５を有する。そして、接触姿勢演算部１０ｂは、作成した搬送可能領域３２をプッシャー３０の接触平面３１上に設定する。
【００４０】
図１０Ｂは、リフターの搬送可能領域を説明する図である。例えば、図１０Ｂの例に示すように、接触姿勢演算部１０ｂは、リフター６０の接触平面６１上に設定される、ワークの搬送を開始するか否かを判定する搬送可能領域６２のポリゴンデータを作成する。図１０Ｂの例に示すように、搬送可能領域６２は、リフター６０の接触平面６１の幅と同様の幅６３を有し、リフター６０の移動方向６４におけるリフター６０が搬送を行うワークの接触判定直方体の長さと同様の長さ６５を有する。そして、接触姿勢演算部１０ｂは、作成した搬送可能領域６２をリフター６０の接触平面６１上に設定する。姿勢接触演算部１０ｂは、上述した搬送可能領域を設定する処理をタイムステップごとに、各搬送機器について行う。
【００４１】
また、接触姿勢演算部１０ｂは、各ワークの接触判定直方体の重心位置を算出する。そして、接触姿勢演算部１０ｂは、ワークごとに、算出した重心位置が、重心位置が算出された接触判定直方体のワークを搬送対象とする搬送機器に設定された搬送可能領域に含まれるか否かを判定する。接触姿勢演算部１０ｂは、あるタイムステップＴｋにおいて、ある搬送機器に設定された搬送可能領域にワークの接触判定直方体の重心位置が含まれる場合には、搬送機器がワークの搬送を開始すると判定することができる。
【００４２】
そして、接触姿勢演算部１０ｂは、あるタイムステップＴｋにおいて、搬送可能領域にワークの接触判定直方体の重心が含まれると判定した場合には、搬送機器がワークの搬送を開始すると判定する。例えば、接触姿勢演算部１０ｂは、先の図２Ａの例に示すように、あるタイムステップＴｋにおいて、搬送可能領域にワークの接触判定直方体の重心が含まれると判定した場合には、プッシャー３０がワーク４０の搬送を開始すると判定する。次に、接触姿勢演算部１０ｂは、搬送機器に設定されたワークを押し出す面または持ち上げる面である接触面とワークの接触判定直方体の面とが平行となる場合の、接触判定直方体の回転量を計算する。
【００４３】
例えば、先の図２Ａの例に示すように、接触姿勢演算部１０ｂは、接触面３１に最も近い点４２を検出する。そして、接触姿勢演算部１０ｂは、ワーク４０の接触判定直方体の重心を中心として、プッシャー３０の移動方向にワーク４０の接触判定直方体を押した場合に接触判定直方体が回転する方向４３を決定する。そして、接触姿勢演算部１０ｂは、ワーク４０の接触判定直方体を決定した方向４３に計算した回転量だけ回転させることを開始する。そして、ワーク移動演算部１０ｃは、接触面３１とワーク４０の接触判定直方体の面４４とが平行となった場合に、接触判定直方体の回転を停止する。
【００４４】
図１に戻り、ワーク移動演算部１０ｃは、接触面に対して平行となったワークの接触判定直方体の面と、接触面との距離を計算する。続いて、ワーク移動演算部１０ｃは、接触判定直方体の面と接触面とが接触するように、接触判定直方体が搬送機器に対して近づく方向に、計算した距離だけワークを移動させる。そして、ワーク移動演算部１０ｃは、搬送機器とワークとが一体化したことを３次元姿勢演算部１６に通知する。また、ワーク移動演算部１０ｃは、搬送機器の移動量及び姿勢角を３次元姿勢演算部１６に通知する。また、ワーク移動演算部１０ｃは、ワークの接触判定直方体の移動量及び姿勢角をワークの移動量及び姿勢角として３次元姿勢演算部１６に通知する。
【００４５】
例えば、先の図２Ａの例に示すように、ワーク移動計算部１０ｃは、接触面３１に対して平行となったワーク４０の接触判定直方体の面４４と、接触面３１との距離４５を計算する。続いて、ワーク移動演算部１０ｃは、面４４と、接触面３１とが接触するように、接触判定直方体がプッシャー３０に近づく方向に、距離４５だけ接触判定直方体を移動させる。これにより、ワーク４０に対してプッシャー３０がめり込むことなく、プッシャー３０の接触平面３１にワーク４０を接触させることができる。また、ワーク４０がプッシャー３０によって搬送される際のワーク４０の姿勢が、プッシャーがワークを実際に搬送する際のワークの姿勢と同様となる。そして、ワーク移動演算部１０ｃは、プッシャー３０とワーク４０とが一体化したことを３次元姿勢演算部１６に通知する。また、ワーク移動演算部１０ｃは、プッシャー３０の移動ベクトル及び回転量、並びに、ワーク４０の回転量を３次元姿勢演算部１６に通知する。
【００４６】
図１に戻って、３次元姿勢演算部１１は、タイムステップＴｋにおいて、一体化されている搬送機器及びワークについては、タイムステップＴｋ−１における搬送機器の重心位置、及び、タイムステップＴｋにおける搬送機器の移動ベクトルに基づいて次の処理を行う。すなわち、３次元姿勢演算部１１は、搬送機器及びワークが一体化されたモデルの重心位置を計算する。また、３次元姿勢演算部１１は、ワークと一体化されていない搬送機器については、タイムステップＴｋ−１における搬送機器の重心位置、及び、タイムステップＴｋにおける搬送機器の移動ベクトルに基づいて次の処理を行う。すなわち、３次元姿勢演算部１１は、あるタイムステップＴｋにおける搬送機器の重心位置を計算する。
【００４７】
そして、３次元姿勢演算部１１は、あるタイムステップＴｋにおいて、ワークの回転量が通知された場合には、次の処理を行う。すなわち、３次元姿勢演算部１１は、タイムステップＴｋにおけるワークの回転量及びタイムステップＴｋ−１におけるワークの姿勢角に基づいて、タイムステップＴｋにおけるワークの姿勢角を計算する。また、３次元姿勢演算部１１は、あるタイムステップＴｋにおいて、搬送機器の回転量が通知された場合には、次の処理を行う。すなわち、３次元姿勢演算部１１は、タイムステップＴｋにおける搬送機器の回転量及びタイムステップＴｋ−１における搬送機器の姿勢角に基づいて、タイムステップＴｋにおける搬送機器の姿勢角を計算する。
【００４８】
そして、３次元姿勢演算部１１は、３次元データ管理部７が記憶する各ワーク、および各搬送機器の形状を読み出す。次に３次元姿勢演算部１１は、一体化されている搬送機器及びワークのモデルの重心位置、各ワークの接触判定直方体の重心位置、各搬送機器の重心位置に、読み出した形状及び一体化された搬送機器及びワークのモデルを配置したシミュレーション空間を設定する。なお、３次元姿勢演算部１１は、シミュレーション空間を設定する際に、一体化されている搬送機器及びワークのモデル、各ワーク、及び、各搬送機器がそれぞれ、対応する姿勢角となるようにシミュレーション空間を設定する。そして、３次元姿勢演算部１１は、設定したシミュレーション空間の情報を３次元形状表示制御部１２に通知する。
【００４９】
また、３次元姿勢演算部１１は、各搬送機器の重心位置や姿勢角を搬送部品形状テーブル５ｂに格納する。また、３次元姿勢演算部１１は、各ワークの接触判定直方体の重心位置や姿勢角をワーク姿勢テーブル５ｄに格納する。また、３次元姿勢演算部１１は、一体化されている搬送機器及びワークのモデルが示す搬送機器及びワークについては、かかるモデルの重心位置を搬送部品形状テーブル５ｂ及びワーク姿勢テーブル５ｄに格納する。
【００５０】
３次元形状表示制御部１２は、タイムステップごとに、シミュレーション空間を表示する出力装置３が表示する際の画像を生成する。例えば、３次元形状表示制御部１２は、シミュレーション空間の情報を３次元姿勢演算部１１から受信すると、受信したシミュレーション空間の画像をＺバッファ法やスキャンライン等を用いて生成し、生成した画像を出力装置３に送信する。
【００５１】
例えば、制御ソフトウェア実行部８、モータ動作演算部９、シミュレーション演算部１０、３次元姿勢演算部１１、３次元形状表示制御部１２は、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路、またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。
【００５２】
また、管理情報記憶部５、動作パラメータ記憶部６、３次元データ管理部７は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（flash  memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００５３】
次に、図１１を用いて、演算装置１が実行する処理の流れについて説明する。図１１は、あるタイムステップにおけるワークと搬送機器との一体化を判定する処理の流れを説明するためのフローチャートである。
【００５４】
図１１に示すように、接触姿勢演算部１０ｂは、接触判定直方体の形状と、各搬送機器の接触平面の形状とを接触判定直方体テーブル７ａ及び接触平面テーブル７ｂから取得する（Ｓ１０１）。そして、接触姿勢演算部１０ｂは、搬送機器の接触平面上に、ワークの搬送を開始するか否かを判定する搬送可能領域を設定する（Ｓ１０２）。また、接触姿勢演算部１０ｂは、各ワークの接触判定直方体の重心位置を算出する（Ｓ１０３）。そして、接触姿勢演算部１０ｂは、ワークとかかるワークを搬送対象とする搬送機器との組み合わせのうち、未選択の組み合わせがあるか否かを判定する（Ｓ１０４）。未選択の組み合わせがない場合（Ｓ１０４否定）には、処理を終了する。一方、未選択の組み合わせがある場合（Ｓ１０４肯定）には、接触姿勢演算部１０ｂは、未選択の組み合わせを１つ選択する（Ｓ１０５）。そして、選択した組み合わせに含まれるワークの接触判定直方体の重心位置が、選択した組み合わせに含まれる搬送機器に設定された搬送可能領域に含まれるか否かを判定する（Ｓ１０６）。
【００５５】
そして、接触姿勢演算部１０ｂは、搬送可能領域にワークの接触判定直方体の重心が含まれないと判定した場合（Ｓ１０６否定）には、Ｓ１０４に戻る。一方、搬送可能領域にワークの接触判定直方体の重心が含まれると判定した場合（Ｓ１０６肯定）には、接触姿勢演算部１０ｂは、次の処理を行う。すなわち、接触姿勢演算部１０ｂは、搬送機器に設定された接触面とワークの接触判定直方体の面とが平行となる場合の、接触判定直方体の回転量を計算し、接触判定直方体を回転させる（Ｓ１０７）。
【００５６】
そして、ワーク移動演算部１０ｃは、接触面に対して平行となったワークの接触判定直方体の面と、接触面との距離を計算する（Ｓ１０８）。続いて、ワーク移動演算部１０ｃは、ワークの接触判定直方体の面と接触面とが接触するように、接触判定直方体が搬送機器に対して近づく方向に、計算した距離だけワークを移動させる（Ｓ１０９）。そして、ワーク移動演算部１０ｃは、搬送機器とワークとが一体化したことを３次元姿勢演算部１６に通知する。また、ワーク移動演算部１０ｃは、搬送機器の移動量及び姿勢角、並びに、ワークの移動量及び姿勢角を３次元姿勢演算部１６に通知し（Ｓ１１０）、処理を終了する。
【００５７】
上述したように、演算装置１は、次の処理を行う。すなわち、演算装置１は、３次元シミュレーション空間上にワーク４０と、プッシャー３０の押し出し面３１で押すことでワーク４０を移動させる動作をするプッシャー３０とが配置され、プッシャー３０がワーク４０を搬送するシミュレーション演算を実行する。また、演算装置１は、３次元シミュレーション空間上にワーク７０と、リフター６０の支え面６１により下から支えることでワーク７０を上方に上げる動作をするリフター６０とが配置され、リフター６０がワーク７０を搬送するシミュレーション演算を実行する。そして、演算装置１は、かかるシミュレーション演算を実行する際に、プッシャー３０の押し出し面３１、または、リフター６０の支え面６１が位置する座標と、ワーク４０またはワーク７０の重心が位置する座標とが所定の距離以内になった場合に次の処理を行う。すなわち、演算装置１は、重心の位置を中心にワーク４０またはワーク７０を回転させる。
【００５８】
よって、演算装置１は、ワーク４０、７０に対してプッシャー３０、リフター６０がめり込むことなく、プッシャーやリフターがワークを搬送する実際の状況と同様の状況でワーク４０、７０の搬送状態をシミュレートすることができる。それゆえ、演算装置１によれば、シミュレーションにおいて演算されるワークの位置の精度が低下することを抑制することができる。したがって、演算装置１によれば、制御プログラムの検証を精度良く行うことができる。
【００５９】
また、演算装置１によれば、ワーク４０がプッシャー３０によって搬送される際の姿勢が、プッシャーがワークを実際に搬送する際のワークの姿勢と同様となる。また、演算装置１によれば、ワーク７０がリフター６０によって搬送される際の姿勢が、リフターがワークを実際に搬送する際のワークの姿勢と同様となる。そのため、演算装置１は、プッシャーやリフターがワークを搬送する実際の状況と同様の状況でワーク４０、７０の搬送状態をシミュレートすることができる。それゆえ、演算装置１によれば、シミュレーションにおいて演算されるワークの位置の精度が低下することを抑制することができる。したがって、演算装置１によれば、制御プログラムの検証を精度良く行うことができる。
【００６０】
また、演算装置１は、ワークとリフターやプッシャーとを一体化させてワークの位置を算出するので、リフターやプッシャーが高速で移動した場合にも、ワークの位置ずれを防ぐことができる。この結果、演算装置１は、精度を保ったまま、高速なシミュレーション画像を作成することができる。
【００６１】
また、演算装置１は、プッシャー３０の押し出し面３１が位置する座標と、ワーク４０の接触判定直方体の重心が位置する座標とが、かかる重心からワーク４０の縁までの距離以内になった場合に、重心を中心にワーク４０を回転させることもできる。また、演算装置１は、リフター６０の支え面６１が位置する座標と、ワーク７０の重心が位置する座標とが、かかる重心からワーク７０の縁までの距離以内になった場合に、重心を中心にワーク７０を回転させることもできる。
【００６２】
また、演算装置１は、プッシャー３０の押し出し面３１が位置する座標と、ワーク４０の重心が位置する座標とが所定の距離以内になった場合に、次の処理を行う。すなわち、演算装置１は、ワーク４０と押し出し面３１とが接触すると判定されるワーク４０の角とワーク４０の重心位置との関係から回転の方向を決定する。また、演算装置１は、リフター６０の支え面６１が位置する座標と、ワーク７０の重心が位置する座標とが所定の距離以内になった場合に、次の処理を行う。すなわち、演算装置１は、ワーク７０と押し出し面６１とが接触すると判定されるワーク７０の角とワーク７０の重心位置との関係から回転の方向を決定する。そして、演算装置１は、重心を中心に、決定した回転方向にワーク４０、７０を回転させる。
【００６３】
また、演算装置１は、ワークに外接する接触判定直方体を用いて、ワークの回転中心、およびワークの回転方向を決定する。このため、演算装置１は、演算量を増加させることなく、ワークの回転を行うことができる。
【００６４】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では他の実施例を説明する。
【００６５】
［接触判定直方体について］
上述した演算装置１は、各ワークに外接する直方体を接触判定直方体とした。しかし、実施例はこれに限定されるものではない。例えば、演算装置１は、入力装置２から、利用者が任意に設定した接触判定直方体のポリゴンデータを受け付けて、受け付けたポリゴンデータを接触判定直方体テーブル６ａに格納することができる。
【００６６】
［ワーク、および搬送機器について］
実施例１で図示したワークおよび各種搬送機器は、あくまで一例であり、演算装置１は、任意の形状を有するワーク、および任意の形状を有する各搬送機器についてシミュレーションを実行することが可能である。また、上述した各種搬送機器は、一例であり、演算装置１は、任意の機能を有する搬送機器のシミュレーションを行うことができる。
【００６７】
［プログラム］
ところで、実施例１に係る演算装置１は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを演算装置１が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１２を用いて、実施例に示した演算装置１と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１２は、シミュレートプログラムを実行するコンピュータの一例を説明するための図である。
【００６８】
図１２に例示されたコンピュータ１００は、ＲＯＭ（Read  Only  Memory）１１０、ＨＤＤ（Hard  Disk  Drive）１２０、ＲＡＭ（Random  Access  Memory）１３０、ＣＰＵ（Central  Processing  Unit）１４０がバス１６０で接続される。また、図１２に例示されたコンピュータ１００は、データを送受信するためのＩ／Ｏ（Input  Output）１５０を有する。
【００６９】
ＨＤＤ１２０には、シミュレートプログラム１２１があらかじめ保持される。ＣＰＵ１４０がシミュレートプログラム１２１をＨＤＤ１２０から読み出して実行することによって、図１２に示す例では、シミュレートプログラム１２１は、シミュレートプロセス１４１として機能するようになる。なお、シミュレートプロセス１４１は、先の図１に示した制御ソフトウェア実行部８、モータ動作演算部９、シミュレーション演算部１０、３次元姿勢演算部１１、３次元形状表示制御部１２と同様の機能を発揮する。
【００７０】
なお、本実施例で説明したシミュレートプログラム１２１は、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disc）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００７１】
１      演算装置
２      入力装置
３      出力装置
４      管理情報記憶部
５      搬送機器管理テーブル
５ａ    搬送部品形状テーブル
５ｂ    搬送動作情報テーブル
５ｃ    ワーク形状テーブル
５ｄ    ワーク姿勢テーブル
６      動作パラメータ記憶部
６ａ    接触判定直方体テーブル
６ｂ    接触平面テーブル
７      ３次元データ管理部
８      制御ソフトウェア実行部
９      モータ動作演算部
１０    シミュレーション演算部
１０ａ  動作パラメータ作成部
１０ｂ  接触姿勢演算部
１０ｃ  ワーク移動演算部
１１    ３次元姿勢演算部
【図１】
2014148388.tif 000003
【図２Ａ】
2014148388.tif 000004
【図２Ｂ】
2014148388.tif 000005
【図３】
2014148388.tif 000006
【図４】
2014148388.tif 000007
【図５】
2014148388.tif 000008
【図６】
2014148388.tif 000009
【図７】
2014148388.tif 000010
【図８】
2014148388.tif 000011
【図９】
2014148388.tif 000012
【図１０Ａ】
2014148388.tif 000013
【図１０Ｂ】
2014148388.tif 000014
【図１１】
2014148388.tif 000015
【図１２】
2014148388.tif 000016