【実施例1】
【0017】
図2(a)は、実施例1に係る設計支援装置100のブロック図である。
図2(a)で例示するように、設計支援装置100は、改善候補選定部10、連続作業数計算部20、配置自由度計算部30、自動生成部40、優先度計算部50などを備える。
【0018】
図2(b)は、設計支援装置100のハードウェア構成を説明するためのブロック図である。
図2(b)で例示するように、設計支援装置100は、CPU101、RAM102、記憶装置103、入力機器104、表示装置105などを備える。これらの各機器は、バスなどによって接続されている。CPU(Central Processing Unit)101は、中央演算処理装置である。CPU101は、1以上のコアを含む。RAM(Random Access Memory)102は、CPU101が実行するプログラム、CPU101が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置103は、不揮発性記憶装置である。記憶装置103として、例えば、ROM(Read Only Memory)、フラッシュメモリなどのソリッド・ステート・ドライブ(SSD)、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。入力機器104は、キーボード、マウスなどである。表示装置105は、液晶ディスプレイ、エレクトロルミネッセンスパネルなどであり、設計支援装置100の処理結果などを表示する。CPU101が記憶装置103に記憶されているプログラムを実行することによって、設計支援装置100の各部が実現される。なお、設計支援装置100の各部は、専用の回路などのハードウェアであってもよい。
【0019】
図3は、設計支援装置100の動作の一例を表すフローチャートである。以下、
図2(a)、
図2(b)および
図3を参照しつつ、設計支援装置100の動作の一例について説明する。
【0020】
まず、改善候補選定部10は、ユーザが入力機器104などを用いて入力した製品組立フローおよび組立順序制約を受け取る(ステップS1)。製品組立フローは、各作業の内容と、それらの作業のある一通りの順序を示したものである。作業の内容には、作業対象部品、部品重量、工具、組付方法、結合方法、組付方向、組付保持、各作業の作業時間、ロボットでの作業可否などが含まれる。ロボットの作業可否については、例えば、1軸方向の動作で組付動作が完結していれば、ロボット作業可と決定してもよい。
【0021】
組立順序制約とは、ある作業と、当該作業を行う前に完了している必要がある作業との関係を示した情報である。例えば、基板に部品を組み付けてからカバーを取り付けるような場合、カバーを取り付ける前に当該部品の組み付けが完了している必要がある。
図4は、組立順序制約を例示する図である。
図4の例では、有向グラフで可視化してある。例えば、
図4で例示するように、#1の作業については、それ以前に完了している必要がある作業が存在しない。一方、#2の作業については、#2の作業を行う前に#1の作業が完了している必要がある。また、
図4の例では、ロボットの作業可否についても反映されている。
【0022】
次に、連続作業数計算部20は、組立順序制約を利用して、ロボット作業不可の各作業についてロボット作業不可からロボット作業可に変更した場合の、ロボット作業可の最大連続作業数を計算する(ステップS2)。
図5は、ステップS2の詳細を表すフローチャートを例示する図である。
図5で例示するように、連続作業数計算部20は、作業Xを指定する(ステップS11)。例えば、連続作業数計算部20は、作業Xとしてロボット作業不可の作業のいずれかを指定し、
図5のフローチャートを繰り返すことでロボット作業不可の作業を順に指定する。
【0023】
次に、連続作業数計算部20は、作業Xを起点とし、組立順序制約の先行制約を再帰的に検査し、検出された全ての作業を作業完了リストYに追加する(ステップS12)。先行制約とは、その作業を開始する前に完了している必要がある作業のことである。作業完了リストYは、作業Xの完了時に完了している必要がある作業のことである。
【0024】
図6は、ステップS12の詳細を表すフローチャートを例示する図である。
図6で例示するように、連続作業数計算部20は、作業Xを検査対象リストZに追加する(ステップS21)。次に、連続作業数計算部20は、検査対象リストZから任意の作業Aを取得し、検査対象リストZから削除する(ステップS22)。次に、連続作業数計算部20は、作業Aを作業完了リストYに追加する(ステップS23)。
【0025】
次に、連続作業数計算部20は、作業Aに先行制約があるか否かを判定する(ステップS24)。開始直後から実行できる作業には先行制約が無いことになる。ステップS24で「Yes」と判定された場合、連続作業数計算部20は、作業Aの先行制約にあたる作業のうち作業完了リストYおよび検査対象リストZのいずれにも含まれない作業を検査対象リストZに追加する(ステップS25)。ステップS25の実行後またはステップS24で「No」と判定された場合、連続作業数計算部20は、検査対象リストZが空であるか否かと判定する(ステップS26)。ステップS26で「No」と判定された場合、ステップS22から再度実行される。ステップS26で「Yes」と判定された場合、フローチャートの実行が終了する。
【0026】
再度
図5のフローチャートを参照し、連続作業数計算部20は、ロボット作業可の作業のみを辿って、作業Xに辿り着ける作業完了リストYに含まれる作業と作業Xとを集合T
0とする(ステップS13)。集合T
0は、作業X完了時に連続してロボットで実行可能な作業の集合である。次に、連続作業数計算部20は、集合T
0の各作業の値s
1を計算する(ステップS14)。具体的には、下記式(1)に従って、値s
1を計算することができる。なお、連続作業数計算部20は、変数i=0とする。
【数1】
【0027】
次に、連続作業数計算部20は、未検査作業があるか否かを判定する(ステップS15)。ステップS15で「Yes」と判定された場合、連続作業数計算部20は、変数iに1を加え、作業完了リストYに含まれる作業が実行済みな時に、実行可能な作業で、作業完了リストYに含まれず、ロボットで作業可能なものの集合をT
iとする(ステップS16)。ただし、i>1なら集合T
i−1に含まれる作業を先行制約に持つ作業であって、作業完了リストYに含まれず、ロボットで作業可能なものの集合をT
iとしても結果は同じである。
【0028】
次に、連続作業数計算部20は、集合T
iが空であるか判定する(ステップS17)。ステップS17で「No」と判定された場合、連続作業数計算部20は、集合T
iの各作業の値s
1を計算する(ステップS18)。具体的には、連続作業数計算部20は、下記式(2)に従って、各作業の値s
1を計算する。ただし、「t
j」は、集合T
iに含まれる作業である。「u」は、作業t
jの親ノードの作業である。「l」は、集合uに含まれる作業の数である。なお、s
1(u)で計算が未済みのものは「0」である。次に、連続作業数計算部20は、集合T
iに含まれる作業を作業完了リストYに追加する(ステップS19)。その後、ステップS15から再度実行される。
【数2】
【0029】
ステップS17で「Yes」と判定された場合、連続作業数計算部20は、作業XのスコアS
1(X)を計算する(ステップS20)。具合的には、連続作業数計算部20は、下記式(3)に従ってスコアS
1(X)を計算する。ここで、式(3)のM(t)は、作業時間や設備費用といった作業に紐付いて決まる値である。単に連続作業数として評価する場合にはM(t)=1とすればよい。以上の処理により、作業XのスコアS
1(X)が算出される。以上の処理を全ての作業に適用することで、各作業のスコアを算出することができる。連続作業数計算部20が計算した連続作業数は、第1指標として改善候補選定部10に送られる。
【数3】
【0030】
ここで、
図5および
図6のフローチャートの実行例について説明する。作業#1に着目した場合、ステップS11〜ステップS14の実行後、集合T
0={t
1}、作業完了リストY={t
1}、スコアs
1={1}となる。次に、ステップS15〜ステップS20の後に、集合T
0={t
1}、
集合T
1={
t14,t
17}、作業完了リストY={t
1,t
14,t
17}、s(t
14)=s(t
17)=1、スコアs
1={1,1,1}となる。集合T
2={t
15,t
16,t
18,t
19}、s(t
15)=s(t
16)=s(t
18)=s(t
19)=1となる。集合T
3は空である。
集合T0={t1}、集合T1={t14,t17}、集合T2={t15,t16,t18,t19}に含まれる7作業のスコアが1であるため、s
1(t
1)=7となる。作業#21に着目した場合、T
0={t
21,t
14,t
15,t
16,t
17,t
18,t
19}、T
1={t
34,t
37,t
40,t
43}であり、集合T2は空である。したがって、s
1(t
21)=11となる。
【0031】
再度
図3のフローチャートを参照し、改善候補選定部10は、ロボット作業不可の各作業を第1指標で降順にソートし、上位n個を設計改善候補として選定する(ステップS3)。連続作業数が閾値以上のものを設計改善候補として選定してもよい。
図7は、設計改善候補を例示する図である。
図7の例では、スコアが上位10位と、当該10位と同じスコアの作業が設計改善候補として決定されている。
【0032】
図8(a)〜
図8(c)は、連続作業数について例示する図である。
図8(a)は、製品の完成状態を例示する図である。
図8(a)に至るまでに、
図8(c)のプレートカバーが取り付けられている必要がある。プレートカバーが組み付けられるまでに、
図8(b)で例示するように、プレートカバー内部の8つの部品の組み付けと、ネジ締めとが完成している必要がある。この例では、
図8(c)のプレートカバーの組み付けと、
図8(b)の8つの部品の組み付けおよびネジ締めについて、連続作業数が多くなっている。したがって、これらの作業が設計改善候補として選定されることになる。
【0033】
しかしながら、プレートカバーの組み付けは、
図4では#21の作業に該当する。この作業は、連続作業数が一番多くなるが、組立順序制約が複雑となる。したがって、必ずしも連続作業数が一番多い作業のロボット化が有効とは限らない。そこで、次に、第2指標として配置自由度が計算される。配置自由度計算部30は、条件を変えて作業編成を複数回実行し、ロボット工程に編成される回数を配置自由度として計算する(ステップS4)。
【0034】
例えば、
図9で例示するように、タクトタイムを設定する。タクトタイムとは、各工程の均等なタイミングを図るために定められた時間のことである。ここでいう工程とは、製品の組立に要する全ての作業を複数のグループに割り振った場合の各グループのことである。少なくともいずれかのグループは、ロボット作業可の作業のみを含む。当該グループは、ロボットが行う作業の集合であるため、ロボット工程と称することができる。なお、人が行う工程には、ロボット作業不可の作業に加えて、ロボット作業可の作業も含まれていてもよい。
【0035】
人もロボットも、このタクトタイム以内に、自身に割り振られた作業を完了させる必要がある。タクトタイムを設定することで、各作業が割り振られる人およびロボットの数(工程数)を算出することができる。配置自由度計算部30および自動生成部40は、各作業の作業時間および組立順序制約に基づいて、編成ロスが最小化されるように作業を編成した場合に、対象とする作業がロボット工程に編成される回数を配置自由度として計算する。なお、編成の際に、対象とする作業は、ロボット作業可として扱われる。
【0036】
図10は、ステップS4の詳細を表すフローチャートを例示する図である。
図10で例示するように、配置自由度計算部30は、設計改善候補XのスコアS
2(X)を0に初期化する(ステップS31)。次に、配置自由度計算部30は、試行するタクトタイムをn
t個生成する(ステップS32)。例えば、タクトタイムTは、T={t
0,t
1,…,t
nt}となる。配置自由度計算部30は、1つの作業の最長作業時間〜ΣCT/2の範囲でサンプリングを行う。ΣCTは、全て人間が作業した場合の総作業時間のことである。
【0037】
次に、配置自由度計算部30は、タクトタイムt
iでの工程数P(t
i)を計算する(ステップS33)。例えば、配置自由度計算部30は、工程数P(t
i)=ceil(ΣCT/(2t
i))に従って工程数P(t
i)を計算する。次に、配置自由度計算部30は、タクトタイムt
iでのロボット工程番号R(t
i)を生成する(ステップS34)。例えば、配置自由度計算部30は、0<R(t
i)∈Integer≦P(t
i)に従って、ロボット工程番号R(t
i)を生成する。ステップS32〜ステップS34は、計算条件生成処理である。生成された計算条件は、自動生成部40に送られる。
【0038】
次に、配置自由度計算部30は、t
i、P(t
i)、R(t
i)を組み合わせた計算条件を、P(t
i)個生成する(ステップS35)。次に、自動生成部40は、計算条件C
j={t
j,P
j,R
j}で作業編成の自動生成を実行する(ステップS36)。まず、自動生成部40は、編成ロスが最小化されるような作業割り振りを最適化計算で決定する。自動生成部40は、ロボット工程において、ロボット化可能作業と、N
accept個以下の設計改善候補が入る制約と組立順序制約を考慮する。例えば、自動生成部40は、タブーサーチのような局所探索手法で解を見つけることができる。まず、自動生成部40は、工程pのサイクルタイムT
pを下記式(4)および下記式(5)に従って計算する。ここで、P(X)は、作業Xを担当する工程の番号であり、T(X)は、作業Xの作業時間を表す。
【数4】
【数5】
【0039】
次に、自動生成部40は、下記式(6)の計改善候補が入る制約と下記式(7)の組立順序制約を満たす条件下で、例えば下記式(8)〜下記式(10)の目的関数に従って、編成ロスを最小化する作業の工程番号P(X)を決定する。下記式(7)のX
cは設計改善作業の集合である。また、下記式(8)のX
parent(X
k)は、作業X
kを行う前に完了している必要がある作業である。編成ロスとは、
図9で例示するように、人もロボットも何もしていない時間である。なお、
図9において、横軸の1〜5は、工程番号を表している。下記式(7)において、Mは工程数でM=P
jである。T
maxは、T
1,…T
mの最大値である。T
minは、T
1,…T
mの最小値である。
【数6】
【数7】
【数8】
【数9】
【数10】
【0040】
次に、配置自由度計算部30は、ロボット工程に
編成される設計改善候補XのスコアS
2(X)に1を加える(ステップS37)。C
jの数だけ、ステップS36とステップS37とが繰り返し実行される。それにより、作業X
がロボット工程に編成される回数が配置自由度S
2(X)
として計算される。配置自由度計算部30が計算した配置自由度は、第2指標として優先度計算部50に送られる。
【0041】
再度
図3のフローチャートを参照し、優先度計算部50は、作業Xの優先度F
P(X)を計算する(ステップS5)。例えば、優先度計算部50は、優先度F
P(X)=w
1S
1(X)+w
2S
2(X)に従って優先度F
P(X)を計算する。なお、ウェイトのw
1およびw
2は、0以上1以下であって特に限定される数値ではない。次に、優先度計算部50は、優先度F
P(X)を降順でソートし、設計改善すべき箇所の優先度を決定する(ステップS6)。
【0042】
次に、優先度計算部50は、表示装置105に、スコア付きで設計改善候補をリストで表示させる(ステップS7)。
図11は、表示画面を例示する図である。
図11の左図で例示するように、優先度の高い順に設計改善候補がリストとして表示されている。また、
図11の右図で例示するように、リストの選択箇所に対応する作業に係る部品が表示される。したがって、製品設計者は、設計改善すべき候補を把握することができる。
【0043】
本実施例によれば、第1指標と第2指標とに基づく情報として優先度が提示される。また、当該第1指標および第2指標の対象作業が提示される。第1指標および第2指標を基に製品設計を行うことでロボット導入効果を高くすることができる。すなわち、ロボットの導入効果を高くするために必要な情報を提示することができる。その結果、生産性が向上する。また、製品開発における、設計・製造工程間の手戻り工数を削減することができる。
【0044】
なお、本実施例においては、第1指標と第2指標とを重み付け加算した場合の優先度を設計者に提示しているが、それに限られない。例えば、第1指標および第2指標に重み付けをせずに、両方の指標と該当作業とを設計者に提示してもよい。
【0045】
図12は、提示された共通部品の箇所の構造を変更した場合を例示する図である。例えば、ネジ嵌合としていた作業を、ロボットによる作業が可能になるようにツメ嵌合とした場合である。これにより、ロボット導入効果が32秒/167秒=約19%であったのが、42秒/167秒=約25%となった。
【0046】
また、本実施例においては、設計改善候補についてだけ第2指標が計算されているが、それに限られない。例えば、全てのロボット作業不可の作業について第2指標を計算してもよい。ただし、設計改善候補についてだけ第2指標を計算することで、計算量を低減することができる。また、第1指標を優先することができる。
【0047】
(他の例)
図13は、クラウドを利用した設計支援システムについて例示する図である。
図13で例示するように、設計支援システムは、入力機器104および表示装置105を備える端末301がインターネットなどの電気通信回線302を通じてクラウド303と接続された構成を有する。クラウド303は、
図2(b)のCPU101、RAM102、記憶装置103などを備え、
図2(a)の各部としての機能を実現する。なお、クラウド303の代わりに、イントラネットなどを介して接続されたサーバを用いてもよい。
【0048】
上記各例において、改善候補選定部10が、組立に複数の作業を要する製品についての、各作業の順序制約と、各作業の作業時間と、各作業についてのロボット作業可否とを受け取る受信部の一例として機能する。連続作業数計算部20が、ロボット作業不可の各作業について、前記順序制約と前記ロボット作業可否とに基づいて、ロボット作業可にした場合のロボットによる連続作業数を第1指標として計算する第1指標計算部の一例である。配置自由度計算部30および自動生成部40が、ロボット作業不可の各作業について、前記順序制約と前記作業時間と前記ロボット作業可否とに基づいて、ロボット作業可にした場合の配置自由度を第2指標として計算する第2指標計算部の一例である。優先度計算部50が、前記第1指標と前記第2指標とに基づく情報と、当該第1指標および第2指標の対象作業とを関連付けて提示する提示部の一例である。
【0049】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。