IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特開2024-83823シミュレーションシステムおよびシミュレーション方法
<>
  • 特開-シミュレーションシステムおよびシミュレーション方法 図1
  • 特開-シミュレーションシステムおよびシミュレーション方法 図2
  • 特開-シミュレーションシステムおよびシミュレーション方法 図3
  • 特開-シミュレーションシステムおよびシミュレーション方法 図4
  • 特開-シミュレーションシステムおよびシミュレーション方法 図5
  • 特開-シミュレーションシステムおよびシミュレーション方法 図6
  • 特開-シミュレーションシステムおよびシミュレーション方法 図7
  • 特開-シミュレーションシステムおよびシミュレーション方法 図8
  • 特開-シミュレーションシステムおよびシミュレーション方法 図9
  • 特開-シミュレーションシステムおよびシミュレーション方法 図10
  • 特開-シミュレーションシステムおよびシミュレーション方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024083823
(43)【公開日】2024-06-24
(54)【発明の名称】シミュレーションシステムおよびシミュレーション方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20240617BHJP
   G01B 11/16 20060101ALI20240617BHJP
【FI】
B25J13/08 A
G01B11/16 H
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022197865
(22)【出願日】2022-12-12
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】岩村 慎太郎
【テーマコード(参考)】
2F065
3C707
【Fターム(参考)】
2F065AA65
2F065BB28
2F065FF04
2F065PP25
2F065QQ21
2F065QQ28
2F065QQ31
3C707AS06
3C707AS07
3C707AS12
3C707BS10
3C707BS15
3C707BS24
3C707DS01
3C707HS27
3C707KS06
3C707KT01
3C707KT05
3C707KT09
3C707LS20
3C707LT12
3C707NS02
(57)【要約】
【課題】3Dシミュレーションを用いて作成したティーチングデータを実空間の製造ラインの土台等の歪みに応じて修正する。
【解決手段】シミュレーションシステムは、多関節ロボット100に取り付けられたカメラ111と、シミュレーション装置とを備える。カメラ111は、実世界の製造ライン10の土台120に配置されたランドマーク150の画像をシミュレーション装置に送信する。シミュレーション装置は、画像内のランドマーク150上に均等に配置された複数のマーカーを解析し、カメラ111から見た複数のマーカーの各々の形状および配置間隔に基づいて、土台120の歪みを推定し、推定の結果に基づいて、3D(Dimensional)空間で再現された製造ライン10において、土台120の歪みを再現し、3D空間において、歪んだ土台120上のワーク140に対する多関節ロボットの加工処理におけるティーチングデータを修正し、ティーチングデータの修正結果を、多関節ロボットの制御装置にフィードバックする。
【選択図】図1
【特許請求の範囲】
【請求項1】
ロボットに取り付けられたカメラと、
シミュレーション装置とを備え、
前記カメラは、実世界の製造ラインの土台に配置されたランドマークの画像を前記シミュレーション装置に送信し、
前記シミュレーション装置は、
前記画像内の前記ランドマーク上に均等に配置された複数のマーカーを解析し、
前記カメラから見た前記複数のマーカーの各々の形状および配置間隔に基づいて、前記土台の歪みを推定し、
前記推定の結果に基づいて、3D(Dimensional)空間で再現された前記製造ラインにおいて、前記土台の歪みを再現し、
前記3D空間において、歪んだ前記土台上のワークに対する多関節ロボットの加工処理におけるティーチングデータを修正し、
前記ティーチングデータの修正結果を、前記多関節ロボットの制御装置にフィードバックする、シミュレーションシステム。
【請求項2】
前記ティーチングデータを修正することは、前記多関節ロボットに備え付けられた電動工具のトルクを調整することを含む、請求項1に記載のシミュレーションシステム。
【請求項3】
前記ティーチングデータを修正することは、前記多関節ロボットが嵌合動作において前記ワークにかける力を調整することを含む、請求項1に記載のシミュレーションシステム。
【請求項4】
前記土台の歪みを再現することは、前記土台の歪みに基づいて、前記土台上の前記ワークの歪みを再現することを含む、請求項1~3のいずれかに記載のシミュレーションシステム。
【請求項5】
前記シミュレーション装置は、
前記ワークの材質情報をストレージから読み出し、
前記ワークの歪み量と前記ワークの前記材質情報とから、前記ティーチングデータの修正量を算出する、請求項4に記載のシミュレーションシステム。
【請求項6】
前記ティーチングデータの修正量を算出することは、
有限要素法を用いて、前記ワークの歪んでいる部分の応力を算出することと、
前記応力に基づいて、前記ティーチングデータの修正量を算出することとを含む、請求項5に記載のシミュレーションシステム。
【請求項7】
前記ランドマークは、前記土台に分散配置された複数のランドマークを含み、
前記土台の歪みを推定することは、前記複数のランドマークの各々から、前記土台の各部分の歪みを推定することを含む、請求項1~3のいずれかに記載のシミュレーションシステム。
【請求項8】
多関節ロボットに取り付けられたカメラにより、実世界の製造ラインの土台に配置されたランドマークの画像を撮影するステップと、
前記画像をシミュレーション装置に送信するステップと、
前記画像内の前記ランドマーク上に均等に配置された複数のマーカーを解析するステップと、
前記カメラから見た前記複数のマーカーの各々の形状および配置間隔に基づいて、前記土台の歪みを推定するステップと、
前記推定の結果に基づいて、3D空間で再現された前記製造ラインにおいて、前記土台の歪みを再現するステップと、
前記3D空間において、歪んだ前記土台上のワークに対する多関節ロボットの加工処理におけるティーチングデータを修正するステップと、
前記ティーチングデータの修正結果を、前記多関節ロボットの制御装置にフィードバックするステップとを備える、シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、シミュレーションシステムに関し、より特定的には、ロボットのティーチングデータの修正技術に関する。
【背景技術】
【0002】
近年、産業用のロボットのティーチングのために、3D(Dimensional)シミュレーション技術が使用されている。3Dシミュレーションによるティーチングは、実際の製造ライン等を用意して動作させる必要がない。そのため、ユーザは、3Dシミュレータを使用することで、容易にかつ安価にロボットのティーチング処理を行うことができる。
【0003】
しかしながら、3Dシミュレーション上の物体の位置および姿勢は理想的な値である。これらの値は、必ずしも実空間における物体の位置および姿勢とは一致しない。そのため、ユーザは、実際の製造ラインを動作させることで、ロボットを再ティーチングしなければならない。特に、コネクタの嵌合作業、ネジ締め作業等の動作をロボットに行わせる場合、ユーザは、ロボットの実機を用いたティーチングを何度も繰り返す必要があった。そこで、より容易にかつ迅速に再ティーチングを完了させるための技術が望まれている。なお、物体の位置を検出してロボットを制御するために、何らかのマークを使用する技術が知られている。
【0004】
マークを使用したロボット制御に関し、例えば、特開2017-083234号公報(特許文献1)は、「サーチ用マークを用いて、計測対象の表面にラインレーザにより形成された光切断線が形成されている部分の座標を算出するマークサーチ部を備える」三次元形状計測装置を開示している([要約]参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2017-083234号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示された技術によると、実空間のワークの形状を検出することはできるかもしれない。しかしながら、特許文献1に開示された技術は、3Dシミュレーションを用いて作成したティーチングデータを実空間の製造ラインの土台等の歪みに応じて修正することができない。したがって、3Dシミュレーションを用いて作成したティーチングデータを実空間の製造ラインの土台等の歪みに応じて修正する技術が必要とされている。
【0007】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、3Dシミュレーションを用いて作成したティーチングデータを実空間の製造ラインの土台等の歪みに応じて修正する技術を提供することにある。
【課題を解決するための手段】
【0008】
ある実施の形態に従うと、シミュレーションシステムは、多関節ロボットに取り付けられたカメラと、シミュレーション装置とを備える。カメラは、実世界の製造ラインの土台に配置されたランドマークの画像をシミュレーション装置に送信する。シミュレーション装置は、画像内のランドマーク上に均等に配置された複数のマーカーを解析し、カメラから見た複数のマーカーの各々の形状および配置間隔に基づいて、土台の歪みを推定し、推定の結果に基づいて、3D(Dimensional)空間で再現された製造ラインにおいて、土台の歪みを再現し、3D空間において、歪んだ土台上のワークに対する多関節ロボットの加工処理におけるティーチングデータを修正し、ティーチングデータの修正結果を、多関節ロボットの制御装置にフィードバックする。この開示によれば、シミュレーションシステムは、3D空間の製造ラインと、実世界の製造ラインとのずれに基づいて、多関節ロボットのティーチングデータを修正して、当該修正結果を制御装置にフィードバックし得る。
【0009】
上記の開示において、ティーチングデータを修正することは、多関節ロボットに備え付けられた電動工具のトルクを調整することを含む。この開示によれば、シミュレーションシステムは、3D空間の製造ラインと、実世界の製造ラインとのずれに基づいて、電動工具のトルクを調整し得る。
【0010】
上記の開示において、ティーチングデータを修正することは、多関節ロボットが嵌合動作においてワークにかける力を調整することを含む。この開示によれば、シミュレーションシステムは、3D空間の製造ラインと、実世界の製造ラインとのずれに基づいて、多関節ロボットが嵌合動作においてワークにかける力を調整し得る。
【0011】
上記の開示において、土台の歪みを再現することは、土台の歪みに基づいて、土台上のワークの歪みを再現することを含む。この開示によれば、シミュレーションシステムは、土台の歪みに基づいて、ワークのゆがみを再現し得る。また、シミュレーションシステムは、歪んだワークに対する加工処理のシミュレーションを行うことで、ティーチングデータを修正し得る。
【0012】
上記の開示において、シミュレーション装置は、ワークの材質情報をストレージから読み出し、ワークの歪み量とワークの材質情報とから、ティーチングデータの修正量を算出する。この開示によれば、シミュレーションシステムは、ワークの歪み量とワークの材質情報とに基づいて、ティーチングデータの修正量を算出し得る。
【0013】
上記の開示において、ティーチングデータの修正量を算出することは、有限要素法を用いて、ワークの歪んでいる部分の応力を算出することと、応力に基づいて、ティーチングデータの修正量を算出することとを含む。この開示によれば、シミュレーションシステムは、有限要素法を用いて、ティーチングデータの修正量を算出し得る。
【0014】
上記の開示において、ランドマークは、土台に分散配置された複数のランドマークを含む。土台の歪みを推定することは、複数のランドマークの各々から、土台の各部分の歪みを推定することを含む。この開示によれば、シミュレーションシステムは、複数のランドマークを用いて、土台の各部分の歪みを推定し得る。
【0015】
他の実施の形態に従うと、シミュレーション方法が提供される。シミュレーション方法は、多関節ロボットに取り付けられたカメラにより、実世界の製造ラインの土台に配置されたランドマークの画像を撮影するステップと、画像をシミュレーション装置に送信するステップと、画像内のランドマーク上に均等に配置された複数のマーカーを解析するステップと、カメラから見た複数のマーカーの各々の形状および配置間隔に基づいて、土台の歪みを推定するステップと、推定の結果に基づいて、3D空間で再現された製造ラインにおいて、土台の歪みを再現するステップと、3D空間において、歪んだ土台上のワークに対する多関節ロボットの加工処理におけるティーチングデータを修正するステップと、ティーチングデータの修正結果を、多関節ロボットの制御装置にフィードバックするステップとを備える。この開示によれば、シミュレーション方法は、3D空間の製造ラインと、実世界の製造ラインとのずれに基づいて、多関節ロボットのティーチングデータを修正して、当該修正結果を制御装置にフィードバックし得る。
【発明の効果】
【0016】
ある実施の形態に従うと、3Dシミュレーションを用いて作成したティーチングデータを実空間の製造ラインの土台等の歪みに応じて修正できる。
【0017】
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0018】
図1】本開示の技術を適用可能な製造ライン10の一例を示す図である。
図2】本実施の形態に従うシステム20の構成の一例を示す図である。
図3】情報処理装置200のハードウェア構成の一例を示す図である。
図4】土台120の歪みの種類の一例を示す図である。
図5】システム20のキャリブレーションの手順の一例を示す図である。
図6】カメラ111の第1のキャリブレーション510の具体例を示す図である。
図7】ランドマーク150の位置を検出する手順の一例を示す図である。
図8】ランドマーク150の姿勢を検出する手順の一例を示す図である。
図9】ランドマーク150の配置の一例を示す図である。
図10】ワーク140にかかる垂直応力を算出する手順の一例を示す図である。
図11】3Dシミュレーション上で歪んだワーク140に加工(ネジ締め)を行った様子を示す図である。
【発明を実施するための形態】
【0019】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0020】
<A.適用例>
図1は、本開示の技術を適用可能な製造ライン10の一例を示す図である。図1を参照して、製造ライン10の構成、3Dシミュレーションを用いたティーチングの課題、および、当該課題を解決する本開示の技術の概要について説明する。
【0021】
(a.製造ラインの構成)
製造ライン10は、多関節ロボット100と、土台120と、治具130とを含む。また、多関節ロボット100は、先端にエンドエフェクタ110を備える。エンドエフェクタ110は、カメラ111と、工具112とを備える。
【0022】
製造ライン10は、例えば、製品の組立ラインである。ワークは、製造ライン10上で加工されることで、製品として完成する。なお、ここでの製品は、何らかの他の製品に使用される中間部材を含む。本明細書において、「ワーク」は、加工の対象となる物体である。例えば、ワークは、基板、プラスチック部品、金属部品、または、これらを組み合わせた物体である。また、ワークへの「加工」は、ネジ締め、部品同士の嵌合、半田付け、穴開け、切削等の任意の工程を含む。
【0023】
多関節ロボット100は、複数のサーボモータ等によって駆動するロボットである。多関節ロボット100は、垂直多関節ロボット、水平多関節ロボット、パラレルリンクロボット、および、これらの構造を組み合わせたロボットを包含する。多関節ロボット100は、ワーク140に対して、ネジ締め、部品同士の嵌合、半田付け、穴開け、切削等の任意の加工を行う。多関節ロボット100は、制御装置220(図2参照)によって制御される。ある実施の形態に従うと、製造ライン10は、各工程およびワーク140の搬送等の用途のために、複数の多関節ロボット100を備える。
【0024】
土台120は、ワーク140を流すまたは配置するための土台である。ワーク140は、第1の加工を施されると、土台120上を移動する。次に、ワーク140は、移動先で第2の加工を施されると、再度土台120上を移動する。このように、製造ライン10は、ワーク140の加工処理および移動処理を繰り返し実行するように構成される。ある実施の形態に従うと、製造ライン10は、1つの土台120を備える。この場合、ワーク140は、1つの土台120上を移動する。他の実施の形態に従うと、製造ライン10は、複数の土台120を備える。この場合、ワーク140は、各土台120でのワーク140に対する加工が完了する毎に、次の土台120に移動する。
【0025】
治具130は、ワーク140を固定する。また、治具130は、土台120に固定される。ワーク140は、加工される際に治具130の上に配置される。一例として、ワーク140は、搬送用の多関節ロボット100により治具130の上に配置される。治具130は、例えば、ワーク140の外形に沿った枠を備えていたり、ワーク140に設けられたネジ穴に差し込むシャフトを備えていたりする。治具130は、これらの構成により、ワーク140を固定する。ある実施の形態に従うと、ワーク140は、土台120上に直接配置された状態で、加工されてもよい。
【0026】
エンドエフェクタ110は、多関節ロボット100の先端に取り付けられるツールである。多関節ロボット100は、エンドエフェクタ110を着脱可能に構成される。ユーザは、用途に応じて、多関節ロボット100に異なるエンドエフェクタを取り付けて使用し得る。一例として、エンドエフェクタ110は、嵌合処理用のエンドエフェクタ、ネジ締め用のエンドエフェクタ、半田付け用のエンドエフェクタ等を含む。
【0027】
カメラ111は、多関節ロボット100またはエンドエフェクタ110に取り付けられる。カメラ111は、土台120上のランドマーク150を撮影する。カメラ111は、制御装置220を介して、撮影したランドマーク150の画像を情報処理装置200(図2参照)に送信する。ランドマーク150の用途については後述する。ある実施の形態に従うと、カメラ111は、CCD(Charge Coupled Device)カメラである。他の実施の形態に従うと、カメラ111は、CMOS(Complementary Metal Oxide Semiconductor)カメラである。
【0028】
工具112は、エンドエフェクタ110に備え付けられる工具であり、ワーク140を加工する、工具112は、ワーク140に嵌合する部品を把持するロボットハンド、ネジ締め等に使用される電動工具、および、その他の任意の加工処理に使用されるツールを包含する。
【0029】
(b.3Dシミュレーションを用いたティーチングの課題)
次に、多関節ロボット100のティーチング、および、3Dシミュレーションを用いたティーチングの実現方法、および、3Dシミュレーションを用いたティーチングの課題について説明する。
【0030】
まず、多関節ロボット100のティーチングについて説明する。「ティーチング」は、多関節ロボット100に対してある動作をさせるための調整作業である。例えば、ワーク140に対してネジ締め作業を行うとする。この場合、多関節ロボット100は、ネジ締め位置に正確に移動する必要がある。なお、多関節ロボット100の移動とは、工具112の先端を目的の位置に移動させるという意味である。ユーザは、多関節ロボット100に目的の動作をさせるために、多関節ロボット100に送信する命令を繰り返し変更して、多関節ロボット100の動作を調整する必要がある。実空間のティーチングでは、ユーザは、制御装置220を介して、多関節ロボット100を実際に動作させる。
【0031】
次に、3Dシミュレーションを用いたティーチングの実現方法について説明する。ユーザは、まず、シミュレータ(3Dシミュレータ)210(図2参照)内で、実空間の製造ライン10を再現する。次に、ユーザは、3Dシミュレーション内で、疑似的な制御装置220を介して、多関節ロボット100に命令を送信する。3D空間内の多関節ロボット100は、疑似的な制御装置220から命令を受信すると、実空間と同様に動作する。ユーザは、3D空間内に構築された製造ライン10および多関節ロボット100を動かすことで、本番の製造ライン10の構築前に多関節ロボット100をティーチングし得る。
【0032】
次に、3Dシミュレーションを用いたティーチングの課題について説明する。3D空間内に再現された製造ライン10に含まれる各物体は、理想的な配置および姿勢となっている。しかしながら、実空間に構築される製造ライン10に含まれる各物体は、歪んでいることがある。例えば、土台120は、必ずしも完全に水平ではなく、わずかに傾いていることがある。また、土台120は、わずかにねじれていたり、たわんでいたりすることもある。このような土台120の歪み(傾き、ねじれおよび/またはたわみ)は、ワーク140に対する加工処理に悪影響を及ぼすことがある。そのため、ユーザは、3Dシミュレータ210を用いて作成したティーチングデータを、実空間の製造ライン10(土台120)の歪みに合せて調整する必要がある。
【0033】
(c.解決方法)
上記の課題を解決するために、本実施の形態に従うシステム(シミュレーションシステム)20は、ランドマーク150を使用する。ランドマーク150は、マーカーを格子上に等間隔に並べたプレートである。「マーカー」は、ランドマーク150に格子上に等間隔に設けられた穴または印である。また、マーカーは、一例として、円形である。
【0034】
ランドマーク150は、土台120上に配置される。ある実施の形態に従うと、ランドマーク150は、ワーク140または治具130の近傍に配置される。他の実施の形態に従うと、複数のランドマーク150が、土台120上に均等な距離を開けて分散配置される。さらに、他の実施の形態に従うと、土台120の全面がランドマーク150として構成される。カメラ111は、ランドマーク150を撮影して、ランドマーク150の画像を制御装置220に送信する。制御装置220は、情報処理装置200に画像を転送する。ある実施の形態に従うと、カメラ111は、情報処理装置200に画像を直接転送する。
【0035】
情報処理装置200(シミュレータ210)は、画像に写ったランドマーク150の歪みを検出する。より具体的には、情報処理装置200(シミュレータ210)は、画像内のランドマーク150上に均等に配置された複数のマーカーを解析する。次に、情報処理装置200(シミュレータ210)は、カメラ111から見た複数のマーカーの各々の形状および配置間隔に基づいて、土台120の歪みを推定する。土台120が理想的な形状および姿勢である場合、カメラ111から見た複数のマーカーの各々の形状および配置間隔に歪みはない。
【0036】
情報処理装置200(シミュレータ210)は、推定の結果に基づいて、3D空間で再現された製造ライン10において、土台120の歪みを再現する。また、情報処理装置200(シミュレータ210)は、土台120の歪みに基づいて、ワーク140の歪みも再現する。そして、情報処理装置200(シミュレータ210)は、3D空間において、歪んだ土台120上のワーク140に対する多関節ロボット100の加工処理におけるティーチングデータを修正する。より具体的には、情報処理装置200(シミュレータ210)は、再現された歪んだ土台120に設置された治具130上のワーク140に対して加工処理のシミュレーションを行うことで、ティーチングデータを修正し得る。さらに、情報処理装置200(シミュレータ210)は、ティーチングデータの修正結果を、多関節ロボット100の制御装置220にフィードバックする。こうすることで、多関節ロボット100のティーチングデータは、実空間に構築された製造ライン10(土台120)の歪みに合せて調整または修正される。
【0037】
一例として、情報処理装置200(シミュレータ210)は、土台120の歪みから、治具130上に配置されたワーク140の歪みを推定する。さらに、情報処理装置200(シミュレータ210)は、ワーク140の歪み量および材質情報に基づいて、多関節ロボット100のティーチングデータの修正量を算出する。情報処理装置200(シミュレータ210)は、ワーク140の歪み量および材質情報を取得すれば、有限要素法等を用いて、ワーク140の歪んでいる部分の応力を算出することができる。情報処理装置200(シミュレータ210)は、算出された応力に基づいて、多関節ロボット100のティーチングデータの修正量を算出し得る。
【0038】
<B.システム構成>
次に、図2および図3を参照して、本実施の形態に従うシステム20の構成について説明する。本明細書において、「システム」は、1または複数の装置からなる構成、サーバ、クラウド環境に構築された仮想マシンもしくはコンテナ、または、これらの少なくとも一部からなる構成を包含する。また、装置は、パーソナルコンピュータ、ワークステーション、サーバ装置、タブレット、スマートフォン等の情報処理装置200と、PLC(Programmable Logic Controller)等の制御装置220と、多関節ロボット100等の任意の機械装置とを含んでいてもよく、また、これらの組合せであってもよい。ある局面において、システム20は、ディスプレイおよびキーボード等の入出力機器と接続されて、ユーザに使用されてもよい。他の局面において、システム20は、ネットワークを介して、クラウドサービスまたはウェブアプリケーションとして、ユーザに各種機能を提供してもよい。この場合、ユーザは、自身の端末にインストールされたブラウザまたはクライアントソフトウェアを介して、システム20の機能を使用し得る。
【0039】
図2は、本実施の形態に従うシステム20の構成の一例を示す図である。システム20は、情報処理装置200と、制御装置220と、多関節ロボット100とを含む。ある実施の形態に従うと、システム20は、情報処理装置200と、制御装置220とを含み、多関節ロボット100を含まない。他の実施の形態に従うと、システム20は、情報処理装置200を含み、制御装置220と、多関節ロボット100とを含まない。さらに他の実施の形態に従うと、情報処理装置200および制御装置220は、一体型の装置として構成される。
【0040】
情報処理装置200は、シミュレータ210を用いて、3Dシミュレーションを実行可能に構成される。シミュレータ210は、3D空間に製造ライン10を再現する機能と、疑似的な制御装置220を再現する機能とを備える。ユーザは、疑似的な制御装置220にラダープログラム等を実行させることで、実空間と同様に、3D空間の製造ライン10を動作させ得る。情報処理装置200は、制御装置220を介して、カメラ111から、ランドマーク150の画像を受信する。ある実施の形態に従うと、シミュレータ210は、図3に示される情報処理装置200のハードウェア上で実行されるソフトウェアとして実現され得る。他の実施の形態に従うと、シミュレータ210の機能の一部又は全ては、ハードウェアとして実現され得る。
【0041】
制御装置220は、多関節ロボット100およびその他の任意の機械装置を制御する。また、制御装置220は、製造ライン10に設けられた1つ以上のセンサから信号を取得する。一例として、制御装置220は、PLCである。他の例として、制御装置220は、PLCおよびロボットの制御装置を備えた統合コントローラである。制御装置220は、カメラ111から受信した画像を情報処理装置200に転送する。
【0042】
図3は、情報処理装置200のハードウェア構成の一例を示す図である。ある実施の形態に従うと、制御装置220は、ハードウェアの一部として、図3に示される各構成を備える。情報処理装置200は、プロセッサ301と、メモリ302と、ストレージ303と、外部機器IF(Interface)304と、入力IF305と、出力IF306と、通信IF307とを含む。これらの各構成は、バス308を介して、相互に通信可能に接続される。
【0043】
プロセッサ301は、情報処理装置200の各種機能を実現するためのプログラムを実行し得る。プロセッサ301は、例えば、少なくとも1つの集積回路によって構成される。ある実施の形態に従うと、情報処理装置200は、例えば、少なくとも1つのCPU(Central Processing Unit)と、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのFPGA(Field Programmable Gate Array)、少なくとも1つのASIC(Application Specific Integrated Circuit)またはこれらの組み合わせ等を含んでいてもよい。
【0044】
メモリ302は、プロセッサ301によって実行されるプログラムと、プロセッサ301によって参照されるデータとを格納する。ある局面において、メモリ302は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等によって実現され得る。
【0045】
ストレージ303は、不揮発性メモリであり、プロセッサ301によって実行されるプログラムおよびプロセッサ301によって参照されるデータを格納している。その場合、プロセッサ301は、ストレージ303からメモリ302に読み出されたプログラムを実行し、ストレージ303からメモリ302に読み出されたデータを参照する。ある局面において、ストレージ303は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)またはフラッシュメモリー等によって実現され得る。
【0046】
外部機器IF304は、プリンター、スキャナーおよび外付けHDD等の任意の外部機器に接続され得る。ある局面において、外部機器IF304は、USB(Universal Serial Bus)端子等によって実現され得る。
【0047】
入力IF305は、キーボード、マウス、タッチパッドまたはゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力IF305は、USB端子、PS/2端子およびBluetooth(登録商標)モジュール等によって実現され得る。
【0048】
出力IF306は、ブラウン管ディスプレイ、液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力IF306は、USB端子、D-sub端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High-Definition Multimedia Interface)端子およびディスプレイポート端子等によって実現され得る。
【0049】
通信IF307は、有線ネットワークまたは無線ネットワークを介して他の機器と接続される。ある局面において、通信IF307は、有線LAN(Local Area Network)ポートおよびWi-Fi(登録商標)(Wireless Fidelity)モジュール等によって実現され得る。他の局面において、通信IF307は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信し得る。
【0050】
<C.土台の歪みの検出方法>
次に、図4図9を参照して、システム20が土台120の歪みを検出する方法について説明する。システム20は、土台120の歪みに基づいて、土台120上または治具130上に配置されたワーク140の歪みを推定する。
【0051】
図4は、土台120の歪みの種類の一例を示す図である。土台120の歪みは、土台120の形状の変化である。一例として、「歪み」は、たわみ410、ねじれ420、たわみおよび傾きの組み合わせ430、ねじれおよび傾きの組み合わせ440を含む。また、歪みは、たわみ、ねじれおよび傾きの組み合わせを含む。
【0052】
図5は、システム20のキャリブレーションの手順の一例を示す図である。システム20は、ランドマーク150を正確に解析するために、カメラ111のキャリブレーションを必要とする。キャリブレーションは、カメラ111単体のキャリブレーションである第1のキャリブレーション510と、多関節ロボット100に取り付けられたカメラ111のキャリブレーションである第2のキャリブレーション520とを含む。第1のキャリブレーション510および第2のキャリブレーション520の完了後に、システム20は、ランドマーク150の位置および姿勢の検出530を行い得る。
【0053】
第1のキャリブレーション510において、システム20は、カメラ111単体のキャリブレーションを実行する。当該キャリブレーションは、カメラ111がランドマーク150を撮像するときの互いの位置関係を定義するための処理である。ここでの位置関係とは、カメラ111からランドマーク150までの距離、カメラ111がランドマーク150を撮像する向き(ランドマーク150が並ぶ方向等に基づく)の少なくとも1つを含む。ある実施の形態に従うと、カメラ111のキャリブレーションは、カメラ111を多関節ロボット100から取り外した状態で行われてもよい。他の実施の形態に従うと、カメラ111のキャリブレーションは、カメラ111を多関節ロボット100に取り付けた状態で行われてもよい。また、他の局面において、カメラ111のキャリブレーションは、実空間でのみ行われてもよいし、3D空間および実空間の両方で行われてもよい。ある実施の形態に従うと、第1のキャリブレーション510は、Z.Zhangの手法によるキャリブレーションである。Z.Zhangの手法によるキャリブレーションについては、図6を参照して後述する。
【0054】
第2のキャリブレーション520において、システム20は、多関節ロボット100に取り付けられたカメラ111のキャリブレーションを行う。システム20は、多関節ロボット100に取り付けられたカメラ111でランドマーク150を撮像することでキャリブレーションを行う。一例として、システム20は、ロボット座標系におけるカメラ111の位置情報およびランドマーク150の位置関係の入力を予め受け付ける。これらの位置情報は、理想的な位置情報である。カメラ111の位置は、例えば、多関節ロボット100の根元(ロボット座標系の基準点)からみ見たカメラ111の位置である。また、ランドマーク150の位置は、例えば、多関節ロボット100の根元(ロボット座標系の基準点)から見たランドマーク150の位置である。次に、システム20は、多関節ロボット100に取り付けられたカメラ111でランドマーク150を撮影する。システム20は、得られた画像を解析し、理想的なカメラ111および理想的なランドマーク150の位置関係と実際のカメラ111および理想的なランドマーク150の位置関係とのずれを修正する。
【0055】
ランドマーク150の位置および姿勢の検出530において、システム20は、カメラ111から見たランドマーク150の理想的な形状および姿勢と、カメラ111から見たランドマーク150の実際の形状および姿勢との差分を抽出する。カメラ111から見たランドマーク150の理想的な形状および姿勢とは、3D空間における多関節ロボット100からランドマーク150までの距離および方向であるとも言える。また、カメラ111から見たランドマーク150の実際の形状および姿勢とは、実空間における多関節ロボット100からランドマーク150までの距離および方向であるとも言える。システム20は、当該差分に基づいて、土台120の歪みを推定する。
【0056】
図6は、カメラ111の第1のキャリブレーション510の具体例を示す図である。図6を参照して、Z.Zhangの手法によるキャリブレーションの手順について説明する。
【0057】
システム20は、ランドマーク150の設計情報(マーカーの位置)の入力を予め受け付ける。ランドマーク150の設計情報は、マーカーが平面状に配置されているという制約情報を含む。ある実施の形態に従うと、ランドマーク150の設計情報は、さらに、マーカーの形状およびマーカーの設置間隔の情報を含む。システム20は、画像を解析し、上記の制約情報に基づいて、ランドマーク150の姿勢を画像から推定する。さらに、システム20は、カメラ111のレンズの歪み係数も同時に算出する。
【0058】
一例として、システム20は、ランドマーク150の10枚以上の画像を撮影する。これにより、システム20は、ランドマーク150の位置および姿勢とレンズの歪みとを推定する。一例として、システム20は、第1のキャリブレーション510のために、以下の条件で、ランドマーク150を10~20枚程度撮影する。
【0059】
撮影された複数の画像は、以下の条件を満たすことが望ましい。第1の条件として、撮影された複数の画像は、カメラ111から見た距離が異なる画像を含む。例えば、撮影された複数の画像は、システム20が実際にランドマーク150を検出する距離範囲内で、カメラ111から見た距離が異なる3枚以上の画像を含むことが望ましい。第2条件として、撮影された複数の画像は、カメラ111に正対したランドマーク150の画像を含む。第3条件として、撮影された複数の画像は、カメラ111から見て傾いたランドマーク150の画像を含む。例えば、カメラ111から見て傾いたランドマーク150の画像は、ランドマーク150上のマーカーの形状が崩れない範囲の角度でランドマーク150が上下左右のいずれかに傾いた画像である。なお、撮影された複数の画像は、ランドマーク150が上下左右の各方向に傾いた画像を均等に含むことが望ましい。第4条件として、撮影された複数の画像は、ランドマーク150をカメラ111の撮像範囲の中心に配置した画像を含む。第5条件として、撮影された複数の画像は、ランドマーク150をカメラ111の撮像範囲の隅に配置した画像を含む。第6条件として、撮影された複数の画像は、第1条件~第5条件で撮影された画像を偏り無く含む。
【0060】
また、ランドマーク150の撮影環境は、以下の条件を満たすことが望ましい。第1の条件として、ランドマーク150の撮影環境は、ピントずれが起きない環境である。第2の条件として、ランドマーク150の撮影環境は、ランドマーク150上の全てのマーカーが、カメラ111の視野からはみ出さない。ランドマーク150上のマーカーの一部が、カメラ111の視野からはみ出すことはある。第3の条件として、ランドマーク150の撮影環境は、光の反射などでハレーションが起きない環境である。
【0061】
さらに、撮影されるランドマーク150は、以下の条件を満たすことが望ましい。第1の条件として、ランドマーク150は、カメラ111から見て、視野の1/4以上を占めるサイズである。第2の条件として、ランドマーク150に設けられたマーカーの列数(行数)は、3~21の奇数である。
【0062】
ランドマーク150の撮影方法は、2通りある。第1の撮影方法610は、ランドマーク150を固定して、カメラ111を移動させる方法である。第2の撮影方法620は、カメラ111を固定して、ランドマーク150を移動させる方法である。複数の画像630は、第1のキャリブレーション510で撮影される画像の一例を示す図である。
【0063】
図7は、ランドマーク150の位置を検出する手順の一例を示す図である。図7に示される処理は、ランドマーク150の位置および姿勢の検出530のうち、ランドマーク150の位置の検出に相当する。
【0064】
まず、システム20は、カメラ111をランドマーク150の撮影位置に移動させる。一例として、システム20は、予め定められた位置および姿勢のランドマーク150の画像が得られる位置に、カメラ111を移動させる。システム20は、画像に写った各マーカーの形状およびマーカー間の距離に基づいて、カメラ111の位置を調整する。次に、システム20は、カメラからランドマーク150までの相対距離を算出する。一例として、システム20は、カメラ座標系に基づいて当該相対距離を算出する。
【0065】
さらに、システム20は、カメラ111からランドマーク150までの相対距離に基づいて、ロボット座標系におけるランドマーク150の位置を算出する。一例として、システム20は、多関節ロボット100の各関節の角度と、カメラ111の取り付け位置とに基づいて、ロボット座標系におけるカメラ111の座標を算出する。さらに、システム20は、ロボット座標系におけるカメラ111の座標に、カメラからランドマーク150までの相対距離を加算することで、ロボット座標系におけるランドマーク150の位置を算出し得る。
【0066】
図8は、ランドマーク150の姿勢を検出する手順の一例を示す図である。図8に示される処理は、ランドマーク150の位置および姿勢の検出530のうち、ランドマーク150の姿勢の検出に相当する。
【0067】
システム20は、予め定められた位置に移動したカメラ111から画像を取得し、当該画像を解析する。システム20は、カメラ111およびランドマーク150間の相対距離と、マーカーの位置ずれとに基づいて、ランドマーク150の姿勢を推定する。マーカーの位置ずれとは、マーカーの理想的な位置と、実際に撮影された画像に写ったマーカーとの位置のずれである。例えば、真上からランドマーク150を見た場合、各マーカーは均等な間隔で並んでいる。しかしながら、土台120が歪んでいる場合、画像に写った各マーカーの形状およびマーカー間の間隔も変化する。システム20は、Solve PnPのプログラム等を用いて、カメラ111およびランドマーク150間の相対位置・姿勢を推定する。これにより、システム20は、土台120の歪みを推定し得る。さらに、システム20は、土台120の歪みから、治具130に配置されたワーク140または土台120に直接配置されたワーク140の歪みも推定し得る。
【0068】
ある実施の形態に従うと、情報処理装置200(シミュレータ210)は、図7および図8の処理を実行するための命令を制御装置220に随時出力する。この場合、制御装置220は、受信した命令に従って多関節ロボット100を駆動させる。他の実施の形態に従うと、制御装置220は、予めインストールされたプログラムに従って多関節ロボット100を駆動させる。この場合、情報処理装置200(シミュレータ210)は、制御装置220に命令を送信せずに、制御装置220から画像およびカメラ111の位置情報等を受信する。
【0069】
図9は、ランドマーク150の配置の一例を示す図である。図9に示されるように、ランドマーク150は、土台120上に均等間隔で分散配置されてもよい。この場合、システム20が検知するランドマーク150は、土台に分散配置された複数のランドマーク150を含むと言える。また、土台120の歪みを推定することは、複数のランドマーク150の各々から、土台120の各部分の歪みを推定することを含むと言える。システム20は、分散配置された各ランドマーク150の位置および姿勢から、土台120の各部分の歪みを推定し得る。また、システム20は、土台120の各部分の歪みから、土台120全体の歪みを推定し得る。ある実施の形態に従うと、土台120全面がランドマーク150として構成される。他の実施の形態に従うと、ランドマーク150は、ワーク140または治具130の近傍のみに配置される。
【0070】
<D.ティーチングデータの修正方法>
次に、図10および図11を参照して、ティーチングデータを修正する手順について説明する。ある実施の形態に従うと、ティーチングデータの修正は、多関節ロボット100の位置および姿勢の修正を含む。他の実施の形態に従うと、ティーチングデータの修正は、多関節ロボット100に備え付けられた電動工具のトルクの調整を含む。また、他の実施の形態に従うと、ティーチングデータの修正は、嵌合処理において、ワーク140に嵌合部品(プラグ等)を押し付ける強さ(多関節ロボット100が嵌合動作においてワーク140にかける力)の調整を含む。さらに、他の実施の形態に従うと、ティーチングデータの修正は、多関節ロボット100の位置および姿勢の修正と、動工具のトルクの調整またはワーク140に嵌合部品(プラグ等)を押し付ける強さの調整とを含む。
【0071】
図10は、ワーク140にかかる垂直応力を算出する手順の一例を示す図である。システム20は、土台120の歪みを検出すると、3D空間内で、土台120の歪みを再現する。そして、システム20は、歪んだ土台120上の治具130に配置されたワーク140、または、歪んだ土台120上に直接配置されたワーク140に対して加工を加える場合に、ワーク140に発生する応力を算出する。例えば、加工がネジ締めである場合、システム20は、ワーク140にネジを締めた場合にワーク140に発生する応力を算出する。
【0072】
システム20は、一例として、有限要素法により、ワーク140に発生する応力を算出する。この場合、システム20は、3D空間において、メッシュ構造で再現されたワーク140の形状を変化させることで、ワーク140の発生する応力を算出する。形状変化1010は、歪みのないワーク140にネジ1000を締めた場合の形状変化である。形状変化1020は、歪みのあるワーク140(例えば、傾いているワーク140)にネジ1000を締めた場合の形状変化である。
【0073】
システム20は、3D空間内に再現された歪んだワーク140に加工を行った場合にワーク140に発生する応力に応じて、多関節ロボット100のティーチングデータを修正し得る。より具体的には、システム20は、ワーク140に発生する応力が予め定められた値以下となるように、多関節ロボット100の位置および姿勢を調整する。他の実施の形態に従うと、システム20は、ワーク140に発生する応力が予め定められた値以下となるように、多関節ロボット100に備え付けられた電動工具のトルクを調整する。また、他の実施の形態に従うと、システム20は、ワーク140に発生する応力が予め定められた値以下となるように、嵌合処理時に多関節ロボット100がワーク140に加える力を調整する。
【0074】
図11は、3Dシミュレーション上で歪んだワーク140に加工(ネジ締め)を行った様子を示す図である。図11の例では、治具130が描かれていないが、実際には、ワーク140は、治具130上に配置される。
【0075】
システム20は、図9に示された各ランドマーク150の位置・姿勢に基づいて、土台120の歪みを求める。次に、システム20は、3D空間で、図11のように、土台120の歪みを再現する。より具体的には、システム20は、3D空間で、土台120の歪んだ部分のメッシュの位置および姿勢を変化させる。
【0076】
システム20は、同様に、3D空間で、土台120上(または治具130上)のワーク140のメッシュの位置および姿勢も変化させる。システム20は、3D空間で、歪んだワーク140に対する加工(ネジ締め、嵌合等)を行い、ワーク140に発生する応力を算出する。次に、システム20は、ワーク140に発生する応力が一定以下になるように、多関節ロボット100の位置・姿勢、電動工具のトルク、嵌合時にワーク140を押す力等を調整する。システム20は、修正後(調整後)のティーチングデータを制御装置220にフィードバックする。
【0077】
以上説明した通り、本実施の形態に従うシステム20は、カメラ111によりランドマーク150を撮影し、画像に写ったランドマーク150を解析することで、製造ライン10における土台120の歪みを検出する。また、システム20は、3D空間内で土台120の歪みを再現する。また、システム20は、3D空間において、歪んだ土台120上のワーク140に対する多関節ロボット100の加工処理におけるティーチングデータを修正する。そして、システム20は、ティーチングデータの修正結果を、多関節ロボット100の制御装置220にフィードバックする。
【0078】
<E.付記>
以上のように、本実施の形態は以下のような開示を含む。
[構成1]
多関節ロボット(100)に取り付けられたカメラ(111)と、
シミュレーション装置(200)とを備え、
前記カメラ(111)は、実世界の製造ライン(10)の土台(120)に配置されたランドマーク(150)の画像を前記シミュレーション装置(200)に送信し、
前記シミュレーション装置(200)は、
前記画像内の前記ランドマーク(150)上に均等に配置された複数のマーカーを解析し、
前記カメラ(111)から見た前記複数のマーカーの各々の形状および配置間隔に基づいて、前記土台(120)の歪みを推定し、
前記推定の結果に基づいて、3D(Dimensional)空間で再現された前記製造ライン(10)において、前記土台(120)の歪みを再現し、
前記3D空間において、歪んだ前記土台(120)上のワーク(140)に対する多関節ロボットの加工処理におけるティーチングデータを修正し、
前記ティーチングデータの修正結果を、前記多関節ロボットの制御装置にフィードバックする、シミュレーションシステム(20)。
[構成2]
前記ティーチングデータを修正することは、前記多関節ロボットに備え付けられた電動工具のトルクを調整することを含む、構成1に記載のシミュレーションシステム(20)。
[構成3]
前記ティーチングデータを修正することは、前記多関節ロボットが嵌合動作において前記ワーク(140)にかける力を調整することを含む、構成1に記載のシミュレーションシステム(20)。
[構成4]
前記土台(120)の歪みを再現することは、前記土台(120)の歪みに基づいて、前記土台(120)上の前記ワーク(140)の歪みを再現することを含む、構成1~3のいずれかに記載のシミュレーションシステム(20)。
[構成5]
前記シミュレーション装置(200)は、
前記ワーク(140)の材質情報をストレージから読み出し、
前記ワーク(140)の歪み量と前記ワーク(140)の前記材質情報とから、前記ティーチングデータの修正量を算出する、構成4に記載のシミュレーションシステム(20)。
[構成6]
前記ティーチングデータの修正量を算出することは、
有限要素法を用いて、前記ワーク(140)の歪んでいる部分の応力を算出することと、
前記応力に基づいて、前記ティーチングデータの修正量を算出することとを含む、構成5に記載のシミュレーションシステム(20)。
[構成7]
前記ランドマーク(150)は、前記土台(120)に分散配置された複数のランドマーク(150)を含み、
前記土台(120)の歪みを推定することは、前記複数のランドマーク(150)の各々から、前記土台(120)の各部分の歪みを推定することを含む、構成1~3のいずれかに記載のシミュレーションシステム(20)。
[構成8]
多関節ロボット(100)に取り付けられたカメラ(111)により、実世界の製造ライン(10)の土台(120)に配置されたランドマーク(150)の画像を撮影するステップと、
前記画像をシミュレーション装置(200)に送信するステップと、
前記画像内の前記ランドマーク(150)上に均等に配置された複数のマーカーを解析するステップと、
前記カメラ(111)から見た前記複数のマーカーの各々の形状および配置間隔に基づいて、前記土台(120)の歪みを推定するステップと、
前記推定の結果に基づいて、3D空間で再現された前記製造ライン(10)において、前記土台(120)の歪みを再現するステップと、
前記3D空間において、歪んだ前記土台(120)上のワーク(140)に対する多関節ロボットの加工処理におけるティーチングデータを修正するステップと、
前記ティーチングデータの修正結果を、前記多関節ロボットの制御装置にフィードバックするステップとを備える、シミュレーション方法。
【0079】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0080】
10 製造ライン、20 システム、100 多関節ロボット、110 エンドエフェクタ、111 カメラ、112 工具、120 土台、130 治具、140 ワーク、150 ランドマーク、200 情報処理装置、210 シミュレータ、220 制御装置、301 プロセッサ、302 メモリ、303 ストレージ、304 外部機器IF、305 入力IF、306 出力IF、307 通信IF、308 バス、410 たわみ、420 ねじれ、430 たわみおよび傾きの組み合わせ、440 ねじれおよび傾きの組み合わせ、510 第1のキャリブレーション、520 第2のキャリブレーション、530 ランドマーク150の位置および姿勢の検出、610 第1の撮影方法、620 第2の撮影方法、630 画像、1000 ネジ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11