JP7474653B2 - 組立作業順序計画装置、及び組立作業順序計画方法 - Google Patents

組立作業順序計画装置、及び組立作業順序計画方法 Download PDF

Info

Publication number
JP7474653B2
JP7474653B2 JP2020121910A JP2020121910A JP7474653B2 JP 7474653 B2 JP7474653 B2 JP 7474653B2 JP 2020121910 A JP2020121910 A JP 2020121910A JP 2020121910 A JP2020121910 A JP 2020121910A JP 7474653 B2 JP7474653 B2 JP 7474653B2
Authority
JP
Japan
Prior art keywords
assembly
state
assembly work
work
robot
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
JP2020121910A
Other languages
English (en)
Other versions
JP2022018654A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020121910A priority Critical patent/JP7474653B2/ja
Priority to PCT/JP2021/017731 priority patent/WO2022014128A1/ja
Publication of JP2022018654A publication Critical patent/JP2022018654A/ja
Application granted granted Critical
Publication of JP7474653B2 publication Critical patent/JP7474653B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23PMETAL-WORKING NOT OTHERWISE PROVIDED FOR; COMBINED OPERATIONS; UNIVERSAL MACHINE TOOLS
    • B23P21/00Machines for assembling a multiplicity of different parts to compose units, with or without preceding or subsequent working of such parts, e.g. with programme control
    • 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
    • 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] or computer integrated manufacturing [CIM]
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Manipulator (AREA)
  • Automatic Assembly (AREA)
  • General Factory Administration (AREA)

Description

本発明は、組立作業順序計画装置、及び組立作業順序計画方法に関する。
複数の部品からなる製品の組立作業においては、事前に効率の良い作業方法と順序が計画される。組立作業現場では、作業員とロボットとが個別に作業を行う場合だけでなく、作業員とロボットとが混在して作業を行う場合がある。作業員とロボットとが混在する作業現場では、組立作業順序計画を効率化して生産の効率化を図ることが重要である。特に、ロボットによる作業は事前にロボットによる作業の内容を完全に定義しておく必要があり、ロボットの普及と低コスト化に伴うラインやセルのロボット構成の多様化が進む状況においては組立作業順序計画の自動化が望まれている。
組立作業順序の計画方法に関し、例えば特許文献1には、製品の3次元CAD(Computer Aided Design)モデルから部品毎の部品属性と部品配置と他の部品との隣接関係情報を抽出し、部品間の結合優先関係を有向グラフとして生成し、隣接関係情報からアセンブリグラフを生成し、部品の分解順序を求めることで、その逆順序として組立順序を生成する技術が記載されている。
また、例えば特許文献2には、3次元CADデータを入力とし、タスクプランナで組立作業計画を行い、組立作業はペトリネットによりモデル化し、最適経路を探索することでロボットプログラムをオフラインで生成する技術が記載されている。
さらに、例えば特許文献3には、ロボットによる作業動作のシミュレーションを実行して、実行結果に基づいて制御指令を判定する際、判定結果が良好な場合と不良な場合とにそれぞれ対する結果ラベルを訓練データとして、制御指令を学習する技術が記載されている。
特許第6199210号公報 特許第3705672号公報 特許第6457421号公報
特許文献1に記載の技術は、3次元CADデータから抽出した部品間の結合の優先関係及び隣接関係に基づく有向グラフとアセンブリグラフとを用いて組立順序を生成するものであり、製品中にある部品の数に応じて膨大な数の組立順序が生成されてしまうことになる。また、結合の優先関係等をマニュアル設定する必要性があり、効率的に組立順序を決めることが困難である。さらに、作業主体の作業順序は生成できない。
特許文献2に記載の技術は、組立作業計画方法を含むが、組立順序は製品の状態レベル、対象移動レベル、手先移動レベルと階層化されておりペトリネットでモデル化される。ペトリネットを構成した段階で組立順序が定まるが、ペトリネットを自動構成(自動モデル化)する方法ではないため、ロボット及び作業員を作業主体とする組立作業順序の生成はできない。
特許文献3に記載の技術は、強化学習技術を利用して、ロボットを含む機械の制御指令を学習するものであり、作業動作のシミュレーションを実行することで学習を進める。組立作業順序は一連の作業動作を定める際にすでに定義されるものであるので、組立作業順序を生成するものではない。
本発明は、上記の点に鑑みてなされたものであって、製品を構成する各部品の組立順序と、ロボット及び作業員を含み得る作業主体の作業順序とを計画できるようにすることを目的とする。
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
上記課題を解決するため、本発明の一態様に係る組立作業順序計画装置は、複数の部品を組付けた部組品を経て最終的な製品に組立てられるまでの過程を表す情報を含む組立状態遷移情報を取得する情報取得部と、前記組立状態遷移情報に基づき、組付前の2つの前記部品または前記部組品からなる組立状態に対して作業主体が実行し得る作業を定義する組立作業定義部と、前記作業の実行の可否に関する制約条件を設定する制約条件設定部と、前記制約条件に従い、前記組立状態に対する前記作業の選択方法を強化学習する学習部と、前記強化学習の結果に基づいて前記製品の組立作業順序を生成する組立作業順序生成部と、を備えることを特徴とする。
本発明によれば、製品を構成する各部品の組立順序と、ロボット及び作業員を含み得る作業主体の作業順序とを計画することが可能となる。
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
図1は、本発明の第1の実施形態に係る組立作業順序計画装置の構成例を示す図である。 図2は、組立作業環境の一例を示す図である。 図3は、複数の部品から成る製品の一例を示す図である。 図4は、図3に示された製品の組立状態遷移を表すAND/OR木を示す図である。 図5は、図4に対応する各組立状態への遷移の一覧を示す図である。 図6は、製品の組立状態遷移に基づき、作業主体を1台のロボットとして設定した組立作業順序の一例、及び作業毎の組立状態を示す図である。 図7は、組立状態遷移、及び組立作業環境に基づき、作業主体を1台のロボットとして設定した組立作業順序の一例、及び作業毎の組立状態を示す図である。 図8は、組立状態遷移、及び組立作業環境に基づき、作業主体を2台のロボットとして設定した組立作業順序の一例、及び作業毎の組立状態を示す図である。 図9は、第1の実施形態に係る組立作業順序計画装置による組立作業順序計画処理の一例を説明するフローチャートである。 図10は、本発明の第2の実施形態に係る組立作業順序計画装置の構成例を示す図である。 図11は、複数の部品から成る製品の一例を示す図である。 図12は、図11の組立作業に対応する各組立状態への遷移の一覧を示している。 図13は、製品の組立状態遷移、及び組立作業環境に基づき、作業主体を1台のロボット及び1名の作業員として設定した組立作業順序の一例、及び作業毎の組立状態を示す図である。 図14は、第2の実施形態に係る組立作業順序計画装置による組立作業順序計画処理の一例を説明するフローチャートである。 図15は、A3Cの概要を説明するための図である。 図16は、行動選択関数と状態価値関数の訓練の処理内容について説明するための図である。
以下、本発明の複数の実施形態について図面に基づいて説明する。なお、各実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。
<第1の実施形態>
図1は、本発明の第1の実施形態に係る組立作業順序計画装置10の構成例を示している。
組立作業順序計画装置10は、ロボット及び作業員を含み得る作業主体により部品を組付け製品を完成させる際の組立作業順序を計画するためのものである。
組立作業順序計画装置10は、演算部11、記憶部12、入力部13、出力部14、及び通信部15の各機能ブロックを備える。
組立作業順序計画装置10は、CPU(Central Processing Unit)等のプロセッサ、DRAM(Dynamic Random Access Memory)等のメモリ、HDD(Hard Disk Drive)やSSD(Solid State Drive)等のストレージ、キーボード、マウス、タッチパネル等の入力デバイス、ディスプレイ等の出力デバイス、及び、NIC(Network Interface Card)等の通信モジュールを備えるパーソナルコンピュータ等の一般的なコンピュータから成る。
演算部11は、コンピュータのプロセッサにより実現される。演算部11は、情報取得部111、組立作業定義部112、制約条件設定部113、行動選択・価値関数構成部114、報酬設定部115、学習部116、及び組立作業順序生成部117の機能ブロックを有する。これらの機能ブロックは、コンピュータのプロセッサがメモリにロードされた所定のプログラムを実行することによって実現される。ただし、これらの機能ブロックの一部または全部を集積回路等によりハードウェアとして実現してもよい。
情報取得部111は、通信部15を介して、インターネットや携帯電話通信網等からなるネットワーク1に接続されたCAD(Computer Aided Design)システム20から組立作業環境・製品情報121、及び組立状態遷移情報122を取得して記憶部12に格納する。
ここで、組立作業環境・製品情報121には、予めCADシステム20によりCADデータとしてモデリングされている、組立作業環境に存在する物体(例えば、ロボット、ステージ、部品載置用トレイ、搬送装置、ロボットのアームに装着するハンドやツール、枠構造物等)の形状及び位置を表す情報が含まれる。さらに、組立作業環境・製品情報121には、製品を構成する複数の部品に関する情報が含まれる。
組立状態遷移情報122には、複数の部品を組付けた部組品を経て最終的な製品に組立てられるまでの過程を表す情報と、接触拘束条件が含まれる。ここで、接触拘束条件とは、部品間の接触による部品の移動方向の制約を表す。接触拘束条件によれば、組立過程における組立状態の遷移関係が得られる。
組立作業定義部112は、組立状態遷移情報122を参照し、組付前の2つの部品または部組品からなる組立状態に対して、組立作業を定義し、定義した組立作業を組立作業情報123として記憶部12に格納する。なお、組立作業定義部112は、組立作業環境(ロボットのハンド、トレイ、ステージ等)の作業前の状態を設定することができる。さらに、組立作業定義部112は、例えば、ステージ等の組立作業環境の状態を遷移させる作業を設定することができる。
制約条件設定部113は、制約条件を設定し、制約条件情報124として記憶部12に格納する。制約条件の設定とは、組立状態に対して実施できない作業を対応付けることである。組立状態遷移から組立作業を定義した場合、強化学習において、組立状態に対して作業を選択する場合、組立状態がその作業の事前に想定されたものではないときには、制約条件により、選択できない作業と判断される。組立作業環境の状態に対する作業の選択についても同様である。
なお、組立作業の順序に制約条件を設定してもよい。例えば、ある部品を組付ける前にある作業を実行しなければならない場合には、該部品が存在する状態で該作業が選択されなければならない。反対に、ある部品の組付後に、ある作業を実行しなければならない場合には、該部品が存在しない状態で該作業が選択されなければならない。
行動選択・価値関数構成部114は、組立作業順序を計画するための、組立状態に対する作業を選択し、組立作業順序を設定する強化学習に用いる、状態と行動との関係を表現する行動選択関数、及び、状態と状態価値との関係を表現する価値関数を構成する。なお、行動選択関数、及び価値関数を構成するためには、状態(state)、及び行動(action)の項目が必要であり、これらは、組立状態遷移情報122及び組立作業情報123から取得される。本実施形態の場合、組立状態が、強化学習技術分野における用語としての状態に相当し、作業が、強化学習技術分野における用語としての行動に相当する。
なお、強化学習を実現するためのアルゴリズムはテーブルQ学習、関数近似法、さらにはそれらを修正、拡張した手法など多数存在する。本実施形態では、深層ニューラルネットワークを近似関数とした深層強化学習の1例であるon-policy手法のA3C(Asynchronous Advantage Actor-Critic)を採用する。A3Cでは、状態を入力、選択される行動と価値関数を出力としてニューラルネットワークを構成する。ニューラルネットワークの中間層の層数、各層のノード数については事前に設定しておく。
他の深層強化学習としては、off-policy手法のDQN(Deep Q-learning Network)があり、行動価値関数を深層ニューラルネットワークで構成することとなる。テーブルQ学習では、状態と行動価値を対応付けるQテーブル(配列)を構成することとなる。いずれの方法を採用してもよいが、強化学習を行うためには行動選択と行動選択を評価するための価値を状態から求める仕掛けを構成することが必要となる。なお、強化学習については、図15及び図16を参照して後述する。
報酬設定部115は、組立状態に対して、制約条件に抵触するため実施できない作業が選択された場合には負の報酬を設定する。また、製品が完成し、組立作業の完了状態が得られた場合には正の報酬を設定する。
学習部116は、組立の初期状態から、組立状態に対する作業選択が失敗して組立失敗となるか、組立状態に対する作業選択が成功して組立作業が完了して組立成功となるかの、一連の行動を意味するエピソードを繰り返すことにより強化学習を実行する。
具体的には、エピソードを繰り返し、状態に対する行動選択を学習し、組立成功の結果が得られるようになれば、強化学習を完了する。強化学習が完了することによって、状態に対して良い行動が選択される行動選択関数が得られたこととなる。なお、1つのエピソードの処理においては、初期状態に対して行動を選択し、次の状態を得る。さらに行動を選択して、その次の行動を得る。このようにステップ毎に行動選択を繰返して状態を進め、行動選択を誤った場合、または許されない状態となった場合には、負の報酬を得てエピソードを終了する。反対に、成功した状態になった場合には、正の報酬を得てエピソードを終了する。以下、学習のことを訓練と称することもある。
組立作業順序生成部117は、学習部116による強化学習の結果に基づいて組立作業順序を設定する。具体的には、強化学習の結果得られた行動選択関数に基づき、組立の初期状態から組立作業が完了した組立成功の状態までの過程で選択された一連の行動を組立作業順序として生成する。また各作業段階での組立状態、組立作業環境の状態も生成する。
記憶部12は、コンピュータのメモリ及びストレージによって実現される。記憶部12には、組立作業環境・製品情報121、組立状態遷移情報122、組立作業情報123、及び制約条件情報124が格納される。記憶部12には、これら以外の情報を格納するようにしてもよい。
入力部13は、コンピュータの入力デバイスによって実現される。入力部13は、オペレータ(ユーザ)からの各種の操作を受け付ける。出力部14は、コンピュータの出力デバイスによって実現される。出力部14は、例えば、操作入力画面を表示する。通信部15、コンピュータの通信モジュールによって実現される。通信部15は、ネットワーク1を介してCADシステム20と接続し、CADシステム20から所定の情報を受信する。
CADシステム20は、組立作業順序計画装置10からの要求に応じ、組立作業環境・製品情報121、及び組立状態遷移情報122を供給する。
次に、図2は、組立作業環境の一例を示している。
該組立作業環境には、2台のロボットR1,R2、台座311に設けられたステージ312、トレイ321,322、及び、ハンド設置台331,332が設けられている。
ロボットR1は、ハンドが交換可能であり、同図においてはハンド303が装着されている。同様に、ロボットR2は、ハンドが交換可能であり、同図においてはハンド304が装着されている。なお、本実施形態において、ハンドは、ロボット(マニピュレータ)のエンドエフェクタを意味し、必ずしも把持する構造を有するものに限らない。ハンドには、例えば、ドライバのようなツール(工具)も含まれる。
トレイ321,322には、次の作業でステージ312に移動、載置されて組付作業の対象となる部品が置かれている。ハンド設置台331,332には、現在装着されているハンド303,304と交換可能な交換用ハンド333,334が置かれている。
同図の組立作業環境では、2台のロボットR1,R2が同時に稼働してステージ312上に載置した部品を組付ける作業を実行することができる。
次に、図3は、組立作業順序計画装置10にて組立作業順序を計画する製品40の一例を示している。製品40は、ベース部品Aの上に板部品B,Cを配置し、それぞれをネジ部品D,Eによって締結、固定することにより完成する構造を有する。
図4は、図3に示された製品40の組立状態遷移を表すAND/OR木を示している。
該AND/OR木はツリー構造であって、単体の部品、2つ以上の部品が組付けられた部組品、または製品を表す各組立状態は、楕円で示す各ノード(節点)によって表わされる。ある組立状態から次の組立状態への遷移は、あるノードと他のノードとを接続するエッジ(稜線)によって表される。
組立状態は、部品単体はベース部品A、板部品B,C、ネジ部品D,Eの5状態、2つの部品からなる部組品AB,ACの2状態、3つの部品から成る部組品ABC,ABD、ACEの3状態、4つの部品から成る部組品ABCD,ABCEの2状態、4つの部品から成る完成品ABCDEの1状態の全13状態である。
例えば、ノードAは、ベース部品Aが単体で存在する組立状態を表し、ベース部品Aに板部品Bを組付ける作業を行うことにより、部組品ABの組立状態を表すノードABに遷移する。また、例えば、ノードABは、ベース部品Aに板部品Bが組付けられた部組品としての組立状態を表し、部組品ABに板部品Cを組付ける作業を行うことにより、部組品ABCの組立状態を表すノードABCに遷移する。
なお、AND/OR木におけるノード間の遷移には、部品間の接触拘束条件が反映される。例えば、ネジ部品Dの組付け作業は、ベース部品A上に板部品Bが配置されていなければ実行できない。よって、ネジ部品Dの組付け作業を選択するには、少なくともベース部品Aに板部品Bが配置されている組付状態を表すノードAB(部組品AB)、ノードABC(部組品ABC)またはノードABCE(部組品ABCE)に既に遷移していることが条件となる。
図5は、図4に示されたAND/OR木における各組立状態への遷移の一覧を示している。
製品40は、始めにベース部品Aに対して板部品B,Cのどちらから組付けてもよい。また、部組品ABCに対しては、ネジ部品D,Eのどちらから組付けてもよい、したがって、単体の部品から完成品を得るまでの組立順序は6通りとなる。各組立状態への遷移は、図5に示すNo1~No12の12通りが存在する。
次に、製品40の組立状態遷移(AND/OR木)(図4)に基づく組立作業順序の設定方法について説明する。
なお、図2の組立作業環境には2台のロボットR1,R2が存在したが、はじめに、作業主体を1台のロボット(ロボットR1,R2の一方)だけとする場合について説明し、次に、作業主体を複数(例えば、2台)のロボットとする場合について説明する。
なお、前提として、1台のロボットによる1回の作業により、組立状態が1つだけ遷移するものとする。
図4の組立状態遷移に基づいて定義される作業は以下の作業W1~W5となる。
作業W1:ベース部品Aの組付。
作業W2:板部品Bの組付。
作業W3:板部品Cの組付。
作業W4:ネジ部品Dの組付。
作業W5:ネジ部品Dの組付。
組立作業の制約条件及び報酬は、組立状態遷移から直接に導かれる。例えば、作業W4(ネジ部品Dの組付)は、実行前に部組品AB、部組品ABC、または部組品ABCEのいずれかの組立状態が存在しなければない。したがって、組立状態として部組品AB、部組品ABC、または部組品ABCEのいずれかが存在しない状態において、作業W4を選択した場合には負の報酬を設定するようにする。
また、例えば、組立作業の初期状態において、ベース部品Aはステージ312の上に予め載置されていることを前提とすれば、組立作業の1番目に作業W1を選択した場合には負の報酬を設定するようにする。
なお、ベース部品Aをステージ312の上に載置する作業を設計したい場合には、ベース部品Aに関する状態として、トレイ321(または322)に載置されている状態、及び、ステージ312に載置されている状態を設け、トレイ321(または322)に載置されている状態から、作業W1を実行することにより、ステージ312に載置されている状態に遷移するようにすればよい。
図6は、製品40の組立状態遷移(図4)に基づいて設定した組立作業順序の一例、及び作業毎の組立状態を示している。
該組立作業順序は、作業主体を1台のロボットのみとし、製品40の組立状態に基づいて、作業W1~業W5の5種類の作業を選択させる強化学習によって設定される。
同図に示す組立作業順序は作業ステップ0番から4番まであり、0番は初期状態、4番は完了状態である。各部品等に対応して記載されている状態値0は、対応する部品等が存在していない状態であることを意味し、状態値1は対応する部品等が存在している状態ことを意味する。組立作業の初期状態は、各部品が単体で存在し、部組品及び製品は存在しない状態と定義する。組立作業の完了状態は、製品ABCDEが存在する状態と定義する。
作業ステップ0番は初期状態である。次の作業ステップ1番では、ロボットが作業W2(板部品Bの組付)を実行する。これにより、ベース部品A、及び板部品Bが消滅し、部組品ABが出現する。
次の作業ステップ2番では、ロボットが作業W3(板部品Cの組付)を実行する。これにより、板部品C及び部組品ABが消滅し、部組品ABCが出現する。次の作業ステップ3番では、ロボットが作業W4(ネジ部品Dの組付)を実行する。これにより、ネジ部品D及び部組品ABCが消滅し、部組品ABCDが出現する。次の作業ステップ4番では、ロボットが作業W5(ネジ部品Eの組付)を実行する。これにより、ネジ部品E及び部組品ABCDが消滅し、製品ABCDEが出現する。これにより、完了状態が得られて、組立作業が終了される。
なお、作業W2(板部品Bの組付)と作業W3(板部品Cの組付)の順序はいずれを先に実行してもよく、組立状態の遷移のみから定めることはできない。
作業W2は、ベース部品A、部組品AC、または部組品ACEの組立状態においてのみ、選択可能である。仮に、板部品Cを組付ける前に板部品Bを組付けなければならないという制約条件が設定されていれば、作業W2の前提となる組立状態は、ベース部品Aの単体のみとなる。
次に、製品40の組立状態遷移に加え、組立作業環境の状態にも基づいて作業を設定する場合の例を説明する。組立作業環境の状態としては、ロボットのハンドを交換する作業を導入する。
ネジ部品D,Eを組付ける場合、ロボットにはドライバハンドを装着し、板部品B,Cを組付ける場合、ロボットにはグリップハンドを装着するものとする。
この場合、組立作業環境の状態として、ロボットのハンドに関する「グリップハンド」及び「ドライバハンド」を追加し、上述した作業W1~W5に追加し、以下の作業W6~W8を定義すればよい。
作業W6:グリップハンドの装着。
作業W7:ドライバハンドの装着。
作業W8:ハンドの取り外し。
そして、前提条件として、作業W2(板部品Bの組付),W3(板部品Cの組付)については、グリップハンドが装着されている状態である場合にのみ作業可能であると設定する。同様に、作業W4(ネジ部品Dの組付),W5(ネジ部品Eの組付)については、ドライバハンドが装着されている状態である場合にのみ作業可能であると設定する。
作業W6(グリップハンドの装着),W7(ドライバハンド)の装着については、ロボットにハンドが装着されていない状態である場合にのみ作業可能であると設定する。作業W8(ハンドの取り外し)については、ロボットにグリップハンドまたはドライバハンドが装着されている状態である場合にのみ作業可能であると設定する。
組立作業の初期状態は、各部品が単体で存在し、ロボットにクリップハンド及びドライバハンドのいずれもが装着されていない状態と定義する。組立作業の完了状態は、製品ABCDEが得られ、さらに、ロボットにハンドが装着されていない状態と定義する。
なお、組立作業環境には、ドライバハンド及びグリップハンド以外のハンドを準備してもよい。さらに、1台のロボットが複数のアームを有し、ドライバハンド及びグリップハンドを同時に装着できるようにしてもよい。
図7は、製品40の組立状態遷移(図4)、及び組立作業環境(ロボットのハンドの状態)に基づいて設定した組立作業順序の一例、及び作業毎の組立状態を示している。
該組立作業順序は、作業主体を1台のロボットのみとし、製品40の組立状態及び組立作業環境に基づいて、作業W1~W8までの8種類の作業を選択させる強化学習によって設定される。
同図に示す組立作業順序は作業ステップ0番から8番まであり、0番が初期状態、8番が完了状態である。部品A等に対応して記載されている状態値は図6の場合と同様である。
例えば、作業ステップ0番の初期状態では、単体の部品のみが存在し、ロボットにはクリップハンド及びドライバハンドのいずれもが装着されていない。
次の作業ステップ1番では、ロボットが作業W6(グリップハンドの装着)を実行する。これにより、ロボットによる作業W2(板部品Bの組付),W3(板部品Cの組付)が実行可能となる。次の作業ステップ2番では、ロボットが作業W2を実行する。これにより、ベース部品A、及び板部品Bが消滅し、部組品ABが出現する。次の作業ステップ3番では、ロボットが作業W3を実行する。これにより、板部品C、及び部組品ABが消滅し、部組品ABCが出現する。
次の作業ステップ4番では、ロボットが作業W8(ハンドの取り外し)を実行する。これにより、ロボットによる作業W6(グリップハンドの装着),W7(ドライバハンドの装着)が実行可能となる。次の作業ステップ5番では、ロボットが作業W7を実行する。これにより、ロボットによる作業W4(ネジ部品Dの組付),W5(ネジ部品Eの組付)が実行可能となる。
次の作業ステップ6番では、ロボットが作業W4を実行する。これにより、ネジ部品D、及び部組品ABCが消滅し、部組品ABCDが出現する。次の作業ステップ7番では、ロボットが作業W5を実行する。これにより、ネジ部品E、及び部組品ABCDが消滅し、製品ABCDEが出現する。次の作業ステップ8番では、ロボットが作業W8(ハンドの取り外し)を実行する。これにより、完了状態が得られて組立作業が終了される。
次に、作業主体を複数のロボット(一例として、図2の2台のロボットR1,R2)とする場合について説明する。
この場合、組立作業環境の状態として、2台のロボットそれぞれのハンドに関する「グリップハンド」及び「ドライバハンド」を追加する。2台のロボットが選択し得る行動は、上述したように定義した作業W1~W8である。ただし、2台のロボットのうち、一方のロボットが作業しない(作業できない)場合が発生し得るので、以下の作業W0を追加して定義する。
作業W0:待機。
なお、作業W0の前提となる状態や、作業0から遷移可能な状態等に制限はない。
2台のロボットに対しては、同時に同じ作業を選択してもよい。ただし、作業前の状態に制約があって、一方のロボットに対して選択した作業により作業前の状態が無くなってしまうのであれば、他方のロボットに対して同じ作業を選択した場合には負の報酬を設定するようにする。
組立作業の初期状態は、各部品が単体で存在し、2台のロボットそれぞれにハンドが装着されていない状態と定義する。組立作業の完了状態は、製品ABCDEが得られ、さらに、2台のロボットそれぞれにハンドが装着されていない状態と定義する。
図8は、製品40の組立状態遷移(図4)、及び組立作業環境(ハンドの状態)に基づいて設定した組立作業順序の一例、及び作業毎の組立状態を示している。
該組立作業順序は、製品40の組立作業を実施する作業主体を2台のロボットとし、製品40の組立状態及び組立作業環境に基づいて、作業W0~W8までの9種類の作業を選択させる強化学習によって設定される。
なお、同図においては、2台のロボットをロボットR1,R2とし、ロボットR1のハンドの状態をR1グリップ及びR1ドライバ、ロボットR2のハンドの状態をR2グリップ及びR2ドライバとしている。
同図に示す組立作業順序は作業ステップ0番から5番まであり、0番が初期状態、5番が完了状態である。部品A等に対応して記載されている状態値は図6の場合と同様である。
例えば、作業ステップ0番の初期状態では、単体の部品のみが存在し、部組品、及び製品は存在しない。また、2台のロボットR1,R2それぞれにはクリップハンド及びドライバハンドが装着されていない。
次の作業ステップ1番では、ロボットR1が作業W6(グリップハンドの装着)を実行し、ロボット2が作業W7(ドライバハンドの装着)を実行する。これにより、ロボットR1による作業W2(板部品Bの組付),W3(板部品Cの組付)が実行可能となり、ロボットR2による作業W4(ネジ部品Dの組付),W5(ネジ部品Eの組付)が実行可能となる。
次の作業ステップ2番では、ロボットR1が作業W2を実行する。これにより、ベース部品A、及び板部品Bが消滅し、部組品ABが出現する。一方、ロボットR2が作業W0(待機)を実行する。次の作業ステップ3番では、ロボットR1が作業W3を実行し、ロボットR2が作業W4(ネジ部品Dの組付)を実行する。これにより、板部品C、ネジ部品D、及び部組品ABが消滅し、部組品ABCDが出現する。
次の作業ステップ4番では、ロボットR1が作業W8(ハンドの取り外し)を実行し、ロボットR2が作業W5(ネジ部品Eの組付)を実行する。これにより、ネジ部品E、及び部組品ABCDが消滅し、製品ABCDEが出現する。次の作業ステップ5番では、ロボットR1が作業W0(待機)を実行し、ロボットR2が作業W8(ハンドの取り外し)を実行する。これにより、完了状態が得られて組立作業が終了される。
なお、組立作業順序は、作業主体を3台以上のロボットとして設定することも可能である。また、組立作業環境として、ハンド以外にトレイ321,322、ステージ312等の状態を追加してもよい。さらに、作業の定義に、部品を所定の位置から他の位置まで搬送する搬送装置の作業を追加してもよい。
<組立作業順序計画装置10による組立作業順序計画処理>
次に、図9は、組立作業順序計画装置10による組立作業順序計画処理の一例を説明するフローチャートである。
前提として、CADシステム20は、製品の形状モデル及びロボット等から構成される組立作業環境の形状モデルをモデリング済みであり、組立作業環境・製品情報121、及び組立状態遷移情報(AND/OR木)122を組立作業順序計画装置10に供給可能であるとする。
該組立作業順序計画処理は、例えば、ユーザからの所定の操作に応じて開始される。
始めに、情報取得部111が、CADシステム20から組立作業環境・製品情報121、を取得して記憶部12に格納する(ステップS1)。次に、情報取得部111が、CADシステム20から組立状態遷移情報122を取得して記憶部12に格納する(ステップS2)。
次に、組立作業定義部112が、組立作業環境(ロボットのハンド、トレイ、ステージ等)の作業前の状態を設定する(ステップS3)、次に、組立作業定義部112が、組立状態遷移情報122に基づいて、組付前の2つの部品または部組品からなる組立状態に対して、組立作業を定義し、定義した組立作業を組立作業情報123として記憶部12に格納する(ステップS4)。
次に、制約条件設定部113が、制約条件を設定し、制約条件情報124として記憶部12に格納する(ステップS5)。
次に、行動選択・価値関数構成部114が、強化学習に用いる行動選択関数、及び、価値関数を定義する(ステップS6)。次に、報酬設定部115が、各組立状態に対して選択された作業に対して報酬を設定する(ステップS7)。
次に、学習部116が、組立の初期状態から、組立状態に対する作業選択が失敗して組立失敗となるか、組立状態に対する作業選択が成功して組立作業が完了して組立成功となるかの、一連の行動を意味するエピソードを繰り返すことにより強化学習を実行する(ステップS8)。
具体的には、エピソードを繰り返し、状態に対する行動選択を学習し、組立成功の結果が得られるようになれば、強化学習を完了する。強化学習が完了することによって、状態に対して良い行動が選択される行動選択関数が得られたこととなる。なお、1つのエピソードの処理においては、初期状態に対して行動を選択し、次の状態を得る。さらに行動を選択して、その次の行動を得る。このようにステップ毎に行動選択を繰返して状態を進め、行動選択を誤った場合、または許されない状態となった場合には、負の報酬を得てエピソードを終了する。反対に、成功した状態になった場合には、正の報酬を得てエピソードを終了する。
強化学習では、エピソードの繰返し回数が少ない期間は成功に至らずに失敗となるが、エピソードの繰返し回数が増えて学習が進むと、エピソードが成功するようになる。そこで、エピソードが所定回数(例えば、3回)連続して成功した場合に強化学習を終了するようにする。
次に、組立作業順序生成部117が、強化学習結果として得られた行動選択関数、及び状態価値関数を使って、初期状態からエピソードを試行することにより、製品が完成するまでの作業の一連の選択結果をつなげて組立作業順序を設定する(ステップS9)。
以上に説明した組立作業順序計画装置10による組立作業順序計画処理によれば、製品を構成する各部品の組立順序と、ロボットを作業主体とする作業順序とを計画することが可能となる。
<第2の実施形態>
次に、図10は、本発明の第2の実施形態に係る組立作業順序計画装置100の構成例を示している。
組立作業順序計画装置100は、ロボット及び作業員を含み得る作業主体により部品を組付けて製品を完成させる際の組立作業順序を計画するためのものである。
組立作業順序計画装置100は、本発明の第1の実施形態に係る組立作業順序計画装置10(図1)における組立作業定義部112を、組立状態ベース組立作業定義部112A、及び作業状態ベース組立作業定義部112Bに分割し、シミュレーション指示部118を追加したものである。
また、組立作業順序計画装置100は、記憶部12に格納される情報として、制約条件判定シミュレーション情報125、及び組立作業順序シミュレーション情報126を追加したものである。
さらに、組立作業順序計画装置100の外部には、組立作業順序計画装置100がネットワーク1を介して接続可能なロボットシミュレータ30が追加されている。ロボットシミュレータ30は、組立作業順序計画装置100からの指示に従い、組立作業環境の設置されているロボットR1,R2による作業のシミュレーションを実行し、シミュレーション結果を組立作業順序計画装置100に出力する。
なお、組立作業順序計画装置100の構成要素のうち、組立作業順序計画装置10(図1)の構成要素と共通するものについては同一の符号を付してその説明を省略する。
組立状態ベース組立作業定義部112Aは、組立作業順序計画装置10(図1)における組立作業定義部112と同様に、組立状態遷移情報122を参照して、組立作業を定義する。
作業状態ベース組立作業定義部112Bは、組立作業環境・製品情報121を参照し、組立作業環境の状態に対して組立に必要となる作業を定義する。例えば、ある部品を組付けるためにドライバハンドが必要であるならば、該部品を組付ける前の組立状態において、ロボットにドライバハンドを装着する作業を定義する。この場合、該部品を組み付ける前の組立状態であって、ロボットにドライバハンドが装着されている状態であれば、該部品を組付ける作業が実行可能となる。
なお、組立作業環境としての状態を設定し得るものはロボットのハンドだけではない。例えば、組立作業環境に複数のステージが存在している場合には、組立に利用中であるか否かという状態を設定できる。また、作業主体となるロボットや作業者は、ある作業を実施しているので、作業主体が実施している作業の種類を作業主体の状態とみなして設定してもよい。
シミュレーション指示部118は、外部に設けたロボットシミュレータ30に対し、制約条件を設定するための個別組立作業シミュレーションをロボットシミュレータ30に指示し、そのシミュレーション結果を取得する。この場合、制約条件設定部113は、そのシミュレーション結果に基づいて制約条件を修正することができる。また、シミュレーション指示部118は、ロボットシミュレータ30に対し、最終的に得られた組立作業順序に従った組立作業シミュレーションを指示し、そのシミュレーション結果を取得する。該シミュレーション結果は、最終的に得られた組立作業順序が有効であることの確認に用いることができる。
制約条件判定シミュレーション情報125は、制約条件を設定するための個別組立作業シミュレーションをロボットシミュレータ30に指示した際の条件と、そのシミュレーション結果を含む情報である。
組立作業順序シミュレーション情報126は、組立作業順序シミュレーションをロボットシミュレータ30に指示した際の条件と、そのシミュレーション結果を含む情報である。
次に、図11は、組立作業順序計画装置100にて組立作業順序を計画する製品50の一例を示している。
製品50は、ベース部品Aの上にボックス部品Bを配置して、ネジ部品C,Dによって締結、固定し、ベース部品Aとボックス部品Bとを配線部品E,Fによって結線することにより完成する構造を有する。
製品50を完成させるまでの複数の組立作業のうち、ベース部品Aの上にボックス部品Bを配置する作業、及び、ネジ部品C,Dを締結する作業をロボットが実行し、配線部品E,Fを結線する作業を作業員が実行するものとする。
図12は、製品50の組立作業における各組立状態への遷移の一覧を示している。
製品50の構造上、始めにベース部品Aに対してボックス部品Bを組付けて部組品ABを出現させる必要がある。部組品ABに対しては、ネジ部品C,D、及び配線部品E,Fのいずれから組付けてもよい、したがって、単体の部品から完成品を得るまでの組立順序は1×4!=24通りとなる。
製品50の組立状態は、単体であるベース部品A、ボックス部品B、ネジ部品C,D、及び配線部品E,Fの6状態と、2つの部品からなる部組品ABの1状態と、3つの部品から成る部組品ABC,ABD,ABE,ABFの4状態と、4つの部品から成る部組品ABCD,ABCE,ABCF,ABDE,ABDF,ABEFの6状態と、5つの部品から成る部組品ABCDE,ABCDF,ABCEF,ABDEFの4状態と、6つの部品から成る完成品ABCDEFの1状態との全22状態である。
製品50の各組立状態への遷移は、図12に示すNo1~No33の33通りとなる。このうち、部品E,Fを組付ける遷移は作業員による作業に応じて行われ、他の部品を組付ける遷移はロボットによる作業に応じて行われる。
以下、作業主体を1台のロボット、及び1名の作業員とする。ロボットは、ボックス部品Bの配置にグリップハンドを使用し、ネジ部品C,Dの締結にドライバハンドを使用するものとする。
この場合、作業主体のロボット及び作業員に対して定義される作業は以下のとおりである。
ロボットによる作業
作業W0:待機。
作業W1:ボックス部品Bの組付。
作業W2:ネジ部品Cの組付。
作業W3:ネジ部品Dの組付。
作業W4:グリップハンドの装着。
作業W5:ドライバハンドの装着。
作業W6:ハンドの取り外し。
作業員による作業
作業P0:待機。
作業P1:配線部品Eの組付。
作業P2:配線部品Fの組付。
以下、制約条件の例を挙げる。例えば、ロボットに対しては、ハンドを装着していない状態である場合には作業W4(グリップハンドの装着),W5(ドライバハンドの装着)を選択でき、グリップハンドまたはドライバハンドを装着している状態である場合には作業W6(ハンドの取り外し)を選択できる。作業W1(ボックス部品Bの組付)を選択するには、グリップハンドが装着されている状態が必要となる。作業W2(ネジ部品Cの組付),W3(ネジ部品Dの組付)を選択するには、ドライバハンドが装着されている状態が必要となる。また、例えば、作業員に対しては、作業P1(配線部品Eの組付),P2配線部品Fの組付を選択するためには、組立状態遷移の前状態が少なくともベース部品Aにボックス部品Bが組付けられた部組品AB以降の状態である必要がある。
組立作業の初期状態は、単体の部品のみが存在し、ベース部品Aがステージ312の上に予め載置されており、ロボットにはグリップハンド及びドライバハンドのいずれもが装着されていない状態と定義する。組立作業の完了状態は、製品ABCDEFが得られ、さらにロボットにグリップハンド及びドライバハンドのいずれもが装着されていない状態と定義する。
図13は、製品50の組立状態遷移(不図示)、及び組立作業環境(ハンドの状態)に基づいて設定した組立作業順序の一例、及び作業毎の組立状態を示している。
該組立作業順序は、作業主体を1台のロボット及び1名の作業員とし、製品50の組立状態及び組立作業環境に基づいて、ロボットによる作業W0~W6の7種類と、作業員による作業P0~P2の3種類との合計10種類の作業を選択させる強化学習によって設定される。
同図に示す組立作業順序は作業ステップ0番から7番まであり、0番が初期状態、7番が完了状態である。部品A等に対応して記載されている状態値は図6の場合と同様である。
例えば、作業ステップ0番の初期状態では、単体の部品のみが存在し、ロボットにはクリップハンド及びドライバハンドが装着されていない。
次の作業ステップ1番では、ロボットが作業W4(グリップハンドの装着)を実行し、作業員が作業P0(待機)を実行する。これにより、ロボットによる作業W1(ボックス部品Bの組付)が作業可能となる。
次の作業ステップ2番では、ロボットが作業W1を実行し、作業員が作業P0(待機)を実行する。これにより、ベース部品A、及びボックス部品Bが消滅し、部組品ABが出現する。次の作業ステップ3番では、ロボットが作業W6(ハンドの取り外し)を実行し、作業員がP1(配線部品Eの組付)を実行する。これにより、配線部品E、及び部組品ABが消滅し、部組品ABEが出現する。
次の作業ステップ4番では、ロボットが作業W5(ドライバハンドの装着)を実行し、作業員が作業P2(配線部品Fの組付)を実行する。これにより、ロボットによる作業W2(ネジ部品Cの組付),W3(ネジ部品Dの組付)が作業可能となる。また、配線部品F、及び部組品ABEが消滅し、部組品ABEFが出現する。
次の作業ステップ5番では、ロボットが作業W2(ネジ部品Cの組付)を実行し、作業員が作業P0(待機)を実行する。これにより、ネジ部品C、及び部組品ABEFが消滅し、部組品ABCEFが出現する。
次の作業ステップ6番では、ロボットが作業W3(ネジ部品Dの組付)を実行し、作業員が作業P0(待機)を実行する。これにより、ネジ部品D、及び部組品ABCEFが消滅し、製品ABCDEFが出現する。
次の作業ステップ7番では、ロボットが作業W6(ハンドの取り外し)を実行し、作業員が作業P0(待機)を実行する。これにより、完了状態が得られて組立作業が終了される。
なお、部品の数が増加して必要な組立作業の数が増えたり、作業主体としてのロボットや作業員を複数にしたりしても組立作業順序を計画することができる。さらに、組立作業環境として、ハンド以外にトレイ321,322、ステージ312等の状態を追加したり、作業の定義に、部品を所定の位置から他の位置まで搬送装置の作業を追加したりしても組立作業順序を計画することができる。
<組立作業順序計画装置100による組立作業順序計画処理>
次に、図14は、組立作業順序計画装置100による組立作業順序計画処理の一例を説明するフローチャートである。なお、該組立作業順序計画処理のステップS21~S32のうち、ステップS21~S23,S26,S28~S31の処理は、組立作業順序計画装置10による組立作業順序計画処理(図9)のステップS1~S3,S5,S6~S9の処理と同様であるため、その説明を適宜省略する。
前提として、CADシステム20は、製品の形状モデル及びロボット等から構成される組立作業環境の形状モデルをモデリング済みであり、組立作業環境・製品情報121、及び組立状態遷移情報(AND/OR木)122を組立作業順序計画装置10に供給可能であるとする。
該組立作業順序計画処理は、例えば、ユーザからの所定の操作に応じて開始される。
始めに、情報取得部111が、CADシステム20から組立作業環境・製品情報121、及び組立状態遷移情報122を取得して記憶部12に格納する(ステップS21,S22)。次に、組立作業定義部112が、組立作業環境の作業前の状態を設定する(ステップS23)。
次に、組立状態ベース組立作業定義部112Aが、組立状態遷移情報122に基づいて、組付前の2つの部品または部組品からなる組立状態に対して、組立作業を定義し、定義した組立作業を組立作業情報123として記憶部12に格納する(ステップS24)。
次に、作業状態ベース組立作業定義部112Bが、組立作業環境・製品情報121を参照し、このように、組立作業環境の状態に対して組立に必要となる作業を定義する(ステップS25)。
次に、制約条件設定部113が、制約条件を設定し、制約条件情報124として記憶部12に格納する(ステップS26)。
次に、シミュレーション指示部118が、ロボットシミュレータ30に対して、制約条件を設定するための個別組立作業シミュレーションをロボットシミュレータ30に指示し、そのシミュレーション結果を取得する(ステップS27)。具体的には、各組立作業を行う前の組立状態、組立作業環境の状態をロボットシミュレータ30に設定し、対象の組立作業のシミュレーションを実行させる。シミュレーションにより、例えば、ロボットが他のロボット等に干渉したり(衝突したり)、関節の可動角度不足等によってロボットが目的の部品を組付ける姿勢を取れなかったり等の不具合が発生した場合、その組立作業は実現不可能と判断する。よって、このシミュレーション結果に従い、実施できない組立作業を制約条件に追加設定する。もしくは、実現不可能と判断した組立作業の定義を削除するようにしてもよい。
次に、行動選択・価値関数構成部114が、強化学習に用いる行動選択関数、及び、価値関数を定義する(ステップS28)。次に、報酬設定部115が、各組立状態に対して選択された作業に対して報酬を設定する(ステップS29)。
次に、学習部116が、組立の初期状態から、組立状態に対する作業選択が失敗して組立失敗となるか、組立状態に対する作業選択が成功して組立作業が完了して組立成功となるかの、一連の行動を意味するエピソードを繰り返すことにより強化学習を実行する。所定回数(例えば、3回)のエピソードが連続で成功した場合に強化学習を終了する(ステップS30)。
次に、組立作業順序生成部117が、強化学習結果として得られた行動選択関数、及び状態価値関数を使って、初期状態からエピソードを試行することにより、製品が完成するまでの一連の作業の選択結果をつなげた組立作業順序を生成する(ステップS31)。
次に、シミュレーション指示部118が、ロボットシミュレータ30に対して、ステップS31で得られた組立作業順序のシミュレーションをロボットシミュレータ30に指示し、そのシミュレーション結果を取得して不具合がないことを確認する(ステップS32)。
以上に説明した組立作業順序計画装置100による組立作業順序計画処理によれば、製品を構成する各部品の組立順序と、ロボット及び作業員を含む作業主体の作業順序とを計画することが可能となる。
<強化学習について>
次に、上述した本発明の各実施形態にて採用した強化学習について説明する。
一般的に、強化学習の方式は、マルコフ決定過程(MDP:Markov decision process)のモデルに基づいており、ある状態において、行動を選択し、状態を更新するものであり、行動または状態には良否、すなわち価値が伴う、というモデルに基づいて行われる。
強化学習の方式としては、行動選択を行動価値のテーブルの値を用いて実行し、またその行動選択の学習によりテーブルの値を更新するQ学習、行動価値関数を深層ニューラルネットワークとして行動価値から行動を選択するDQN(Deep Q-learning Network)、行動選択関数(方策)と状態価値関数を深層ニューラルネットワークとしたA3C(Asynchronous Advantage Actor-Critic)が知られている。
さらに他の方式も多数存在するが、いずれも強化学習の問題として、状態、行動、報酬によってモデル化される。
以下、上述した実施形態に採用するA3Cについて詳述する。強化学習では、1つのエピソードにおいてステップ毎に、状態に対して行動を選択することにより次の状態に遷移し、行動選択の結果や状態に対して報酬を与える。そして、報酬がエピソードの終了条件を満たすなら、エピソードを終了する。そして、エピソードを繰り返し、状態に対して正しく行動選択できるようになれば、または状態に対して選択される行動が確定的になれば、強化学習を終了する。
A3Cは、非同期(Asynchronous)という単語が表すように、複数のエージェント(アクターとも称される)が個別にエピソードを実行し、それぞれのエージェントが単一の行動選択関数、状態価値関数を訓練(学習)し、また行動選択に利用する方法である。
図14は、A3Cの概要を説明するための図である。同図の場合、エージェントは3つである。行動選択関数、状態価値関数1401は、共有の深層ニューラルネットワーク(DNN:Deep Neural Network)として構成される。これは共有DNNと称される。また、同図の場合、入力層の状態変数を3種類、出力層の行動を3種類としている。出力層の価値(状態価値)は必ず1つである。
中間層は1層であり、ノード数は4つである。ノードの活性化関数は、行動の出力層ではsoftmax、価値の出力層ではlinear、中間層ではReLU(Rectified Linear Unit)を設定する。各エージェントは状態、行動、次状態、報酬を格納するメモリを備え、また自分の行動を選択するためのDNNを備える。例えばエージェント1はメモリ1411、及びDNN1421を備える。エージェント2は、メモリ1412、及びDNN1422を備え、エージェント3はメモリ1413、及びDNN1423を備える。
各エージェントは、それぞれのエピソード処理においてステップのデータが蓄積されたら、個別に共有DNNを訓練する。そして、訓練後、共有DNNを自分用のDNNにコピーし、自分用のDNNを利用して状態に対する行動を選択する。これは各エージェント間でDNN訓練と行動選択のタイミングが非同期なので、訓練と行動選択が競合しないための構成である。
なお、単一のエージェントで強化学習を行う場合、特に共有DNNを設ける必要はない。この場合の学習法はA2C(Advantage Actor-Critic)と称される。なお、A2CにおけるAdvantageは、行動価値と状態価値の差、すなわち、行動選択の良さを表す量であり、また、A2CにおけるActor-Criticは、行動選択と状態価値評価とが別々に計算される方式であることを意味する。
次に、図16は、行動選択関数と状態価値関数の訓練の処理内容について説明するための図であり、DNN(深層ニューラルネットワーク)1501を模式的に示している。
DNN1501は、状態sを入力として、行動選択の出力(方策)をπ(s)、状態価値の出力をV(s)とする。DNN1501の中のノードに対して定義される関数(活性化関数)のパラメータをθとする。方策は確率方策とも呼ばれ、状態sにおいて行動aをとる確率π(a|s)とも表記される。
行動価値関数、状態価値関数の訓練とは、状態s、行動a、次状態s’、報酬rのデータから、それらの関係を予測する関係が得られるように、DNN1501のパラメータθを最適化することである。特に、行動に対する状態価値の関係を正しく推定できることが重要である。
状態価値関数V(s)は、方策π(s)の下で次式(1)によって表現される。
Figure 0007474653000001
ここで、Eは、添え字である方策π(s)における期待値を意味する。割引率γは、次の状態価値(将来の価値)を現在の値に補正するための係数である。割引率γの値は、一例としては0.99であるが、強化学習のためのパラメータとして調整できる。
方策の価値は、状態sの分布ρにおける期待値として次式(2)によって表される。
Figure 0007474653000002
式(2)は割引済み報酬関数と称される。割引済み報酬関数のDNNのパラメータθに関する変化には、次式(3)で表現される方策勾配定理がある。
Figure 0007474653000003
ここで、∇は勾配(基底についての1階の偏微分)を意味する。期待値は状態sが方策πの分布ρの亘る範囲、行動aは状態sに対する方策πに亘る範囲による。行動価値関数Q(s,a)、アドバンテージ関数A(s,a)は、次式(4),(5)に示す通りであり、データから計算可能である。
Figure 0007474653000004
Figure 0007474653000005
そして、割引済み報酬関数(式(2))の値を最大とするようにネットワークパラメータθを最適化すれば、状態に対して良い報酬が得られるような方策と状態価値の関係が得られる。
割引済み報酬関数の負(マイナス)を方策損失とすれば、方策損失を最小化すればよい。方策損失の他にも、行動価値と状態価値は一致していることが望ましいので、アドバンテージ絶対値の大きさを意味する価値損失も存在する。また、状態に対して方策は一意に決まることが望ましく、方策は確率的に決まるのでエントロピーでモデル化した正則化項も最適化に利用できる。そこで、損失関数Lを方策損失Lπ、価値損失L、正則化項Lregを用いて次式(6)のように定義し、損失関数を最小化する。
Figure 0007474653000006
ここで、c,cregは係数である。方策損失Lπは、割引済み報酬関数の定義から次式(7)の通りとなる。訓練に使うnは、ステップのデータ数である。
Figure 0007474653000007
価値損失Lは、次式(8)に示すように、アドバンテージ関数A(s,a)の2乗とする。
Figure 0007474653000008
正則化項は、次式(9),(10)に示すように、エントロピーH(π(s))を計算して得る。
Figure 0007474653000009
Figure 0007474653000010
ここで、nactionは行動の数である。
最適化計算による訓練は、深層ニューラルネットワークの場合、勾配法(gradient)を利用する。この訓練自体は、強化学習とは別の深層ニューラルネットワークの学習と同様であり、深層ニューラルネットワーク技術を活用すれば実現可能である。
強化学習の各種のアルゴリズムには、例えばε-greedy法のような強化学習の探索と学習結果活用(exploration-exploitation)の特性を利用する方法を強化学習技術分野における技法として利用すればよい。
組立作業順序生成における作業選択のためには、定義した作業を行動とする。状態は組立状態、組立作業環境の状態であり、その変数値は0または1となる。報酬の設定としては、一例としては、正の報酬値は1、負の報酬値は-1として、報酬が発生しないときは0とすればよい。
以上が行動選択関数と状態価値関数の訓練の処理内容についての説明である。以上で、本発明の実施形態で採用した強化学習の説明を終了する。
本発明は、上述した実施形態に限定されるものではなく、様々な変形が可能である。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えたり、追加したりすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
10・・・組立作業順序計画装置、11・・・演算部、111・・・情報取得部、112・・・組立作業定義部、112A・・・組立状態ベース組立作業定義部、112B・・・作業状態ベース組立作業定義部、113・・・制約条件設定部、114・・・行動選択・価値関数構成部、115・・・報酬設定部、116・・・学習部、117・・・組立作業順序生成部、118・・・シミュレーション指示部、12・・・記憶部、121・・・組立作業環境・製品情報、122・・・組立状態遷移情報、122・・・組立状態遷移情報、123・・・組立作業情報、124・・・制約条件情報、125・・・制約条件判定シミュレーション情報、126・・・組立作業順序シミュレーション情報、13・・・入力部、14・・・出力部、15・・・通信部、20・・・CADシステム、30・・・ロボットシミュレータ、40,50・・・製品、100・・・組立作業順序計画装置、303,304・・・ハンド、311・・・台座、312・・・ステージ、321,322・・・トレイ、331,332・・・ハンド設置台、333,334・・・交換用ハンド

Claims (9)

  1. 複数の部品を組付けた部組品を経て最終的な製品に組立てられるまでの過程を表す情報を含む組立状態遷移情報を取得する情報取得部と、
    前記組立状態遷移情報に基づき、組付前の2つの前記部品または前記部組品からなる組立状態に対して作業主体が実行し得る作業を定義する組立作業定義部と、
    前記作業の実行の可否に関する制約条件を設定する制約条件設定部と、
    ロボットシミュレータに対し、前記制約条件を修正するための個別組立作業シミュレーションを指示するシミュレーション指示部と、
    前記制約条件に従い、前記組立状態に対する前記作業の選択方法を強化学習する学習部と、
    前記強化学習の結果に基づいて前記製品の組立作業順序を生成する組立作業順序生成部と、を備え
    前記制約条件設定部は、前記個別組立作業シミュレーションの結果に基づいて前記制約条件を修正する
    ことを特徴とする組立作業順序計画装置。
  2. 請求項1に記載の組立作業順序計画装置であって、
    前記情報取得部は、組立作業環境に存在する物体に関する情報、及び前記製品を構成する複数の部品に関する情報を含む組立作業環境・製品情報を取得し、
    前記組立作業定義部は、前記組立作業環境・製品情報に基づき、組立作業環境の状態に対して実行し得る作業を定義し、
    前記学習部は、前記制約条件に従い、前記組立状態、及び前記組立作業環境の状態に対する前記作業の選択方法を強化学習する
    ことを特徴とする組立作業順序計画装置。
  3. 請求項2に記載の組立作業順序計画装置であって、
    前記学習部は、前記強化学習において、
    前記組立作業環境と前記作業及び前記制約条件との関係を、行動選択関数及び状態価値関数で定義し、
    前記組立作業環境の初期状態と作業完了の状態を定義し、
    エピソードにおける学習において、
    組立作業中の前記組立作業環境の状態に対して、作業主体の行動を選択して次の状態を得るステップを繰返し、
    選択した行動が作業の制約条件を満足しない場合には負の報酬を与えてエピソードを終了し、
    選択した行動により作業完了の状態となった場合には正の報酬を与えてエピソードを終了し、
    得られた状態、行動、報酬データから前記行動選択関数及び前記状態価値関数を訓練し、
    前記エピソードを繰り返すことにより、組立作業環境の状態に対する作業の選択方法を学習する
    ことを特徴とする組立作業順序計画装置。
  4. 請求項2に記載の組立作業順序計画装置であって、
    前記組立作業環境には、前記作業主体としてのロボット、前記ロボットのハンド、ステージ、トレイ、及び搬送装置のうちの少なくとの一つを含む
    ことを特徴とする組立作業順序計画装置。
  5. 請求項1に記載の組立作業順序計画装置であって、
    前記制約条件設定部は、前記組立状態遷移情報に基づいて定義された、前記組立状態に対して作業主体が実行し得る作業の実行前の組立状態を前記制約条件として設定する
    ことを特徴とする組立作業順序計画装置。
  6. 請求項2に記載の組立作業順序計画装置であって、
    前記制約条件設定部は、前記組立作業環境・製品情報に基づいて定義された、前記組立作業環境の状態に対して実行し得る作業の実行前の組立状態及び前記組立作業環境の状態を前記制約条件として設定する
    ことを特徴とする組立作業順序計画装置。
  7. 請求項2に記載の組立作業順序計画装置であって、
    前記組立作業環境には、前記作業主体としての1台以上のロボット、及び1名以上の作業員を少なくとも含む
    ことを特徴とする組立作業順序計画装置。
  8. 請求項に記載の組立作業順序計画装置であって、
    シミュレーション指示部は、前記ロボットシミュレータに対し、生成された前記組立作業順序に従った組立作業シミュレーションを指示する
    ことを特徴とする組立作業順序計画装置。
  9. 組立作業順序計画装置による組立作業順序計画方法であって、
    複数の部品を組付けた部組品を経て最終的な製品に組立てられるまでの過程を表す情報を含む組立状態遷移情報を取得し、
    前記組立状態遷移情報に基づき、組付前の2つの前記部品または前記部組品からなる組立状態に対して作業主体が実行し得る作業を定義し、
    前記作業の実行の可否に関する制約条件を設定し、
    ロボットシミュレータに対し、前記制約条件を設定するための個別組立作業シミュレーションを指示し、
    前記個別組立作業シミュレーションの結果に基づいて前記制約条件を修正し、
    修正した前記制約条件に従い、前記組立状態に対する前記作業の選択方法を強化学習し、
    前記強化学習の結果に基づいて前記製品の組立作業順序を生成する
    ステップを含むことを特徴とする組立作業順序計画方法。
JP2020121910A 2020-07-16 2020-07-16 組立作業順序計画装置、及び組立作業順序計画方法 Active JP7474653B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020121910A JP7474653B2 (ja) 2020-07-16 2020-07-16 組立作業順序計画装置、及び組立作業順序計画方法
PCT/JP2021/017731 WO2022014128A1 (ja) 2020-07-16 2021-05-10 組立作業順序計画装置、及び組立作業順序計画方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020121910A JP7474653B2 (ja) 2020-07-16 2020-07-16 組立作業順序計画装置、及び組立作業順序計画方法

Publications (2)

Publication Number Publication Date
JP2022018654A JP2022018654A (ja) 2022-01-27
JP7474653B2 true JP7474653B2 (ja) 2024-04-25

Family

ID=79554634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020121910A Active JP7474653B2 (ja) 2020-07-16 2020-07-16 組立作業順序計画装置、及び組立作業順序計画方法

Country Status (2)

Country Link
JP (1) JP7474653B2 (ja)
WO (1) WO2022014128A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018086711A (ja) 2016-11-29 2018-06-07 ファナック株式会社 レーザ加工ロボットの加工順序を学習する機械学習装置、ロボットシステムおよび機械学習方法
JP2018140471A (ja) 2017-02-28 2018-09-13 ファナック株式会社 制御装置及び機械学習装置
JP6599069B1 (ja) 2018-12-13 2019-10-30 三菱電機株式会社 機械学習装置、加工プログラム生成装置および機械学習方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3462669B2 (ja) * 1996-08-16 2003-11-05 株式会社日立製作所 加工工程設計システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018086711A (ja) 2016-11-29 2018-06-07 ファナック株式会社 レーザ加工ロボットの加工順序を学習する機械学習装置、ロボットシステムおよび機械学習方法
JP2018140471A (ja) 2017-02-28 2018-09-13 ファナック株式会社 制御装置及び機械学習装置
JP6599069B1 (ja) 2018-12-13 2019-10-30 三菱電機株式会社 機械学習装置、加工プログラム生成装置および機械学習方法

Also Published As

Publication number Publication date
WO2022014128A1 (ja) 2022-01-20
JP2022018654A (ja) 2022-01-27

Similar Documents

Publication Publication Date Title
Xia et al. A digital twin to train deep reinforcement learning agent for smart manufacturing plants: Environment, interfaces and intelligence
Campbell et al. A-design: an agent-based approach to conceptual design in a dynamic environment
Valavanis et al. Intelligent robotic systems: theory, design and applications
Ren et al. Extended tree search for robot task and motion planning
CN115916477A (zh) 机器人演示学习的技能模板分发
Vermeer et al. Kinematic synthesis using reinforcement learning
US11787048B2 (en) Robot planning from process definition graph
Hauser et al. Global redundancy resolution via continuous pseudoinversion of the forward kinematic map
CN115666871A (zh) 分布式机器人演示学习
JP4900642B2 (ja) 学習制御装置、学習制御方法、およびプログラム
Vassiliev et al. Designing the built-in microcontroller control systems of executive robotic devices using the digital twins technology
De Winter et al. Autonomous assembly planning of demonstrated skills with reinforcement learning in simulation
US11747787B2 (en) Combining transformers for robotics planning
US11577392B2 (en) Splitting transformers for robotics planning
Wang et al. Fin-bayes: A multi-objective bayesian optimization framework for soft robotic fingers
JP7474653B2 (ja) 組立作業順序計画装置、及び組立作業順序計画方法
Amirnia et al. A context-aware real-time human-robot collaborating reinforcement learning-based disassembly planning model under uncertainty
Nilles et al. Robot design: Formalisms, representations, and the role of the designer
EP2359989A1 (en) Robot control with bootstrapping inverse kinematics
Von Borstel et al. Model-based development of virtual laboratories for robotics over the Internet
WO2022085339A1 (ja) 動作計画装置、動作計画方法、及び動作計画プログラム
KR20200097896A (ko) 매니퓰레이터 urdf파일 생성장치 및 방법
Shakeri Discovery of design methodologies for the integration of multi-disciplinary design problems.
CN115114683A (zh) 用于将自主技能执行中的约束反馈到设计中的系统与方法
JP7012944B2 (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240308

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240415

R150 Certificate of patent or registration of utility model

Ref document number: 7474653

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150