JP5983442B2 - プログラム、演算装置および演算方法 - Google Patents

プログラム、演算装置および演算方法 Download PDF

Info

Publication number
JP5983442B2
JP5983442B2 JP2013017915A JP2013017915A JP5983442B2 JP 5983442 B2 JP5983442 B2 JP 5983442B2 JP 2013017915 A JP2013017915 A JP 2013017915A JP 2013017915 A JP2013017915 A JP 2013017915A JP 5983442 B2 JP5983442 B2 JP 5983442B2
Authority
JP
Japan
Prior art keywords
lifter
transported object
workpiece
priority
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013017915A
Other languages
English (en)
Other versions
JP2014148389A (ja
Inventor
昌明 川人
昌明 川人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013017915A priority Critical patent/JP5983442B2/ja
Priority to US14/087,736 priority patent/US10339230B2/en
Priority to CN201310635497.XA priority patent/CN103970026B/zh
Publication of JP2014148389A publication Critical patent/JP2014148389A/ja
Application granted granted Critical
Publication of JP5983442B2 publication Critical patent/JP5983442B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Conveyors (AREA)
  • Intermediate Stations On Conveyors (AREA)
  • Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)

Description

本発明は、プログラム、演算装置および演算方法に関する。
従来、ワークと呼ばれる搬送物の搬送状態をシミュレートする技術が知られている。例えば、ベルトコンベア、吸着チャック、プッシャー、リフター等の搬送機器を制御する制御プログラムのデバッグを行うため、制御プログラムに従ってシミュレーション空間上の搬送機器を動作させ、ワークが適切に搬送されるか確認する技術が知られている。
ここで、シミュレート空間上でワークの搬送を実現する方法として、搬送機器がワークに干渉したことを検知し、ワークに干渉した搬送機器の動作に応じてワークの搬送をシミュレートする方法が考えられる。しかし、多くのワークや複数の搬送機器の動作を同時にシミュレートする際に、各搬送機器がワークに干渉しているか否かを全ての要素に対して判断した場合は、演算量が膨大になってしまう。
そこで、シミュレーションの演算を簡単化する技術が知られている。例えば、ある搬送機器が搬送しているワークを他の搬送機器が受け取って搬送する動作をシミュレートするため、ワークの搬送を行う搬送機器の順番を定義したリストをあらかじめ作成し、リスト従ってワークの搬送状態を遷移させる技術が知られている。
詳細な例を挙げると、情報処理装置は、テーブルが搬送しているワークをリフターが受け取って他のテーブルへと搬送する動作をシミュレートする場合は、ワークの搬送状態をテーブルからリフターに遷移させ、その後他のテーブルに遷移させるリストを作成する。そして、情報処理装置は、作成したリストに従って、ワークの搬送状態を遷移させることで、複数の搬送機器がワークを搬送する動作をシミュレートする。
特開2008−093751号公報 特開2000−010617号公報
しかしながら、上述したワークの搬送を行う搬送機器の順番をあらかじめ定義する技術では、定義された順番でワークの搬送状態を遷移させるので、ワークの搬送状態を柔軟に遷移させることができないという問題がある。
例えば、あらかじめ作成したリストに従ってワークの搬送状態を遷移させる情報処理装置では、制御プログラムの変更等によりワークの搬送経路を変更した際に、新たな搬送経路を示すリストを作成しなければならない。
1つの側面では、本発明は、ワークの搬送状態を柔軟に遷移させることを目的とする。
1つの側面では、搬送機が搬送物を搬送するシミュレーション演算を実行する情報処理装置である。ここで、情報処理装置は、3次元シミュレーション空間上に搬送物と、リフター部の支え面により下から支えることで搬送物を上方に上げる動作をする搬送機と、搬送物が置かれるテーブルとが配置する。また、情報処理装置は、テーブルに配置された搬送物をリフターが上方向に移動させる場合、リフターの搬送物と一体となる度合いを示す優先度をテーブルの搬送物と一体となる度合いを示す優先度よりも高く設定する。また、情報処理装置は、搬送物を搬送中のリフターがテーブルよりも下方向に移動する場合、リフターの搬送物と一体となる度合いを示す優先度をテーブルの搬送物と一体となる度合いを示す優先度よりも低く設定する。
1つの側面では、ワークの搬送状態を柔軟に遷移させることができる。
図1は、実施例1に係る情報処理装置の機能構成を説明する図である。 図2は、リフターの動作を説明するための第1の図である。 図3は、リフターの動作を説明するための第2の図である。 図4は、搬送機器優先度テーブルの一例を説明する図である。 図5は、リフター部品形状テーブルの一例を説明する図である。 図6は、リフター動作情報テーブルの一例を説明する図である。 図7は、ワーク形状テーブルの一例を説明する図である。 図8は、ワーク姿勢テーブルの一例を説明する図である。 図9は、接触判定直方体テーブルの一例を説明する図である。 図10は、リフター接触平面テーブルの一例を説明する図である。 図11は、ワークの接触判定直方体を説明する図である。 図12は、リフターの搬送可能領域を説明する図である。 図13は、接触平面を説明する図である。 図14Aは、リフターが上昇する際のワークの動作を説明する第1の図である。 図14Bは、リフターが上昇する際のワークの動作を説明する第2の図である。 図14Cは、リフターが上昇する際のワークの動作を説明する第3の図である。 図15Aは、リフターが下降する際のワークの動作を説明する第1の図である。 図15Bは、リフターが下降する際のワークの動作を説明する第2の図である。 図15Cは、リフターが下降する際のワークの動作を説明する第3の図である。 図16Aは、ワークの姿勢変化を説明する第1の図である。 図16Bは、ワークの姿勢変化を説明する第2の図である。 図17は、接触平面を選択する処理の流れを説明するためのフローチャートである。 図18は、リフター上昇時に実行する処理の流れを説明するためのフローチャートである。 図19は、ワーク接触動作処理の流れを説明するためのフローチャートである。 図20は、リフター下降時に実行する処理の流れを説明するためのフローチャートである。 図21は、第2の下降処理の流れを説明するためのフローチャートである。 図22は、シミュレートプログラムを実行するコンピュータの一例を説明するための図である。
以下に添付図面を参照して本願に係るプログラム、演算装置および演算方法について説明する。
以下の実施例1では、ワークの搬送をシミュレートする情報処理装置について説明する。図1は、実施例1に係る情報処理装置の機能構成を説明する図である。図1に示すように、情報処理装置1は、入力装置2、および出力装置3と接続されている。また、情報処理装置1は、管理情報記憶部4、動作パラメータ記憶部7、3次元データ管理部8を有する。また、情報処理装置1は、制御ソフトウェア実行部9、モータ動作演算部10、シミュレーション演算部11、3次元姿勢演算部16、3次元形状表示制御部17を有する。
また、管理情報記憶部4は、搬送機器管理テーブル5、ワーク管理テーブル6を有する。ここで、搬送機器管理テーブル5は、搬送機器優先度テーブル5a、リフター部品形状テーブル5b、リフター動作情報テーブル5cを有する。また、ワーク管理テーブル6は、ワーク形状テーブル6a、ワーク姿勢テーブル6bを有する。また、動作パラメータ記憶部7は、接触判定直方体テーブル7a、リフター接触平面テーブル7bを有する。また、シミュレーション演算部11は、動作パラメータ作成部12、リフター動作演算部13、接触姿勢演算部14、ワーク移動演算部15を有する。
このような情報処理装置1は、例えば、入力装置2から、シミュレーション空間上で搬送をシミュレートするワークの形状、およびワークを搬送する搬送機器の配置や機能等の情報を取得する。例えば、情報処理装置1は、CAD(Computer Aided Design)によって作成されたワークの3次元モデルデータを取得する。また、情報処理装置1は、CADによって作成されたベルトコンベア、吸着チャック、プッシャー、リフター等の搬送機器の3次元モデルデータ、および搬送機器の配置関係等を取得する。
そして、情報処理装置1は、取得した3次元モデルデータ等を用いて、ワークの搬送シミュレーションを実行し、実行結果をモニタやプリンタである出力装置3に出力させる。例えば、情報処理装置1は、入力された各種搬送機器によってワークが搬送される映像を出力装置3に出力し表示させる。
ここで、情報処理装置1は、シミュレーションの演算を簡単化するため、ワークと、ワークを搬送している搬送機器とが一体化したものとして演算を行うことで、シミュレーションに要する演算量を削減する。例えば、情報処理装置1は、各搬送機器がワークを搬送する面上に、所定の大きさを有する搬送可能領域を設定する。
そして、情報処理装置1は、あるタイムステップにおいて、ある搬送機器に設定された搬送可能領域にワークの重心が含まれる場合には、搬送機器がワークの搬送を開始したと判定し、搬送機器とワークとを一体化してシミュレーションの演算を行う。すなわち、情報処理装置1は、ワークの動作を演算するのではなく、ワークと一体化した搬送機器の動作のみを演算することで、演算量を削減する。
ここで、図2、図3を用いて、あるテーブルが搬送しているワークをリフターが受け取り、他のテーブルへと搬送する動作をシミュレーションする例について説明する。例えば、図2は、リフターの動作を説明するための第1の図である。図2に示す例では、情報処理装置1は、テーブル#1によって搬送されたワークをリフターが受け取る動作をシミュレートする。
このような動作をシミュレートするため、例えば各搬送機器にワークと一体化する優先度を設定し、優先度に応じてワークの搬送状態を遷移させる方法が考えられる。例えば、情報処理装置1は、各テーブル#1、#2に優先度「1」を設定し、リフターに優先度「5」を設定する。
また、情報処理装置1は、テーブル#1上のワークがリフターの搬送可能領域に含まれると、テーブル#1の優先度とリフターの優先度とを比較し、リフターの優先度のほうが高いと判定する。そして、情報処理装置1は、リフターの優先度のほうが高いと判定すると、テーブル#1とワークとの一体化を解除し、ワークとリフターとを一体化する。その後、情報処理装置1は、ワークと一体化したリフターの動作を演算することで、ワークの搬送をシミュレートする。
しかしながら、情報処理装置1は、各搬送機器に優先度を設定しただけでは、リフターが、あるテーブルから他のテーブルにワークを搬送する動作をシミュレートすることができない。例えば、図3は、リフターの動作を説明するための第2の図である。図3に示す例では、リフターがテーブル#1から受け取ったワークをテーブル2に搬送する動作について記載した。例えば、情報処理装置1は、リフターと一体化したワークがテーブル#2の搬送可能領域に含まれた場合は、リフターとテーブル#2との優先度を比較する。すると、情報処理装置1は、リフターのほうが高い優先度が設定されているので、リフターからテーブルにワークを移す動作をシミュレートすることができない。
そこで、情報処理装置1は、以下の処理を実行する。まず情報処理装置1は、リフターにテーブルよりも高い優先度をあらかじめ設定しておく。そして、情報処理装置1は、リフターが上昇する場合には、あらかじめ設定された優先度に従って、ワークの搬送状態を遷移させる。また、情報処理装置1は、リフターが停止、または下降する場合には、リフターに設定された優先度をテーブルよりも低い値に設定する。
この結果、情報処理装置1は、例えば、リフターがテーブル#1上に設置されたワークを持ち上げ、テーブル2の上部まで搬送し、テーブル2上にワークを置くといった動作をシミュレートすることができる。このため、情報処理装置1は、ワークの搬送を行う搬送機器の順番を定義したリストが無くとも、ワークの搬送をシミュレートすることができるので、搬送順序の変更等にも柔軟に対応することができる。
図2に戻って、情報処理装置1が有する各機能構成が発揮する機能について説明する。まず、図4〜6を用いて、搬送機器管理テーブル5が有する搬送機器優先度テーブル5a、リフター部品形状テーブル5b、リフター動作情報テーブル5cに格納された情報について説明する。
搬送機器優先度テーブル5aは、シミュレーション空間上の各搬送機器と、各搬送機器がワークと一体化する優先度とが対応付けて格納されたテーブルである。例えば、図4は、搬送機器優先度テーブルの一例を説明する図である。図4に示す例では、搬送機器優先度テーブル5aには、ワークの押し出しを行う「プッシャー」と優先度「5」とが対応付けて格納され、ワークを持ち上げて搬送する「リフター」と優先度「5」とが対応付けて格納されている。
また、搬送機器優先度テーブル5aには、ワークを移動させる「コンベア」と優先度「2」とが対応付けて格納され、ワークの保持をおこなう「テーブル」と優先度「1」とが対応付けて格納されている。なお、搬送機器優先度テーブル5aは、各搬送機器の優先度をシミュレーション空間内におけるワークの種別ごとに記憶する。
リフター部品形状テーブル5bは、入力装置2から入力されたリフターの形状を示すデータが格納されたテーブルである。例えば、図5は、リフター部品形状テーブルの一例を説明する図である。図5に示す例では、リフター部品形状テーブル5bは、シミュレーション空間上に配置された各リフターの形状として、各リフターの表面を構成する3角形平面(ポリゴン)の頂点座標が格納されている。
例えば、リフター部品形状テーブル5bは、リフター#1の表面を構成する複数のポリゴンの各頂点座標「(XR1、YR1、ZR1)…」を記憶し、リフター#2の表面を構成する複数のポリゴンの各頂点座標「(XR2、YR2、ZR2)…」が格納されている。なお、図5に示す例では、最も単純なポリゴンデータを記憶する例について記載したが、実施例はこれに限定されるものではなく、例えば、リフター部品形状テーブル5bには、辺データを考慮したポリゴンデータが格納されても良い。また、リフター部品形状テーブル5bには、自由曲面を構成する線、および線を構成する点を階層的に記憶しても良い。すなわち、リフター部品形状テーブル5bは、シミュレーション空間上でリフターを表現する任意形式のデータが格納される。
リフター動作情報テーブル5cは、リフターの動作を示すデータが格納されたテーブルである。例えば、図6は、リフター動作情報テーブルの一例を説明する図である。図6に示す例では、リフター動作情報テーブルには、各リフターに外接する直方体、すなわちリフターの接触判定直方体の重心位置と、リフターの接触判定直方体の移動方向、および移動量を示すベクトルとが対応付けて格納される。
例えば、図6に示す例では、リフター動作情報テーブル5cは、あるタイムステップにおけるリフター#1の接触判定直方体の重心位置が「(XR1、YR1、ZR1)…」である旨を記憶する。また、リフター動作情報テーブル5cは、あるタイムステップにおけるリフター#1の接触判定直方体の移動量が「(X、Y、Z)」である旨を記憶する。また、リフター動作情報テーブル5cは、リフター#2の接触判定直方体の重心位置が「(XR2、YR2、ZR2)…」である旨を記憶する。また、リフター動作情報テーブル5cは、リフター#2の接触判定直方体の移動量が「(X、Y、Z)」である旨を記憶する。なお、各リフター#1、#2の移動量は、情報処理装置1がシミュレーションを実行する各タイムステップごとに、モータ動作演算部10が新たに演算した値に更新される。
次に、図7、図8を用いて、図2に示したワーク管理テーブル6が有するワーク形状テーブル6aとワーク姿勢テーブル6bとに格納された情報について説明する。ワーク形状テーブル6aは、シミュレーション空間内において各種搬送機器が搬送を行うワークの形状が格納されている。
例えば、図7は、ワーク形状テーブルの一例を説明する図である。図7に示す例では、ワーク形状テーブル6aは、ワークの表面を構成する3角形平面(ポリゴン)の頂点座標が格納されている。詳細には、ワーク形状テーブル6aは、ワーク#1の表面を構成するポリゴンの座標データ「(XW1、YW1、ZW1)…」を記憶し、ワーク#2の平面を構成するポリゴンの座標データ「(XW2、YW2、ZW2)…」を記憶する。なお、ワーク形状テーブル6aは、リフター部品形状テーブル5bと同様に、自由曲面等のデータが格納されていても良い。
ワーク姿勢テーブル6bは、は、ワークの姿勢を示すデータが格納されたテーブルである。例えば、図8は、ワーク姿勢テーブルの一例を説明する図である。図8に示す例では、リフター動作情報テーブルには、各ワークに外接する直方体、すなわち接触判定直方体の位置と、接触判定直方体の重心を原点として、各ワークが3次元空間内の各軸を中心にどれだけ回転しているかを示す姿勢の情報が格納されている。
例えば、図8に示す例では、ワーク姿勢テーブル6bは、ワーク#1−1の姿勢が「(X、Y、Z)、(θW1、ρW1、φW1)」であり、ワーク#2−1の姿勢が「(X、Y、Z)、(θW2、ρW2、φW2)」である旨を記憶する。ここで、θ、ρ、φは、3次元空間内の各軸を中心にしてどれだけ回転しているかを示す情報である。
次に、図9、図10を用いて、図2に示した動作パラメータ記憶部7が有する接触判定直方体テーブル7a、およびリフター接触平面テーブル7bに格納された情報について説明する。まず、図9を用いて、接触判定直方体テーブル7aに格納された情報について説明する。図9は、接触判定直方体テーブルの一例を説明する図である。
図9に示す例では、接触判定直方体テーブル7aには、各ワークに外接する直方体である接触判定直方体の表面を構成するポリゴンデータが格納されている。例えば、接触判定直方体テーブル7aには、ワーク#1−1の接触判定直方体の表面を構成するポリゴンデータとして「(XS1、YS1、ZS1)…」が格納されている。また、接触判定直方体テーブル7aには、ワーク#2−1の接触判定直方体の表面を構成するポリゴンデータとして「(XS2、YS2、ZS2)…」が格納されている。
次に、図10を用いて、リフター接触平面テーブル7bに格納された情報について説明する。図10は、リフター接触平面テーブルの一例を説明する図である。図10に示す例では、リフター接触平面テーブル7bには、各搬送機器の種別ごとに、ワークを搬送する際にワークと一体化する接触平面の各頂点を示す座標のデータを記憶する。
例えば、リフター接触平面テーブル7bは、リフター#1について、接触平面「(XR1P、YR1P、ZR1P)…」が格納され、リフター#2について、接触平面「(XR2P、YR2P、ZR2P)…」が格納されている。なお、図10では記載を省略したが、ポリゴンデータには、各リフターの接触平面のどちら側がワークと接触するかを示すデータが含まれるものとする。
なお、上述した例では、リフター部品形状テーブル5b、リフター動作情報テーブル5c、リフター接触平面テーブル7bにリフターの各種情報が格納されている例について記載した。しかしながら、管理情報記憶部4、および動作パラメータ記憶部7には、シミュレーション空間内に配置されたプッシャー、コンベア、テーブル等についても、リフターと同様に、形状、位置、および移動量が格納されたテーブルが格納されているものとする。また、上述する接触判定立方体は、入力装置2から入力された立方体であってもよい。
図1に戻って、3次元データ管理部8は、シミュレーション画像を作成する際に用いる各種データを記憶する。例えば、3次元データ管理部8は、各ワークや搬送機器のポリゴンデータ、表示する際の色を指定する情報等を記憶する。
制御ソフトウェア実行部9は、デバッグ対象となる制御ソフトウェアを実行する。例えば、制御ソフトウェア実行部9は、シミュレーション対象となる工場において、各搬送機器を動作させるサーボモータの制御信号を生成する制御ソフトウェアを実行する。そして、制御ソフトウェア実行部9は、制御ソフトウェアが生成した制御信号の内容をモータ動作演算部10に出力する。詳細な例を挙げるならば、制御ソフトウェア実行部9は、サーボモータのオンとオフを示すパルス信号がオン状態となる時間、タイミング、パルスの正負等をモータ動作演算部10に通知する。
モータ動作演算部10は、制御ソフトウェア実行部9から受信した制御信号の内容に従って、各搬送機器を動作させるサーボモータの回転数等を演算する。そして、モータ動作演算部10は、演算結果を用いて、各搬送機器の移動方向、および移動量を示すベクトルを生成し、生成したベクトルをリフター動作情報テーブル5cに格納する。例えば、モータ動作演算部10は、リフターを動作させるサーボモータの制御信号の内容を受信すると、受信した制御番号に従ってサーボモータの回転方向や回転数を演算する。そして、モータ動作演算部10は、演算したサーボモータの回転に応じてリフターの動作を示すベクトルを算出し、算出したベクトルをリフター動作情報テーブル5cに格納する。
次に、シミュレーション演算部11が有する動作パラメータ作成部12、リフター動作演算部13、接触姿勢演算部14、ワーク移動演算部15が実行する処理について説明する。動作パラメータ作成部12は、管理情報記憶部4が記憶する各種情報を用いて、動作パラメータを生成し、生成した動作パラメータを動作パラメータ記憶部7に格納する。
ここで、動作パラメータとは、情報処理装置1がワークの搬送状態をシミュレートするために用いる情報である。具体的には、動作パラメータとは、各ワークと各搬送機器が接触しているか否かを判定する接触判定に用いる情報であり、例えば、ワークに外接する接触判定直方体の位置情報と、リフターがワークを搬送する接触平面の位置情報である。
以下、動作パラメータ作成部12の動作について説明する。まず、動作パラメータ作成部12は、ワーク形状テーブル6aとワーク姿勢テーブル6bから、あるタイミングにおける各ワークの形状とワークの姿勢とを取得する。そして、動作パラメータ作成部12は、各ワークの位置に外接する接触判定直方体の表面を構成するポリゴンデータを作成し、作成したポリゴンデータを接触判定直方体テーブル7aに格納する。
ここで、図11は、ワークの接触判定直方体を説明する図である。例えば、動作パラメータ作成部12は、図11中の直線で示すワークの接触判定直方体として、図11中の点線で示す直方体を識別する。すなわち、動作パラメータ作成部12は、ワークに外接する直方体を識別する。そして、動作パラメータ作成部12は、識別した直方体の表面を構成するポリゴンのポリゴンデータを生成し、生成したポリゴンデータを接触判定直方体テーブル7aに格納する。
また、動作パラメータ作成部12は、リフターの新たな位置をリフター動作演算部13から受信する。つまり、動作パラメータ作成部12は、モータ動作演算部10の演算結果に応じて動作したリフターの新たな位置情報を受信する。そして、動作パラメータ作成部12は、受信したリフターの位置を用いて、各リフターの接触平面を構成するポリゴンのポリゴンデータと、接触平面の向きを示すベクトルデータを生成する。その後、動作パラメータ作成部12は、作成したポリゴンデータとベクトルデータとをリフター接触平面テーブル7bに格納する。
なお、動作パラメータ作成部12は、リフター以外の搬送機器についても新たな位置をリフター動作演算部13から受信する。そして、動作パラメータ作成部12は、各搬送機器の接触平面のポリゴンデータと、接触平面の向きを示すベクトルデータを生成し、生成したポリゴンデータとベクトルデータとをリフター接触平面テーブル7bに格納する。
リフター動作演算部13は、シミュレーション空間内の各リフターの動作を演算する。具体的には、リフター動作演算部13は、搬送機器管理テーブル5が記憶するリフター部品形状テーブル5bに格納された各リフターの形状と、リフター動作情報テーブル5cに格納された各リフターの位置と移動量とを取得する。
そして、リフター動作演算部13は、リフターの新たな位置やリフターが移動した方向を示すベクトルとを生成する。その後、リフター動作演算部13は、生成したリフターの新たな位置やリフターが移動した方向を示すベクトルを動作パラメータ作成部12、接触姿勢演算部14、ワーク移動演算部15に出力する。
なお、リフター動作演算部13は、リフター以外にも、モータ等によって動作する各搬送機器の新たな位置や移動方向を示すベクトルを生成し、生成した位置やベクトルを動作パラメータ作成部12、接触姿勢演算部14、ワーク移動演算部15に出力する。
接触姿勢演算部14は、動作パラメータ記憶部7が記憶する情報と、リフター動作演算部13から受信したリフターの新たな位置やリフターが移動した方向等を用いて、ワークの接触判定を行う。具体的には、接触姿勢演算部14は、接触判定直方体の位置と、各搬送機器の接触平面とを動作パラメータ記憶部7から取得する。
そして、接触姿勢演算部14は、搬送機器の接触平面上に、ワークの搬送を開始するか否かを判定する搬送可能領域を設定する。例えば、図12は、リフターの搬送可能領域を説明する図である。接触姿勢演算部14は、図12中(A)に示すように、リフターの形状から算出される幅を有し、図12中(B)に示すように、リフターが搬送を行うワークの形状から算出される高さを有する搬送可能領域を設定する。また、接触姿勢演算部14は、リフターの接触平面上において、接触平面とは垂直に、すなわち天地方向に搬送可能領域を設定する。
また、接触姿勢演算部14は、各ワークの接触判定直方体の重心点を算出し、算出した重心点を含む各搬送可能領域を判定する。ここで、各搬送機器には、搬送可能領域が設定されるため、適切に搬送されているワークの重心点は、各搬送機器の搬送可能領域に含まれている。そこで、接触姿勢演算部14は、重心点が1つの搬送可能領域に含まれているワークと、かかる搬送可能領域が設定された搬送機器をワーク移動演算部15に通知する。
また、接触姿勢演算部14は、複数の搬送可能領域に含まれる重心点を有し、かつ、移動可能なワークの重心点を識別する。このような重心点を有するワークは、例えば、テーブル上に設置され、かつ、リフターやプッシャーが搬送を行おうとしているワークである。そこで、接触姿勢演算部14は、複数の搬送可能領域に含まれる重心点を有するワークに設定された優先度を搬送機器優先度テーブル5aから読み出す。そして、接触姿勢演算部14は、各搬送可能領域が設定された搬送機器について優先度を比較し、優先度がより高い搬送機器について、以下の処理を実行する。
まず、接触姿勢演算部14は、ワークの接触判定直方体が有する端点のうち、優先度がより高い搬送機器の接触平面と最も近い端点と、ワークの接触判定直方体の各辺のうち、優先度がより高い搬送機器の接触平面と最も近い辺を検出する。そして、接触姿勢演算部14は、検出した端点を中心として、検出した辺とワークの接触平面とが平行になるように、ワークの回転方法を設定する。
例えば、図13は、接触平面を説明する図である。接触姿勢演算部14は、図13中(C)に示すリフターの接触平面と、図13中(D)に示すワークの接触判定直方体のうち、リフターの接触平面に最も近い平面とが平行になるように、ワークを回転させる。この結果、接触姿勢演算部14は、ワークがリフターに食い込んだまま移動する等のシミュレートを回避することができる。
その後、接触姿勢演算部14は、設定した方向に回転させたワークと、接触平面とが接触するまでの時間を算出する。そして、接触姿勢演算部14は、複数の搬送可能領域に含まれる重心点を有するワークと、優先度がより高い搬送機器と、ワークと搬送機器とが接触するまでの時間をワーク移動演算部15に通知する。
なお、接触姿勢演算部14は、優先度の比較を行う際に、以下の処理をあわせて実行する。具体的には、接触姿勢演算部14は、優先度の比較対象となる搬送機器がリフターであるか否かを判定する。また、接触姿勢演算部14は、比較対象となる搬送機器がリフターである場合には、リフター動作演算部13から受信したリフターの移動方向に基づいて、リフターが上昇しているか否かを判定する。
そして、接触姿勢演算部14は、リフターが上昇していると判定した場合は、搬送機器優先度テーブル5aから読み出した優先度に従って、搬送機器の優先度を比較する。一方、接触姿勢演算部14は、リフターが停止、もしくは下降している場合には、リフターの優先度を最も低い値、例えば零に補正して搬送機器の優先度を比較する。
例えば、接触姿勢演算部14は、上昇中のリフターがテーブル上のワークを受け取る場合は、テーブルよりもリフターのほうが優先度がより高い搬送機器であると判定する。一方、接触姿勢演算部14は、ワークを搬送中のリフターが下降中にワークをテーブルに置く場合や、停止中のリフターが搬送中のワークをプッシャーが押す場合等には、リフターの優先度のほうが低いと判定する。この結果、情報処理装置1は、ワークの状態遷移を示すリストをあらかじめ準備せずとも、下降するリフターが、搬送中のワークをテーブル等に設置するシミュレーションを実現することができる。
図1に戻って、ワーク移動演算部15は、搬送にともなうワークの移動を演算する。例えば、ワーク移動演算部15は、接触姿勢演算部14から、重心点が1つの搬送可能領域に含まれているワークと、かかる搬送可能領域が設定された搬送機器の通知を受信する。このような場合には、ワーク移動演算部15は、通知されたワークと搬送機器とが一体化されているものとして、ワークの移動を演算する。
例えば、ワーク移動演算部15は、リフター動作演算部13から搬送機器の位置や移動方向を受信する。また、ワーク移動演算部15は、接触姿勢演算部14から通知された搬送機器を親オブジェクト、通知されたワークを子オブジェクトとする。そして、ワーク移動演算部15は、リフター動作演算部13から受信した搬送機器の位置や移動方向等に従って搬送機器を移動させることで、子オブジェクトであるワークの新たな位置を算出する。
また、ワーク移動演算部15は、接触姿勢演算部14は、複数の搬送可能領域に含まれる重心点を有するワークと、優先度がより高い搬送機器と、ワークと搬送機器とが接触するまでの時間とを接触姿勢演算部14から受信すると、以下の処理を実行する。まず、ワーク移動演算部15は、通知された時間が経過するまでのシミュレーションについては、現在ワークを搬送している搬送機器、すなわち優先度がより低い搬送機器とワークとが一体化されているものとして、ワークの移動を演算する。
そして、ワーク移動演算部15は、通知された時間が経過すると、優先度がより低い搬送機器とワークとの一体化を解除し、優先度がより高い搬送機器とワークとが一体化したものとする。その後、ワーク移動演算部15は、一体化した搬送機器の移動に応じてワークの移動を演算する。
また、ワーク移動演算部15は、優先度がより高い搬送機器としてリフターとワークとを一体化させた場合は、一体化したワークと、リフターとワークとが一体化した際のワークの位置を記憶する。また、ワーク移動演算部15は、下降しているリフターと一体化されたワークの重心位置の高さが、記憶している高さ、すなわちかかるワークの位置がリフターと一体化した位置よりも低くなっているか判定する。
そして、ワーク移動演算部15は、ワークの位置がリフターと一体化した位置よりも低くなっていると判定した場合は、ワークが水平方向に所定の閾値よりも移動しているか否かを判定する。すなわち、ワーク移動演算部15は、記憶するワークの位置を始点とし、現在のワークの位置を終点とするベクトルの水平方向の成分が所定の閾値よりも大きいか否かを判定する。
その後、ワーク移動演算部15は、ワークが水平方向に所定の閾値よりも移動していないと判定した場合は、リフターとワークの一体化を解除し、ワークを搬送開始時の姿勢に戻す。一方、ワーク移動演算部15は、ワークが水平方向に所定の閾値よりも移動していると判定した場合は、リフターとワークとを一体化したままで、ワークの位置を演算する。
なお、ワーク移動演算部15は、各ワークの位置を演算した場合には、各ワークの位置を3次元姿勢演算部16に通知する。また、ワーク移動演算部15は、各搬送機器のうち、動作する各搬送機器についての新たな位置を3次元姿勢演算部16に出力する。
3次元姿勢演算部16は、ワーク移動演算部15から各ワークの位置、および各搬送機器の位置を受信する。すると、3次元姿勢演算部16は、3次元データ管理部8が記憶する各ワーク、および各搬送機器の形状を読み出す。そして、3次元姿勢演算部16は、ワーク移動演算部15から受信した各ワークの位置、および各搬送機器の位置に読み出した形状を配置したシミュレーション空間を設定し、設定したシミュレーション空間の情報を3次元形状表示制御部17に通知する。
また、3次元姿勢演算部16は、各ワークの位置や姿勢をワーク姿勢テーブル6bに格納し、各リフターの位置をリフター動作情報テーブル5cに格納する。また、3次元姿勢演算部16は、他の搬送機器の位置についても、搬送機器管理テーブル5に格納する。
3次元形状表示制御部17は、シミュレーション空間を出力装置3が表示する際の画素を生成する。例えば、3次元形状表示制御部17は、シミュレーション空間の情報を3次元姿勢演算部16から受信すると、受信したシミュレーション空間の画素をZバッファ法やスキャンライン等を用いて生成し、生成した画素を出力装置3に送信する。
例えば、制御ソフトウェア実行部9、モータ動作演算部10、シミュレーション演算部11、3次元姿勢演算部16、3次元形状表示制御部17は、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、管理情報記憶部4、動作パラメータ記憶部7、3次元データ管理部8は、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
次に、図14A〜14C、図15A〜15C、図16A、図16Bを用いて、情報処理装置1が実行するシミュレーションの内容について説明する。まず、図14A〜14Cを用いて、上昇するリフターがテーブル上のワークを受け取る際のシミュレーションについて説明する。図14Aは、リフターが上昇する際のワークの動作を説明する第1の図である。また、図14Bは、リフターが上昇する際のワークの動作を説明する第2の図である。また、図14Cは、リフターが上昇する際のワークの動作を説明する第3の図である。
なお、図14A〜14Cでは、ワークを薄い点網で示し、テーブルを濃い点網で示し、リフターを斜線で示し、ワークの重心を濃い網掛けで示し、テーブルの搬送開始可能領域を点線で囲んだ。また、図14A〜14Cに示す例では、リフターにテーブルよりも高い優先度が設定されているものとする。
例えば、図14Aに示すように、ワークがテーブル上に設定されており、テーブルの下側からリフターが上昇してくる。このような場合、情報処理装置1は、ワークの接触平面とリフターの接触平面とが平行であるので、ワークの回転を行わず、リフターの接触平面とワークとが接触するまでシミュレーションを継続する。
次に、図14Bに示すように、ワークとリフターとが接触する。ここで、情報処理装置1は、リフターが上昇しているので、リフターの優先度がテーブルの優先度よりも高いと判別している。このため、情報処理装置1は、テーブルとワークとの一体化を解除し、リフターとワークとを一体化してシミュレーションを継続する。この結果、図14Cに示すように、情報処理装置1は、リフターとワークとを一体化したままでリフターを移動させるので、テーブル上のワークをリフターが受け取って上昇させるシミュレーションを行うことができる。
次に、図15A〜15Cを用いて、下降するリフターがテーブル上にワークを設置する際のシミュレーションについて説明する。図15Aは、リフターが下降する際のワークの動作を説明する第1の図である。また、図15Bは、リフターが下降する際のワークの動作を説明する第2の図である。また、図15Cは、リフターが下降する際のワークの動作を説明する第3の図である。
例えば、図15Aに示すように、ワークと一体化したリフターが下降する。このような場合には、情報処理装置1は、リフターの優先度をテーブルよりも低い値に設定する。そして、情報処理装置1は、ワークの重心がテーブルの搬送可能領域に含まれるまで、ワークを搬送するリフターが加工するシミュレーションを継続する。
次に、図15Bに示すように、ワークの重心がテーブルの搬送可能領域に含まれる。すると、情報処理装置1は、リフターの優先度がテーブルの優先度よりも低いと判定し、リフターとワークとの一体化を解除する。そして、情報処理装置1は、ワークとテーブルとを一体化させる。この結果、図15Cに示すように、情報処理装置1は、テーブル上にワークを設置するとともに、ワークを搬送していないリフターが下降するシミュレーションを継続する。この結果、情報処理装置1は、ワークの搬送状態をあらかじめ規定せずとも、あるテーブル上に設置されたワークをリフターが取得し、他のテーブルに移すシミュレーションを容易に行うことができる。
次に、図16A、16Bを用いて、ワークを搬送するリフターが水平方向に所定の距離以上動作した際のシミュレーションについて説明する。図16Aは、ワークの姿勢変化を説明する第1の図である。また、図16Bは、ワークの姿勢変化を説明する第2の図である。
たとえば、情報処理装置1は、ワークと一体化したリフターが下降し、ワークの搬送開始位置よりも下に移動した場合は、ワークの搬送を開始した際の重心位置を始点とし、現在のワークの重心位置を終点とするベクトルを求める。そして、情報処理装置1は、求めたベクトルの水平方向の成分が所定の閾値よりも小さい場合、すなわち、図16Aに示すようにリフターの移動がほぼ上下運動のみである場合は、ワークを搬送開始位置となるテーブルと一体化させる。
一方、情報処理装置1は、求めたベクトルの水平方向の成分が所定の閾値よりも大きい場合、すなわち、図16B中の(E)に示すように、ワークの重心移動が所定の閾値よりも大きい場合は、ワークとリフターとを一体化させたまま、リフターの下降を継続する。この結果、情報処理装置1は、例えば、テーブル上のワークをリフターが受け取り、元のテーブルよりも低い位置にあるテーブルにワークを搬送するシミュレーションを容易に行うことができる。
次に、図17〜図21を用いて、情報処理装置1が実行する処理の流れについて説明する。まず、図17を用いて、情報処理装置1が接触平面を選択する際の処理の流れについて説明する。図17は、接触平面を選択する処理の流れを説明するためのフローチャートである。
例えば、情報処理装置1は、リフターの形状部品から、ワークを搬送する接触平面を指定する(ステップS101)。次に、情報処理装置1は、接触平面の天地方向ベクトルに沿って、搬送可能領域を設定する(ステップS102)。そして、情報処理装置1は、搬送可能領域に重心が含まれるワークの接触判定直方体テーブルのうち、接触平面にもっとも近い面をリフターと接触する面に選択し(ステップS103)、処理を終了する。
次に、図18を用いて、リフターが上昇する際に情報処理装置1が実行する処理の流れについて説明する。図18は、リフター上昇時に実行する処理の流れを説明するためのフローチャートである。なお、図18に示す例では、ワークを搬送していないリフターが上昇移動を開始した例について記載した。
例えば、情報処理装置1は、リフターが上昇移動を開始すると(ステップS201)、上昇するリフターの搬送領域内にワークの重心が存在するか否かを判定する(ステップS202)。そして、情報処理装置1は、上昇するリフターの搬送領域内にワークの重心が存在すると判定した場合は(ステップS202肯定)、ワークを搬送中の搬送機器よりも、リフターの優先度のほうが高いか否かを判定する(ステップS203)。
また、情報処理装置1は、ワークを搬送中の搬送機器よりも、リフターの優先度のほうが高いと判定した場合は(ステップS203肯定)、ワーク接触動作処理を実行し(ステップS204)、処理を終了する。また、情報処理装置1は、上昇するリフターの搬送領域内にワークの重心が存在しないと判定した場合は(ステップS202否定)、ステップS203、S204を実行せずに、そのまま処理を終了する。また、情報処理装置1は、ワークを搬送中の搬送機器よりも、リフターの優先度のほうが低いと判定した場合は(ステップS203否定)、ステップS204を実行せずにそのまま処理を終了する。
次に、図19を用いて、図18中ステップS204に示したワーク接触動作処理の流れについて説明する。図19は、ワーク接触動作処理の流れを説明するためのフローチャートである。例えば、情報処理装置1は、リフターによる搬送を開始する(ステップS301)。まず、情報処理装置1は、搬送中の搬送機器とワークとの一体化を解除する(ステップS302)。次に、情報処理装置1は、リフターの接触平面に最も接近しているワークの接触判定直方体の端点を検出する(ステップS303)。そして、情報処理装置1は、検出した端点を中心とし、リフターの接触平面に最も接近している接触判定直方体の辺が接触平面に平行になるようにワークの回転方向を決める(ステップS304)。
続いて、情報処理装置1は、ワークの回転量、および接触判定直方体と接触平面までの距離を計算する(ステップS305)。そして、情報処理装置1は、算出した距離をリフターが移動したか、すなわち、リフターがワークとの接触位置まで移動したか否かを判定する(ステップS306)。ここで、情報処理装置1は、リフターがワークとの接触位置まで移動していない場合は(ステップS306否定)、次のタイムステップで再度リフターがワークとの接触位置まで移動したか否かを判定する(ステップS306)。
一方、情報処理装置1は、リフターがワークとの接触位置まで移動した場合は(ステップS306肯定)、ステップS305で算出した分だけワークを回転させる(ステップS307)。次に、情報処理装置1は、ワークとリフターとを一体化し(ステップS308)、リフターの移動をリフターの位置およびワークの位置に反映させ(ステップS309)、処理を終了する。
次に、リフターが下降する際に情報処理装置1が実行する処理の流れについて説明する。図20は、リフター下降時に実行する処理の流れを説明するためのフローチャートである。なお、図20には、ワークを搬送するリフターが下降する際に実行する処理の流れについて記載した。
まず、情報処理装置1は、リフターが下降動作を開始すると(ステップS401)、リフターの優先度を最低の値に変更する(ステップS402)。続いて、情報処理装置1は、リフターが搬送中のワークの重心が他の搬送機器の搬送可能領域内に存在し、かつ、ワークが移動可能か否かを判定する(ステップS403)。そして、情報処理装置1は、リフターが搬送中のワークの重心が他の搬送機器の搬送可能領域内に存在し、かつ、ワークが移動可能である場合は(ステップS403肯定)、リフターとワークとの一体化を解除する(ステップS404)。
次に、情報処理装置1は、ワークを他の搬送機器の接触面に位置補正し(ステップS405)、ワークと他の搬送機器とを一体化させる(ステップS406)。すなわち、情報処理装置1は、下降中のリフターから他の搬送機器にワークを移す。そして、情報処理装置1は、リフターの移動を反映させ(ステップS407)、処理を終了する。一方、情報処理装置1は、リフターが搬送中のワークの重心が他の搬送機器の搬送可能領域内に存在しない場合、または、ワークが移動可能ではない場合は(ステップS403否定)、図21に記載する第2の下降処理を実行する(ステップS408)。
次に、図21を用いて、図20中ステップS408に示した第2の下降処理の流れについて説明する。図21は、第2の下降処理の流れを説明するためのフローチャートである。例えば、情報処理装置1は、リフターが下降動作を開始すると(ステップS501)、リフターが一体化したワークの搬送を開始した位置よりも下に移動したか否かを判定する(ステップS502)。
そして、情報処理装置1は、リフターが一体化したワークの搬送を開始した位置よりも下に移動したと判定した場合は(ステップS502肯定)、ワークの位置が所定の閾値を超えて移動したか否かを判定する(ステップS503)。すなわち、情報処理装置1は、ワークの移動したベクトル成分のうち、水平方向成分が所定の閾値を超えたか否かを判定する(ステップS503)。
そして、情報処理装置1は、ワークの位置が所定の閾値を超えて移動した場合は(ステップS503肯定)、ワークをリフターと一体化させたまま、リフターの下降を継続し(ステップS504)、処理を終了する。一方、情報処理装置1は、ワークの位置が所定の閾値を超えて移動していない場合は(ステップS503否定)、リフターとワークとの一体化を解除する(ステップS505)。
そして、情報処理装置1は、ワークを搬送開始時の姿勢に戻し(ステップS506)、リフターの移動を反映させ(ステップS507)、処理を終了する。すなわち、情報処理装置1は、ワークを搬送開始時の位置に戻す。一方、情報処理装置1は、リフターが一体化したワークの搬送を開始した位置よりも下に移動していないと判定した場合は(ステップS502否定)、ステップS503をスキップし、ステップS504を実行する。
[情報処理装置1の効果]
上述したように、情報処理装置1は、3次元シミュレーション空間内において、ワークと、ワークの搬送を行うリフターとの動作をシミュレートする。ここで、情報処理装置1は、テーブルに配置されたワークをリフターが上方向に移動させる場合は、リフターとワークとを一体化させる優先度をテーブルとリフターとを一体化させる優先度よりも高く設定する。また、情報処理装置1は、ワークと一体化したリフターが下降する場合は、リフターの優先度をテーブルの優先度よりも低い値に設定する。
このため、情報処理装置1は、ワークの搬送状態を柔軟に遷移させることができる。例えば、情報処理装置1は、あらかじめワークの遷移状態を設定せずとも、テーブル上のワークをリフターが受け取って搬送し、他のテーブルに移す等のシミュレーションを実行することができる。また、情報処理装置1は、制御ソフトウェアの設計変更等により、ワークの搬送順序が変化した場合であっても、リフターによるワークの搬送をシミュレートすることができる。
また、情報処理装置1は、ワークとリフターとを一体化させてワークの位置を算出するので、リフターが高速で移動した場合にも、ワークの位置ずれを防ぐことができる。この結果、情報処理装置1は、精度を保ったまま、高速なシミュレーション画像を作成することができる。
また、情報処理装置1は、リフターがテーブルからワークを持ち上げた際のワークの重心位置とリフターが搬送しているワークの重心位置からなるベクトルの水平成分が所定の閾値を超えたか否かを判定する。そして、情報処理装置1は、リフターがワークを持ち上げたテーブルよりも下方向に移動し、かつ、ベクトルの水平成分が所定の閾値を超えていない場合は、元の位置にワークを再配置する。
また、情報処理装置1は、リフターがワークを持ち上げたテーブルよりも下方向に移動し、かつ、ベクトルの水平成分が所定の閾値を超えた場合は、リフターとワークを一体化させたまま、リフターの下降をシミュレートする。このため、情報処理装置1は、リフターが、高さが異なるテーブル間でワークを搬送するシミュレーションを演算できる。また、情報処理装置1は、リフターがテーブルからワークを持ち上げるシミュレーションを巻き戻しをリアルタイムに表示する際に、ワークを元の位置に戻すことができる。
また、情報処理装置1は、テーブル上のワークの重心がリフターの搬送可能領域に含まれるか否かを判定する。また、情報処理装置1は、テーブル上のワークの重心がリフターの搬送可能領域に含まれると判定した場合は、テーブルの優先度とリフターの優先度とを比較する。そして、情報処理装置1は、テーブルの優先度よりもリフターの優先度のほうが高い場合は、テーブル上のワークとリフターとを一体化してリフターの動作をシミュレートする。
このため、情報処理装置1は、現実的なシミュレーションを行うことができる。例えば、情報処置装置1は、天地方向がワークとは重複しない位置でリフターが上昇したとしても、ワークとリフターとを一体化させず、ワークの下方向からリフターが上昇した場合にのみ、ワークとリフターとを一体化させる。このため、情報処理装置1は、現実的なシミュレーションを行うことができる。
また、情報処理装置1は、テーブルの優先度よりもリフターの優先度のほうが高い場合は、ワークの接触判定直方体の端点のうち、リフターの接触平面に最も近い端点と、ワークの接触判定直方体の辺のうち、リフターの接触平面に最も近い辺を識別する。そして、情報処理装置1は、識別した端点を中心として、識別した辺とリフターと接触平面とが平行になるようにワークを回転させる。その後、情報処理装置1は、回転させたワークとリフターとを一体化してシミュレーションを実行する。この結果、情報処理装置1は、ワークがリフターにめり込んだままシミュレーションが実行され、ワークの位置ずれが蓄積するのを防止することができる。
また、情報処理装置1は、ワークに外接する接触判定直方体を用いて、ワークの回転中心、およびワークの回転方向を決定する。このため、情報処理装置1は、演算量を増加させることなく、ワークの回転を行うことができる。
また、情報処理装置1は、リフターと一体化したワークがテーブルの搬送可能領域に含まれる場合は、リフターとテーブルとの優先度を比較する。そして、情報処理装置1は、リフターの優先度がテーブルの優先度よりも高い場合は、リフターとワークとの一体化を解除し、ワークをテーブル上に配置する。ここで、情報処理装置1は、リフターが停止、もしくは下降している場合は、リフターの優先度をテーブルの優先度よりも低く設定している。このため、情報処理装置1は、ワークの搬送状態を示すリストを用いずとも、ワークを搬送するリフターが下降し、ワークをテーブルに配置するシミュレーションを実行することができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)接触判定直方体について
上述した情報処理装置1は、各ワークに外接する直方体を接触判定直方体とした。しかし、実施例はこれに限定されるものではない。例えば、情報処理装置1は、入力装置2から、利用者が任意に設定した接触判定直方体を受付し、接触判定直方体テーブル7aに格納する。そして、情報処理装置1は、前回算出したワークの位置に従って、接触判定直方体テーブル7aに格納した接触判定直方体の位置を修正する。その後、情報処理装置1は、修正した接触判定直方体の位置を用いて、各搬送機器とワークとの接触判定を行っても良い。
(2)情報処理装置1の機能構成について
上述した情報処理装置1は、シミュレーションの各タイムステップにおける接触判定直方体の位置と各搬送機器の接触平面とを動作パラメータ記憶部7に格納した。そして、情報処理装置1は、動作パラメータ記憶部7に格納された各種情報を用いて、次のタイムステップにおけるワークおよび各搬送機器の位置を算出した。しかし、実施例はこれに限定されるものではない。
例えば、情報処理装置1は、接触判定直方体と各搬送機器の接触平面との初期値のみを動作パラメータ記憶部7に記憶する。そして、情報処理装置1は、リフター動作演算部13が算出した各搬送機器の移動量と、動作パラメータ記憶部7に記憶された接触判定直方体と接触平面との初期値を用いて、最初のタイムステップにおけるシミュレーションを実行する。次に、情報処理装置1は、最初のタイムステップにおけるシミュレーション結果からワークおよび各搬送機器の位置を記憶し、記憶した情報と、各搬送機器の新たな移動量とを用いて、次のタイムステップにおけるシミュレーション結果を算出してもよい。
(3)ワーク、および搬送機器について
実施例1で図示したワークおよび各種搬送機器は、あくまで一例であり、情報処理装置1は、任意の形状を有するワーク、および任意の形状を有する各搬送機器についてシミュレーションを実行することが可能である。また、上述した各種搬送機器は、あくまで一例であり、情報処理装置1は、任意の機能を有する搬送機器のシミュレーションを行うことができる。
(4)実施形態について
上述した情報処理装置1は、1つのハードウェアを用いてシミュレーションを実行した。しかし、実施例はこれに限定されるものではなく、例えば、情報処理装置1が発揮する機能を任意の粒度で分割し、分割した各機能をそれぞれ異なるサーバが発揮してもよい。すなわち、情報処理装置1は、いわゆるクラウドシステムによって実現されてもよい。
(5)プログラム
ところで、実施例1に係る情報処理装置1は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを情報処理装置1が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図22を用いて、実施例1に示した情報処理装置1と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図22は、シミュレートプログラムを実行するコンピュータの一例を説明するための図である。
図22に例示されたコンピュータ100は、ROM(Read Only Memory)110、HDD(Hard Disk Drive)120、RAM(Random Access Memory)130、CPU(Central Processing Unit)140がバス160で接続される。また、図14に例示されたコンピュータ100は、パケットを送受信するためのI/O(Input Output)150を有する。
HDD120は、シミュレートプログラム121があらかじめ保持される。CPU140がシミュレートプログラム121をHDD120から読み出して実行することによって、図22に示す例では、シミュレートプログラム121は、シミュレートプロセス141として機能するようになる。なお、シミュレートプロセス141は、図1に示したシミュレーション演算部11、3次元姿勢演算部16、3次元形状表示制御部17と同様の機能を発揮する。
なお、本実施例で説明したシミュレートプログラム121は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
1 情報処理装置
2 入力装置
3 出力装置
4 管理情報記憶部
5 搬送機器管理テーブル
5a 搬送機器優先度テーブル
5b リフター部品形状テーブル
5c リフター動作情報テーブル
6 ワーク管理テーブル
6a ワーク形状テーブル
6b ワーク姿勢テーブル
7 動作パラメータ記憶部
7a 接触判定直方体テーブル
7b リフター接触平面テーブル
8 3次元データ管理部
9 制御ソフトウェア実行部
10 モータ動作演算部
11 シミュレーション演算部
12 動作パラメータ作成部
13 リフター動作演算部
14 接触姿勢演算部
15 ワーク移動演算部
16 3次元姿勢演算部
17 3次元形状表示制御部

Claims (8)

  1. 3次元シミュレーション空間上に搬送物と、リフター部の支え面により下から支えることで該搬送物を上方に上げる動作をする搬送機と前記搬送物が置かれるテーブルとが配置され、該搬送機が該搬送物を搬送するシミュレーション演算をコンピュータに実行させるプログラムであって、
    前記テーブルに配置された前記搬送物を前記リフターが上方向に移動させる場合、該リフターの前記搬送物と一体となる度合いを示す優先度を該テーブルの前記搬送物と一体となる度合いを示す優先度よりも高く設定し、
    前記搬送物を搬送中の前記リフターが前記テーブルよりも下方向に移動する場合、該リフターの前記搬送物と一体となる度合いを示す優先度を該テーブルの前記搬送物と一体となる度合いを示す優先度よりも低く設定する
    処理をコンピュータに実行させるプログラム。
  2. 前記テーブルに配置された前記搬送物を前記リフターが持ち上げた際の前記搬送物の重心の座標位置と現在の前記搬送物の重心の座標位置からなるベクトルの水平成分が所定の閾値を超えたか否かを判定し、
    前記搬送物を搬送中の前記リフターが前記テーブルよりも下方向に移動し、かつ、前記ベクトルの水平成分が所定の閾値を超えていないと判定した場合には、該リフターが搬送した搬送物を前記テーブルに再配置することを特徴とする請求項1に記載のプログラム。
  3. 前記テーブルに配置された搬送物が、前記リフターの支え面から所定の領域内に含まれるか否かを判定し、
    前記テーブルに配置された搬送物が、前記リフターの支え面から所定の領域内に含まれると判定した場合は、前記テーブルの優先度と前記リフターの優先度とを比較し、
    前記テーブルの優先度よりも前記リフターの優先度のほうが高い場合は、前記テーブルに配置された搬送物と前記リフターとが一体になったものとみなすことを特徴とする請求項1または2に記載のプログラム。
  4. 前記テーブルの優先度よりも前記リフターの優先度のほうが高い場合は、前記搬送物の端点のうち、最もリフターに近い端点を中心とし、該搬送物の縁のうち前記リフターの支え面に最も近い縁と前記リフターの支え面とが平行になるように前記搬送物を回転させ、該回転させた搬送物と前記リフターとが一体になったものとみなすことを特徴とする請求項3に記載のプログラム。
  5. 前記搬送物を前記搬送物に外接する直方体とみなし、該直方体の縁のうち前記リフターの支え面に最も近い縁と前記リフターの支え面とが平行になるように前記搬送物を回転させることを特徴とする請求項4に記載のプログラム。
  6. 前記リフターと一体になったものとみなされた搬送物が前記テーブルから所定の範囲内に含まれるか否かを判定し、
    前記リフターと一体になったものとみなされた搬送物が前記テーブルから所定の範囲内に含まれる場合は、前記テーブルの優先度と前記リフターの優先度とを比較し、
    前記リフターの優先度よりも前記テーブルの優先度のほうが高い場合は、前記リフターと一体になったものとみなされた搬送物を前記テーブル上に配置することを特徴とする請求項1〜5のいずれか1つに記載のプログラム。
  7. 3次元シミュレーション空間上に搬送物と、リフター部の支え面により下から支えることで該搬送物を上方に上げる動作をする搬送機と前記搬送物が置かれるテーブルとが配置され、該搬送機が該搬送物を搬送するシミュレーション演算を実行する演算装置であって、
    前記テーブルに配置された前記搬送物を前記リフターが上方向に移動させる場合、該リフターの前記搬送物と一体となる度合いを示す優先度を該テーブルの前記搬送物と一体となる度合いを示す優先度よりも高く設定する第1の設定部と、
    前記搬送物を搬送中の前記リフターが前記テーブルよりも下方向に移動する場合、該リフターの前記搬送物と一体となる度合いを示す優先度を該テーブルの前記搬送物と一体となる度合いを示す優先度よりも低く設定する第2の設定部と
    前記第1の設定部、または前記第2の設定部が設定した優先度に応じて、前記搬送機と前記搬送物とを一体とみなして前記シミュレーション演算を実行する演算部と、
    を有することを特徴とする演算装置。
  8. 3次元シミュレーション空間上に搬送物と、リフター部の支え面により下から支えることで該搬送物を上方に上げる動作をする搬送機と前記搬送物が置かれるテーブルとが配置され、該搬送機が該搬送物を搬送するシミュレーション演算を演算装置が実行する演算方法であって、
    前記テーブルに配置された前記搬送物を前記リフターが上方向に移動させる場合、該リフターの前記搬送物と一体となる度合いを示す優先度を該テーブルの前記搬送物と一体となる度合いを示す優先度よりも高く設定し、
    前記搬送物を搬送中の前記リフターが前記テーブルよりも下方向に移動する場合、該リフターの前記搬送物と一体となる度合いを示す優先度を該テーブルの前記搬送物と一体となる度合いを示す優先度よりも低く設定する
    処理を実行する演算方法。
JP2013017915A 2013-01-31 2013-01-31 プログラム、演算装置および演算方法 Active JP5983442B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013017915A JP5983442B2 (ja) 2013-01-31 2013-01-31 プログラム、演算装置および演算方法
US14/087,736 US10339230B2 (en) 2013-01-31 2013-11-22 Simulation apparatus and method of an article and a conveyor in a 3D simulated space
CN201310635497.XA CN103970026B (zh) 2013-01-31 2013-11-26 计算方法和计算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013017915A JP5983442B2 (ja) 2013-01-31 2013-01-31 プログラム、演算装置および演算方法

Publications (2)

Publication Number Publication Date
JP2014148389A JP2014148389A (ja) 2014-08-21
JP5983442B2 true JP5983442B2 (ja) 2016-08-31

Family

ID=51223863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013017915A Active JP5983442B2 (ja) 2013-01-31 2013-01-31 プログラム、演算装置および演算方法

Country Status (3)

Country Link
US (1) US10339230B2 (ja)
JP (1) JP5983442B2 (ja)
CN (1) CN103970026B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6463518B2 (ja) 2016-02-08 2019-02-06 三菱電機株式会社 コントローラおよび搬送システム
CN109844659B (zh) * 2016-10-14 2022-04-05 三菱电机株式会社 仿真装置
US10635981B2 (en) * 2017-01-18 2020-04-28 Microsoft Technology Licensing, Llc Automated movement orchestration
US10311167B1 (en) * 2017-03-06 2019-06-04 Bentley Systems, Incorporated Horizontal and vertical geometry manipulators

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1516983A (en) * 1974-07-26 1978-07-05 Herbert Ltd A Automatic tool and machining process
JP3781557B2 (ja) 1998-06-24 2006-05-31 本田技研工業株式会社 物品の最適移送経路決定方法
JP2002068416A (ja) * 2000-08-24 2002-03-08 Tokyo Autom Mach Works Ltd ワーク搬送経路を構成する複数の装置を含む搬送システムのシミュレーション方法およびシミュレータ
WO2005045729A1 (de) * 2003-11-10 2005-05-19 Siemens Aktiengesellschaft System und verfahren zur durchführung und visualisierung von simulationen in einer erweiterten realität
JP2005202737A (ja) * 2004-01-16 2005-07-28 Tokyo Autom Mach Works Ltd シミュレーション装置
JP4056542B2 (ja) * 2005-09-28 2008-03-05 ファナック株式会社 ロボットのオフライン教示装置
JP4153528B2 (ja) * 2006-03-10 2008-09-24 ファナック株式会社 ロボットシミュレーションのための装置、プログラム、記録媒体及び方法
JP2007286976A (ja) * 2006-04-18 2007-11-01 Fanuc Ltd ロボットシミュレーション装置
US20080082984A1 (en) * 2006-09-29 2008-04-03 Siemens Technology-To-Business Center, Llc Methods, apparatus and storage medium for use in association with a dataflow system
JP2008093751A (ja) * 2006-10-06 2008-04-24 Sharp Corp 搬送シミュレーションシステム
US8493188B2 (en) * 2009-01-14 2013-07-23 International Business Machines Corporation Haptic motion feedback device
JP5866762B2 (ja) * 2011-01-19 2016-02-17 富士通株式会社 模擬装置、模擬プログラム、および模擬方法
JP5838873B2 (ja) * 2012-03-15 2016-01-06 オムロン株式会社 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
FR3009548B1 (fr) * 2013-08-07 2017-04-28 Solystic Systeme de convoyage comportant un suivi des objets convoyes par imagerie et capteurs virtuels

Also Published As

Publication number Publication date
US10339230B2 (en) 2019-07-02
US20140214384A1 (en) 2014-07-31
CN103970026A (zh) 2014-08-06
JP2014148389A (ja) 2014-08-21
CN103970026B (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
KR102332603B1 (ko) 실시간 배치 시뮬레이션을 사용하여 패키지를 팔레트화하기 위한 로봇 시스템
JP6710400B1 (ja) パッキング機構を有するロボットシステム
KR102408914B1 (ko) 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템
KR102400028B1 (ko) 비순서적으로 도착하는 패키지를 처리하기 위한 로봇 시스템
US11103998B2 (en) Method and computing system for performing motion planning based on image information generated by a camera
US10353383B2 (en) Simulator, simulation method, and simulation program
JP5983442B2 (ja) プログラム、演算装置および演算方法
JP2018052691A (ja) 積み付けパターン計算装置及び積み付けシステム
WO2019167765A1 (ja) シミュレーション装置、方法、及びプログラム
JP2019152971A (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
JP6115158B2 (ja) プログラム、演算装置および演算方法
US20190255705A1 (en) Simulation apparatus, simulation method, and simulation program
JP6115157B2 (ja) プログラム、演算装置および演算方法
CN111559544B (zh) 具有错误检测和动态打包机制的机器人系统
JP2018112955A (ja) 部品データ変換支援装置、部品データ変換支援方法、部品データ変換支援プログラム、記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160718

R150 Certificate of patent or registration of utility model

Ref document number: 5983442

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150