JP7260001B2 - プログラム生成装置、プログラム生成方法、及び生成プログラム - Google Patents

プログラム生成装置、プログラム生成方法、及び生成プログラム Download PDF

Info

Publication number
JP7260001B2
JP7260001B2 JP2021570561A JP2021570561A JP7260001B2 JP 7260001 B2 JP7260001 B2 JP 7260001B2 JP 2021570561 A JP2021570561 A JP 2021570561A JP 2021570561 A JP2021570561 A JP 2021570561A JP 7260001 B2 JP7260001 B2 JP 7260001B2
Authority
JP
Japan
Prior art keywords
program
change
attributes
tool
parts
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
JP2021570561A
Other languages
English (en)
Other versions
JPWO2021144911A1 (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
Publication of JPWO2021144911A1 publication Critical patent/JPWO2021144911A1/ja
Application granted granted Critical
Publication of JP7260001B2 publication Critical patent/JP7260001B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/41805Total 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 assembly
    • 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/40033Assembly, microassembly
    • 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/40269Naturally compliant robot arm
    • 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

本発明は、プログラム生成装置、プログラム生成方法、及び生成プログラムに関する。
近年、製造ライン等の製品を製造する場面において、部品の組付け等の作業を遂行するロボット装置の開発が進んでいる。製品を組み立てる組立作業の一連の動作をロボット装置に教示する場合、一般的には、組立作業の対象となる各部品の初期位置(供給位置)、目標状態等の条件が与えられる。その上で、ロボット装置を人手により直接的に動作させたり(ダイレクトティーチング)、ティーチングペンダントの利用、プログラミング等によりロボット装置の動作を作り込んだり等の様々な手法で、組立作業をロボット装置に実行させるための動作プログラムを生成する。
特許文献1には、組立作業の一連の動作をロボット装置に教示するための方法が提案されている。具体的に、特許文献1で提案される方法では、対象製品を組み立てる際の一連の組立作業の順序データ及び各部品の3Dデータに基づいて、一連の組立作業に含まれる一の組立作業の開始時における対象製品の組立状態を再現し、再現された組立状態に基づいて、一の組立作業に係る組立作業ロボットに対する教示点を導出する。これにより、特許文献1で提案される方法によれば、一連の組立作業の順序が事後的に変更された場合でも、当該変更に起因する教示点の変更が容易となる。
特開2018-083277号公報
本件発明者らは、従来の方法では、次のような問題点があることを見出した。すなわち、製品の組立作業を実施する現場では、対象部品の在庫がなくなる、対象部品の生産が終了した、設計変更を行った、複数の部品を使い分ける、対象部品を規格品に変更する、他の製品の組立作業に動作プログラムを転用する等の理由により、組立順序は変更しないが、使用する複数の部品の一部を変更することがある。一部の部品を変更した場合、変更前の部品と変更後の部品と間で、例えば、形状、寸法等の属性が異なっていると、変更前の部品に対する動作をそのまま変更後の部品に適用することは困難であり、変更部品に対する作業内容が変更され得る。また、変更部品との間で依存関係を有する部品が存在する場合には、製品内での変更部品の状態が変わることに応じて、当該部品に対する作業内容も変更され得る。
一例として、グリッパを使用して、複数の部品それぞれを順に積層することで製品を組み立てる場面において、組立順序は変更しないが、中間に配置される一部品を寸法の異なる他の部品に変更することを想定する。この場面では、変更部品を把持する際のグリッパの適切な開口幅が変更され得る。また、変更部品の上に配置される部品の製品内での適切な配置位置も変更され得る。
したがって、組立順序の変更は伴わなくても、製品に使用する部品が変更されると、組立作業に含まれる少なくとも一部の作業の内容が変更され得る。部品変更の前後で作業の内容が変更されると、該当作業を適切に実施するためのロボット装置に対する指令も変更される。上記の例では、変更後の部品を適切に把持するため、部品変更後のグリッパの駆動量が変更される。また、変更後の部品上に対象部品を適切に配置するため、対象部品を運搬する際のグリッパの移動量が変更される。
従来の方法では、このような部品変更に伴う動作の変更に対応するのが困難である。そのため、部品変更を行う度に、例えば、ダイレクトティーチング等の上記手法により、変更部品及びこれと依存関係を有する部品に関与するロボット装置の動作を手作業で作成することで、部品変更後の組立作業をロボット装置に実行させるための新たな動作プログラムを生成していた。したがって、従来の方法では、製品を構成する部品の少なくとも一部を変更した場合に、影響を受ける全ての動作を手作業で新たに作成する分だけ、部品変更後の組立作業に利用可能な新たな動作プログラムを生成するのに手間がかかるという問題点がある。
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、製品を構成する部品の少なくとも一部に変更が生じた場合に、部品変更後の組立作業に利用可能な新たな動作プログラムを生成する手間を削減するための技術を提供することである。
本発明は、上述した課題を解決するために、以下の構成を採用する。
すなわち、本発明の一側面に係るプログラム生成装置は、複数の部品から製品を組み立てる組立作業の一連の動作をロボット装置に指示するための動作プログラムを取得するデータ取得部と、前記複数の部品のうちの少なくともいずれかの部品を変更する部品変更の要求を受け付ける変更受付部と、各部品の属性を示す属性情報を参照し、前記部品変更の対象に指定された第1部品の属性、及び前記部品変更により前記第1部品と置き換わる第2部品の属性を比較し、前記動作プログラム内で規定される前記一連の動作から、前記第1部品及び前記第2部品の属性の相違に起因して修正の対象となる動作を抽出する動作抽出部と、前記第1部品及び前記第2部品の属性の相違を補償するように、前記動作プログラム内の抽出された前記動作の指令値を修正することで、前記部品変更後の組立作業の一連の動作を前記ロボット装置に指示するための新たな動作プログラムを生成する指令修正部と、を備える。
製品に使用される対象部品を第1部品から第2部品に変更した場合に、第1部品及び第2部品の間で属性(例えば、形状、寸法、重量等)が完全に一致していれば、変更前と同一の動作でも製品の組立作業を適切に遂行可能である。部品変更により動作プログラムの修正が求められる主な要因は、第1部品及び第2部品の間で属性が相違していることである。そこで、当該構成に係るプログラム生成装置は、第1部品及び第2部品の間の属性の相違を属性情報から特定し、特定された属性の相違を補償するように、部品変更により影響を受ける動作の指令値を修正する。これにより、対象部品に第2部品を使用した場合でも適切に製品を組み立て可能な新たな動作プログラムを自動的に生成することができる。したがって、当該構成によれば、製品を構成する部品の少なくとも一部に変更が生じた場合に、部品変更後の組立作業に利用可能な新たな動作プログラムを生成する手間を削減することができる。
上記一側面に係るプログラム生成装置において、前記ロボット装置は、前記組立作業に含まれる前記第1部品に関する作業に使用される第1ツールを備えてもよい。そして、上記一側面に係るプログラム生成装置は、前記第1ツールを含む複数のツールそれぞれの仕様を示す仕様情報を参照し、前記第1部品から前記第2部品への前記部品変更に前記第1ツールの仕様が追従可能か否かを判定する仕様判定部を更に備えてもよい。
例えば、対象部品を運搬する作業にグリッパを使用する場合に、グリッパの最大開口幅を第2部品の寸法が超えている、グリッパの可搬重量を第2部品の重量が超えている等のように、第1部品に関する作業に使用される対象ツールの仕様が第2部品に適合しないことがある。対象ツールの仕様が第2部品に適合しないと、部品変更による属性の相違を補償するように動作の指令値を修正しても、対象ツールに所望の動作を実行させることができず、製品を適切に組み立てることができない可能性がある。当該構成によれば、変更の対象部品に使用される対象ツール(第1ツール)の仕様に起因する動作不良が生じるか否かを検証することができ、これにより、生成された動作プログラムの信頼性の向上を図ることができる。
上記一側面に係るプログラム生成装置は、前記仕様判定部が、前記第1ツールの仕様が前記部品変更に追従不能であると判定した場合に、前記仕様情報を参照し、前記第1ツールと同種の第2ツールであって、前記部品変更に追従可能な仕様を有する第2ツールを前記複数のツールから抽出するツール抽出部を更に備えてもよい。当該構成によれば、変更の対象部品に使用されるツールの仕様に起因する動作不良が生じると推定される場合に、適正な代替ツール(第2ツール)を自動的に抽出することができ、これにより、生成された動作プログラムを修正する手間を軽減することができる。
上記一側面に係るプログラム生成装置において、前記指令修正部は、前記第1ツールから前記第2ツールへの変更を更に補償するように、前記動作プログラム内の抽出された前記動作の指令値を修正することで、前記部品変更後の組立作業の一連の動作を前記ロボット装置に指示するための新たな動作プログラムを生成してもよい。当該構成によれば、ツールの変更に自動的に対応可能な分だけ、部品変更後の組立作業に利用可能な新たな動作プログラムを生成する手間を更に削減することができる。
上記一側面に係るプログラム生成装置において、前記属性は、形状、寸法、及び位置を含んでよく、修正される前記指令値は、前記ロボット装置の幾何学的な動作に関するものであってよい。当該構成によれば、第1部品から第2部品への置き換えによって生じる対象部品の幾何学的な属性の変更に対応した新たな動作プログラムを自動的に生成することができる。これにより、部品変更後の組立作業に利用可能な新たな動作プログラムを生成する手間を削減することができる。
上記一側面に係るプログラム生成装置において、前記属性情報は、幾何学モデルを前記部品毎に含んでよく、前記幾何学モデルは、前記部品毎に設定された、基準点を原点とするローカル座標系上で、前記形状及び前記寸法を表現してもよい。そして、上記一側面に係るプログラム生成装置は、前記第1部品の幾何学モデルの基準点と前記第2部品の幾何学モデルの基準点とが同一の指標で設定されているか否かを判定する指標判定部と、前記指標判定部が、前記第1部品及び前記第2部品の前記基準点が同一の指標で設定されていないと判定した場合、前記動作の指令値を修正する前に、前記第1部品の幾何学モデルの基準点と同一の指標で設定されるように前記第2部品の幾何学モデルの基準点を修正する座標修正部と、を更に備えてもよい。
例えば、異なるオペレータにより幾何学モデルが生成される等の理由によって、一の部品と他の部品との間で幾何学モデルの基準点が異なる指標で設定される場合がある。第1部品と第2部品との間で幾何学モデルの基準点が異なる指標で設定されている場合に、対象部品を第1部品から第2部品にそのまま置き換えると、基準点の指標が異なっている分だけ、第2部品の位置が所望の位置からずれて取り扱われることになる。これに起因して、生成される新たな動作プログラムを実行した際に、ロボット装置の動作に不良が生じる可能性がある。当該構成によれば、新たな動作プログラムを生成する際に、第1部品及び第2部品の幾何学モデルの基準点が同一の指標で設定されていることを担保することができる。これにより、幾何学モデルの基準点の指標が異なっていることに起因して、新たな動作プログラムの実行の際に生じる動作不良を防止することができる。また、各部品の幾何学モデルの基準点を調整する作業を自動化することができる分だけ、部品変更後の組立作業に利用可能な新たな動作プログラムを生成する手間を更に削減することができる。
上記一側面に係るプログラム生成装置において、前記属性は、重量を更に含んでもよい。当該構成によれば、第1部品から第2部品への置き換えによって生じる対象部品の重量の変更に対応した新たな動作プログラムを自動生成することができる。これにより、部品変更後の組立作業に利用可能な新たな動作プログラムを生成する手間を削減することができる。
上記一側面に係るプログラム生成装置は、生成された前記新たな動作プログラムを使用して、前記部品変更後の組立作業における前記ロボット装置の一連の動作をシミュレートするシミュレーション部を更に備えてもよい。上記ツールの仕様及び幾何学モデルの基準点の指標の相違以外の他の要因(例えば、障害物、他の物品の干渉等)により、生成された新たな動作プログラムを実行した際に、ロボット装置の動作に不良が生じる可能性がある。当該構成によれば、新たな動作プログラムによる組立作業をシミュレートすることで、このような他の要因により動作不良が生じるか否かを検証することができる。これによって、生成された動作プログラムの信頼性の向上を図ることができる。
上記一側面に係るプログラム生成装置において、前記修正の対象となる動作を抽出することは、前記複数の部品から前記部品変更の影響を受ける第3部品を特定すること、前記第1部品又は特定された前記第3部品に関する動作を前記一連の動作から特定すること、及び特定された前記動作から、前記第1部品及び前記第2部品の属性の相違に起因して修正の対象となる動作を抽出すること、により構成されてよい。当該構成によれば、部品変更により修正の対象となる動作を適切に抽出することができ、これにより、部品変更後の組立作業に利用可能な新たな動作プログラムを生成する手間を削減することができる。
上記各形態に係るプログラム生成装置の別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
例えば、本発明の一側面に係るプログラム生成方法は、コンピュータが、複数の部品から製品を組み立てる組立作業の一連の動作をロボット装置に指示するための動作プログラムを取得するステップと、前記複数の部品のうちの少なくともいずれかの部品を変更する部品変更の要求を受け付けるステップと、各部品の属性を示す属性情報を参照し、前記部品変更の対象に指定された第1部品の属性、及び前記部品変更により前記第1部品と置き換わる第2部品の属性を比較し、前記動作プログラム内で規定される前記一連の動作から、前記第1部品及び前記第2部品の属性の相違に起因して修正の対象となる動作を抽出するステップと、前記第1部品及び前記第2部品の属性の相違を補償するように、前記動作プログラム内の抽出された前記動作の指令値を修正することで、前記部品変更後の組立作業の一連の動作を前記ロボット装置に指示するための新たな動作プログラムを生成するステップと、を実行する、情報処理方法である。
また、例えば、本発明の一側面に係る生成プログラムは、コンピュータに、複数の部品から製品を組み立てる組立作業の一連の動作をロボット装置に指示するための動作プログラムを取得するステップと、前記複数の部品のうちの少なくともいずれかの部品を変更する部品変更の要求を受け付けるステップと、各部品の属性を示す属性情報を参照し、前記部品変更の対象に指定された第1部品の属性、及び前記部品変更により前記第1部品と置き換わる第2部品の属性を比較し、前記動作プログラム内で規定される前記一連の動作から、前記第1部品及び前記第2部品の属性の相違に起因して修正の対象となる動作を抽出するステップと、前記第1部品及び前記第2部品の属性の相違を補償するように、前記動作プログラム内の抽出された前記動作の指令値を修正することで、前記部品変更後の組立作業の一連の動作を前記ロボット装置に指示するための新たな動作プログラムを生成するステップと、を実行させるための、プログラムである。
本発明によれば、製品を構成する部品の少なくとも一部に変更が生じた場合に、部品変更後の組立作業に利用可能な新たな動作プログラムを生成する手間を削減することができる。
図1は、本発明が適用される場面の一例を模式的に例示する。 図2Aは、実施の形態に係るロボット装置の実行する部品変更前の組立作業の工程の一例を模式的に例示する。 図2Bは、実施の形態に係るロボット装置の実行する部品変更前の組立作業の工程の一例を模式的に例示する。 図2Cは、実施の形態に係るロボット装置の実行する部品変更前の組立作業の工程の一例を模式的に例示する。 図2Dは、実施の形態に係るロボット装置の実行する部品変更前の組立作業の工程の一例を模式的に例示する。 図3Aは、実施の形態に係るロボット装置の実行する部品変更後の組立作業の工程の一例を模式的に例示する。 図3Bは、実施の形態に係るロボット装置の実行する部品変更後の組立作業の工程の一例を模式的に例示する。 図4は、実施の形態に係るコントローラのハードウェア構成の一例を模式的に例示する。 図5は、実施の形態に係るロボット装置の一例を模式的に例示する。 図6は、実施の形態に係るコントローラのソフトウェア構成の一例を模式的に例示する。 図7は、実施の形態に係る各部品の幾何学モデルの一例を模式的に例示する。 図8Aは、実施の形態に係るコントローラの動作プログラム作成に関する処理手順の一例を例示する。 図8Bは、実施の形態に係るコントローラの動作プログラム作成に関する処理手順の一例を例示する。 図9は、本発明が適用される他の場面の一例を模式的に例示する。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
図1は、本発明の適用場面の一例を模式的に例示する。本実施形態に係るコントローラ1は、動作プログラムに従って、ロボット装置2の動作を制御するように構成されたコンピュータである。ロボット装置2に遂行させる作業には、複数の部品から製品3を組み立てる組立作業が含まれる。本実施形態に係るコントローラ1は、更に、部品変更の要求を受け付け、要求された部品変更に応じて、動作プログラム内の指令値を修正することで、新たな動作プログラムを生成するように構成される。本実施形態に係るコントローラ1は、本発明の「プログラム生成装置」の一例である。
まず、コントローラ1は、複数の部品から製品3を組み立てる組立作業の一連の動作をロボット装置2に指示するための動作プログラム50を取得する。また、コントローラ1は、複数の部品のうちの少なくともいずれかの部品を変更する部品変更の要求を受け付ける。次に、各部品の属性を示す属性情報121を参照し、部品変更の対象に指定された第1部品の属性、及び部品変更により第1部品と置き換わる第2部品の属性を比較する。コントローラ1は、当該比較の結果に基づいて、動作プログラム50内で規定される一連の動作から、第1部品及び第2部品の属性の相違に起因して修正の対象となる動作を抽出する。そして、コントローラ1は、第1部品及び第2部品の属性の相違を補償するように、動作プログラム50内の抽出された動作の指令値を修正することで、部品変更後の組立作業の一連の動作をロボット装置2に指示するための新たな動作プログラム55を生成する。
ロボット装置2の種類は、実施の形態に応じて適宜選択されてよい。ロボット装置2は、例えば、垂直多関節ロボット、水平多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等の1又は複数台のマニピュレータ(産業用ロボット)により構成されてよい。ロボット装置2は、部品に関する作業を遂行するための1又は複数のツールを備えてもよい。1又は複数のツールには、組立作業に含まれる第1部品に関する作業に使用される第1ツールが含まれてよい。ツールは、例えば、グリッパ(ロボットハンド)、吸着装置、ネジ締め装置、半田付け装置等であってよい。部品に対する作業は、例えば、把持する、運搬する、挿入する、載置する、押圧する、姿勢を変更する、位置合わせをする等であってよい。動作プログラムは、組立作業の各動作を指示するための指令値の系列により構成される。各指令値は、ロボット装置2を駆動するように適宜構成されてよい。各指令値は、例えば、ロボット装置2の構成要素(例えば、ツール、関節等)の制御量又は操作量の目標値(例えば、後述するグリッパ25の目標位置、開口幅、閉口幅等)により構成されてよい。
製品3は、複数の部品により構成されるものであれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。製品3は、例えば、電子機器、電子部品、自動車部品等の製造ラインで組み立てられる製品であってよい。電子部品は、例えば、基板、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。製品は、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよい。各部品は、製品に応じて適宜選択されてよい。各部品は、例えば、基板、各種チップ、コンデンサ、コネクタ、ペグ、ソケット、ホール、ギア、ボルト、ネジ、ナット等であってよい。部品の属性は、組立作業に関与し得る特徴である。部品の属性は、例えば、形状、寸法、位置、重さ等である。
図1の例では、製品3は、3つの部品31~33により構成されており、ロボット装置2は、垂直多関節ロボットである。ロボット装置2は、各部品31~33を運搬する作業を遂行するためのグリッパ25をエンドエフェクタとして備えている。この製品3の組立作業は、各部品31~33を順に積み重ねることである。図1の例では、この製品3について、部品31を部品35に変更する要求を受け付けた場面を想定している。部品31は、第1部品の一例であり、部品35は、第2部品の一例である。グリッパ25は、第1ツールの一例である。なお、図1に示されるこれらの限定は、説明の便宜のための具体例に過ぎない。ロボット装置2の構成、製品3の構成、及び組立作業の工程は、実施の形態に応じて適宜決定されてよい。製品3を構成する部品の数は、実施の形態に応じて適宜選択されてよい。変更対象の部品は、製品3を構成する複数の部品の中から適宜選択されてよい。
図2A~図2Dは、部品変更前の製品3を組み立てる組立作業の工程の一例を模式的に例示する。図2Aに示されるとおり、初期状態では、各部品31~33は、別々の供給位置に配置されている。この組立作業の一例は、3つの工程により構成される。
第1工程は、部品31を目標位置に目標姿勢で配置することである。まず、コントローラ1は、ロボット装置2に対して、グリッパ25を部品31の供給位置に移動させる。続いて、コントローラ1は、ロボット装置2に対して、グリッパ25を開閉させることで、部品31を把持させる。次に、図2Bに示されるとおり、コントローラ1は、ロボット装置2に対して、把持した部品31を目標位置に運搬させる。そして、コントローラ1は、ロボット装置2に対して、グリッパ25を開かせて、目標位置に目標姿勢で部品31を配置させる。これにより、第1工程は終了する。
第2工程は、部品31上の目標位置に部品32を目標姿勢で配置することである。まず、コントローラ1は、ロボット装置2に対して、グリッパ25を部品32の供給位置に移動させる。続いて、コントローラ1は、ロボット装置2に対して、グリッパ25を開閉させることで、部品32を把持させる。次に、図2Cに示されるとおり、コントローラ1は、ロボット装置2に対して、把持した部品32を部品31上の目標位置に運搬させる。そして、コントローラ1は、ロボット装置2に対して、グリッパ25を開かせて、部品31上の目標位置に目標姿勢で部品32を配置させる。これにより、第2工程は終了する。
第3工程は、部品32上の目標位置に部品33を目標姿勢で配置することである。まず、コントローラ1は、ロボット装置2に対して、グリッパ25を部品33の供給位置に移動させる。続いて、コントローラ1は、ロボット装置2に対して、グリッパ25を開閉させることで、部品33を把持させる。次に、図2Dに示されるとおり、コントローラ1は、ロボット装置2に対して、把持した部品33を部品32上の目標位置に運搬させる。そして、コントローラ1は、ロボット装置2に対して、グリッパ25を開かせて、部品32上の目標位置に目標姿勢で部品33を配置させる。これにより、第3工程は終了し、製品3の組立作業が完了する。
動作プログラム50の一例では、例えば、グリッパ25の目標位置、開口幅、閉口幅等の、上記各工程のロボット装置2の動作を実現する指令値の系列が規定される。この動作プログラム50の一例は、例えば、ダイレクトティーチング、人手による作り込み(例えば、ティーチングペンダントの利用、プログラミング等)、自動計画(例えば、モーションプランニング等)等の方法により適宜生成されてよい。
一方、図3Aは、部品変更後の製品3を組み立てる組立作業の初期状態の一例を模式的に例示する。図3Bは、部品変更後の製品3の完成状態(すなわち、組立作業の完了状態)の一例を模式的に例示する。図3A及び図3Bに示されるとおり、部品変更により対象部品の属性が変更される一例として、変更後の部品35は、変更前の部品31と異なる寸法を有している。異なる寸法の一例として、部品35は、部品31よりも幅が広く、かつ部品31よりも高さが低い寸法を有している。部品35の供給位置は、部品31の供給位置と同じであってもよいし、異なっていてもよい。
この例では、部品変更の前後で製品3の組立作業の工程の手順に変更はない。コントローラ1は、ロボット装置2に対して、第1~第3工程の動作を実行させる、すなわち、部品35、部品32、及び部品33を順に目標位置に搬送させる。これにより、図3Bに示されるとおり、製品3の組立作業を完了することができる。
ただし、部品変更前と同じようにロボット装置2のグリッパ25を駆動すると、部品35の寸法が部品31と異なっていることに起因して、製品3の組立作業を適切に完遂することができない可能性がある。例えば、部品35の幅は部品31よりも広いため、部品31を把持する際の開口幅では、部品35を把持することができない可能性がある。そこで、コントローラ1は、上記一連の情報処理により、部品変更に応じて動作プログラム50内の指令値を修正することで、部品変更後の製品3の組立作業を遂行可能な新たな動作プログラム55を生成する。
まず、動作プログラム50を取得し、部品変更の要求を受け付けた後、コントローラ1は、属性情報121を参照し、部品31及び部品35の属性を比較する。この比較の結果、コントローラ1は、部品31及び部品35の間の寸法の相違を認識する。コントローラ1は、この認識に基づいて、動作プログラム50内で規定される一連の動作から修正の対象となる動作を抽出する。
単純には、修正の対象となる動作は、第2部品に変更される第1部品に関するものである。しかしながら、第1部品により配置が決まる等、第1部品と依存関係を有する部品も、部品変更の影響を受ける。上記具体例では、2つの部品(32、33)が、変更される部品31上に配置されるため、当該部品変更の影響を受ける。そのため、修正の対象となる動作には、第1部品に関する作業だけではなく、第1部品と依存関係を有する部品に関する作業も含まれるのが望ましい。そこで、上記修正の対象となる動作を抽出することは、複数の部品から部品変更の影響を受ける第3部品を特定すること、第1部品又は特定された第3部品に関する1又は複数の動作を一連の動作から特定すること、及び特定された1又は複数の動作から、第1部品及び第2部品の属性の相違に起因して修正の対象となる動作を抽出することを含んでよい。上記各部品(32、33)は、第3部品の一例である。これにより、部品変更により修正の対象となる動作を適切に抽出することができる。
上記具体例において、この処理によって、部品31に関する動作のうち、修正の対象として抽出される動作の一例は、グリッパ25により部品31を把持する動作、及びグリッパ25により部品31を目標位置に運搬する動作である。部品35の供給位置が部品31と異なる場合には、修正の対象として抽出される動作の一例には、部品31の供給位置にグリッパ25を移動する動作も含まれる。また、各部品(32、33)に関する動作のうち、修正の対象として抽出される動作の一例は、各部品(32、33)をグリッパ25により目標位置に運搬する動作である。
次に、コントローラ1は、部品31及び部品35の間の寸法の相違を補償するように、動作プログラム50内の抽出された動作の指令値を修正する。修正される指令値の具体例として、部品31を把持するために規定されていたグリッパ25の開口幅及び閉口幅が、部品35を把持可能に大きな値に修正されてよい。部品31を目標位置に運搬するために規定されていたグリッパ25の目標位置が、部品35の高さが部品31よりも低いことに応じて低い値に修正されてよい。部品31を目標位置で開放するために規定されていたグリッパ25の開口幅が、部品35を開放可能に大きな値に修正されてよい。部品35の供給位置が部品31と異なる場合、部品31の供給位置に移動するために規定されていたグリッパ25の目標位置が、部品35の供給位置に適合するように修正されてよい。また、各部品(32、33)を目標位置に運搬するために規定されていたグリッパ25の目標位置が、部品35の高さが部品31よりも低いことに応じて低い値に修正されてよい。
各修正量は、第1部品及び第2部品の間の属性の相違に応じて決定されてよい。修正の規則は適宜設定されてよい。例えば、第1部品及び第2部品の間の属性値の差がそのまま各修正量に適用されてよい。上記具体例では、部品31及び部品35の間の寸法の差がそのまま各修正量に適用されてよい。また、例えば、各修正量は、第1部品及び第2部品の間の属性値の差から所定の規則に従って導出されてもよい。これにより、新たな動作プログラム55を生成することができる。
以上のとおり、本実施形態に係るコントローラ1は、部品変更の要求に応じて、動作プログラム50内の指令値を修正することで、新たな動作プログラム55を自動的に生成することができる。生成された新たな動作プログラム55では、部品変更に影響を受ける動作の指令値が、上記の処理によって、変更後の第2部品(上記具体例では、部品35)の属性に適するように修正済みである。そのため、生成された新たな動作プログラム55によれば、第1部品から第2部品に部品変更した後の製品3の組立作業を適切に遂行可能である。したがって、本実施形態によれば、製品3を構成する部品の少なくとも一部に変更が生じた場合に、部品変更後の組立作業に利用可能な新たな動作プログラム55を生成する手間を削減することができる。
更に、従来、ロボット装置の動作及び各部品に関する膨大な知識を有する熟練者でなければ、このような部品変更に応じて新たな動作プログラムを生成することは困難であった。これに対して、本実施形態に係るコントローラ1によれば、部品変更の指定に応じて、部品変更後の組立作業に利用可能な新たな動作プログラム55を自動生成することができる。そのため、本実施形態に係るコントローラ1を利用することにより、比較的に初心者でも、部品変更に応じた新たな動作プログラムを生成することができる。
§2 構成例
[ハードウェア構成]
<コントローラ>
図4は、本実施形態に係るコントローラ1のハードウェア構成の一例を模式的に例示する。図4に示されるとおり、本実施形態に係るコントローラ1は、制御部11、記憶部12、外部インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図4では、外部インタフェースを「外部I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、動作プログラム50、生成プログラム81、属性情報121、仕様情報123、ロボット情報125等の各種情報を記憶する。
動作プログラム50は、上記のとおり、複数の部品から製品3を組み立てる組立作業の一連の動作をロボット装置2に指示するための指令値の系列により構成される。生成プログラム81は、部品変更の要求に応じて、新たな動作プログラム55を生成する後述の情報処理(図8A及び図8B)をコントローラ1に実行させるためのプログラムである。生成プログラム81は、当該情報処理の一連の命令を含む。属性情報121は、製品3に使用可能な各部品の属性に関する情報を含む。製品3に使用可能な部品には、上記各部品(31~33、35)が含まれる。属性情報121は、各部品の形状、寸法、及び位置(すなわち、幾何学的な属性)に関する情報を含んでよい。各部品の位置は、例えば、上記供給位置等である。幾何学的な属性には、各部品の姿勢(例えば、ロール、ピッチ、ヨー)が更に含まれてもよい。属性情報121は、重量(すなわち、幾何学的な属性以外の他の属性)に関する情報を更に含んでもよい。仕様情報123は、ロボット装置2に装着可能な各ツールの仕様に関する情報を含む。ツールの仕様は、例えば、グリッパの最大開口幅等の作業を遂行する能力に関する。仕様情報123により示される仕様は、ツールの種類に応じて適宜選択されてよい。ロボット装置2に装着可能なツールには、上記グリッパ25が含まれる。ロボット情報125は、ロボット装置2の仕様に関する情報を含む。詳細は後述する。
外部インタフェース13は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース13の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、コントローラ1は、外部インタフェース13を介して、ロボット装置2に接続される。これにより、コントローラ1は、ロボット装置2の動作を制御可能に構成される。
ただし、ロボット装置2の動作を制御するための構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、コントローラ1及びロボット装置2が通信インタフェースを備える場合、コントローラ1は、通信インタフェースを介してロボット装置2に接続されてよい。また、ロボット装置2に他の情報処理装置(例えば、他のコントローラ)が接続される場合、コントローラ1は、他の情報処理装置を介してロボット装置2に接続されてもよい。
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を利用することで、コントローラ1を操作することができる。
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。
上記動作プログラム50、生成プログラム81、属性情報121、仕様情報123、及びロボット情報125の少なくともいずれかは、記憶媒体91に記憶されていてもよい。コントローラ1は、この記憶媒体91から、上記動作プログラム50、生成プログラム81、属性情報121、仕様情報123、及びロボット情報125の少なくともいずれかを取得してもよい。
なお、図4では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ16の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
なお、コントローラ1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。外部インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。コントローラ1は、他の情報処理装置とデータ通信を行うための通信インタフェースを備えてもよい。コントローラ1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、コントローラ1は、提供されるサービス専用に設計された情報処理装置の他、汎用のPC(Personal Computer)(例えば、デスクトップPC、タブレットPC等)、PLC(programmable logic controller)等であってもよい。
<ロボット装置>
図5は、本実施形態に係るロボット装置2のハードウェア構成の一例を模式的に例示する。
本実施形態に係るロボット装置2は、6軸の垂直多関節型の産業用ロボットであり、台座部210及び6つの関節部211~216を備えている。各関節部211~216は、サーボモータ(不図示)を内蔵していることで、各軸を中心に回転可能に構成されている。第1関節部211は、台座部210に接続されており、先端側の部分を台座の軸周りに回転させる。第2関節部212は、第1関節部211に接続されており、先端側の部分を前後方向に回転させる。第3関節部213は、リンク221を介して第2関節部212に接続されており、先端側の部分を上下方向に回転させる。第4関節部214は、リンク222を介して第3関節部213に接続されており、先端側の部分をリンク222の軸周りに回転させる。第5関節部215は、リンク223を介して第4関節部214に接続されており、先端側の部分を上下方向に回転させる。第6関節部216は、リンク224を介して第5関節部215に接続されており、先端側の部分をリンク224の軸周りに回転させる。第6関節部216の先端側には、エンドエフェクタとしてグリッパ25が取り付けられている。
各関節部211~216には、エンコーダ(不図示)が更に内蔵されている。エンコーダは、各関節部211~216の角度を測定するように構成されている。エンコーダの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。エンコーダの測定値は、各関節部211~216の角度を制御するのに利用される。各関節部211~216の角度を制御する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各関節部211~216の制御には、例えば、PID(Proportional-Integral-Differential)制御、PI制御等の公知の方法が採用されてよい。また、各関節部211~216の角度とグリッパ25の位置との間の変換は、順運動学及び逆運動学に基づいて行われてよい。制御方法の一例として、グリッパ25を移動する際の指令値は、グリッパ25の目標位置により規定されてよい。この場合、逆運動学により、グリッパ25の目標位置は、各関節部211~216の目標角度に変換されてよい。そして、各関節部211~216の目標角度及びエンコーダにより測定される現在角度の差分に基づいて、各関節部211~216の駆動量が決定されてよい。
なお、ロボット装置2のハードウェア構成は、このような例に限定されなくてもよい。ロボット装置2の具体的なハードウェア構成に関して、実施の形態に応じて適宜、構成要素の省略、置換及び追加が可能である。例えば、ロボット装置2は、制御量又はその他の属性を観測するために、エンコーダ以外のセンサを備えてもよい。一例として、ロボット装置2は、視覚センサ(例えば、カメラ)及び触覚センサの少なくともいずれかを更に備えてもよい。センサにより得られたセンシングデータは、ロボット装置2のフィードバック制御に用いられてよい。例えば、ロボット装置2の動作は、触覚センサにより得られるセンシングデータに基づいて、グリッパ25に過剰な力が作用しないように制御されてよい。また、例えば、ロボット装置2の動作は、視覚センサにより得られるセンシングデータに基づいて、グリッパ25を所望の位置(例えば、各部品を把持可能な位置)に移動するように制御されてよい。更に、ロボット装置2の軸数は、6軸に限られなくてもよく、実施の形態に応じて適宜選択されてよい。ロボット装置2には、公知の産業用ロボットが用いられてよい。
[ソフトウェア構成]
図6は、本実施形態に係るコントローラ1のプログラム生成の情報処理に関するソフトウェア構成の一例を模式的に例示する。
コントローラ1の制御部11は、記憶部12に記憶された生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された生成プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図6に示されるとおり、本実施形態に係るコントローラ1は、データ取得部111、変更受付部112、動作抽出部113、指令修正部114、シミュレーション部115、仕様判定部116、ツール抽出部117、指標判定部118、及び座標修正部119をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、コントローラ1のプログラム生成の情報処理に関する各ソフトウェアモジュールは、制御部11(CPU)により実現される。
データ取得部111は、複数の部品から製品3を組み立てる組立作業の一連の動作をロボット装置2に指示するための動作プログラム50を取得する。変更受付部112は、複数の部品のうちの少なくともいずれかの部品を変更する部品変更の要求を受け付ける。動作抽出部113は、属性情報121を参照し、部品変更の対象に指定された第1部品の属性、及び部品変更により第1部品と置き換わる第2部品の属性を比較し、動作プログラム50内で規定される一連の動作から、第1部品及び第2部品の属性の相違に起因して修正の対象となる動作を抽出する。指令修正部114は、第1部品及び第2部品の属性の相違を補償するように、動作プログラム50内の抽出された動作の指令値を修正することで、部品変更後の組立作業の一連の動作をロボット装置2に指示するための新たな動作プログラム55を生成する。
シミュレーション部115は、生成された新たな動作プログラム55を使用して、部品変更後の組立作業におけるロボット装置2の一連の動作をシミュレートする。仕様判定部116は、仕様情報123を参照し、第1部品から第2部品への部品変更に第1ツールの仕様が追従可能か否かを判定する。仕様判定部116が、第1ツールの仕様が部品変更に追従不能であると判定した場合に、ツール抽出部117は、仕様情報123を参照する。そして、ツール抽出部117は、第1ツールと同種の第2ツールであって、部品変更に追従可能な仕様を有する第2ツールを仕様情報123により示される複数のツールから抽出する。指令修正部114は、第1ツールから第2ツールへの変更を更に補償するように、動作プログラム50内の抽出された動作の指令値を修正することで、部品変更後の組立作業の一連の動作をロボット装置2に指示するための新たな動作プログラム55を生成する。
また、仮想空間上で実空間を再現するために、属性情報121は、製品3に使用可能な各部品の幾何学モデルを含んでもよい。仕様情報123は、ロボット装置2に装着可能な各ツールの幾何学モデルを含んでもよい。ロボット情報125は、ロボット装置2の幾何学モデルを含んでもよい。各幾何学モデルは、物体(部品、ツール、ロボット装置2)毎に設定された、基準点を原点とするローカル座標系上で、当該物体の形状及び寸法を表現する。各幾何学モデルは、例えば、CAD(computer-aided design)データ等により構成されてよく、公知のソフトウェアにより生成されてよい。実空間の作業状態を把握する、上記シミュレーションを実行する等の目的のため、コントローラ1は、属性情報121、仕様情報123、及びロボット情報125に基づいて、実空間の作業状態を投影した仮想空間を生成可能に構成されてよい。作業状態は、例えば、各部品(31~33、35)及びグリッパ25の現在位置等により表現される。仮想空間の生成には、公知のソフトウェアが用いられてよい。
図7は、各部品(31、35)の幾何学モデル(310、350)の一例を模式的に例示する。各幾何学モデル(310、350)は、各部品(31、35)に設定された、基準点(317、357)を原点とするローカル座標系(315、355)上で、各部品(31、35)の形状及び寸法を表現する。図7の例では、部品31を表現する幾何学モデル310の基準点317は、部品31の中心に位置している。一方、部品35を表現する幾何学モデル350の基準点357は、部品35の角(図では、左前方の角)に位置している。このように、複数の部品間で幾何学モデルの基準点が異なる指標で設定される場合がある。これは、例えば、異なるオペレータにより幾何学モデルが生成される等の理由によって起こり得る。この状態で、部品31を部品35に置き換えると、仮想空間上では、基準点の指標が異なっている分だけ、部品35の位置が所望の位置からずれて取り扱われることになる。これに起因して、生成される新たな動作プログラム55を実行した際に、ロボット装置2の部品35に関する動作に不良が生じる可能性がある。
そこで、指標判定部118は、第1部品の幾何学モデルの基準点と第2部品の幾何学モデルの基準点とが同一の指標で設定されているか否かを判定する。指標判定部118が、第1部品及び第2部品の基準点が同一の指標で設定されていないと判定した場合に、座標修正部119は、上記動作の指令値を修正する処理を実行する前に、第1部品の幾何学モデルの基準点と同一の指標で設定されるように第2部品の幾何学モデルの基準点を修正する。図7の例では、部品31の基準点317は部品31の中心に位置しているのに対して、部品35の基準点357は部品35の角に位置している。そのため、指標判定部118は、部品31の基準点317及び部品35の基準点357は同一の指標で設定されていないと判定する。座標修正部119は、部品31の基準点317と同一の指標で設定されるように部品35の基準点357を修正する。修正の一例として、図7に示されるとおり、座標修正部119は、基準点357が部品35の中心に配置されるように基準点357の位置を修正する。部品35のローカル座標系355の傾きが部品31のローカル座標系315の傾きと異なっている場合には、基準点357の修正には、ローカル座標系355の傾きをローカル座標系315の傾きと一致するように修正することが含まれてよい。
コントローラ1の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、コントローラ1の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、コントローラ1のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
図8A及び図8Bは、本実施形態に係るコントローラ1の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、プログラム生成方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、動作プログラム50を取得する。
本実施形態では、制御部11は、記憶部12から動作プログラム50を取得する。ただし、動作プログラム50の取得先は、このような例に限られなくてもよい。動作プログラム50は、外部記憶装置、記憶メディア等の他の記憶領域に格納されいてもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバ、又はコントローラ1に接続された外付けの記憶装置であってよい。この場合、制御部11は、他の記憶装置から動作プログラム50を適宜取得してもよい。或いは、ロボット装置2が下位コントローラを備え、下位コントローラが動作プログラム50を保持してもよい。この場合、制御部11は、ロボット装置2の下位コントローラから動作プログラム50を適宜取得してもよい。
動作プログラム50の取得が完了すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、変更受付部112として動作し、製品3を構成する複数の部品のうちの少なくともいずれかの部品の変更の要求を受け付ける。
部品変更の対象となる第1部品及び第1部品と置き換わる第2部品を特定可能であれば、部品変更の要求を受け付けるインタフェースは、特に限定されなくてよく、実施の形態に応じて適宜設計されてよい。例えば、制御部11は、入力装置14を介した第1部品及び第2部品の指定により、部品変更の要求を受け付けてもよい。第1部品及び第2部品の指定は、文字入力により行われてもよい。その他の一例として、制御部11は、製品3を構成する部品(上記具体例では、部品31~33)のリストを出力装置15に出力し、出力されたリストを介して第1部品の指定を受け付けてもよい。製品3を構成する部品のリストは、記憶部12等の記憶領域に予め保持されていてもよいし、或いは、動作プログラム50から適宜抽出されてよい。そして、制御部11は、指定された第1部品と同種の部品のリストを出力装置15に出力し、出力されたリストを介して第2部品の指定を受け付けてもよい。第1部品と同種の部品のリストは、記憶領域に予め保持されていてもよいし、或いは、属性情報121から抽出されてもよい。
部品変更の要求の受け付けが完了すると、制御部11は、次のステップS103に処理を進める。なお、ステップS102の処理順序は、このような例に限定されなくてもよい。製品3を構成する部品のリストの生成に動作プログラム50を利用しない場合、ステップS102の処理は、ステップS101の処理と並列、又はステップS101の処理よりも前に実行されてよい。
(ステップS103)
ステップS103では、制御部11は、指標判定部118として動作し、第1部品の幾何学モデルの基準点と第2部品の幾何学モデルの基準点とが同一の指標で設定されているか否かを判定する。
同一の指標で設定されているか否かを判定する方法は実施の形態に応じて適宜決定されてよい。一例として、まず、制御部11は、各部品の幾何学モデルの基準点の指標を示す情報(以下、「指標情報」とも記載する)を取得してもよい。図7の例では、部品31を表現する幾何学モデル310の基準点317は、部品31の中心に位置している。部品35を表現する幾何学モデル350の基準点357は、部品35の角に位置している。そのため、各部品の幾何学モデルの基準点の指標は、例えば、所定の定点(例えば、中心、重心、エッジ等)に位置している等のように、幾何学モデルの形状に対する基準点の位置関係から推定可能である。そこで、制御部11は、属性情報121を参照し、各部品の幾何学モデルの形状に対する基準点の位置関係から各部品の幾何学モデルの基準点の指標を推定してもよい。この推定の結果に基づいて、制御部11は、指標情報を取得してもよい。或いは、指標情報は、記憶領域に予め保持されていてもよい。この場合、制御部11は、当該記憶領域から指標情報を取得してもよい。そして、制御部11は、指標情報に基づいて、第1部品及び第2部品の幾何学モデルの基準点の指標を比較してもよい。この比較の結果に基づいて、制御部11は、第1部品及び第2部品の間で幾何学モデルの基準点が同一の指標で設定されているか否かを判定してもよい。
第1部品及び第2部品の間で幾何学モデルの基準点が同一の指標で設定されているか否かの判定が完了すると、制御部11は、次のステップS104に処理を進める。
(ステップS104)
ステップS104では、制御部11は、ステップS103の判定結果に基づいて、処理の分岐先を決定する。ステップS103において、第1部品及び第2部品の間で幾何学モデルの基準点が同一の指標で設定されていると判定した場合、制御部11は、ステップS105の処理を省略し、ステップS106に処理を進める。他方、第1部品及び第2部品の間で幾何学モデルの基準点が同一の指標で設定されていないと判定した場合、制御部11は、ステップS105に処理を進める。
(ステップS105)
ステップS105では、制御部11は、座標修正部119として動作し、第1部品の幾何学モデルの基準点と同一の指標で設定されるように第2部品の幾何学モデルの基準点を修正する。
本実施形態では、制御部11は、第1部品の基準点の指標に対応する所定の定点に位置するように第2部品の基準点を移動することで、第2部品の幾何学モデルの基準点を修正する。図7の例では、制御部11は、部品35の中心に基準点357が配置されるように基準点357の位置を修正する。第1部品及び第2部品の間でローカル座標系の傾きが異なっている場合、制御部11は、第1部品のローカル座標系の傾きに合わせるように第2部品のローカル座標系の傾きを修正してもよい。
第2部品の幾何学モデルの基準点の修正が完了すると、制御部11は、次のステップS106に処理を進める。なお、ステップS103~ステップS105の処理順序は、このような例に限定されなくてもよい。ステップS103~ステップS105の処理は、後述するステップS107の処理よりも前の任意のタイミングで実行されてよい。また、制御部11は、第1部品の代わりに使用する部品として指定された第2部品に限らず、部品変更前に製品3を構成する各部品を第1部品と仮想して、仮想の第1部品と置き換え可能な各部品の幾何学モデルの基準点を修正してもよい。この場合、ステップS103~ステップS105の処理は、ステップS102の処理と並列、又はステップS102の処理よりも前に実行されてよい。
(ステップS106)
ステップS106では、制御部11は、動作抽出部113として動作し、属性情報121を参照し、第1部品及び第2部品の属性を比較する。そして、制御部11は、比較の結果に基づいて、動作プログラム50内で規定される一連の動作から、第1部品及び第2部品の属性の相違に起因して修正の対象となる動作を抽出する。
一例として、まず、制御部11は、製品3を構成する複数の部品から部品変更の影響を受ける第3部品を特定する。部品変更の影響を受けるのは、第3部品が第1部品との間で依存関係を有しているからである。このような部品の依存関係は、製品3において複数の部品が階層的又は構造的に配置された場合に生じ得る。依存関係を有することの一例は、上記具体例における各部品(32、33)のように、変更の対象部品上に配置されることである。このように、対象部品が変更されることで、組み立て後に製品3内での目標状態(例えば、配置位置、姿勢)が変更され得る部品が、第1部品との間で依存関係を有している。
第1部品との間で依存関係を有する第3部品は適宜特定されてよい。例えば、各部品間の依存関係を示す情報(以下、「依存関係情報」とも記載する)が、属性情報121に含まれていてもよい。この場合、制御部11は、属性情報121を参照することで、依存関係情報を取得することができる。制御部11は、依存関係情報を参照することで、製品3を構成する複数の部品から第3部品を特定してもよい。依存関係情報は、属性情報121とは別ファイルとして、記憶部12等の記憶領域に予め保持されていてもよい。この場合、制御部11は、当該記憶領域から依存関係情報を取得することができる。或いは、制御部11は、依存性解析等の公知の解析方法により、動作プログラム50から第1部品との間で依存関係を有する第3部品を特定してもよい。
次に、制御部11は、動作プログラム50内で規定された一連の動作から、第1部品又は特定された第3部品に関する1又は複数の動作を特定する。制御部11は、属性情報121を参照し、第1部品及び第2部品の間の属性を比較することで、変更される属性値を認識する。そして、制御部11は、特定された1又は複数の動作から、変更される属性値に関与する動作(すなわち、第1部品及び第2部品の属性の相違に起因して修正の対象となる動作)を抽出する。
修正の対象となる動作は、第1部品及び第2部品の間で相違する属性の種類に応じて適宜特定されてよい。一例として、修正対象の動作と相違する属性の種類との間の対応関係が、ルールベースで与えられてもよい。制御部11は、この対応関係を示す情報を参照することで、第1部品及び第2部品の間で相違する属性の種類に応じて、修正の対象となる動作を特定することができる。対応関係を示す情報は、記憶部12等の記憶領域に予め保持されていてよい。
本実施形態では、属性情報121は、各部品の幾何学的な属性に関する情報を含んでいる。そのため、このステップS106の処理において、制御部11は、第1部品及び第2部品の間で幾何学的な属性が相違することに応じて、第1部品又は第3部品に関する幾何学的な動作を抽出することができる。上記具体例では、グリッパ25により部品31を把持する動作、グリッパ25により部品31を目標位置に運搬する動作、及び各部品(32、33)をグリッパ25により目標位置に運搬する動作が修正の対象となる動作として抽出される。部品35の供給位置が部品31と異なる場合には、部品31の供給位置にグリッパ25を移動する動作が修正の対象となる動作として更に抽出される。その他、属性情報121は、重量に関する情報を更に含んでもよい。この場合、制御部11は、ステップS106の処理において、例えば、第1部品を目標位置に運搬する動作等、幾何学的な属性以外の他の属性に影響を受ける動作を抽出することができる。
なお、修正の対象となる動作を抽出する方法は、このような例に限定されなくてもよい。その他の一例として、単純に処理する場合には、制御部11は、第3部品に関する処理を省略し、第2部品に変更される第1部品に関する動作のみを抽出してもよい。
修正の対象となる動作の抽出が完了すると、制御部11は、次のステップS107に処理を進める。
(ステップS107)
ステップS107では、制御部11は、指令修正部114として動作し、第1部品及び第2部品の属性の相違を補償するように、動作プログラム50内の抽出された動作の指令値を修正する。
本実施形態では、制御部11は、第1部品及び第2部品の間の属性値の差に応じて、抽出された動作の指令値を修正する。上記のとおり、第1部品及び第2部品の間の属性値の差がそのまま修正量に適用されてよい。或いは、修正量は、第1部品及び第2部品の間の属性値の差から所定の規則に従って導出されてもよい。所定の規則は、ルールベースで与えられてもよいし、或いは、関数等の演算式により与えられてよい。本実施形態では、属性情報121は、各部品の幾何学的な属性に関する情報を含んでいる。そのため、このステップS107において、制御部11は、上記具体例のグリッパ25の開口幅及び閉口幅、各部品31~33の目標位置等の、ロボット装置2の幾何学的な動作に関する指令値を修正することができる。また、属性情報121が、重量に関する情報を更に含んでもよい。この場合、ステップS107において、制御部11は、例えば、第1部品を運搬する際のグリッパ25のトルク量等、幾何学的な属性以外の他の属性に影響を受ける動作に関する指令値を修正することができる。
これにより、制御部11は、抽出された動作の指令値が修正された暫定的な動作プログラムを生成することができる。抽出された指令値を修正することによる暫定的な動作プログラムの生成が完了すると、制御部11は、次のステップS108に処理を進める。
(ステップS108)
ステップS108では、制御部11は、生成された暫定的な動作プログラムを使用して、部品変更後の組立作業におけるロボット装置2の一連の動作をシミュレートする。
動作のシミュレーションは任意の方法で行われてよい。シミュレーションには、公知のソフトウェアが用いられてよい。例えば、制御部11は、属性情報121、仕様情報123、及びロボット情報125に基づいて、暫定的な動作プログラムにより規定される製品3の組立作業の各工程を、ワールド座標系の仮想空間上で再現してもよい。この再現により、制御部11は、ロボット装置2の一連の動作をシミュレートしてもよい。
なお、組立作業を実行する環境には、例えば、障害物等の製品3の各部品以外の他の要素が存在する可能性がある。そこで、このシミュレーションには、この他の要素が更に反映されてもよい。他の要素に関する情報(以下、「環境情報」とも記載する)は適宜取得されてよい。環境情報は、記憶部12等の記憶領域に予め保持されてよく、制御部11は、当該記憶領域から環境情報を取得してもよい。属性情報121等と同様に、環境情報には、障害物等の他の要素の幾何学モデルが含まれてよい。
このステップS108のシミュレーションにより、生成された暫定的な動作プログラムを実行した際に動作不良が生じるか否かを検証することができる。すなわち、部品変更に関与する動作の指令値の修正では対処が困難な不測の不具合を未然に検出することができる。これにより、生成される動作プログラムの信頼性の向上を図ることができる。組立作業の一連の動作のシミュレーションが完了すると、制御部11は、次のステップS109に処理を進める。
(ステップS109)
ステップS109では、制御部11は、検証部(不図示)として動作し、ステップS108のシミュレーションにおいて、ロボット装置2の動作に不具合(問題)が生じたか否かを判定する。ロボット装置2の動作に不具合が生じたと判定した場合、制御部11は、ステップS110に処理を進める。他方、不具合が生じていないと判定した場合、制御部11は、ステップS116に処理を進める。
シミュレーションにより検出される不具合の典型例は、部品変更に対象ツール(第1ツール)の仕様が追従不能であること、すなわち、対象ツールの仕様が第2部品の属性に適合しないことである。その他、不具合の一例は、部品変更により各部品の配置関係が変化したことに起因して、任意の部品に関する作業の実行に、例えば、障害物、他の部品等の他の物体が干渉することである。干渉の具体例として、第2部品の高さが第1部品よりも高く、かつグリッパにより供給位置から第2部品を越して配置される隣接部品が存在する場面を想定する。この場合に、隣接部品をグリッパにより運搬する軌道が第2部品により遮られてしまう可能性がある。この運搬する軌道を遮ることが、干渉の一例である。これらの不具合が生じる場合に、制御部11は、ステップS110に処理を進める。なお、他の物体のうち他の部品の干渉は、上記ステップS106において検出されてよい。この場合、制御部11は、他の物品に作業を干渉される部品を第3部品として取り扱ってよい。そして、ステップS107において、制御部11は、他の部品の干渉を回避するように、当該部品に関する動作の指令値を修正してもよい。
(ステップS110)
ステップS110では、仕様判定部116として動作し、仕様情報123を参照して、第1部品から第2部品への部品変更に対象ツール(第1ツール)の仕様が追従可能か否かを判定する。
対象ツールの仕様が部品変更に追従可能であることは、第1部品及び第2部品の属性の相違を対象ツールの仕様が許容していること、換言すると、修正された指令値により第2部品に対して第1部品と同じ作業を遂行する条件を対象ツールの仕様が満たしていることである。制御部11は、属性情報121及び仕様情報123を参照し、第2部品の属性と対象ツールの仕様とを比較する。制御部11は、この比較の結果に基づいて、第2部品に対して作業を遂行する条件を対象ツールの仕様が満たしているか否か、すなわち、第1部品から第2部品への部品変更に対象ツールの仕様が追従可能か否かを判定してもよい。
上記具体例では、仕様情報123は、例えば、グリッパ25の最大開口幅、最小開口幅、可搬重量、開口速度、把持トルク等に関する情報を含んでいてもよい。この場合、制御部11は、グリッパ25の最大開口幅及び最小開口幅と部品35の寸法とを比較し、グリッパ25により部品35を把持可能か否か判定してもよい。部品35の寸法が最大開口幅以下であり最小開口幅以上であることで、グリッパ25により部品35を把持可能であることに応じて、制御部11は、第1部品から第2部品への部品変更に対象ツールの仕様が追従可能と判定することができる。他方、部品35の寸法が最大開口幅を超えている又は最小開口幅未満であることで、グリッパ25により部品35を把持不能であることに応じて、制御部11は、第1部品から第2部品への部品変更に対象ツールの仕様が追従不能と判定することができる。その他、制御部11は、グリッパ25の可搬重量と部品35の重量とを比較し、グリッパ25により部品35を運搬可能か否か判定してもよい。部品35の重量が可搬重量以下であることに応じて、制御部11は、第1部品から第2部品への部品変更に対象ツールの仕様が追従可能と判定することができる。他方、部品35の重量が可搬重量を超えていることに応じて、制御部11は、第1部品から第2部品への部品変更に対象ツールの仕様が追従不能と判定することができる。これらの比較は一例であり、追従可能か否かを判定する際に比較する仕様及び属性の種類は実施の形態に応じて適宜選択されてよい。
部品変更に対象ツールの仕様が追従可能か否かの判定が完了すると、制御部11は、次のステップS111に処理を進める。
(ステップS111)
ステップS111では、制御部11は、ステップS110の判定結果に基づいて、処理の分岐先を決定する。ステップS110において、第1部品から第2部品への部品変更に対象ツールの仕様が追従可能と判定した場合には、制御部11は、ステップS115に処理を進める。他方、部品変更に対象ツールの仕様が追従不能と判定した場合には、制御部11は、ステップS112に処理を進める。
(ステップS112)
ステップS112では、制御部11は、ツール抽出部117として動作し、仕様情報123を参照して、対象ツールと同種のツールであって、部品変更に追従可能な仕様を有するツールを複数のツールから抽出する。抽出されるツールは、第2ツールの一例である。
本実施形態では、制御部11は、仕様情報123を参照して、対象ツールと同種のツールであって、第2部品に対して第1部品と同じ作業を遂行する条件を満たす仕様を有するツールを抽出する。上記具体例では、グリッパ25により部品35を把持不能であると判定された場合、制御部11は、部品35を把持可能なグリッパを仕様情報123に示される複数のグリッパから抽出する。また、グリッパ25により部品35を運搬不能であると判定された場合、制御部11は、可搬重量が部品35の重量以上であることで部品35を運搬可能なグリッパを仕様情報123に示される複数のグリッパから抽出する。
部品変更に追従可能な仕様を有するツールの抽出が完了すると、制御部11は、次のステップS113に処理を進める。
(ステップS113及びステップS114)
ステップS113では、制御部11は、対象ツールから抽出されたツールに対象部品に使用するツールを変更する。上記ステップS112では、部品変更に追従可能な複数のツールが抽出されてもよい。これに応じて、制御部11は、対象部品に使用するツールを抽出された複数のツールから適宜選択してもよい。一例として、仕様情報123には、各ツールを使用する優先度に関する情報が含まれてもよい。この場合、制御部11は、各ツールに設定された優先度に基づいて、対象部品に使用するツールを選択してもよい。その他の一例として、制御部11は、抽出された複数のツールを出力装置15に出力し、入力装置14を介して、出力された複数のツールから対象部品に使用するツールの指定を受け付けてもよい。この場合、制御部11は、オペレータによる指定に応じて、対象部品に使用するツールを選択してもよい。
ステップS114では、制御部11は、指令修正部114として動作し、対象ツールから抽出されたツールにへの変更を更に補償するように、動作プログラム50内の抽出された動作の指令値を修正する。すなわち、制御部11は、対象ツールに関する動作の指令値を抽出されたツールに適合するように修正する。修正方法の一例として、修正の規則が、ルールベースで与えられてよい。この場合、修正の規則を示す情報(以下、「修正規則情報」と記載する)が、記憶部12等の記憶領域に予め保持されてよい。制御部11は、当該記憶領域から修正規則情報を取得する。そして、制御部11は、修正規則情報に従って、対象ツールに関する動作の指令値を抽出されたツールに適合するように修正する。修正規則情報には、例えば、関数、変数等の各ツール間のパラメータの対応関係に関する情報が含まれてもよい。この場合、制御部11は、当該対応関係に従って、動作プログラム50内で使用されているパラメータを更に修正してもよい。
これにより、動作プログラム50内の指令値を更に修正する、換言すると、ステップS114の実行前に得られている暫定的な動作プログラム内の指令値を修正することで、新たな暫定的な動作プログラムを生成することができる。新たな暫定的な動作プログラムの生成が完了すると、制御部11は、ステップS108に処理を戻す。そして、制御部11は、新たな暫定的な動作プログラムを使用した動作のシミュレーションから処理を繰り返す。なお、ステップS110~ステップS114の処理順序は、このような例に限定されなくてもよい。ステップS110~ステップS114の処理は、ステップS108の処理の前に実行されてもよい。
(ステップS115)
ステップS115では、制御部11は、指令修正部114として動作し、シミュレーションにより検出された不具合(問題)を解消するように、動作プログラム50内の指令値を更に修正する。
ステップS115で修正の対象となるのは、上記対象ツールの仕様に起因する不具合以外の不具合である。上記のとおり、修正の対象となる不具合の一例は、他の物体の干渉に起因する不具合である。修正方法の一例として、上記ステップS114と同様に、不具合を解消するための修正の規則が、ルールベースで与えられてよい。修正の規則は、例えば、グリッパ25の運搬の軌道を変更する、各部品を把持又は開放する際のグリッパ25の姿勢を変更する等のように他の物体の干渉を回避するように適宜与えられてよい。各指令値の変更量は適宜決定されてよい。この場合、制御部11は、修正の規則に従って、検出された不具合を解消するように、動作プログラム50内の指令値を更に修正してもよい。
また、自動的に修正するのが困難な場合には、制御部11は、不具合の生じる動作を出力装置15に出力し、入力装置14を介して、動作プログラム50内の指令値の修正を受け付けてもよい。この場合、制御部11は、オペレータの入力に応じて、動作プログラム50内の指令値を更に修正してもよい。
これにより、動作プログラム50内の指令値を更に修正する、換言すると、ステップS115の実行前に得られている暫定的な動作プログラム内の指令値を修正することで、新たな暫定的な動作プログラムを生成することができる。新たな暫定的な動作プログラムの生成が完了すると、制御部11は、ステップS108に処理を戻す。そして、制御部11は、新たな暫定的な動作プログラムを使用した動作のシミュレーションから処理を繰り返す。
ステップS108のシミュレーションにおいて動作の不具合が検出される間、ステップS110~ステップS114又はステップS110、ステップS111及びステップS115の一連の修正処理が繰り返されてよい。ステップS108のシミュレーションにおいて、動作の不具合が検出されなくなった段階で得られている暫定的な動作プログラムが新たな動作プログラム55として認定される。なお、一連の修正処理を繰り返す回数が適宜規定されてよい。この場合、制御部11は、一連の修正処理を繰り返した回数が規定回数を超えたことに応じて、本動作例に係る処理手順を停止し、出力装置15を介して、その段階で生成されている暫定的に動作プログラムを出力すると共に、不具合の生じる動作をオペレータ(ユーザ)に通知してもよい。
(ステップS116)
ステップS116では、制御部11は、保存処理部(不図示)として動作し、生成された新たな動作プログラム55を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。新たな動作プログラム55は、元の動作プログラム50に上書き保存されてもよいし、或いは元の動作プログラム50とは別ファイルで保存されてもよい。
新たな動作プログラム55の保存が完了すると、制御部11は、本動作例に係る処理手順を終了する。
[特徴]
以上のとおり、本実施形態によれば、ステップS101、ステップS102、ステップS106及びステップS107の処理により、部品変更の要求に応じて、動作プログラム50内の指令値を修正することで、新たな動作プログラム55を自動的に生成することができる。生成された新たな動作プログラム55では、部品変更に影響を受ける動作の指令値が、ステップS106及びステップS107の処理により、変更後の第2部品の属性に適するように修正済みである。そのため、生成された新たな動作プログラム55によれば、第1部品から第2部品に部品変更した後の製品3の組立作業を適切に遂行可能である。したがって、本実施形態によれば、製品3を構成する部品の少なくとも一部に変更が生じた場合に、部品変更後の組立作業に利用可能な新たな動作プログラム55を生成する手間を削減することができる。更には、本実施形態に係るコントローラ1を利用することにより、比較的に初心者でも、部品変更に応じた新たな動作プログラムを生成することができる。
また、本実施形態によれば、ステップS103~ステップS105の処理により、ステップS106以降の処理により新たな動作プログラム55を生成する際に、第1部品及び第2部品の幾何学モデルの基準点が同一の指標で設定されていることを担保することができる。これにより、幾何学モデルの基準点の指標が異なっていることに起因して、新たな動作プログラム55の実行の際に生じる動作不良を防止することができる。また、各部品の幾何学モデルの基準点を調整する作業を自動化することができる分だけ、部品変更後の組立作業に利用可能な新たな動作プログラム55を生成する手間を更に削減することができる。
また、本実施形態によれば、ステップS110の処理により、変更の対象部品に使用される対象ツールの仕様に起因する動作不良が生じるか否かを検証することができ、これにより、生成された動作プログラム55の信頼性の向上を図ることができる。また、変更の対象部品に使用されるツールの仕様に起因する動作不良が生じると推定される場合に、ステップS112の処理により、適正な代替ツール(第2ツール)を自動的に抽出することができる。これにより、生成された動作プログラムを修正する手間を軽減することができる。更には、ステップS114の処理により、ツールの変更に自動的に対応可能な分だけ、新たな動作プログラム55を生成する手間を更に削減することができる。
また、属性情報121が各部品の幾何学的な属性に関する情報を含んでいることで、上記ステップS107では、第1部品から第2部品への置き換えによって生じる対象部品の幾何学的な属性の変更に対応した新たな動作プログラム55を自動的に生成することができる。属性情報121が、重量に関する情報を更に含んでいることで、上記ステップS107では、第1部品から第2部品への置き換えによって生じる対象部品の幾何学的な属性以外の属性の変更に対応した新たな動作プログラムを自動生成することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態に係る処理手順において、ステップS113及びステップS114の処理は省略されてよい。この場合、制御部11は、ステップS112の処理により抽出されたツールを出力装置15に出力し、入力装置14を介して、暫定的な動作プログラムの修正を受け付けてもよい。これにより、制御部11は、オペレータの入力に応じて、対象ツールに関する動作の指令値を抽出されたツールに適合するように修正してもよい。
また、上記実施形態に係る処理手順において、ステップS112の処理が更に省略されてよい。この場合、コントローラ1のソフトウェア構成において、ツール抽出部117は省略されてよい。制御部11は、ステップS111の処理の後、出力装置15を介して、対象ツールでは部品変更に追従不能であることを出力し、入力装置14を介して、代替ツールの指定を受け付けてもよい。これにより、制御部11は、オペレータの指定に応じて、対象ツールに代えて第2部品の作業に使用するツールを決定してもよい。
また、上記実施形態に係る処理手順において、ステップS110及びステップS111の処理が更に省略されてよい。この場合、コントローラ1のソフトウェア構成において、仕様判定部116は省略されてよい。ツールに関する動作の指令値の修正は、オペレータの手作業等により適宜行されてよい。
<4.2>
上記実施形態に係る処理手順において、ステップS103~ステップS105の処理は省略されてよい。この場合、コントローラ1のソフトウェア構成において、指標判定部118及び座標修正部119は省略されてよい。各部品の幾何学モデルの基準点は、オペレータの手作業等により適宜修正されてよい。
<4.3>
上記実施形態に係る処理手順において、ステップS108、ステップS109及びステップS115の処理は省略されてよい。この場合、コントローラ1のソフトウェア構成において、シミュレーション部115は省略されてよい。生成される新たな動作プログラム55の信頼性は、オペレータの手作業、他のソフトウェアの使用等により適宜検証されてよい。
<4.4>
上記実施形態において、変更される部品(第1部品)の数は、1つに限られなくてよく、複数であってもよい。また、第1部品及び第2部品はそれぞれ、複数のサブ部品により構成されていてもよい。第1部品を構成するサブ部品の数と第2部品を構成するサブ部品の数とは一致していなくてもよい。
また、上記ステップS105において、制御部11は、第2部品の幾何学モデルの基準点ではなく、第1部品の幾何学モデルの基準点を、第2部品の基準点と同一の指標で設定されるように修正してもよい。この場合、第1部品の幾何学モデルの基準点を修正したことに応じて、制御部11は、動作プログラム50内の第1部品に関する動作の指令値を更に修正してもよい。
また、上記実施形態に係るコントローラ1は、ロボット装置2の動作を制御するための情報処理、及び要求された部品変更に応じて、新たな動作プログラム55を生成するための情報処理を実行可能に構成されている。しかしながら、プログラム生成装置の構成は、このような例に限定されなくてもよい。ロボット装置2の動作を制御するための情報処理は省略されてよい。
図9は、本発明が適用される他の場面の一例を模式的に例示する。図9の例では、コントローラ7は、ロボット装置2に接続され、ロボット装置2の動作を制御するように構成される。コントローラ7のハードウェア構成は、上記コントローラ1と同様であってよい。一方、プログラム生成装置1Aは、要求された部品変更に応じて、新たな動作プログラム55を生成するように構成される。プログラム生成装置1Aのハードウェア構成及びソフトウェア構成は、上記コントローラ1と同様であってよい。このように、ロボット装置2の動作を制御するための情報処理と新たな動作プログラム55を生成するための情報処理とは別々のコンピュータで実行されてよい。
なお、図9に示されるとおり、プログラム生成装置1A及びコントローラ7は、ネットワークを介して互いに接続されてよい。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。この場合、プログラム生成装置1A及びコントローラ7はそれぞれ、ネットワークインターフェースを更に備える。これにより、プログラム生成装置1A及びコントローラ7の間で、各種データ(例えば、修正前の動作プログラム50、修正後の動作プログラム55)がやり取りされてよい。ただし、プログラム生成装置1A及びコントローラ7の間でデータをやり取りする方法は、このような例に限定されなくてもよい。例えば、プログラム生成装置1A及びコントローラ7の間では、記憶媒体を利用して、データがやり取りされてよい。
1…コントローラ、
11…制御部、12…記憶部、13…外部インタフェース、
14…入力装置、15…出力装置、16…ドライブ、
111…データ取得部、112…変更受付部、
113…動作抽出部、114…指令修正部、
115…シミュレーション部、
116…仕様判定部、117…ツール抽出部、
118…指標判定部、119…座標修正部、
50…(修正前の)動作プログラム、
55…(修正後の)動作プログラム、
121…属性情報、123…仕様情報、
125…ロボット情報、
81…生成プログラム、91…記憶媒体、
2…ロボット装置、
210…台座部、211~216…関節部、
221~224…リンク、
25…グリッパ(ツール)、
3…製品、
31…部品(第1部品)、32・33…部品、
35…部品(第2部品)、
310・350…幾何学モデル、
315・355…ローカル座標系、317・357…基準点

Claims (11)

  1. 複数の部品から製品を組み立てる組立作業の一連の動作をロボット装置に指示するための動作プログラムを取得するデータ取得部と、
    前記複数の部品のうちの少なくともいずれかの部品を変更する部品変更の要求を受け付ける変更受付部と、
    各部品の属性を示す属性情報を参照し、前記部品変更の対象に指定された第1部品の属性、及び前記部品変更により前記第1部品と置き換わる第2部品の属性を比較し、前記動作プログラム内で規定される前記一連の動作から、前記第1部品及び前記第2部品の属性の相違に起因して修正の対象となる動作を抽出する動作抽出部と、
    前記第1部品及び前記第2部品の属性の相違を補償するように、前記動作プログラム内の抽出された前記動作の指令値を修正することで、前記部品変更後の組立作業の一連の動作を前記ロボット装置に指示するための新たな動作プログラムを生成する指令修正部と、
    を備える、
    プログラム生成装置。
  2. 前記ロボット装置は、前記組立作業に含まれる前記第1部品に関する作業に使用される第1ツールを備え、
    前記プログラム生成装置は、前記第1ツールを含む複数のツールそれぞれの仕様を示す仕様情報を参照し、前記第1部品から前記第2部品への前記部品変更に前記第1ツールの仕様が追従可能か否かを判定する仕様判定部を更に備える、
    請求項1に記載のプログラム生成装置。
  3. 前記仕様判定部が、前記第1ツールの仕様が前記部品変更に追従不能であると判定した場合に、前記仕様情報を参照し、前記第1ツールと同種の第2ツールであって、前記部品変更に追従可能な仕様を有する第2ツールを前記複数のツールから抽出するツール抽出部を更に備える、
    請求項2に記載のプログラム生成装置。
  4. 前記指令修正部は、前記第1ツールから前記第2ツールへの変更を更に補償するように、前記動作プログラム内の抽出された前記動作の指令値を修正することで、前記部品変更後の組立作業の一連の動作を前記ロボット装置に指示するための新たな動作プログラムを生成する、
    請求項3に記載のプログラム生成装置。
  5. 前記属性は、形状、寸法、及び位置を含み、
    修正される前記指令値は、前記ロボット装置の幾何学的な動作に関する、
    請求項1から4のいずれか1項に記載のプログラム生成装置。
  6. 前記属性情報は、幾何学モデルを前記部品毎に含み、
    前記幾何学モデルは、前記部品毎に設定された、基準点を原点とするローカル座標系上で、前記形状及び前記寸法を表現し、
    前記プログラム生成装置は、
    前記第1部品の幾何学モデルの基準点と前記第2部品の幾何学モデルの基準点とが同一の指標で設定されているか否かを判定する指標判定部と、
    前記指標判定部が、前記第1部品及び前記第2部品の前記基準点が同一の指標で設定されていないと判定した場合、前記動作の指令値を修正する前に、前記第1部品の幾何学モデルの基準点と同一の指標で設定されるように前記第2部品の幾何学モデルの基準点を修正する座標修正部と、
    を更に備える、
    請求項5に記載のプログラム生成装置。
  7. 前記属性は、重量を更に含む、
    請求項5又は6に記載のプログラム生成装置。
  8. 生成された前記新たな動作プログラムを使用して、前記部品変更後の組立作業における前記ロボット装置の一連の動作をシミュレートするシミュレーション部を更に備える、
    請求項1から7のいずれか1項に記載のプログラム生成装置。
  9. 前記修正の対象となる動作を抽出することは、
    前記複数の部品から前記部品変更の影響を受ける第3部品を特定すること、
    前記第1部品又は特定された前記第3部品に関する動作を前記一連の動作から特定すること、及び
    特定された前記動作から、前記第1部品及び前記第2部品の属性の相違に起因して修正の対象となる動作を抽出すること、
    により構成される、
    請求項1から8のいずれか1項に記載のプログラム生成装置。
  10. コンピュータが、
    複数の部品から製品を組み立てる組立作業の一連の動作をロボット装置に指示するための動作プログラムを取得するステップと、
    前記複数の部品のうちの少なくともいずれかの部品を変更する部品変更の要求を受け付けるステップと、
    各部品の属性を示す属性情報を参照し、前記部品変更の対象に指定された第1部品の属性、及び前記部品変更により前記第1部品と置き換わる第2部品の属性を比較し、前記動作プログラム内で規定される前記一連の動作から、前記第1部品及び前記第2部品の属性の相違に起因して修正の対象となる動作を抽出するステップと、
    前記第1部品及び前記第2部品の属性の相違を補償するように、前記動作プログラム内の抽出された前記動作の指令値を修正することで、前記部品変更後の組立作業の一連の動作を前記ロボット装置に指示するための新たな動作プログラムを生成するステップと、
    を実行する、
    プログラム生成方法。
  11. コンピュータに、
    複数の部品から製品を組み立てる組立作業の一連の動作をロボット装置に指示するための動作プログラムを取得するステップと、
    前記複数の部品のうちの少なくともいずれかの部品を変更する部品変更の要求を受け付けるステップと、
    各部品の属性を示す属性情報を参照し、前記部品変更の対象に指定された第1部品の属性、及び前記部品変更により前記第1部品と置き換わる第2部品の属性を比較し、前記動作プログラム内で規定される前記一連の動作から、前記第1部品及び前記第2部品の属性の相違に起因して修正の対象となる動作を抽出するステップと、
    前記第1部品及び前記第2部品の属性の相違を補償するように、前記動作プログラム内の抽出された前記動作の指令値を修正することで、前記部品変更後の組立作業の一連の動作を前記ロボット装置に指示するための新たな動作プログラムを生成するステップと、
    を実行させるための、
    生成プログラム。
JP2021570561A 2020-01-16 2020-01-16 プログラム生成装置、プログラム生成方法、及び生成プログラム Active JP7260001B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/001244 WO2021144911A1 (ja) 2020-01-16 2020-01-16 プログラム生成装置、プログラム生成方法、及び生成プログラム

Publications (2)

Publication Number Publication Date
JPWO2021144911A1 JPWO2021144911A1 (ja) 2021-07-22
JP7260001B2 true JP7260001B2 (ja) 2023-04-18

Family

ID=76864588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021570561A Active JP7260001B2 (ja) 2020-01-16 2020-01-16 プログラム生成装置、プログラム生成方法、及び生成プログラム

Country Status (5)

Country Link
US (1) US20230032261A1 (ja)
EP (1) EP4091776A4 (ja)
JP (1) JP7260001B2 (ja)
CN (1) CN114845843A (ja)
WO (1) WO2021144911A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11620696B2 (en) * 2020-01-03 2023-04-04 International Business Machines Corporation Dynamic order prioritization enablement

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350620A (ja) 2005-06-15 2006-12-28 Fuji Electric Holdings Co Ltd 自動組立システムにおける組立機構の動作教示方法
JP2011238041A (ja) 2010-05-11 2011-11-24 Mitsubishi Electric Corp プログラム作成装置及びプログラム作成方法
JP2015182212A (ja) 2014-03-26 2015-10-22 セイコーエプソン株式会社 ロボットシステム、ロボット、制御装置、及び制御方法
JP2016112645A (ja) 2014-12-15 2016-06-23 新光エンジニアリング株式会社 産業用ロボットの制御システム
JP2017004414A (ja) 2015-06-15 2017-01-05 蛇の目ミシン工業株式会社 ロボット
JP2018083277A (ja) 2016-11-25 2018-05-31 富士通株式会社 組立作業ロボットの動作生成方法、動作生成プログラム、及び動作生成装置
WO2018123086A1 (ja) 2016-12-28 2018-07-05 オムロン株式会社 保持可否結果出力装置
JP2019171501A (ja) 2018-03-27 2019-10-10 日本電産株式会社 ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3601839B2 (ja) * 1993-07-22 2004-12-15 松下電器産業株式会社 実装機データの管理方法および生成方法
JP3872183B2 (ja) * 1997-08-27 2007-01-24 山形カシオ株式会社 カセット配設位置指定装置、方法、及び記録媒体
WO2002034463A1 (fr) * 2000-10-26 2002-05-02 Citizen Watch Co., Ltd. Procede et appareil permettant de preparer automatiquement un programme de traitement
JP3905075B2 (ja) * 2003-11-17 2007-04-18 ファナック株式会社 作業プログラム作成装置
JP2006289580A (ja) * 2005-04-13 2006-10-26 Fanuc Ltd プログラムの教示点修正方法及びプログラム教示点修正装置
JP4238256B2 (ja) * 2006-06-06 2009-03-18 ファナック株式会社 ロボットシミュレーション装置
BR112012020457A2 (pt) * 2010-02-18 2017-06-13 Gmtk Multi-Process Machining S A equipamento para a troca em máquinas operatrizes com um êmbolo de componentes substituíveis de categorias diferentes, método para a troca de dois componentes substituíveis de duas categorias diferentes e programa de computador para a troca em máquinas operatrizes de componentes substituíveis de categorias diferentes
JP5890477B2 (ja) * 2014-07-09 2016-03-22 ファナック株式会社 ロボットプログラム修正システム
WO2016158798A1 (ja) * 2015-03-27 2016-10-06 日本精工株式会社 製品置換支援システム
JP6640060B2 (ja) * 2016-09-27 2020-02-05 株式会社日立製作所 ロボットシステム
WO2018173318A1 (ja) * 2017-03-24 2018-09-27 三菱電機株式会社 ロボットプログラムの生成装置及び生成方法
US10843333B2 (en) * 2018-03-05 2020-11-24 Berkshire Grey, Inc. Systems and methods for processing objects, including automated re-circulating processing stations
JP6810093B2 (ja) * 2018-04-25 2021-01-06 ファナック株式会社 ロボットのシミュレーション装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350620A (ja) 2005-06-15 2006-12-28 Fuji Electric Holdings Co Ltd 自動組立システムにおける組立機構の動作教示方法
JP2011238041A (ja) 2010-05-11 2011-11-24 Mitsubishi Electric Corp プログラム作成装置及びプログラム作成方法
JP2015182212A (ja) 2014-03-26 2015-10-22 セイコーエプソン株式会社 ロボットシステム、ロボット、制御装置、及び制御方法
JP2016112645A (ja) 2014-12-15 2016-06-23 新光エンジニアリング株式会社 産業用ロボットの制御システム
JP2017004414A (ja) 2015-06-15 2017-01-05 蛇の目ミシン工業株式会社 ロボット
JP2018083277A (ja) 2016-11-25 2018-05-31 富士通株式会社 組立作業ロボットの動作生成方法、動作生成プログラム、及び動作生成装置
WO2018123086A1 (ja) 2016-12-28 2018-07-05 オムロン株式会社 保持可否結果出力装置
JP2019171501A (ja) 2018-03-27 2019-10-10 日本電産株式会社 ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム

Also Published As

Publication number Publication date
US20230032261A1 (en) 2023-02-02
CN114845843A (zh) 2022-08-02
WO2021144911A1 (ja) 2021-07-22
JPWO2021144911A1 (ja) 2021-07-22
EP4091776A4 (en) 2023-04-26
EP4091776A1 (en) 2022-11-23

Similar Documents

Publication Publication Date Title
Ju et al. Kinematics modeling and experimental verification of baxter robot
JP4235214B2 (ja) ロボットプログラムを作成するための装置、プログラム、記録媒体及び方法
US20120029700A1 (en) Method for offline programming of an nc-controlled manipulator
JP2015071206A (ja) 制御装置、ロボット、教示データ生成方法及びプログラム
CN112684717A (zh) 一种虚实结合数字孪生仿真实验平台构建方法
US20220331964A1 (en) Device and method for controlling a robot to insert an object into an insertion
US20220335622A1 (en) Device and method for training a neural network for controlling a robot for an inserting task
Moura et al. Application for automatic programming of palletizing robots
JP7260001B2 (ja) プログラム生成装置、プログラム生成方法、及び生成プログラム
Zhang et al. Industrial robot programming by demonstration
Agustian et al. Robot manipulator control with inverse kinematics PD-pseudoinverse Jacobian and forward kinematics Denavit Hartenberg
US9971852B2 (en) Robotics connector
CN115697648A (zh) 控制系统和控制方法
Arents et al. Construction of a smart vision-guided robot system for manipulation in a dynamic environment
JP2015003348A (ja) ロボット制御システム、制御装置、ロボット、ロボット制御システムの制御方法及びロボットの制御方法
Li et al. Digital twin model-based smart assembly strategy design and precision evaluation for PCB kit-box build
WO2021106517A1 (ja) 情報提示装置、情報提示方法、及び情報提示プログラム
Linnerud et al. CAD-based system for programming of robotic assembly processes with human-in-the-loop
JP7374867B2 (ja) 制御システム、ローカルコントローラ及び制御方法
Zhou et al. A cooperative shared control scheme based on intention recognition for flexible assembly manufacturing
Ahn et al. An off-line automatic teaching by vision information for robotic assembly task
Baizid et al. Industrial robotics platform for simulation design, planning and optimization based on off-line CAD programming
CN115697649A (zh) 生产系统、单元控制器、机器人控制器以及控制方法
Chang et al. Cyber-physical-robotic System (CPRS)-based Modeling and Execution of Assembly Tasks.
Wang et al. Case‐based automatic programming in robotic assembly production

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220616

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230320

R150 Certificate of patent or registration of utility model

Ref document number: 7260001

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150