JP6458713B2 - シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム - Google Patents

シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム Download PDF

Info

Publication number
JP6458713B2
JP6458713B2 JP2015225784A JP2015225784A JP6458713B2 JP 6458713 B2 JP6458713 B2 JP 6458713B2 JP 2015225784 A JP2015225784 A JP 2015225784A JP 2015225784 A JP2015225784 A JP 2015225784A JP 6458713 B2 JP6458713 B2 JP 6458713B2
Authority
JP
Japan
Prior art keywords
workpiece
simulation
virtual space
dimensional virtual
conveyor
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
JP2015225784A
Other languages
English (en)
Other versions
JP2017097427A (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.)
Omron Corp
Original Assignee
Omron Corp
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 Omron Corp filed Critical Omron Corp
Priority to JP2015225784A priority Critical patent/JP6458713B2/ja
Priority to CN201610991540.XA priority patent/CN106896790B/zh
Priority to US15/366,716 priority patent/US10353383B2/en
Publication of JP2017097427A publication Critical patent/JP2017097427A/ja
Application granted granted Critical
Publication of JP6458713B2 publication Critical patent/JP6458713B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4189Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the transport system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • G05B19/4182Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell manipulators and conveyor only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41885Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31227External network for proces data, internal network for transport, handling only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32252Scheduling production, machining, job shop
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32337Simulation, statechart SC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39106Conveyor, pick up article, object from conveyor, bring to test unit, place it
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40007Optimize sequence of pick and place operations upon arrival of workpiece on conveyor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Description

本発明は、システムの挙動を推定するシミュレーション装置、シミュレーション方法、およびシミュレーションプログラムに関する。
FA(Factory Automation)分野では、様々な自動制御技術が広く利用されている。このような自動制御技術において、ワークなどの対象物の位置をトラッキングするとともに、各種ロボットでワークに対して必要な処理を実施するようなアプリケーションが想定される。
このような自動制御技術の対象となるシステムの設計または検討などの段階において、システム全体の性能などを予め評価する必要がある。このようなニーズに対して、仮想的にシステムを構築して動作をシミュレーションする技術が実現されている。例えば、特開2013−191128号公報(特許文献1)は、仮想撮像部に対応する実空間の視覚センサを含めた機械システムの統合シミュレーションを行う技術が開示されている。特許文献2に開示される技術においては、3Dシミュレータと視覚センサシミュレータとが連携することで、各タイミングにおける3D空間内のワークの撮像画像を仮想的に生成する。
特開平09−258815号公報(特許文献2)は、モデルをあるモデルに追従動作させるシミュレーションにおいて、モデルに関して互いに作用するものと作用されるものの主従関係を設定し、その主従関係に従って運動するモデルの運動連鎖を模擬する構成を開示している。
特開2013−191128号公報 特開平09−258815号公報
アプリケーションによっては、コンベアなどの搬送面上にワークが配置されるとは限らず、搬送面から少し離れた位置からワークの把持が解除され、ワークが自然落下するような処理も存在する。
上述の特許文献2は、その図24などに、ワークがコンベアに運ばれている追従動作を行わせる場合について例示するが、ワークとコンベアとの間の主従関係をどのように設定するのか、および、コンベア上に複数のワークが配置された場合にどのように処理されるのか、といった点については何ら開示していない。
搬送機の搬送面上ではなく、その近傍に対象物が配置されるようなアプリケーションであっても、現実の対象物の挙動を反映したシミュレーションを実現したいというニーズが存在する。
本発明のある局面によれば、配置された対象物を連続的に移動させる搬送面を有する搬送機と、対象物を把持して搬送面に配置可能な処理装置とを含むシステムの挙動を推定するシミュレーション装置が提供される。シミュレーション装置は、システムを3次元仮想空間内に仮想的に構築する構築手段と、搬送面に配置された複数の対象物についての3次元仮想空間内の位置を、対応する搬送機の移動量に基づいてそれぞれ更新するとともに、処理装置により把持されている対象物の3次元仮想空間内の位置を、処理装置の挙動に関連付けて更新する、トラッキング手段と、3次元仮想空間内の各対象物の位置に基づいて、処理装置の挙動についての制御指令を生成する生成手段とを含む。トラッキング手段は、搬送面から予め定められた範囲内に処理装置が対象物を配置すると、当該対象物と当該搬送面とを互いに関連付けて、当該対象物の位置を更新する。
好ましくは、トラッキング手段は、いずれかの搬送面に配置されたとみなされる第1の対象物の表面から予め定められた範囲内に処理装置が第2の対象物を配置すると、当該第1の対象物および当該第2の対象物の位置を互いに関連付けて更新する。
好ましくは、トラッキング手段は、3次元仮想空間内の対象物の高さに応じて、予め定められた範囲の大きさを決定する。
好ましくは、予め定められた範囲の大きさの設定を受付ける入力手段をさらに備える。
好ましくは、予め定められた範囲を示す3次元仮想空間内の領域を半透明のオブジェクトで表現される。
好ましくは、トラッキング手段は、搬送面から予め定められた範囲内に処理装置が対象物を配置すると、当該対象物が当該搬送面と接するように、3次元仮想空間内の当該対象物の高さ方向の位置を更新する。
好ましくは、トラッキング手段は、処理装置が対象物を配置した範囲内に、搬送面および第2の対象物が存在する場合に、予め定められた優先度に従って、当該対象物を搬送面および第2の対象物のうちいずれか一方と関連付ける。
好ましくは、トラッキング手段は、処理装置が対象物の把持を開放したときの3次元仮想空間内の水平方向の速度に応じて、3次元仮想空間内の当該対象物の水平方向の位置を補正する。
好ましくは、シミュレーション装置は、3次元仮想空間内の搬送面に予め設定される領域に関連付けて、被写体として対象物の少なくとも一部を含む入力画像に対する画像計測処理を行う計測手段をさらに含む。トラッキング手段は、計測手段による対象物の検出に応答して、3次元仮想空間内に当該検出された対象物を出現させる。
本発明の別の局面によれば、配置された対象物を連続的に移動させる搬送面を有する搬送機と、対象物を把持して搬送面に配置可能な処理装置とを含むシステムの挙動を推定するコンピュータによって実行されるシミュレーション方法が提供される。シミュレーション方法は、システムを3次元仮想空間内に仮想的に構築するステップと、搬送面に配置された複数の対象物についての3次元仮想空間内の位置を、対応する搬送機の移動量に基づいてそれぞれ更新するとともに、処理装置により把持されている対象物の3次元仮想空間内の位置を、処理装置の挙動に関連付けて更新するステップと、3次元仮想空間内の各対象物の位置に基づいて、処理装置の挙動についての制御指令を生成するステップとを含む。更新するステップは、搬送面から予め定められた範囲内に処理装置が対象物を配置すると、当該対象物と当該搬送面とを互いに関連付けて、当該対象物の位置を更新するステップを含む。
本発明のさらに別の局面によれば、配置された対象物を連続的に移動させる搬送面を有する搬送機と、対象物を把持して搬送面に配置可能な処理装置とを含むシステムの挙動を推定するシミュレーションプログラムが提供される。シミュレーションプログラムはコンピュータに、システムを3次元仮想空間内に仮想的に構築するステップと、搬送面に配置された複数の対象物についての3次元仮想空間内の位置を、対応する搬送機の移動量に基づいてそれぞれ更新するとともに、処理装置により把持されている対象物の3次元仮想空間内の位置を、処理装置の挙動に関連付けて更新するステップと、3次元仮想空間内の各対象物の位置に基づいて、処理装置の挙動についての制御指令を生成するステップとを実行させる。更新するステップは、搬送面から予め定められた範囲内に処理装置が対象物を配置すると、当該対象物と当該搬送面とを互いに関連付けて、当該対象物の位置を更新するステップを含む。
本発明によれば、搬送機の搬送面上ではなく、その近傍に対象物が配置されるようなアプリケーションであっても、現実の対象物の挙動を反映したシミュレーションを実現できる。
本実施の形態に係るシミュレーション装置でのシミュレーションの対象となるシステム構成例を示す模式図である。 本実施の形態に係るシミュレーション装置を用いたシミュレーションの方法を説明するための模式図である。 本実施の形態に係るシミュレーション装置が想定するアプリケーションの一例を説明するための模式図である。 本実施の形態に係るシミュレーション装置における接地判定高さを説明するための模式図である。 本実施の形態に係るシミュレーション装置における接地判定高さを説明するための別の模式図である。 本実施の形態に係るシミュレーション装置のハードウェア構成を示す模式図である。 本実施の形態に係るシミュレーション装置の機能構成を示す模式図である。 本実施の形態に係るシミュレーション装置を用いたシミュレーションの処理手順を示すフローチャートである。 図8に示すステップS28の前半部分の詳細な処理手順を示すフローチャートである。 本実施の形態に係るシミュレーション装置による3次元仮想空間内に構築されるシステムモデルを視覚化した一例を示す図である。 本実施の形態に係るシミュレーション装置における接地判定高さを設定するユーザインターフェイス画面の一例を示す模式図である。 本実施の形態に係るシミュレーション装置において接地判定高さがゼロに設定されたときの接地判定範囲を説明するための模式図である。 本実施の形態に係るシミュレーション装置における接触判定マージンを説明するための模式図である。 本実施の形態に係るシミュレーション装置における他のワークとの接触判断の概要を説明するための模式図である。 図8に示すステップS28の後半部分の詳細な処理手順を示すフローチャートである。 本実施の形態に係るシミュレーション装置におけるワーク同士の関連付けを説明するための模式図である。 本実施の形態に係るシミュレーション装置によるシミュレーション結果を視覚化した一例を示す図である。 本実施の形態に係るシミュレーション装置における高さ方向の位置補正を説明するための模式図である。 本実施の形態に係るシミュレーション装置におけるワークの位置補正処理を説明するための模式図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.シミュレーション>
まず、本実施の形態に係るシミュレーション装置が提供するシステムの挙動を推定するためのシミュレーションについて説明する。
本実施の形態に係るシミュレーション装置は、配置された対象物を連続的に移動させる搬送面を有する搬送機と、対象物を把持して搬送面に配置可能な処理装置とを含むシステムの挙動を推定(シミュレーション)する。
以下の説明では、配置された対象物を連続的に移動させる搬送面を有する搬送機の一例として、1または複数のコンベアを採用するとともに、対象物を把持して搬送面に配置可能な処理装置の一例として1または複数のロボットを想定する。但し、搬送機および処理装置については、これらに限られることなく、対象のシステムに応じて適宜選択される。以下では、対象物を「ワーク」とも称し、ワークとしては、最終生成物あるいはその一部、または、中間生成物あるいはその一部など、その位置をトラッキング可能なものであれば、どのようなものであってもよい。
先に、本実施の形態に係るシミュレーション装置でのシミュレーションの概要について説明する。
図1は、本実施の形態に係るシミュレーション装置でのシミュレーションの対象となるシステム構成例を示す模式図である。図1を参照して、一例として、コンベアトラッキングシステム1では、コンベア230上を連続的に搬送されるワーク232が所定のトラッキングエリア231まで到達すると、トラッキングエリア231内のワーク232をロボット210で把持して、コンベア240まで搬送し、コンベア240上のトラッキングエリア235に配置する。このようなロボット210による把持・搬送・配置の一連の動作は、「ピック&プレース動作」とも称される。説明の便宜上、把持されるワークを搬送するコンベアを「ピック側コンベア」とも称し、ワークが配置されるコンベアを「プレース側コンベア」とも称す。
ロボット210によるピック&プレース動作は、コンベア230の一部に設定された撮像エリア221を撮像部222にて撮像するとともに、視覚センサ220が撮像部222の撮像により取得された入力画像に対してパターンマッチングなどの画像計測処理を行うことで、ワーク232の位置、種別、向きなどの情報を含む計測結果が取得される。
制御装置200は、視覚センサ220からの計測結果に基づいて、予め設定された制御ロジックを実行することで、ワーク232の位置を順次更新(すなわち、トラッキング)するとともに、ロボット210に対する制御指令を生成する。制御装置200としては、典型的には、プログラマブルコントローラ(以下「PLC」とも称す。)を用いて実装される。
制御装置200は、ロボット210に対する制御指令を生成する際には、ロボット210の状態値、コンベア230を駆動する駆動ローラ234に結合されたエンコーダ236からのエンコーダ値(エンコーダ値1)、および、コンベア240を駆動する駆動ローラ244に結合されたエンコーダ246からのエンコーダ値(エンコーダ値2)を参照する。制御装置200および視覚センサ220は、ネットワーク202を介してデータ通信可能に接続されており、視覚センサ220からの計測結果は、ネットワーク202を介して、制御装置200へ伝送される。
図1に示すようなコンベアトラッキングシステム1を導入するにあたって、処理能力(タクトタイムなど)および処理の精度などを事前に評価したいというニーズが存在する。すなわち、コンベアトラッキングシステム1を現実に作成して、その処理能力を検討することが、コスト的または時間的な制約上、不可能な場合も多い。本実施の形態に係るシミュレーション装置は、このようなコンベアトラッキングシステム1の挙動をより簡便に推定したいというニーズに対処するものである。そこで、本実施の形態に係るシミュレーション装置は、シミュレーション対象のシステムを3次元仮想空間内に仮想的に構築することで、より効率的なシミュレーションを実現する。
図2は、本実施の形態に係るシミュレーション装置を用いたシミュレーションの方法を説明するための模式図である。図2を参照して、シミュレーション装置は、シミュレーション対象のコンベアトラッキングシステム2全体をモデル化するとともに、撮像部222での撮像を模擬するために、任意の入力画像がこのシステムモデルに与えられる。
コンベアトラッキングシステム2のシステムモデルに与えられる入力画像としては、設計上想定されている仕様(例えば、ワーク232の移動速度または時間あたりの個数など)を表現できる入力画像が利用される。典型的には、類似の製造ラインにて現実に撮像された入力画像を用いることが想定される。
シミュレーションに用いられる入力画像としては、既存のシステム(例えば、シミュレーション対象のシステムが更新後のシステムである場合の更新前のシステム)にて撮像されたものが想定されるが、これに限らず、任意のシステムおよび状況において撮像されたものを用いてもよい。すなわち、シミュレーションの対象物(典型的には、ワーク232)についての時間的変化の情報を含むものであれば、どのような入力画像を用いてもよい。
また、入力画像としては、動画像データであってもよいし、時系列に並べられた複数の静止画像データであってもよい。さらに、動画像データの再生速度、または、複数の静止画像データの更新速度を適宜調整することで、制御対象となる対象物の時間的変化(すなわち、移動速度)を調整することもできる。システムモデルに対して与える入力画像をこのように調整することで、制御対象の時間的変化の最適値などについても、シミュレーションにて決定することもできる。
さらに、複数の静止画像としては、現実に連続的に撮像した画像ではなく、異なるシーンで撮像された複数の画像を適宜並べて時間的に変化させたものとして取り扱うことで、動入力画像とみなしてもよい。この場合、生成される複数の画像間には、ワークの重なりは生じなくなるが、シミュレーションを実施する際の事実上の問題はない。
<B.概要>
次に、本実施の形態に係るシミュレーション装置によるシミュレーションにおける処理の概要について説明する。
ピック&プレース動作が適用されるアプリケーションでは、ワークは、コンベアの搬送面ではなく、搬送面よりも上側に配置、すなわち、ロボットがワークをコンベアの搬送面より上側のある位置で離すような場合がある。これは、コンベアとの接触によってワークが破損することを防止するなどのためである。
図3は、本実施の形態に係るシミュレーション装置が想定するアプリケーションの一例を説明するための模式図である。図3(A)を参照して、ロボットのロボットアーム214の先端には、ワークを吸着するためのロボットツール216が装着されている。ロボットツール216は、例えば、空気式の吸着装置であり、負圧を発生させることでワークを把持する。ロボットは、例えば、図示しないピック側のコンベア上のワークを把持して、プレース側のコンベア240の搬送面より上側でロボットツール216によるワークの吸着を解除する。ワークは、重力によってコンベア240の搬送面に着地し、そのまま搬送されることになる。
また、複数の工程でそれぞれ別のワークを配置するようなアプリケーションも想定される。この場合にも、先に配置されているワークの上側から別のワークを離すことになる。
図3(B)を参照して、例えば、あるワーク242が先に配置されており、このワーク242上にワーク232をさらに配置するようなアプリケーションも想定される。このような場合にも、ワーク242は、ワーク232の上部で吸着が解除される。なお、図3(B)に示されるようなアプリケーションは、例えば、同一の容器内に複数のワークを順次挿入するような工程にも適用可能である。
従来のシミュレーション技術では、図3に示すようなアプリケーションにおいては、ワークの吸着が解除された(すなわち、ワークが配置された)位置がコンベアの搬送面上にはないため、ワークがコンベア上に配置されたとは判定されなかった。すなわち、シミュレーションにおいては、ワークに生じる重力の影響を考慮できないため、図3に示すようなアプリケーションを正確にシミュレーションすることは容易ではなかった。
このような課題に対して、本実施の形態に係るシミュレーション装置は、ワークが搬送機の搬送面より上側に配置されたようなアプリケーションについても、より現実の挙動に近い状態でシミュレーションを可能にする。
図4は、本実施の形態に係るシミュレーション装置における接地判定高さを説明するための模式図である。図4を参照して、コンベア240の搬送面からから予め定められた範囲として、接地判定高さが設定される。ロボットアーム214の先端に装着されているロボットツール216からワークが離されたタイミングで、ワーク232の一部が接地判定高さとして規定される領域内に入っていれば、ワーク232がコンベア240に接地したとみなされ、ワーク232はコンベア240と同期して移動するように処理される。なお、図4に記載のロボットツール216に吸着されたワーク232は、ロボットツール216からワークが離される直前の状態を示す。
このように、本実施の形態に係るシミュレーション装置においては、プレース側のコンベア240について、接地判定の高さが設定可能になっている。なお、シミュレーション対象のシステムモデルを3次元仮想空間内に表示する際に、接地判定高さで定義される領域を示すオブジェクト250を併せて表示するようにしてもよい。このオブジェクト250は、3次元仮想空間内でのワーク232の表示を妨げないように、半透明(すなわち、所定の透過率をもった有色)のオブジェクトを用いてもよい。すなわち、接地判定高さで定義される範囲を示す3次元仮想空間内の領域が半透明のオブジェクトで表現されてもよい。
図4に示すように、ピック&プレース動作によって、配置されたワーク232がオブジェクト250と接触すると、ワーク232がコンベア240に直接接触していなくても、コンベア240の進行と同期してワーク232も移動することになる。
図5は、本実施の形態に係るシミュレーション装置における接地判定高さを説明するための別の模式図である。図5に示すように、複数のワーク242,232が存在する場合にも同様に、接地判定高さで定義される領域内に一部が存在していれば、コンベア240の移動と同期して、これらのオブジェクトも移動することになる。なお、図5に記載のロボットツール216に吸着されたワーク232は、ロボットツール216からワークが離される直前の状態を示す。
このように、シミュレーション装置100は、搬送面から予め定められた範囲内にロボットがワークを配置すると、ワークと搬送面とを互いに関連付けて、ワークの位置を更新する。これによって、ワークに生じる重力を考慮していないシミュレーションにおいて、ワークが搬送機の搬送面から離れた位置で離された場合であっても、現実に生じる重力を考慮した場合と実質的に同様のシミュレーションを実現できる。
<C.シミュレーション装置のハードウェア構成>
次に、本実施の形態に係るシミュレーション装置100のハードウェア構成について説明する。本実施の形態に係るシミュレーション装置100は、典型的には、1または複数のコンピュータがプログラムを実行することで実現される。
図6は、本実施の形態に係るシミュレーション装置100のハードウェア構成を示す模式図である。図6を参照して、シミュレーション装置100は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。シミュレーション装置100は、プロセッサ102と、主メモリ104と、入力部106と、表示部108と、ネットワークインターフェイス110と、ハードディスク(HDD:Hard Disk Drive)120と、光学ドライブ112と、通信インターフェイス116とを含む。これらのコンポーネントは、内部バス118を介して互いに通信可能に接続されている。
プロセッサ102は、ハードディスク120に格納されているプログラムを主メモリ104に展開して実行することで、後述するような機能および処理を実現する。主メモリ104は、揮発性メモリにより構成され、プロセッサ102によるプログラム実行に必要なワークメモリとして機能する。
入力部106は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受付ける。表示部108は、ディスプレイ、インジケータなどからなり、ユーザに対して各種情報を提示する。
ネットワークインターフェイス110は、サーバ装置などの外部機器との間でネットワークを介してデータを遣り取りする。光学ドライブ112は、光学ディスク114などから、その中に格納されている各種プログラムを読み出して、ハードディスク120にインストールする。通信インターフェイス116は、例えば、USB(Universal Serial Bus)などの通信インターフェイスからなり、補助記憶装置などの外部機器との間でローカル通信を介してデータを遣り取りする。
ハードディスク120は、OS(Operating System)122およびシミュレーションプログラム124などのシミュレーション装置100として機能するために必要なプログラムを格納するとともに、シミュレーションに用いる予め取得された入力画像である画像データ群140についても格納する。
図6には、光学ドライブ112を介して必要なプログラムをシミュレーション装置100にインストールする構成例を示すが、これに限られることなく、ネットワーク上のサーバ装置などからダウンロードするようにしてもよい。
このように汎用コンピュータを用いて実現する場合には、本実施の形態に係る機能を提供するためのプログラムに加えて、コンピュータの基本的な機能を提供するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るシミュレーションプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および/またはタイミングで呼出して処理を実行するものであってもよい。すなわち、本実施の形態に係るプログラムは、上記のようなモジュールを含んでおらず、OSと協働して処理が実行される場合もある。そのため、本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るシミュレーションプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。
図6には、汎用コンピュータによってシミュレーション装置100を実現する例を示すが、これに限られることなく、その全部または一部を専用回路(例えば、ASIC(Application Specific Integrated Circuit)など)を用いて実現してもよい。さらに、一部の処理を外部装置に担わせるようにしてもよい。
図6には、本実施の形態に係るシミュレーション装置100が単一の装置によって実装される例を示すが、複数の装置が連携してシミュレーション装置100を実現してもよい。すなわち、本実施の形態に係るシミュレーション装置100は、複数の独立した装置の組み合わせによって構成されるシステムも含み得る。
<D.シミュレーション装置の機能構成>
次に、本実施の形態に係るシミュレーション装置100の機能構成について説明する。
図7は、本実施の形態に係るシミュレーション装置100の機能構成を示す模式図である。図7を参照して、シミュレーション装置100は、ソフトウェア機能として、視覚センサシミュレータ150と、コントローラシミュレータ160と、視覚化モジュール170と、ユーザインターフェイスモジュール180と、システムモデルエミュレータ190とを含む。これらの機能モジュール群は、典型的には、プロセッサ102がシミュレーションプログラム124(いずれも図6参照)を実行することで実現される。
ユーザインターフェイスモジュール180は、設定パラメータ152、制御プログラム162、および、3次元設計データ184についてのユーザによる設定・作成を支援するための操作画面などを提供する。また、ユーザインターフェイスモジュール180は、視覚化モジュール170によるシミュレーション結果の表示に際しても、必要なユーザインターフェイスを提供する。
ユーザインターフェイスモジュール180は、3次元設計データ184を扱う機能としてモデル構築モジュール182を含む。モデル構築モジュール182は、シミュレーション対象のシステムを3次元仮想空間内に仮想的に構築する。より具体的には、モデル構築モジュール182は、3次元仮想空間を表示するとともに、シミュレーション対象のシステムを当該3次元仮想空間内に構築するための設定・操作画面を提供する。
本実施の形態に係るシミュレーション装置100においては、典型的には、配置されたワークを連続的に移動させる搬送面を有する搬送機(典型例として、コンベア)と、ワークを把持して搬送面に配置可能な処理装置(典型例として、ロボット)とを含むシステムが3次元仮想空間内に仮想的に構築される。さらに、図2に示すように、システムモデル内に視覚センサ220の撮像エリア221が設定される。図2に示すようなピック&プレース動作に向けられたシステムモデルにおいては、ワークを把持(ピック)するエリア(トラッキングエリア231)、および、ワークを配置(プレース)するエリア(トラッキングエリア235)が設定されてもよい。
視覚センサシミュレータ150は、視覚センサ220での処理を模擬するモジュールであり、3次元仮想空間内の搬送経路(コンベア)上に予め設定される撮像エリア221に関連付けて、被写体としてワークの少なくとも一部を含む入力画像に対する画像計測処理を行う。より具体的には、視覚センサシミュレータ150は、コントローラシミュレータ160からの取込指令(典型例として、トリガー信号)に応答して、予め取得された画像データ群140のうち対象の画像データを取込んで、予め設定された設定パラメータ152に従って画像計測処理を行う。
視覚センサシミュレータ150での画像計測処理により得られた計測結果は、コントローラシミュレータ160へ出力される。すなわち、図1に示すコンベアトラッキングシステムにおける、ネットワーク202を介した、視覚センサ220から制御装置200への計測結果の伝送に相当する処理が実行される。
コントローラシミュレータ160は、視覚センサシミュレータ150による計測結果、および、3次元仮想空間内の各ワークの位置に基づいて、処理装置の一例であるロボットの挙動についての制御指令を生成する制御演算を実行する。コントローラシミュレータ160は、制御装置200(図1参照)での処理を模擬するモジュールであり、予め作成された制御プログラム162に従って、制御演算(シーケンス命令、モーション命令、各種機能命令など)を実行する。
コントローラシミュレータ160で実行される制御演算は、視覚センサシミュレータ150に対して画像データの取込指令(トリガー信号)を生成するための処理を含む。すなわち、コントローラシミュレータ160は、予め設定された条件が満たされると、トリガー信号を発生する。予め設定された条件とは、例えばコンベアが所定距離だけ移動したこと、あるいは、予め設定された周期が到来したこと、などを用いることができる。
システムモデルエミュレータ190は、システムモデル内の各オブジェクトの属性(各タイミングにおける位置、向き、速度など)をシミュレーションの進行に伴って順次更新する。より具体的には、システムモデルエミュレータ190は、モデル構築モジュール182にて構築されたシステムモデルに含まる各オブジェクトに対応付けて、オブジェクト属性情報192の内容を作成および更新する。
システムモデルエミュレータ190は、構築されたシステムモデルに含まれる構成要素が配置された位置などを初期値として設定する。そして、システムモデルエミュレータ190は、シミュレーションタイミングの経過に伴って、および、コントローラシミュレータ160にて生成される制御指令に基づいて、オブジェクト属性情報192に含まれる各オブジェクトの属性値を更新する。より具体的には、システムモデルエミュレータ190は、コンベアの搬送面に配置された複数のワークについての3次元仮想空間内の位置を、対応するコンベアの移動量に基づいてそれぞれ更新するとともに、ロボットにより把持されているワークの3次元仮想空間内の位置を、ロボットの挙動に関連付けて更新する、といったトラッキングの処理を司る。
また、システムモデルエミュレータ190は、コンベアの移動に関連付けて、当該コンベアの位置または変位を示す情報をコントローラシミュレータ160へ出力する。一例として、システムモデルエミュレータ190は、基準位置からの変位量を示すエンコーダ値を出力してもよいし、コンベアの単位時間あたりの移動量に比例するパルスを発生してもよい。すなわち、エンコーダ値は、コンベアの位置を示すことになり、単位時間あたりのパルス数は、コンベアの速度を示すことになる。
コントローラシミュレータ160は、ロボットに対する制御指令の時系列データ、および、視覚センサシミュレータ150による計測結果を含むトレースデータを出力する。システムモデルエミュレータ190は、システムモデル内の各オブジェクトの時間的変化などを含むトレースデータを出力する。
視覚化モジュール170は、これらのトレースデータを用いて、システムモデルについて実行されたシミュレーションの結果を視覚化する。より具体的には、視覚化モジュール170は、定義ファイルである3次元設計データ184に基づいて、3次元仮想空間内に仮想的に構築されたシステムを視覚化するとともに、コントローラシミュレータ160からのトレースデータに基づいて、システムでのワークおよびロボットの時間的変化などを再現する。視覚化モジュール170によるシミュレーション結果の視覚化は、一連のシミュレーションの実行が完了した後に実行されてもよいし、シミュレーションの実行とともに、その結果を随時表示するようにしてもよい。
このように、視覚化モジュール170は、シミュレーション結果の時間変化をアニメーションまたは動画の状態でシミュレーション装置100の表示部108(図3)上に表現する。
図7に示す機能構成においては、コントローラシミュレータ160が、コントローラシミュレータ160による出力されるロボットに対する制御指令の時系列データ、および、視覚センサシミュレータ150による計測結果を含むトレースデータを出力するが、これに限らず、視覚化モジュール170がそれぞれのデータを合成して、システムの挙動を再現するようにしてもよい。
上述の図7には、コントローラシミュレータ160により出力されるトレースデータを用いて、視覚化モジュール170が構築されたシステムの挙動を再現する構成例を示すが、必ずしも、シミュレーション装置100内に視覚化モジュール170を実装する必要はない。例えば、コントローラシミュレータ160により出力されるトレースデータを外部装置または外部アプリケーションへ出力し、当該外部装置または外部アプリケーションがシステムの挙動を再現するようにしてもよい。あるいは、視覚化モジュール170は、システムの挙動を再現するための動画像データを生成して任意の記憶媒体に格納するのみであり、当該動画像データを別のアプリケーションが再生するようにしてもよい。
<E.処理手順>
次に、本実施の形態に係るシミュレーション装置100を用いたシミュレーションの処理手順について説明する。
図8は、本実施の形態に係るシミュレーション装置100を用いたシミュレーションの処理手順を示すフローチャートである。図8を参照して、まず、シミュレーション装置100は、システムモデルの設定を受付ける(ステップS2)。システムモデルの設定は、システムを構成する各装置の配置位置、搬送機であるコンベアの移動速度などの設定を含む。システムモデルの設定に基づいて、シミュレーション装置100(モデル構築モジュール182)は、シミュレーション対象のシステム(システムモデル)を3次元仮想空間内に仮想的に構築する。
シミュレーション装置100(ユーザインターフェイスモジュール180)は、システムモデル内に設定される視覚センサの撮像エリアを受付ける(ステップS4)。すると、構築されたシステムと設定された撮像エリアとの相対位置関係に基づいて、計測結果を制御演算の入力値に変換するための変換パラメータであるキャリブレーションパラメータが算出される。
続いて、シミュレーション装置100(ユーザインターフェイスモジュール180)は、システムモデルを制御するための制御プログラムを受付ける(ステップS6)。この制御プログラムは、システムに関連付けられたプログラムであり、コントローラシミュレータ160で実行されることになる。
シミュレーション装置100(ユーザインターフェイスモジュール180)は、視覚センサシミュレータ150で実行されるべき画像計測処理の内容設定を受付ける(ステップS8)。ここで設定される内容としては、画像計測処理の処理内容の指定、および、指定された処理内容に応じた参照情報(モデル画像、モデル画像から算出される特徴量など)を含む。
以上のような手順により、シミュレーションを行うための設定が完了する。
シミュレーションの開始が指示されると、シミュレーション装置100(システムモデルエミュレータ190)は、システムモデル内の各オブジェクトの属性として初期値を設定する(ステップS10)。より具体的には、シミュレーション装置100(システムモデルエミュレータ190)は、システムモデル内に存在する各ワークの位置、コンベアの位置または移動量を示すエンコーダ値、ロボットの位置などについて、それぞれ初期値を設定する。
続いて、シミュレーション装置100(システムモデルエミュレータ190)は、コンベアのエンコーダ値を、予め定められたシミュレーションの1サイクル経過後の値に更新するとともに、コンベアの搬送面に配置されている各ワークの位置を更新する(ステップS12)。このとき、後述するような互いに関連付けられたワーク同士に対しては、同一の更新量が与えられる。
続いて、シミュレーション装置100(コントローラシミュレータ160)は、更新後のエンコーダ値および各ワークの位置に基づいて、トリガー信号を発生する条件が満たされているか否かを判断する(ステップS14)。
トリガー信号を発生する条件が満たされていれば(ステップS14においてYESの場合)、仮想的にトリガー信号を発生する(ステップS16)。トリガー信号の発生に応答して、シミュレーション装置100(視覚センサシミュレータ150)は、予め取得された画像データ群のうち対象の画像データを取込み、画像計測処理を実行する(ステップS18)。
シミュレーション装置100(システムモデルエミュレータ190)は、画像計測処理により新たにワークが検出されたか否かを判断する(ステップS20)。画像計測処理により新たにワークが検出されると(ステップS20においてYESの場合)、シミュレーション装置100(システムモデルエミュレータ190)は、検出されたワークについての新たなオブジェクトを生成する(ステップS22)。すなわち、シミュレーション装置100(システムモデルエミュレータ190)は、視覚センサシミュレータ150によるワークの検出に応答して、3次元仮想空間内に当該検出されたワークを出現させる。このとき、生成された新たなオブジェクトの位置は、撮像エリアの位置および計測結果に含まれるローカル座標値に基づいて算出される。
画像計測処理により新たにワークが検出されていなければ(ステップS20においてNOの場合)、ステップS22の処理はスキップされる。
一方、トリガー信号を発生する条件が満たされていなければ(ステップS14においてNOの場合)、ステップS16〜S22の処理はスキップされる。
続いて、シミュレーション装置100(コントローラシミュレータ160)は、更新後のエンコーダ値および各ワークの位置に基づいて、制御プログラム162に従って制御演算を実行し、制御指令を生成する(ステップS24)。シミュレーション装置100(システムモデルエミュレータ190)は、生成された制御指令に基づいて、ロボットの位置および関連するワークの位置を更新する(ステップS26)。例えば、ロボットがいずれかのワークを把持または搬送すると、そのロボットの挙動に応じて、対象のワークの位置が更新される。または、ロボットがワークを配置(例えば、吸着を解除)すると、対象のワークの位置および状態が更新される。
そして、シミュレーション装置100(システムモデルエミュレータ190)は、更新後のワークの位置に基づいて、ワークがコンベアの搬送面に接地したか、または、他のワークに接触したか否かを判断する(ステップS28)。ワークがコンベアの搬送面に接地、または、他のワークに接触したと判断されると(ステップS28においてYESの場合)、シミュレーション装置100(システムモデルエミュレータ190)は、対象のワークとコンベアまたは対象のワーク同士を関連付ける(ステップS30)。
シミュレーション装置100は、予め設定されているシミュレーション期間が満了したか否かを判断する(ステップS32)。予め設定されているシミュレーション期間が満了していなければ(ステップS32においてNOの場合)、ステップS12以下の処理が繰返される。
これに対して、予め設定されているシミュレーション期間が満了していれば(ステップS32においてYESの場合)、シミュレーションは終了する。
シミュレーションの終了後、シミュレーションによって生成されたトレースデータを用いて、システムの挙動を視覚化するようにしてもよい。
<F.搬送面への接地判断の詳細>
次に、ワークがコンベアの搬送面に接地したか否かを判断する処理(図8のステップS28の前半の処理)について詳細を説明する。
図9は、図8に示すステップS28の前半部分の詳細な処理手順を示すフローチャートである。図9を参照して、シミュレーション装置100(コントローラシミュレータ160)は、ロボットツールに対して吸着を解除する制御指令が生成されたか否かを判断する(ステップS2801)。ロボットツールに対して吸着を解除する制御指令が生成されていなければ(ステップS2801においてNOの場合)、シミュレーション装置100は、吸着が解除されたロボットツールに追従していたいずれのワークもコンベアの搬送面に接地されていないと判断する(ステップS2802)。そして、図8のステップS28以降の処理へ戻る。
これに対して、ロボットツールに対して吸着を解除する制御指令が生成されていれば(ステップS2801においてYESの場合)、シミュレーション装置100は、制御指令の対象となったロボットツールが吸着していたワークの最下点の座標値を取得し(ステップS2803)、コンベアからワークの最下点までの距離(図4に示される距離dなどに相当)を算出する(ステップS2804)。
シミュレーション装置100は、算出されたコンベアからワークの最下点までの距離が予め設定された接地判定高さ以下であるか否かを判断する(ステップS2805)。算出された距離が予め設定された接地判定高さを超えていれば(ステップS2805においてNOの場合)、シミュレーション装置100は、吸着が解除されたロボットツールに追従していたいずれのワークもコンベアの搬送面に接地されていないと判断する(ステップS2806)。そして、後述する図15のステップS2811以降の処理へ進む。
これに対して、算出された距離が予め設定された接地判定高さ以下であれば(ステップS2805においてYESの場合)、シミュレーション装置100は、対象のワークがコンベアの搬送面に接地されたと判断する(ステップS2807)。そして、図8のステップS28以降の処理へ戻る。
図10は、本実施の形態に係るシミュレーション装置100による3次元仮想空間内に構築されるシステムモデルを視覚化した一例を示す図である。本実施の形態に係るシミュレーション装置100は、3次元仮想空間内のモデルを任意の方向からレンダリングすることができる。すなわち、視覚化されるシステムモデルの視点はユーザが任意に変更できる。
図10を参照して、把持(ピック)されるワークを搬送するコンベア230、および、配置(プレース)されたワークを搬送するコンベア240が並列に配置されている。そして、コンベア230およびコンベア240に対応付けて、2つのロボット311および313が配置されている。このシステムモデルでは、紙面左側から紙面右側に向けてワーク232がコンベア230により搬送される。ワーク232が予め設定されたトラッキングエリア231またはトラッキングエリア233に到着すると、それぞれロボット311またはロボット313が到着したワーク232を把持して、コンベア240にワークを配置(プレース)する。ロボット311およびロボット313は、それぞれコンベア240に関連付けて設定されたトラッキングエリア235および237にワーク232を配置する。コンベア230を搬送されるワーク232はランダムな方向を向いているが、コンベア240に配置される場合には、予め設定された向きに揃えられるとする。
アプリケーションの一例として、コンベア230上には、少なくとも2種類のワーク232が存在する。ロボット311は、ある特定の種別のワークをピック&プレースするように制御され、ロボット313は、別の種別のワークをピック&プレースするように制御される。ワークの形状などが種別に応じて異なっている場合もあり、このような場合には、各種別のワークにそれぞれ適したロボットツールを装着したロボットを専用化して使用することが好ましいからである。
3次元仮想空間において、コンベア240の上側には、接地判定高さで定義される領域を示す、半透明(所定の透過率をもった有色)のオブジェクト250が重ねて表示されている。このオブジェクト250は、ユーザの設定操作によって、非表示とすることもできる。このようなオブジェクト250を表示することで、ユーザは、システムモデルにおいて接地判定高さがどの範囲に設定されているのかを一見して把握することができる。
接地判定高さについては、シミュレーション対象のシステム(アプリケーション)に応じて、任意に設定できるようにしてもよい。すなわち、シミュレーション装置100は、接地判定高さ(接地したと判定される予め定められた範囲の大きさ)の設定を受付ける入力手段を有するようにしてもよい。
図11は、本実施の形態に係るシミュレーション装置100における接地判定高さを設定するユーザインターフェイス画面の一例を示す模式図である。図11(A)を参照して、設定入力画面300は、接地判定高さを入力するための入力欄302を有しており、ユーザは、この入力欄302に、直接またはボタン304を操作して、所望の値を入力することができる。
さらに、ワークの種別(品種や形状など)に応じて、それぞれ別々の接地判定高さを設定できるようにしてもよい。図11(B)に示す設定入力画面310は、種別1のワーク用の入力欄312と、種別2のワーク用の入力欄316とを有している。ユーザは、入力欄312に対しては、直接またはボタン314を操作して、また、入力欄316に対しては、直接またはボタン318を操作して、それぞれ所望の接地判定高さを入力することができる。
なお、接地判定高さがゼロに設定されたとしても、判定誤差などを吸収するために、ある程度のマージンを設定しておくことが好ましい。
図12は、本実施の形態に係るシミュレーション装置100において接地判定高さがゼロに設定されたときの接地判定範囲を説明するための模式図である。図12に示すように、接地判定高さがゼロに設定されたとしても、コンベア240(プレース側コンベア)上には、所定高さの接地と判定される領域(図10に示すオブジェクト250に相当)が設定される。この領域の高さとしては、システムモデルでの位置管理の精度に応じて設定される。
このような接地判定高さにマージンを設定することで、ワークがコンベアと接触したか否かを判断する処理(接触判定)において、コンベアに接触間近の位置でワークがロボットによって離されたような場合に、接触しているとは判断されない不具合を防止することができる。
<G.他のワークとの接触判断の詳細>
次に、ワークが他のワークに接触したか否かを判断する処理(図8のステップS28の後半の処理)について詳細を説明する。すなわち、上述の図3(B)を参照して説明したように、先に搬送面に配置されているワークに他のワークが積み重ねて配置されるような場合を想定する。
図13は、本実施の形態に係るシミュレーション装置100における接触判定マージンを説明するための模式図である。図13(A)を参照して、コンベアの搬送面に配置されたワーク232には、他のワークとの接触を判定するための余裕量として、接触判定マージンがワーク232の周囲に設定される。接触判定マージンによって規定される領域260内に、ワークが配置されると、2つのワークは互いに関連付けられて、コンベアに同期して移動するように処理される。図10に示すような接地判定高さで定義される領域を示すオブジェクト250と同様に、領域260を半透明のオブジェクトなどを用いて視覚化してもよい。この視覚化によって、ユーザは接触判定マージンにて規定される領域を一見して把握できる。
接触判定マージンをワーク232の周囲に設定するのは、例えば、同一の容器に複数のワークを配置するようなシステムでは、先行のワークの上に別のワークを厳密に重ねる必要はなく、先行のワークの周囲に別のワークを配置すれば済む。このようなシステムにおいては、ワーク232の上面だけではなく、その周囲にも接触判定マージンを設定することが好ましい。また、コンベアの搬送面におけるワーク232の向きが不定であるシステムにおいては、ワーク232の特定の面についてのみ接触判定マージンを設定するのではなく、全周にわたって接触判定マージンを設定することが好ましい。一方で、ワーク同士を重ねるアプリケーションであれば、接触判定マージンをワーク232の上面側にのみ設定するようにしてもよい。
図13(B)には、図13(A)のA−A断面図を示す。接触判定マージンを含む判定領域の大きさ(領域高さHm)は任意に設定することができるが、ワーク232の高さを基準に決定してもよい。例えば、3次元仮想空間内のワーク232の高さに応じて、接触判定マージンの大きさを決定してもよい。例えば、以下のような数式に従って、ワーク232の高さの定数倍から領域高さHmを算出してもよい。
領域高さHm=α×ワークの高さh
接触判定マージン=(α−1)×ワークの高さh
但し、α>1(const)
あるいは、上述の図11に示すユーザインターフェイス画面と同様に、ユーザが、接触判定マージンの大きさを任意に設定できるようにしてもよい。
さらに、ワークの各面ごとにそれぞれ独立した接触判定マージンを設定してもよいし、ワークの種別(品種や形状など)に応じて、それぞれ別々の接触判定マージンを設定できるようにしてもよい。
図14は、本実施の形態に係るシミュレーション装置における他のワークとの接触判断の概要を説明するための模式図である。図14を参照して、ロボットアーム214の先端のロボットツール216によるワーク232の吸着が解除された時点において、ワーク232の下側に配置されているワーク242との間の距離が算出され、接触判定マージンによって規定されるワーク242の領域260内に、ワーク232が入っていれば、ワーク232はワーク242に接触していると判断される。
具体的な算出手順の一例としては、ワーク232の重心を基準として、ワーク232の重心の真下にあるワーク242との距離d1と、ワーク232の重心からワーク232の底面までの距離d2とが算出される。そして、距離d1と距離d2との差が接触判定マージン以下であれば、ワーク232がワーク242に接触したと判断される。この場合には、ワーク232およびワーク242は、一体化して、コンベア240と同期して移動するように処理される。
図15は、図8に示すステップS28の後半部分の詳細な処理手順を示すフローチャートである。図15を参照して、シミュレーション装置100は、制御指令の対象となったロボットが吸着していたワークの真下にいずれかのワークが存在するか否かを判断する(ステップS2811)。制御指令の対象となったロボットが吸着していたワークの真下にいずれかのワークが存在しなければ(ステップS2811においてNOの場合)、シミュレーション装置100は、制御指令の対象となったロボットが吸着していたワークは他のワークに接触していないと判断する(ステップS2812)。そして、図8のステップS28以降の処理へ戻る。
制御指令の対象となったロボットが吸着していたワークの真下にいずれかのワークが存在していれば(ステップS2811においてYESの場合)、シミュレーション装置100は、対象ワークの重心から当該対象ワークの真下にあるワークまでの距離d1を算出する(ステップS2813)とともに、対象ワークの重心から当該対象ワークの底面までの距離d2を算出する(ステップS2814)。そして、シミュレーション装置100は、距離d1と距離d2との差が接触判定マージン以下であるか否かを判断する(ステップS2815)。
距離d1と距離d2との差が接触判定マージン以下であれば(ステップS2815においてYESの場合)、シミュレーション装置100は、対象ワークが他のワークに接触していると判断する(ステップS2816)。そして、シミュレーション装置100は、対象ワークが当該対象ワークの真下にあるワークの上に重ねて配置されるように、対象ワークの位置を補正する(ステップS2817)。すなわち、図14に示すように、ワーク232とワーク242との間に存在するいくらかの距離をゼロにするように、ワーク232の位置が更新される。そして、図8のステップS28以降の処理へ戻る。
一方、距離d1と距離d2との差が接触判定マージンを超えていれば(ステップS2815においてNOの場合)、シミュレーション装置100は、制御指令の対象となったロボットが吸着していたワークは他のワークに接触していないと判断する(ステップS2812)。そして、図8のステップS28以降の処理へ戻る。
以上のような処理によって、あるワークが他のワークに接触したか否かが判断される。あるワークが他のワークに接触したと判断されると、当該ワークが他のワークの上に重ねられコンベアに同期して移動するように処理される。
図16は、本実施の形態に係るシミュレーション装置におけるワーク同士の関連付けを説明するための模式図である。図16(A)を参照して、ワーク1とワーク2とが関連付けられると、両ワークの位置に対して、同一の変化量が与えられる。図16に示す例では、あるタイミングにおいて、ワーク1の座標値(x1,y1,z1)およびワーク2の座標値(x2,y2,z2)であるとする。何らかのイベントによって、図16(B)に示すように、ワーク1の座標値が(x1,y1,z1)から(x1+Δx,y1+Δy,z1+Δz)に変化したとする。すると、図16(C)に示すように、ワーク2の座標値についても同じ変化量(Δx,Δy,Δz)が与えられ、ワーク2の座標値は(x2,y2,z2)から(x2+Δx,y2+Δy,z2+Δz)に変化する。
上述したように、本実施の形態に係るシミュレーション装置100は、いずれかの搬送面に配置されたとみなされる第1のワークの表面から予め定められた範囲(接触判定マージン)内にロボットが第2のワークを配置すると、当該第1のワークおよび当該第2のワークの位置を互いに関連付けて更新する。このように、関連付けられたワークの間で、図16に示すような処理を実施することで、複数のワークを一体として移動させることができる。
<H.オブジェクト同士の関連付けに対する優先度>
上述したように、本実施の形態に従うシミュレーション装置100は、ワークと搬送面とを互いに関連付けて、あるいは、ワークと他のワークとを互いに関連付けて、当該ワークの位置を更新することができる。但し、接地判定/接触判定のタイミングにおいて、1つのワークが搬送面に接地するとともに、他のワークとも接触していると判定される場合もあり得る。このような場合には、対象のワークがいずれのオブジェクトに関連付けるかについて優先度を設定しておくことが好ましい。
例えば、ワーク232がプレース側のコンベア240に接地していると判定された場合に、当該プレース側のコンベア240に先に配置されている他のワークとも接触していると判定されると、コンベア240との関連付けを優先するような設定ができるようにしてもよい。あるいは、その逆で、ワーク232の関連付け先を、コンベア240ではなく、他のワークを優先するようにしてもよい。
この優先度の設定としては、プレース側のコンベア240に「1」を設定し、他のワークに「2」を設定しておき、複数のオブジェクトとの間で接地/接触判定がなされると、対象となるオブジェクトのうち、より優先度が高いものを選択するようにしてもよい。このような構成を採用することで、意図しないオブジェクトにワークが関連付けられてしまう事態を回避できる。
このように、本実施の形態に従うシミュレーション装置100は、ロボット210がワークを配置した範囲内に、搬送面および他の対象物が存在する場合に、予め定められた優先度に従って、当該ワークを搬送面および他のワークのうちいずれか一方と関連付ける機能を有する。
<I.ワークの位置更新>
次に、本実施の形態に係るシミュレーション装置100によるワーク位置の更新処理について説明する。本実施の形態に従うシミュレーション装置100では、視覚化モジュール170(図7)が入力画像に対してワークを探索するための画像計測処理を実施し、その探索されたワークが3次元仮想空間内に現れることになる。
画像計測処理の計測結果は、入力画像内の探索された部分(オブジェクト)の中心位置を示す座標値(x,y)を含む。この座標値(x,y)は、画像計測処理で用いられるローカル座標系での値であり、3次元仮想空間内の座標値に変換する必要がある。
具体的には、シミュレーション装置100は、画像計測処理で用いられる入力画像に設定されるカメラ座標系の座標(x,y)を、3次元仮想空間を定義するワールド座標系の座標(X,Y,Z)に変換する変換係数A〜Gを用いて、視覚センサシミュレータ150にて検出されたワークの座標値(x,y)からコントローラシミュレータ160に入力されたときの初期位置を以下のように算出する。
ワークの初期位置X0=A×x+B×y+C
ワークの初期位置Y0=D×x+E×y+F
ワークの初期位置Z0=G
エンコーダ値の1パルスあたりの、コンベアのX軸方向の移動量Xd、Y軸方向の移動量Yd、コンベアのZ軸方向の移動量Zd(但し、基本的にはゼロ)を用いて、エンコーダ値の変位量Etにおけるワークの位置は、以下のように算出できる。
ワークの位置(X)=Xd×Et+X0
ワークの位置(Y)=Yd×Et+Y0
ワークの位置(Z)=Zd×Et+Z0
なお、エンコーダ値の絶対値を用いる場合には、各ワークが初期表示された時点のエンコーダ値から偏差を上述の算出式に適用することもできる。シミュレーション装置100は、このような算出式に従って、各ワークの位置を順次更新する。
<J.付加的なオブジェクト>
上述の説明においては、複数のワーク同士を関連付けてコンベアに同期して移動させるアプリケーションについて説明した。このようなアプリケーションの具体例として、同一の容器に複数のワークを配置するような処理が想定される。このようなアプリケーションのシミュレーションを視覚化する際には、容器についても併せて表示することが好ましい。
図17は、本実施の形態に係るシミュレーション装置100によるシミュレーション結果を視覚化した一例を示す図である。図17を参照して、コンベア240上には、ユーザが予め設定した間隔に沿って、容器に相当する複数のオブジェクト270が表示される。オブジェクト270の間隔は、例えば、要求される仕様(タクトタイムなど)に基づいて予め設定される。この設定に基づいて、シミュレーション結果を再現する際に、コンベア240上にオブジェクト270が重ねて表示される。
オブジェクト270の位置は、ワークの配置先を定める基準を示すものとして用いることができる。オブジェクト270に加えて、基準線280を表示するようにしてもよい。
オブジェクト270の形状・色・大きさなどについても、ユーザが予め任意に設定することができるようにしてもよい。さらに、オブジェクト270とワーク232との位置関係を一見して把握できるように、オブジェクト270を透明または半透明で表示してもよい。
図17に示すように、ワーク232に加えて、付加的なオブジェクト270および/または基準線280を仮想的に表示することで、ワークに対する処理が設計どおりに動作しているか否かを視覚的に評価することができる。
<K.ワークの高さ方向の位置補正>
次に、ワークの高さ方向の位置補正について説明する。図4および図5を参照して説明したように、コンベアの搬送面から接地判定高さの範囲内でワークの吸着が解除されると、ワークはコンベアに接地したとみなされ、ワークはコンベアと同期して移動するように処理される。
この際、ワークの高さとしては、吸着が解除されたタイミングの高さを維持してもよいし、ワークの高さ方向の位置を補正して、コンベアの搬送面に配置されるようにしてもよい。
図18は、本実施の形態に係るシミュレーション装置における高さ方向の位置補正を説明するための模式図である。図18を参照して、ワーク232がコンベアの接地判定高さ以内の位置で吸着が解除されると、高さ方向の位置が補正されて、コンベアの搬送面に配置された上で、コンベア240と同期して移動するように処理される。
図18に示すように、シミュレーション装置100(図7のシステムモデルエミュレータ190)は、コンベアの搬送面から接地判定高さの範囲内にロボットがワークを配置すると、当該ワークが対象の搬送面と接するように、3次元仮想空間内の当該ワークの高さ方向の位置を更新してもよい。このようなワークの高さ方向の位置補正を行うことで、より現実の挙動に近いシミュレーションを行うことができる。また、ワークを重ねて配置するようなシミュレーションを行う際にも好適である。
<L.ロボットの移動に伴うワークの位置補正>
次に、ロボットがワークを配置(プレース)する際の挙動を考慮したワークの位置補正について説明する。現実のピック&プレース動作においては、ワークを配置する直前に、ロボットはワークの配置先であるコンベアの移動速度に併せて水平方向に移動する。すなわち、ロボットとコンベアとの間の相対速度が可能な限りゼロになるようにしてから、ワークの吸着を解除する。
図19は、本実施の形態に係るシミュレーション装置100におけるワークの位置補正処理を説明するための模式図である。図19(A)を参照して、ワークを配置する直前(時刻T1)において、ロボットはコンベア240の移動速度と同期して水平方向に移動する。
図19(B)に示すように、ロボットアーム214の先端のロボットツール216によるワークの吸着が解除された直後(T1+Δt)には、直前のロボットの水平移動に伴う慣性によって、水平方向にある程度の距離(ΔL)だけ移動していると考えられる。
そのため、ロボットからの吸着が解除された時点のワークの位置に対して、この水平方向のオフセット分(距離ΔL)を補正した上で、ワークがコンベアの搬送面に接地したか否かを判断するようにしてもよい。すなわち、シミュレーション装置100(図7のシステムモデルエミュレータ190)は、ロボットがワークの把持を開放したときの3次元仮想空間内の水平方向の速度に応じて、3次元仮想空間内の当該ワークの水平方向の位置を補正するようにしてもよい。
図19(C)に示すように、厳密に考えると、ロボットアーム214の先端のロボットツール216によるワークの吸着が解除された直後(T1+Δt)には、直前のロボットの水平移動に伴う慣性によって、水平方向にある程度の距離(ΔL)だけ移動するとともに、重量によって高さ方向にある程度の距離(ΔH)だけ移動していると考えられる。
そのため、ロボットからの吸着が解除された時点のワークの位置に対して、この水平方向のオフセット分(距離ΔL)および高さ方向のオフセット分(距離ΔH)を補正した上で、ワークがコンベアの搬送面に接地したか否かを判断するようにしてもよい。
図19(B)および図19(C)に示すオフセット分の補正については、直前のロボットの移動速度(および、必要に応じて、加速度)を考慮して、オフセット分の大きさを都度計算するようにしてもよい。あるいは、計算量を低減するために、予め定められた固定値をオフセット分として用いるようにしてもよい。
このような補正を行うことで、より現実の挙動を反映したシミュレーションを行うことができる。
<M.その他の実施の形態>
上述の実施の形態においては、ピック側コンベア上を連続的に搬送されるワークを、ロボットで把持してプレース側コンベアまで搬送し、プレース側コンベア上に配置する構成について例示した。但し、把持されるワークがピック側コンベア上を連続的に配置される構成に限定されることなく、静止している複数のワークが(例えば、バラ積みされている)から指定されたワーク、または、任意のワークをロボットで把持するようなアプリケーションにも適用可能である。
<N.利点>
本実施の形態に係るシミュレーション装置100によれば、例えば、ピック&プレース動作などを行うコンベアシステムにおいて、コンベアの搬送面より上側からワークが離されるような態様でワークが搬送面に配置されるような場合であっても、ワークをコンベアの移動に同期付けて適切にトラッキングすることができる。
また、コンベアの搬送面に先にワークが配置されており、その先に配置されているワークの近傍で別のワークがロボットから離されるような処理がなされる場合であっても、ワーク同士を関連付けて、コンベアの移動に同期付けて両者を適切にトラッキングすることができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1,2 コンベアトラッキングシステム、232,242 ワーク、100 シミュレーション装置、102 プロセッサ、104 主メモリ、106 入力部、108 表示部、110 ネットワークインターフェイス、112 光学ドライブ、114 光学ディスク、116 通信インターフェイス、118 内部バス、120 ハードディスク、122 OS、124 シミュレーションプログラム、140 画像データ群、150 視覚センサシミュレータ、152 設定パラメータ、160 コントローラシミュレータ、162 制御プログラム、170 視覚化モジュール、180 ユーザインターフェイスモジュール、182 モデル構築モジュール、184 3次元設計データ、190 システムモデルエミュレータ、192 オブジェクト属性情報、200 制御装置、202 ネットワーク、210,311,313 ロボット、214 ロボットアーム、216 ロボットツール、220 視覚センサ、221 撮像エリア、222 撮像部、230,240 コンベア、231,233,235 トラッキングエリア、234,244 駆動ローラ、236,246 エンコーダ、250,270 オブジェクト、260 領域、280 基準線。

Claims (9)

  1. 配置された対象物を連続的に移動させる搬送面を有する搬送機と、前記対象物を把持して前記搬送面に配置可能な処理装置とを含むシステムの挙動を推定するシミュレーション装置であって、
    前記システムを3次元仮想空間内に仮想的に構築する構築手段と、
    前記搬送面に配置された複数の対象物についての前記3次元仮想空間内の位置を、対応する搬送機の移動量に基づいてそれぞれ更新するとともに、前記処理装置により把持されている対象物の前記3次元仮想空間内の位置を、前記処理装置の挙動に関連付けて更新する、トラッキング手段と、
    前記3次元仮想空間内の各対象物の位置に基づいて、前記処理装置の挙動についての制御指令を生成する生成手段とを備え、
    前記トラッキング手段は、
    前記搬送面から予め定められた範囲内に前記処理装置が第1の対象物を配置すると、前記第1の対象物と前記搬送面との位置を互いに関連付けて更し、
    前記搬送面から予め定められた範囲内に前記処理装置が第2の対象物を配置した場合に、前記第2の対象物の表面から予め定められた範囲内に前記搬送面および前記第1の対象物が存在するときには、予め定められた優先度に従って、前記搬送面および前記第1の対象物のうちいずれか一方と前記第2の対象物との位置を互いに関連付けて更新する、シミュレーション装置。
  2. 前記トラッキング手段は、前記3次元仮想空間内の対象物の高さに応じて、前記予め定められた範囲の大きさを決定する、請求項に記載のシミュレーション装置。
  3. 前記予め定められた範囲の大きさの設定を受付ける入力手段をさらに備える、請求項1または2に記載のシミュレーション装置。
  4. 前記予め定められた範囲を示す3次元仮想空間内の領域を半透明のオブジェクトで表現される、請求項1〜のいずれか1項に記載のシミュレーション装置。
  5. 前記トラッキング手段は、前記搬送面から予め定められた範囲内に前記処理装置が対象物を配置すると、当該対象物が前記搬送面と接するように、前記3次元仮想空間内の当該対象物の高さ方向の位置を更新する、請求項1〜のいずれか1項に記載のシミュレーション装置。
  6. 前記トラッキング手段は、前記処理装置が対象物の把持を開放したときの前記3次元仮想空間内の水平方向の速度に応じて、前記3次元仮想空間内の当該対象物の水平方向の位置を補正する、請求項1〜のいずれか1項に記載のシミュレーション装置。
  7. 前記3次元仮想空間内の搬送面に予め設定される領域に関連付けて、被写体として対象物の少なくとも一部を含む入力画像に対する画像計測処理を行う計測手段をさらに備え、
    前記トラッキング手段は、前記計測手段による対象物の検出に応答して、前記3次元仮想空間内に当該検出された対象物を出現させる、請求項1〜のいずれか1項に記載のシミュレーション装置。
  8. 配置された対象物を連続的に移動させる搬送面を有する搬送機と、前記対象物を把持して前記搬送面に配置可能な処理装置とを含むシステムの挙動を推定するコンピュータによって実行されるシミュレーション方法であって、
    前記システムを3次元仮想空間内に仮想的に構築するステップと、
    前記搬送面に配置された複数の対象物についての前記3次元仮想空間内の位置を、対応する搬送機の移動量に基づいてそれぞれ更新するとともに、前記処理装置により把持されている対象物の前記3次元仮想空間内の位置を、前記処理装置の挙動に関連付けて更新するステップと、
    前記3次元仮想空間内の各対象物の位置に基づいて、前記処理装置の挙動についての制御指令を生成するステップとを含み、
    前記更新するステップは、
    前記搬送面から予め定められた範囲内に前記処理装置が第1の対象物を配置すると、前記第1の対象物と前記搬送面との位置を互いに関連付けて更新するステップと、
    前記搬送面から予め定められた範囲内に前記処理装置が第2の対象物を配置した場合に、前記第2の対象物の表面から予め定められた範囲内に前記搬送面および前記第1の対象物が存在するときには、予め定められた優先度に従って、前記搬送面および前記第1の対象物のうちいずれか一方と前記第2の対象物との位置を互いに関連付けて更新するステップとを含む、シミュレーション方法。
  9. 配置された対象物を連続的に移動させる搬送面を有する搬送機と、前記対象物を把持して前記搬送面に配置可能な処理装置とを含むシステムの挙動を推定するシミュレーションプログラムであって、前記シミュレーションプログラムはコンピュータに
    前記システムを3次元仮想空間内に仮想的に構築するステップと、
    前記搬送面に配置された複数の対象物についての前記3次元仮想空間内の位置を、対応する搬送機の移動量に基づいてそれぞれ更新するとともに、前記処理装置により把持されている対象物の前記3次元仮想空間内の位置を、前記処理装置の挙動に関連付けて更新するステップと、
    前記3次元仮想空間内の各対象物の位置に基づいて、前記処理装置の挙動についての制御指令を生成するステップとを実行させ、
    前記更新するステップは、
    前記搬送面から予め定められた範囲内に前記処理装置が第1の対象物を配置すると、前記第1の対象物と前記搬送面との位置を互いに関連付けて更新するステップと、
    前記搬送面から予め定められた範囲内に前記処理装置が第2の対象物を配置した場合に、前記第2の対象物の表面から予め定められた範囲内に前記搬送面および前記第1の対象物が存在するときには、予め定められた優先度に従って、前記搬送面および前記第1の対象物のうちいずれか一方と前記第2の対象物との位置を互いに関連付けて更新するステップとを含む、シミュレーションプログラム。
JP2015225784A 2015-11-18 2015-11-18 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム Active JP6458713B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015225784A JP6458713B2 (ja) 2015-11-18 2015-11-18 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
CN201610991540.XA CN106896790B (zh) 2015-11-18 2016-11-10 模拟装置以及模拟方法
US15/366,716 US10353383B2 (en) 2015-11-18 2016-12-01 Simulator, simulation method, and simulation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015225784A JP6458713B2 (ja) 2015-11-18 2015-11-18 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム

Publications (2)

Publication Number Publication Date
JP2017097427A JP2017097427A (ja) 2017-06-01
JP6458713B2 true JP6458713B2 (ja) 2019-01-30

Family

ID=58816957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015225784A Active JP6458713B2 (ja) 2015-11-18 2015-11-18 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム

Country Status (3)

Country Link
US (1) US10353383B2 (ja)
JP (1) JP6458713B2 (ja)
CN (1) CN106896790B (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6601179B2 (ja) * 2015-11-18 2019-11-06 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
US20180029235A1 (en) * 2016-07-28 2018-02-01 X Development Llc Error Accrual and Mitigation During Robotic Process
US10220511B2 (en) * 2016-07-28 2019-03-05 X Development Llc Customized robotic installation based on measurements collected on site
US10049589B1 (en) * 2016-09-08 2018-08-14 Amazon Technologies, Inc. Obstacle awareness based guidance to clear landing space
US10121117B1 (en) 2016-09-08 2018-11-06 Amazon Technologies, Inc. Drone location signature filters
US10198955B1 (en) 2016-09-08 2019-02-05 Amazon Technologies, Inc. Drone marker and landing zone verification
JP6450727B2 (ja) * 2016-10-28 2019-01-09 ファナック株式会社 ロボットが行う物品整列作業のシミュレーションのための装置、方法、プログラム及び記録媒体
JP6972873B2 (ja) * 2017-10-04 2021-11-24 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP6734306B2 (ja) * 2018-01-25 2020-08-05 ファナック株式会社 物品搬送システムおよびロボットシステム
JP6859967B2 (ja) * 2018-02-16 2021-04-14 オムロン株式会社 コンベアトラッキングシステムおよびキャリブレーション方法
CN108638066B (zh) * 2018-05-16 2020-07-14 广州视源电子科技股份有限公司 一种用于机器人的传送带同步跟踪的装置、方法及系统
US11472035B2 (en) * 2018-06-26 2022-10-18 Fanuc America Corporation Augmented reality visualization for robotic picking system
US10576526B2 (en) * 2018-07-03 2020-03-03 Komatsu Industries Corporation Workpiece conveying system, and workpiece conveying method
JP7124509B2 (ja) * 2018-07-19 2022-08-24 オムロン株式会社 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
EP3835005A4 (en) * 2018-08-09 2021-07-28 Fuji Corporation SIMULATION PROCESS AND SIMULATION SYSTEM
US10399778B1 (en) * 2018-10-25 2019-09-03 Grey Orange Pte. Ltd. Identification and planning system and method for fulfillment of orders
CN109625922A (zh) * 2018-11-30 2019-04-16 安徽智训机器人技术有限公司 一种用于智能制造的自动上下料系统及方法
US20220088783A1 (en) * 2019-01-21 2022-03-24 Abb Schweiz Ag Method and Apparatus for Manufacturing Line Simulation
JP7000363B2 (ja) * 2019-01-25 2022-01-19 ファナック株式会社 ロボット制御装置および管理システム
US11080327B2 (en) * 2019-04-18 2021-08-03 Markus Garcia Method for the physical, in particular optical, detection of at least one usage object
JP2020199625A (ja) * 2019-06-13 2020-12-17 ファナック株式会社 シミュレーション装置
JP7368147B2 (ja) * 2019-09-02 2023-10-24 ファナック株式会社 搬送シミュレーション装置、及び搬送システム
JP7388074B2 (ja) * 2019-09-17 2023-11-29 オムロン株式会社 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
JP2022043871A (ja) * 2020-09-04 2022-03-16 オムロン株式会社 制御装置、制御システムおよびプログラム
CN114968217A (zh) * 2021-02-25 2022-08-30 西门子股份公司 数控机床系统的编程方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3568678B2 (ja) 1996-03-26 2004-09-22 三菱電機株式会社 運動連鎖模擬システム
JP3632127B2 (ja) * 2001-07-30 2005-03-23 株式会社日立製作所 有限要素メッシュの生成装置
JP4056542B2 (ja) 2005-09-28 2008-03-05 ファナック株式会社 ロボットのオフライン教示装置
JP4238256B2 (ja) * 2006-06-06 2009-03-18 ファナック株式会社 ロボットシミュレーション装置
JP4413891B2 (ja) * 2006-06-27 2010-02-10 株式会社東芝 シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラム
JP4653836B2 (ja) * 2008-12-12 2011-03-16 ファナック株式会社 シミュレーション装置
JP5316563B2 (ja) 2011-02-15 2013-10-16 オムロン株式会社 画像処理装置および画像処理システム
JP5773200B2 (ja) * 2011-07-28 2015-09-02 株式会社ダイフク 処理設備
JP5838873B2 (ja) * 2012-03-15 2016-01-06 オムロン株式会社 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
JP5426719B2 (ja) * 2012-05-18 2014-02-26 ファナック株式会社 ロボットシステムの動作シミュレーション装置
JP5978790B2 (ja) * 2012-06-11 2016-08-24 富士通株式会社 シミュレーション装置、シミュレーション方法、シミュレーションプログラム、および搬送シミュレーションプログラム
US20130335405A1 (en) * 2012-06-18 2013-12-19 Michael J. Scavezze Virtual object generation within a virtual environment
JP6015282B2 (ja) * 2012-09-21 2016-10-26 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP6115158B2 (ja) * 2013-01-31 2017-04-19 富士通株式会社 プログラム、演算装置および演算方法
US10664975B2 (en) * 2014-11-18 2020-05-26 Seiko Epson Corporation Image processing apparatus, control method for image processing apparatus, and computer program for generating a virtual image corresponding to a moving target
DE102015205220A1 (de) * 2015-03-23 2016-09-29 Osram Gmbh Tracking-System und Verfahren zum Tracken eines Trägers einer mobilen Kommunikationseinheit
JP6601179B2 (ja) * 2015-11-18 2019-11-06 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP6551184B2 (ja) * 2015-11-18 2019-07-31 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム

Also Published As

Publication number Publication date
JP2017097427A (ja) 2017-06-01
CN106896790A (zh) 2017-06-27
US10353383B2 (en) 2019-07-16
CN106896790B (zh) 2020-03-10
US20170235300A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
JP6458713B2 (ja) シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP6540472B2 (ja) シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
US10262406B2 (en) Simulator, simulation method, and simulation program
US10401844B2 (en) Simulator, simulation method, and simulation program
JP5897624B2 (ja) ワークの取出工程をシミュレーションするロボットシミュレーション装置
Lampen et al. Combining simulation and augmented reality methods for enhanced worker assistance in manual assembly
CN100590629C (zh) 用于机器人仿真的装置、程序、记录介质以及方法
US9569568B2 (en) Robot simulation system which simulates takeout process of workpiece
JP7388074B2 (ja) シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
EP3330815B1 (en) Simulator, simulation method, and simulation program
JP6902369B2 (ja) 提示装置、提示方法およびプログラム、ならびに作業システム
Manou et al. Off-line programming of an industrial robot in a virtual reality environment
JP2019032788A (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP2005182759A (ja) 多関節物体と環境との間の衝突を回避しながらの仮想環境における仮想多関節物体の動き
WO2021195916A1 (zh) 动态手部仿真方法、装置和系统
JP3076841B1 (ja) 実環境適応型ロボットの教示プログラム作成方法
EP3330813B1 (en) Simulator, simulation method, and simulation program
Heidari et al. Virtual reality synthesis of robotic systems for human upper-limb and hand tasks
WO2018180298A1 (ja) ロボット教示装置、ロボット教示装置の制御方法及びロボット教示プログラム
US20210271791A1 (en) Simulation method and simulation system
JP7424122B2 (ja) シミュレーション装置およびプログラム
TW202246927A (zh) 機器人模擬裝置
JP2021117519A (ja) シミュレーション装置およびシミュレーションプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181113

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: 20181127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181210

R150 Certificate of patent or registration of utility model

Ref document number: 6458713

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150