組み付け装置、およびその方法、組み付け動作プログラム
【課題】本発明は、被組み付け部品の位置ずれに関わらず、組み付け動作を適切、かつ、効率的に行うことができる組み付け装置、およびその方法、組み付け動作プログラムの提供を目的とする。
【解決手段】本発明にかかる組み付け装置は、制御部2が、組み付け部品100の3次元モデルデータにおいて規定された組み付け部品100の第1基準点に対応する第1基準位置としてのTCP把持位置201と、被組み付け部品101の3次元モデルデータにおいて規定された組み付け部品100の第2基準点に対応する第2基準位置としてのTCP組み付け位置202とを対応させるように、作業部1の動作を制御する。
【解決手段】本発明にかかる組み付け装置は、制御部2が、組み付け部品100の3次元モデルデータにおいて規定された組み付け部品100の第1基準点に対応する第1基準位置としてのTCP把持位置201と、被組み付け部品101の3次元モデルデータにおいて規定された組み付け部品100の第2基準点に対応する第2基準位置としてのTCP組み付け位置202とを対応させるように、作業部1の動作を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は組み付け装置、およびその方法、組み付け動作プログラムに関し、特に、ロボット等を用いた組み付け動作の制御に関するものである。
【背景技術】
【0002】
従来から、3次元認識した対象部品の3次元位置を目標にして、ロボットのハンド部等をハンドリングし、例えば部品の組み立てをする方法が実施されている。
【0003】
特許文献1は、部品把持手段を備える組み立て機構を用いて、複数の部品を順次組み付ける自動組み立てシステムを開示している。この自動組み立てシステムにおいて、組み立て機構の動作を教示する方法として、各部品の組み付け時の動きを定義するステップと、定義した各部品の動きが実現されるように、組み立て機構の動作を決定するステップとを開示している。
【0004】
この場合、組み付けられる側の部品(被組み付け部品)が、定義した3次元位置および姿勢からずれてしまった場合、組み付け部品を適切に組み付けできないという問題があった。
【0005】
当該問題を解決するためには、被組み付け部品を組み付ける位置に配置してからも、その3次元位置および姿勢を認識しなおして、補正する必要がある。
【0006】
特許文献2は、組み付け位置における被組み付け部品および組み付け部品の位置補正について開示している。あらかじめワークと部品とに設定した複数の測定基準点のずれを、画像計測およびマトリックス処理によって処理し、被組み付け部品および組み付け部品の位置補正を行う。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第4513663号公報
【特許文献2】特開平5−108126号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、例えば特許文献2に示す位置補正の方法では、組み付け部品および被組み付け部品をそれぞれ位置計測し、それぞれで基準位置からの測定基準点のずれを算出して位置補正を行う必要があり、処理が煩雑であった。
【0009】
また、部品が小さいボルトのような場合には測定基準点の設定自体が難しく、また設定した場合でも各測定基準点の間隔が非常に狭くなることから、十分な精度で適切に補正することが困難になる場合があった。
【0010】
本発明は、上記のような問題を解決するためになされたものであり、被組み付け部品の位置ずれに関わらず、組み付け動作を適切、かつ、効率的に行うことができる組み付け装置、およびその方法、組み付け動作プログラムの提供を目的とする。
【課題を解決するための手段】
【0011】
請求項1の発明である組み付け装置は、組み付け部品としての第1部品を、被組み付け部品としての第2部品に組み付ける作業部と、前記第1部品および前記第2部品の3次元位置および姿勢を認識する認識部と、前記認識部における3次元位置および姿勢認識に基づいて、前記作業部の動作を制御する制御部とを備え、前記制御部が、前記第1部品の3次元モデルデータに設定された所定の第1基準点に対応する位置として、前記認識部で認識された実空間での前記第1部品に設定された第1基準位置と、前記第2部品の3次元モデルデータに設定された所定の第2基準点に対応する位置として、前記認識部で認識された実空間での前記第2部品に設定された第2基準位置とを互いに対応させて前記作業部の動作を制御し、前記第2基準点は、前記第2部品の3次元モデルデータ上において、前記第1部品の組み付けに関する箇所を指示する点であることを特徴とする。
【0012】
請求項2の発明は、請求項1に記載の組み付け装置であって、前記第1基準点が、前記作業部が前記第1部品を保持する際に、基準となる点であることを特徴とする。
【0013】
請求項3の発明は、請求項1または2に記載の組み付け装置であって、前記第2基準点が、前記第2部品に前記第1部品が組み付けられた状態を示す、前記第2部品および前記第1部品の3次元組み図データにおける、前記第2部品と前記第1基準点との相対位置関係に対応する点であることを特徴とする。
【0014】
請求項4の発明は、請求項1〜3のいずれかに記載の組み付け装置であって、前記制御部が、前記第1基準位置と前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする。
【0015】
請求項5の発明は、請求項1〜4のいずれかに記載の組み付け装置であって、前記作業部は、前記第1部品を保持するための第3基準位置を有し、前記制御部が、前記第1基準位置と前記第3基準位置とを一致させるように、前記作業部による前記第1部品の保持動作を制御し、保持した前記第1部品の前記第1基準位置と前記第2部品の前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする。
【0016】
請求項6の発明は、請求項1〜5のいずれかに記載の組み付け装置であって、前記第2部品の3次元モデルデータにおいて、前記第2基準点に従属する従属基準点がさらに規定され、前記制御部が、前記第1基準位置と前記従属基準点に対応する従属位置を一致させた後、前記第1基準位置と前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする。
【0017】
請求項7の発明は、請求項6に記載の組み付け装置であって、前記従属基準点の情報には、前記従属基準点から前記第2基準点に移動するまでの前記第1部品に対する動作指示の情報が含まれることを特徴とする。
【0018】
請求項8の発明は、請求項1〜7のいずれかに記載の組み付け装置であって、前記第1基準点の情報には、前記作業部が前記第1部品の保持動作を行う際の、前記第1基準点に対する前記作業部の進入角度の情報が含まれることを特徴とする。
【0019】
請求項9の発明は、請求項1〜8のいずれかに記載の組み付け装置であって、前記第2基準点の情報には、前記作業部が前記第1部品の組み付け動作を行う際の、前記第2基準点に対する前記作業部の進入角度の情報が含まれることを特徴とする。
【0020】
請求項10の発明は、請求項1〜9のいずれかに記載の組み付け装置であって、前記第1基準点が、前記第1部品ごとに複数決定されており、複数の第1基準点のうちの1が選択されて設定されることを特徴とする。
【0021】
請求項11の発明は、請求項1〜10のいずれかに記載の組み付け装置であって、前記第2基準点が、前記第2部品ごとに複数設定されることを特徴とする。
【0022】
請求項12の発明は、請求項1〜11のいずれかに記載の組み付け装置であって、前記第2部品が、複数の部品の組み合わせで構成されることを特徴とする。
【0023】
請求項13の発明は、請求項1〜12のいずれかに記載の組み付け装置であって、あらかじめ用意された、前記第1部品および前記第2部品の3次元モデルデータを記憶する記憶部をさらに備えることを特徴とする。
【0024】
また、請求項14の発明は、組み付け方法であって、組み付け部品としての第1部品を、被組み付け部品としての第2部品に組み付ける作業部を備える組み付け装置において、(a)前記第1部品および前記第2部品の3次元位置および姿勢を認識する工程と、(b)前記工程(a)における3次元位置および姿勢認識に基づいて、前記第1部品の3次元モデルデータに設定された所定の第1基準点に対応する位置として、認識された実空間での前記第1部品に設定された第1基準位置と、前記第2部品の3次元モデルデータに設定された所定の第2基準点に対応する位置として、認識された実空間での前記第2部品に設定された第2基準位置とを互いに対応させて前記作業部の動作を制御する工程とを備え、前記第2基準点は、前記第2部品の3次元モデルデータ上において、前記第1部品の組み付けに関する箇所を指示する点であることを特徴とする。
【0025】
また、請求項15の発明は、組み付け動作プログラムであって、コンピュータにインストールされて実行されることにより、前記作業部を前記コンピュータによって制御する装置を、請求項1〜13のいずれかに記載の組み付け装置として機能させることを特徴とする。
【発明の効果】
【0026】
請求項1〜15の発明によれば、被組み付け部品の3次元モデルデータにおいて、それぞれの3次元モデルデータでの第1基準点と第2基準点との設定に基づいて、実在の第1部品(組み付け部品)と第2部品(被組み付け部品)とに、第1基準位置と第2基準位置とがそれぞれ設定される。第2基準点は、第2部品の3次元モデルデータ上において、第1部品の組み付けに関する箇所を指示する点であり、実空間において第1基準位置と第2基準位置とを互いに対応させて作業部の動作を制御することによって、第2部品(被組み付け部品)の位置ずれに関わらず、効率的に組み付け動作を行うことができる。
【0027】
特に請求項6の発明によれば、被組み付け部品の3次元モデルデータにおいて、第2基準点に従属する従属基準点がさらに規定され、制御部が、第1基準位置と、実際の部品配置関係において従属基準点に対応する従属基準位置とを一致させた後、第1基準位置と第2基準位置とを一致させるように、作業部の動作を制御することにより、第2基準位置に第1部品を組み付ける際に、ねじ込み等の特定の動作を伴う複雑な組み付けの場合にも、従属基準位置から第2基準位置までの移動の間で当該動作を行わせ、作業部の動作制御をすることができる。
【0028】
特に請求項8の発明によれば、第1基準点の情報には、作業部が組み付け部品の保持動作を行う際の、第1基準点に対する作業部の進入角度の情報が含まれることにより、作業部の第1部品に対する3次元姿勢が特定され、作業部で第1部品を保持する際に、第1部品の各部分の強度を考慮し、把持した後の第1部品の3次元姿勢を調整することができる。
【0029】
特に請求項9の発明によれば、第2基準点の情報には、作業部が第1部品の組み付け動作を行う際の、第2基準点に対する作業部の進入角度の情報が含まれることにより、作業部および第1部品の、第2部品に対する3次元姿勢が特定され、作業部で第1部品を組み付ける際に、第2部品にぶつからない経路を考慮し、適切に組み付け動作を行うことができる。
【図面の簡単な説明】
【0030】
【図1】組み付け装置の構成を概念的に示した図である。
【図2】組み付け装置のハードウェア構造の例を示す図である。
【図3】組み付け装置の動作を示すフローチャートである。
【図4】組み付け装置の動作を説明する図である。
【図5】組み付け装置の動作を説明する図である。
【図6】組み付け装置の動作を説明する図である。
【図7】組み付け装置のデータ内容を説明する図である。
【図8】組み付け装置の動作を説明する図である。
【図9】組み付け装置の動作を説明する図である。
【図10】組み付け装置の動作を説明する図である。
【図11】組み付け装置の動作を説明する図である。
【図12】組み付け装置のデータ内容を説明する図である。
【図13】組み付け装置の動作を説明する図である。
【図14】組み付け装置の動作を説明する図である。
【図15】組み付け装置の動作を説明する図である。
【図16】組み付け装置の動作を説明する図である。
【図17】組み付け装置の動作を説明する図である。
【図18】組み付け装置の動作を説明する図である。
【図19】組み付け装置の動作を説明する図である。
【図20】組み付け装置の動作を説明する図である。
【発明を実施するための形態】
【0031】
<実施形態>
<構成>
図1は、本実施形態にかかる組み付け装置の構成を概念的に示した図である。図1に示すように本発明にかかる組み付け装置は、組み付け部品100および被組み付け部品101の3次元位置および姿勢を認識する認識部4と、3次元位置および姿勢を認識した組み付け部品100を、3次元位置および姿勢を認識した被組み付け部品101に組み付ける作業部1(例えば、ロボットハンド)と、作業部1の動作を制御する制御部2とを備える。
【0032】
ここで、組み付け部品100(第1部品)および被組み付け部品101(第2部品)は、必ずしも単独の部品に対応するものとは限らない。
【0033】
また、組み付け部品100および被組み付け部品101の3次元位置および姿勢を認識するために視差画像を用いる場合には、図1に示すように、認識部4に視差画像を提供する撮像部3を備えることも可能である。
【0034】
例えば、ステレオカメラ等の撮像部3を備える場合には、撮像部3において撮像した組み付け部品100または被組み付け部品101の視差画像を用いて、あらかじめ用意された組み付け部品100または被組み付け部品101の3次元モデルデータとICP(Iterative Closest Point)マッチングを行い、認識部4において、組み付け部品100または被組み付け部品101の3次元位置および姿勢を認識することができる。
【0035】
ここで3次元モデルデータとは、対象部品の既知の形状を形成するように配置された、それぞれが3次元位置情報を有する点群のデータであり、対象の各辺、各頂点等に対応した点群からなる。例えば3次元CAD(Computer Aided Design)形式で記述される。対象部品は単独の部品である必要はなく、複数の部品が組み合わされた状態であってもよい。以下、単独の部品に関する3次元モデルデータを特に3次元単独図データ、複数の部品の組み合わせに関する3次元モデルデータを特に3次元組み図データとする。
【0036】
撮像部3は、作業部1に取り付けられることも可能である。具体的には、作業部1がロボットハンドである場合、ロボットハンドの根元部分(後述の図2参照)に取り付けられることで、より近い視点から組み付け部品100または被組み付け部品101を捉えることができ、より精度の高い3次元位置および姿勢の認識が可能となる。
【0037】
なお、撮像部3が備えられない場合であっても、組み付け部品100または被組み付け部品101の3次元位置および姿勢がセンサ等から測定できればよいし、また測定した結果が外部等から認識部4へ与えられてもよい。
【0038】
また組み付け装置は、あらかじめ用意される組み付け部品100および被組み付け部品101の3次元モデルデータ等を記憶する記憶部5をさらに備えることができる。ただし、当該記憶部5の機能を果たす記憶機器が装置の外部に備えられ、当該記憶機器と通信等を行うことにより、データを取得する態様であってもよい。
【0039】
図2は、本実施形態にかかる組み付け装置のハードウェア構造の例を示すものである。
【0040】
図2に示すように組み付け装置は、組み付け部品100および被組み付け部品101を把持するロボットハンド1R、ロボットハンド1L(作業部1に対応)と、組み付け部品100および被組み付け部品101の3次元位置および姿勢を認識するため、ロボットハンド1Rに取り付けられたカメラ102(撮像部3に対応)と、ロボットハンド1Rおよびロボットハンド1Lの動作を制御するCPU103(認識部4、制御部2、記憶部5に対応)とを備える。
【0041】
図2においては、組み付け装置として双腕のロボットを示しているが、例えばロボットハンド1R単腕のロボットであってもよい。また、組み付け部品100および被組み付け部品101の形状は、図示したものに限られるものではない。
【0042】
<動作>
次に、本実施形態にかかる組み付け装置の動作を、図3に示すフローチャートに従って説明する。
【0043】
なお、以下の説明中で現れる位置要素のうち、「第1基準点」、「第2基準点」および「従属基準点」は3次元CADデータ上で設定される位置情報である。これに対して、「第1基準位置」、「第2基準位置」および「従属基準位置」は、上記の「第1基準点」、「第2基準点」および「従属基準点」の位置を、実際の部品が存在する空間での座標系(たとえばロボット座標系)に変換した位置情報である。また「第3基準位置」はロボット側(ロボット座標系)での位置情報であり、部品の配置状況とは無関係に規定される位置情報である。
【0044】
ステップS1では、ロボットハンド1Rにおいて部品を把持等するための点をTCP200(Tool Center Point;ツールセンターポイント)として設定する(図4参照)。TCP200(第3基準位置)は、作業部1としてのロボットハンド1Rが組み付け部品100または被組み付け部品101を把持等する際に基準となる、ロボットハンド1Rにおける3次元位置(x、y、z)である。この位置は、必ずしも図4に示すようなフィンガー間の中心位置である必要はなく、ロボットハンド1Rを用いて部品を把持等する際に都合のよい位置であればよい。TCP200は、ロボットハンド1Rごとにそれぞれ個別に、ロボットのローカル3次元座標内に設定することができる。
【0045】
またステップS1では、組み付け部品100の3次元モデルデータ300において、TCP把持点401(第1基準点)を設定する(図5参照)。このTCP把持点401は、ロボットハンド1Rに設定されたTCP200に対応する、組み付け部品100の3次元モデルデータ300における基準点である。ロボットハンド1RのTCP200と、TCP把持点401に対応する実空間の点であるTCP把持位置201との、例えば3次元位置を一致させることで、ロボットハンド1Rが組み付け部品100を適切に把持するための3次元位置および姿勢を特定することができる。具体的には、ロボットハンド1RのTCP200と、組み付け部品100のTCP把持位置201とが一致した状態で、ロボットハンド1Rのフィンガーを組み付け部品100にかけることで、組み付け部品100を適切に把持することができる。
【0046】
この位置は、必ずしも図5に示すように組み付け部品100の中心位置である必要はなく、ロボットハンド1Rを用いて組み付け部品100を把持等する際に都合のよい位置であればよい。TCP把持点401は、組み付け部品100の3次元モデルデータ300ごとにそれぞれ個別に、組み付け部品100のローカル3次元座標内に設定することができる。
【0047】
組み付け部品100の各3次元モデルデータ300において、上記のTCP把持点401を複数パターン記憶させておき、状況に応じてそれらのうちの1を実際の作業開始前に設定することも可能である(図5および図6参照)。同じ組み付け部品100であっても、組み付け方法の違いによりロボットハンド1Rによって把持等すべき位置が異なるからである。さらに、ロボットハンド1Rの形状等にも起因して変更されるため、それぞれのロボットハンド1Rに対応して、あらかじめ決定されて記憶されている複数のTCP把持点候補のうちのひとつをTCP把持点401として設定してもよい。
【0048】
TCP把持点401には、その3次元位置(x、y、z)の情報の他に、当該組み付け部品100をロボットハンド1Rによって把持等する際に、ロボットハンド1RがTCP把持点401に対して進入するためにとるべき3次元的な把持進入角度(Rx1、Ry1、Rz1)の情報を含むことができる。
【0049】
設定されたTCP把持点401の情報は、例えば、組み付け部品100の3次元モデルデータ300(点群データ)が記載されたデータ内に、他とは区別される方法で記載することができる(図7参照)。
【0050】
なお、上記の説明では、TCP把持点401の設定は各部品の3次元単独図データにおいてなされているが、3次元組み図データ上においてTCP把持点401を設定し、各部品のTCP把持点401としてもよい。このとき、TCP把持点401を設定する部品以外の部品は表示させないようにすることで、3次元単独図データにおいてTCP把持点401を設定する場合と同様に、TCP把持点401を設定することもできる。
【0051】
ステップS2では、記憶部5に記憶されたデータから、組み付け部品100および被組み付け部品101の3次元組み図データを読み出す(図8参照)。
【0052】
ここで、3次元組み図データは、組み付け部品100および被組み付け部品101それぞれの3次元単独図データが組み立てられた状態(組み立て対象110)で配置されたデータであり、組み付け部品100および被組み付け部品101のそれぞれのローカル座標で規定された3次元モデルデータ300(点群データ)を、統一の座標系で規定する。ここで、組み立てられた状態(組み立て対象110)には、組み立て完成までの途中段階の状態(部品A、部品B、部品Cの少なくとも1つが欠けた状態)も含む。
【0053】
各部品の3次元単独図データにおける点群が組み立て状態で配置されることで、組み立て対象110における部品間(図8においては、部品A、部品B、部品C間)の相対位置関係が記述される。
【0054】
当該3次元組み図データは、3次元CADソフトで各部品の3次元単独図データから組み図を作成し、実行できる状態にすることで代用してもよい。
【0055】
ステップS3では、3次元組み図データ上において、それぞれの組み付け部品100のTCP把持点401を抽出する。図9においては、部品A、部品B、部品Cそれぞれの3次元単独図データにおいて設定されていたTCP把持点401を、3次元組み図データが規定される座標系において抽出する。3次元組み図データ上においてTCP把持点401を設定した場合には、そのTCP把持点401を抽出する。なお部品Aが被組み立て部品101である場合には、そのTCP把持点401の抽出をしなくてもよい。当該抽出動作によって、各部品の3次元モデルデータにおけるTCP把持点401の相対位置関係を特定することができる(図9参照)。
【0056】
ステップS4では、抽出した各TCP把持点401を、例えば組み付け部品100が組み付けられる時点での被組み付け部品101の3次元モデルデータに、TCP組み付け点402(第2基準点)として付加する。ここでいう被組み付け部品101には、既に複数の部品が組み付けられた途中段階の組み立て対象を含む。また「組み付け点」とは、被組み付け部品(第2部品)において、組み付け部品(第1部品)の組み付けに関する箇所を指示する点であり、典型的には、被組み付け部品における組み付け部品の組み付け箇所(取付箇所)を示す点である。
【0057】
具体的には、部品A、部品B、部品Cの順で組み付けられることにより組み立てられる組み立て対象110がある場合、組み立て対象110の3次元組み図データにおいて抽出された、部品BのTCP把持点401は、部品Bが組み付けられる時点での被組み付け部品101である部品Aの3次元単独図データにTCP組み付け点402として付加される(図10参照)。付加する際には、組み立て対象110の3次元組み図データにおいて規定された部品BのTCP把持点401と、部品Aとの相対的位置関係を参照して(具体的には、その相対位置関係を維持して)、部品Aの3次元単独図データ上の座標系で記述する。
【0058】
また、部品CのTCP把持点401は、部品Cが組み付けられる時点での被組み付け部品101である部品Aと部品Bとの組み立て対象111の3次元組み図データにTCP組み付け点402として付加される(図11参照)。付加する際には、組み立て対象110の3次元組み図データにおいて規定された部品CのTCP把持点401と、組み立て対象111との相対的位置関係を参照して(具体的には、その相対位置関係を維持して)、組み立て対象111の3次元組み図データ上の座標系で記述する。
【0059】
ここで、TCP組み付け点402が付加される3次元モデルデータの被組み付け部品101は、組み付け部品100が組み付けられる時点での被組み付け部品101である場合に限られず、その時点より前の段階での被組み付け部品101であってもよいが、組み付け部品100が組み付けられる時点での被組み付け部品101の3次元モデルデータに付加しておけば、組み付け時に認識部4で認識した被組み付け部品101との相対位置関係を導くことが容易であり、効率がよい。
【0060】
被組み付け部品101の3次元モデルデータにTCP組み付け点402を付加するとは、例えば図12に示すように、被組み付け部品101の3次元モデルデータが記載されたデータ内に、他とは区別される方法で記載することである。
【0061】
なお、被組み付け部品101の3次元モデルデータにTCP組み付け点402を付加する際には、TCP把持点401の3次元位置(x、y、z)の情報および把持進入角度(Rx1、Ry1、Rz1)の情報を、被組み付け部品101の3次元モデルデータの座標系において引き継ぎ、また、組み付け部品100が当該位置に対して進入する際のとるべき組み付け進入角度(Rx2、Ry2、Rz2)の情報をさらに追加することができる。把持進入角度(Rx1、Ry1、Rz1)の情報の代わりに、組み付け進入角度(Rx2、Ry2、Rz2)の情報を加えてもよい。
【0062】
図10のような、TCP組み付け点402の情報を付加した被組み付け部品101の3次元単独図データは、被組み付け部品101の3次元位置情報の他に、組み付け部品100のTCP把持点401の情報を有する。図10においては、部品BのTCP把持点401に関する情報(TCP組み付け点402)が、部品Aの3次元単独図データに付加されている。なお、図10に示すTCP組み付け点402は、部品Aの外部の3次元位置に規定されているが、組み付け方法によっては部品Aの内部に規定されていてもよい。
【0063】
図11のような、TCP組み付け点402の情報を付加した3次元モデルデータの被組み付け部品101が複数の部品(部品Aおよび部品B)によって既に組み立てられている場合にも、その3次元組み図データは、被組み付け部品101の3次元位置情報の他に、組み付け部品100のTCP把持点401の情報を有する。図11においては、部品CのTCP把持点401に関する情報(TCP組み付け点402)が、部品Aおよび部品Bからなる組み立て対象111の3次元組み図データに付加されている。
【0064】
なお、TCP組み付け点402を付加した3次元モデルデータは、適宜記憶部5に記憶することができる。
【0065】
このように動作工程ごとに被組み付け部品101を特定し、その3次元モデルデータに、組み付け部品100のTCP組み付け点402を付加することによって、組み付け動作の際に3次元位置および姿勢を認識する被組み付け部品101の3次元モデルデータ上に、組み付けようとする組み付け部品100のTCP組み付け点402を特定することができる。よって、効率的に組み付け動作を行うことができる。
【0066】
なお、例えば部品Bと部品Cとが同時に組み付けられるような場合には、部品Aの3次元単独図データ上に、部品BのTCP組み付け点402と部品CのTCP組み付け点402とを付加することも可能である。部品Aに、複数の部品Bが同時に組み付けられるような場合にも、部品Aの3次元単独図データ上に、部品BのTCP組み付け点402を複数付加することができる。
【0067】
図10および図11においては、複数の部品A、部品B、部品Cを順次組み付けていく場合を示したが、1つの被組み付け部品101(部品A)に対して1つの組み付け部品100(部品B)を組み付ける場合であっても、同様に処理することができる。すなわち、次に組み付ける部品BのTCP組み付け点402が、部品Aの3次元単独図データ上に付加されていればよい。
【0068】
ステップS5では、実際に組み付け部品100を被組み付け部品101に組み付けていく。当該組み付け動作は、制御部2によって作業部1の動作が制御されることによって行われ、まず作業部1であるロボットハンド1RのTCP200が、後述するような3次元位置および姿勢認識に基づいた組み付け部品100の、TCP把持点401に対応する実空間の点であるTCP把持位置201と一致するように動作が制御される。このとき、把持進入角度が考慮されることによって、ロボットハンド1Rの3次元位置および姿勢が規定されることになる。
【0069】
次に、TCP200と、TCP把持点401に対応する実空間の点であるTCP把持位置201とが一致した3次元位置および姿勢において、ロボットハンド1Rで組み付け部品100を把持し、さらにロボットハンド1RのTCP200と、被組み付け部品101におけるTCP組み付け位置202とが一致するように動作が制御される。すなわち、組み付け部品100におけるTCP把持位置201と、被組み付け部品101におけるTCP組み付け位置202とが一致するように動作が制御される。
【0070】
このようにして、組み付け動作が実現する。
【0071】
以下、部品A、部品B、部品Cを用いた組み立て対象110を組み立てる場合の動作を例として、具体的に説明する。
【0072】
まず、認識部4において、初期位置にある部品Aの3次元位置および姿勢を認識し、制御部2において、ロボットハンド1Rによる把持動作を行わせる(図13参照)。
【0073】
このとき、3次元位置および姿勢認識のため、撮像部3(ロボットハンド1Rに取り付けられたカメラ102)によって取得した部品Aの視差画像を用いることができる。視差画像からステレオ法によって作成できる、それぞれが3次元位置情報を有する部品Aの点群データを用いて、あらかじめ準備した部品Aの3次元単独図データとのICPマッチングを行うことによって、部品Aの3次元位置および姿勢を認識することができる。
【0074】
以下では、同じ名称を付した点のうち、CADデータ上で定義される座標系で表現される点はそのまま「点」と呼び、各部品の実際の配置空間での座標系(実空間の座標系、具体的にはロボット座標系など)での点は「位置」と呼んで、それらを相互に区別することにする。例えば「基準点」や「把持点」はCADデータ上で定義され、「基準位置」や「把持位置」は実空間で定義される。
【0075】
動作説明に戻って、部品Aの実空間での3次元位置および姿勢を認識したら、その認識結果に基づいて、部品Aの3次元単独図データにおけるTCP把持点401(第1基準点)を実空間の座標系に座標変換して、部品AにおけるTCP把持位置201(第1基準位置)を特定する。
【0076】
TCP把持位置201が特定されたら、当該TCP把持位置201にロボットハンド1RのTCP200が一致するように、ロボットハンド1Rを動作制御する。このとき、TCP把持点401の情報に含まれる、把持進入角度の情報に基づいて、ロボットハンド1RのTCP把持位置201に進入する角度が3次元的に決定される。部品AのTCP把持位置201とロボットハンド1RのTCP200とのそれぞれの3次元位置が一致し、かつ、部品AのTCP把持位置201の把持進入角度とロボットハンド1Rの姿勢とが一致した3次元位置および姿勢において、ロボットハンド1Rのフィンガーで部品Aを把持する。把持されている部品AのTCP把持位置201は、ロボットハンド1RのTCP200と一致した状態が保たれる。
【0077】
次に、部品Aを把持した状態のロボットハンド1Rを移動させて、部品Aを、適当な作業位置に置く。当該作業位置は、作業のしやすさ等を考慮して、あらかじめ設定しておく。なお、部品Aが作業可能な位置にあらかじめ配置されている場合には、当該動作を省略し、部品Aを把持せず3次元位置および姿勢を認識するだけでもよい。
【0078】
次に、部品A(被組み付け部品101)に次に組み付ける部品B(組み付け部品100)の3次元位置および姿勢を認識部4において認識し、ロボットハンド1Rの動作を制御部2において制御して、部品Bを把持させる。当該動作は、部品Aを把持した場合と同様に行うことができる(図14参照)。
【0079】
次に、作業位置に置いた部品Aの3次元位置および姿勢を再度認識し、部品Aの3次元単独図データに付加された、部品BのTCP組み付け点402の情報を参照する(図14参照)。そして、部品BのTCP組み付け点402を、実空間における位置情報に変換(具体的には座標変換)してTCP組み付け位置202を得る。なお、作業位置に置かれた部品Aの3次元位置および姿勢が把握できている場合には、再度認識しなおす必要はない。
【0080】
次に、ロボットハンド1RのTCP200と、部品Aの3次元単独図データに付加された部品BのTCP組み付け点402から得た実空間でのTCP組み付け位置202とを一致させるように、すなわち、部品BのTCP把持位置201と、部品BのTCP組み付け位置202とを一致させるように、制御部2においてロボットハンド1Rの動作を制御する。
【0081】
当該動作制御は、被組み付け部品101である部品Aの3次元単独図データの座標系における、部品BのTCP組み付け点402と部品Aとの相対位置関係に基づいて、ロボット座標系において認識した部品Aの3次元位置および姿勢に対する部品BのTCP組み付け位置202の3次元位置を特定して行われる。
【0082】
このとき、TCP組み付け点402に含まれる、組み付け進入角度の情報に基づいて、ロボットハンド1RのTCP組み付け位置202に進入する角度が3次元的に決定される。部品BのTCP組み付け位置202とロボットハンド1RのTCP200とが一致した位置において、ロボットハンド1Rのフィンガーを部品Bから外す。当該動作によって、部品A(被組み付け部品101)に対する部品B(組み付け部品100)の組み付け動作が完了する。
【0083】
次に、部品Aと部品Bとの組み立て対象111(被組み付け部品101)に次に組み付ける部品Cの3次元位置および姿勢を認識部4において認識し、ロボットハンド1Rの動作を制御部2において制御して、部品Cを把持させる。当該動作は、部品Aおよび部品Bを把持した場合と同様に行うことができる(図15参照)。
【0084】
次に、組み立て対象111の3次元位置および姿勢を再度認識し、組み立て対象111の3次元組み図データに付加された、部品CのTCP組み付け点402を参照する(図15参照)。なお、組み立て対象111の3次元位置および姿勢が把握できている場合には、再度認識しなおす必要はない。
【0085】
次に、ロボットハンド1RのTCP200と、組み立て対象111の3次元組み図データに付加された部品CのTCP組み付け点402の座標変換によって得たTCP組み付け位置202とを一致させるように、すなわち、部品CのTCP把持位置201と、部品CのTCP組み付け位置202とを一致させるように、ロボットハンド1Rの動作を制御する。
【0086】
当該動作制御は、組み立て対象111(被組み付け部品101)と、部品CのTCP組み付け点402との3次元的な位置および姿勢に関する相対関係に関して、CAD座標系での相対関係を、実空間の座標系(ロボット座標系など)での相対的関係に変換して行われる。
【0087】
このとき、TCP組み付け点402に含まれる、組み付け進入角度の情報に基づいて、ロボットハンド1RのTCP組み付け位置202に進入する角度が3次元的に決定される。部品CのTCP組み付け位置202とロボットハンド1RのTCP200とが一致した位置関係において、ロボットハンド1Rのフィンガーを部品Cから外す。当該動作によって、組み立て対象111(被組み付け部品101)に対する部品C(組み付け部品100)の組み付け動作が完了し、組み立て対象110が完成する(図16参照)。
【0088】
<変形例>
組み付け部品100を組み付ける際に、組み付け動作に追加した特定の動作を必要とする場合には、例えば以下のようにして、被組み付け部品101の3次元モデルデータにおいて当該特定の動作指示の情報を含めることができる。
【0089】
例えば組み付け部品100がネジやボルトである場合について、以下に説明する(図17参照)。
【0090】
部品D(ネジ)を部品E(ネジ穴を備える部材)に組み付ける場合(図17参照)、部品Eの3次元単独図データ上において、部品DのTCP組み付け点402の他に、従属組み付け点403の情報を付加することができる(図18参照)。
【0091】
ここで従属組み付け点403(従属基準点)とは、最終的に部品DのTCP組み付け点402に到達する前に経由される3次元位置である。従属組み付け点403の情報には、当該3次元位置の情報に加え、従属組み付け点403における組み付け進入角度の情報、さらには、従属組み付け点403からTCP組み付け点402まで組み付け部品100(部品D)が移動する間、組み付け部品100が行う動作(特定の軸周りの回転動作等)を指示する情報が含まれる。
【0092】
当該従属組み付け点403は、部品Dの大きさ(長さ)等を考慮して、特定の動作が開始されるべき3次元位置に規定される。なお、従属組み付け点403は、複数備えられていてもよい。
【0093】
部品E(被組み付け部品101)に組み付ける部品D(組み付け部品100)の3次元位置および姿勢を認識部4において認識し、ロボットハンド1Rの動作を制御部2において制御して、部品Dを把持させる。当該動作は、実施の形態1に示す場合と同様に行うことができる。
【0094】
次に、部品Eの3次元単独図データに付加された、部品DのTCP組み付け点402および部品Dの従属組み付け点403を参照する(図18参照)。部品DのTCP組み付け点402および従属組み付け点403の3次元位置は、実空間におけるTCP組み付け位置202および従属組み付け位置203に変換される。
【0095】
次に、ロボットハンド1RのTCP200と、部品Dの従属組み付け位置203とを一致させるように、すなわち、部品DのTCP把持位置201と、部品Dの従属組み付け位置203とを一致させるように、ロボットハンド1Rの動作を制御する(図19参照)。このとき、従属組み付け点403に含まれる、組み付け進入角度の情報に基づいて、ロボットハンド1Rの従属組み付け位置203に進入する角度が3次元的に決定される。
【0096】
部品Dの従属組み付け位置203とロボットハンド1RのTCP200とが一致した位置において、従属組み付け位置203からTCP組み付け位置202まで部品Dが移動する間、部品Dが行う動作の指示を参照する。この例では、部品Dの長軸を回転軸とする回転動作が指示されているものとする。
【0097】
ロボットハンド1Rは、当該動作指示に従って、部品Dを把持したまま回転動作を行い、ロボットハンド1RのTCP200と、部品Eの3次元単独図データに付加された部品DのTCP組み付け点402から得たTCP組み付け位置202とを一致させるように、すなわち、部品DのTCP把持位置201と、部品DのTCP組み付け位置202とを一致させるように、ロボットハンド1Rの動作を制御する。このとき、部品DのTCP組み付け点402に含まれる、組み付け進入角度の情報に基づいて、ロボットハンド1RのTCP組み付け位置202に進入する角度が3次元的に決定される。このようにして、部品Dは部品E表面に形成された穴120にねじ込まれる(図20参照)。
【0098】
当該動作によって、部品E(被組み付け部品101)に対する部品D(組み付け部品100)の組み付け動作が完了する。
【0099】
<効果>
本発明にかかる実施形態によれば、組み付け装置において、制御部2が、組み付け部品100の3次元モデルデータにおいて規定された、組み付け部品100の第1基準点としてのTCP把持点401と、被組み付け部品101の3次元モデルデータにおいて規定された、組み付け部品100の第2基準点としてのTCP組み付け点402とに基づいて、これらに対応する第1基準位置と第2基準位置とを、認識された各部品について特定する。そして、制御部2が、それらの第1基準位置と第2基準位置とを相互に対応させるように、作業部1の動作を制御することで、被組み付け部品101に対する組み付け部品100の組み付け位置が容易かつ正確に特定でき、被組み付け部品101の位置ずれに関わらず、効率的に組み付け動作を行うことができる。
【0100】
また、組み付け部品100が小さい場合にも、組み付け部品100の本来の配置位置からのずれを考慮する必要がなくなり、適切な精度で組み付け動作を行うことができる。
【0101】
また、被組み付け部品101および組み付け部品100の3次元位置および姿勢にずれが生じやすい実際の組み付け動作において、より実用的な組み立て動作を実現することができる。
【0102】
また、本発明にかかる実施形態によれば、組み付け装置において、第2基準点としてのTCP組み付け点402が、被組み付け部品101および組み付け部品100の3次元組み図データにおいてあらかじめ設定される。この3次元組み図データは、被組み付け部品101に組み付け部品100が組み付けられた状態を示している。そして、3次元組み図データでのTCP組み付け点402の情報と実空間での認識結果に基づいて、実空間でのTCP組み付け位置202を設定し、このTCP組み付け位置202を目標として、作業部1であるロボットハンド1Rの動作を適切に制御することができる。
【0103】
また、本発明にかかる実施形態によれば、組み付け装置において、被組み付け部品101の3次元モデルデータにおいて、第2基準点としてのTCP組み付け点402に従属する従属基準点としての従属組み付け点403がさらに規定され、実空間でそれに対応する従属基準位置を特定する。そして制御部2が、第1基準位置としてのTCP把持位置201と従属組み付け位置203とを一致させた後、TCP把持位置201とTCP組み付け位置202とを一致させるように、作業部1の動作を制御することで、TCP組み付け位置202に組み付け部品100を組み付ける際に、ねじ込み等の特定の動作を伴う複雑な組み付けの場合にも、従属組み付け位置203からTCP組み付け位置202までの移動の間で当該動作を行わせ、ロボットハンド1Rの動作制御をすることができる。
【0104】
また、従属組み付け点403の3次元位置を適切に配置することにより、組み付け部品100に特定の動作を行わせる距離、時間を調整することができ、動作制御をより適切なものとすることができる。
【0105】
また、本発明にかかる実施形態によれば、組み付け装置において、第1基準点としてのTCP把持点401の情報には、作業部1が組み付け部品100の把持動作を行う際の、TCP把持点401に対する作業部1の進入角度の情報が含まれることで、ロボットハンド1Rの組み付け部品100に対する3次元姿勢が特定され、ロボットハンド1Rで組み付け部品100を把持する際に、組み付け部品100の各部分の強度を考慮し、把持した後の組み付け部品100の3次元姿勢を調整することができる。
【0106】
また、本発明にかかる実施形態によれば、組み付け装置において、第2基準点としてのTCP組み付け点402の情報には、作業部1が組み付け部品100の組み付け動作を行う際の、TCP組み付け点402に対する作業部1の進入角度の情報が含まれることで、ロボットハンド1Rおよび組み付け部品100の、被組み付け部品101に対する3次元姿勢が特定され、ロボットハンド1Rで組み付け部品100を組み付ける際に、被組み付け部品101にぶつからない経路を考慮し、適切に組み付け動作を行うことができる。
【0107】
また、本発明にかかる実施形態によれば、組み付け装置において、第1基準点としてのTCP把持点401が、組み付け部品100ごとに複数決定されて記憶されるとともに、それらを複数の組み付け部品のそれぞれに対して設定することで、組み付け部品100の組み付け方法によって、異なるパターンの把持方法を設定することができる。
【0108】
また、本発明にかかる実施形態によれば、組み付け装置において、第2基準点としてのTCP組み付け点402が、被組み付け部品101ごとに複数設定されることで、例えば複数のロボットアームを用いて同時に複数の組み付け部品を組み付ける場合にも対応することができ、複雑な組み付け動作にも対応可能となる。
【0109】
なお、組み付け部品や被組み付け部品の形状や材質によっては、ロボットハンドにおいて各部品を保持する保持機構は、上記実施の形態のような把持機構ではなく、係合機構や真空吸着機構などであってもよい。
【0110】
また本発明は、その発明の範囲内において、本実施形態における任意の構成要素の変形もしくは省略が可能である。
【産業上の利用可能性】
【0111】
ロボットを用いた、複合部品または装置の組み立て作業に用いることができる。
【符号の説明】
【0112】
1 作業部
1L,1R ロボットハンド
2 制御部
3 撮像部
4 認識部
5 記憶部
100 組み付け部品(第1部品)
101 被組み付け部品(第2部品)
102 カメラ
103 CPU
110,111 組み立て対象
120 穴
200 TCP
201 TCP把持位置
202 TCP組み付け位置
203 従属組み付け位置
300 3次元モデルデータ
301 穴データ
401 TCP把持点
402 TCP組み付け点
403 従属組み付け点
【技術分野】
【0001】
本発明は組み付け装置、およびその方法、組み付け動作プログラムに関し、特に、ロボット等を用いた組み付け動作の制御に関するものである。
【背景技術】
【0002】
従来から、3次元認識した対象部品の3次元位置を目標にして、ロボットのハンド部等をハンドリングし、例えば部品の組み立てをする方法が実施されている。
【0003】
特許文献1は、部品把持手段を備える組み立て機構を用いて、複数の部品を順次組み付ける自動組み立てシステムを開示している。この自動組み立てシステムにおいて、組み立て機構の動作を教示する方法として、各部品の組み付け時の動きを定義するステップと、定義した各部品の動きが実現されるように、組み立て機構の動作を決定するステップとを開示している。
【0004】
この場合、組み付けられる側の部品(被組み付け部品)が、定義した3次元位置および姿勢からずれてしまった場合、組み付け部品を適切に組み付けできないという問題があった。
【0005】
当該問題を解決するためには、被組み付け部品を組み付ける位置に配置してからも、その3次元位置および姿勢を認識しなおして、補正する必要がある。
【0006】
特許文献2は、組み付け位置における被組み付け部品および組み付け部品の位置補正について開示している。あらかじめワークと部品とに設定した複数の測定基準点のずれを、画像計測およびマトリックス処理によって処理し、被組み付け部品および組み付け部品の位置補正を行う。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第4513663号公報
【特許文献2】特開平5−108126号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、例えば特許文献2に示す位置補正の方法では、組み付け部品および被組み付け部品をそれぞれ位置計測し、それぞれで基準位置からの測定基準点のずれを算出して位置補正を行う必要があり、処理が煩雑であった。
【0009】
また、部品が小さいボルトのような場合には測定基準点の設定自体が難しく、また設定した場合でも各測定基準点の間隔が非常に狭くなることから、十分な精度で適切に補正することが困難になる場合があった。
【0010】
本発明は、上記のような問題を解決するためになされたものであり、被組み付け部品の位置ずれに関わらず、組み付け動作を適切、かつ、効率的に行うことができる組み付け装置、およびその方法、組み付け動作プログラムの提供を目的とする。
【課題を解決するための手段】
【0011】
請求項1の発明である組み付け装置は、組み付け部品としての第1部品を、被組み付け部品としての第2部品に組み付ける作業部と、前記第1部品および前記第2部品の3次元位置および姿勢を認識する認識部と、前記認識部における3次元位置および姿勢認識に基づいて、前記作業部の動作を制御する制御部とを備え、前記制御部が、前記第1部品の3次元モデルデータに設定された所定の第1基準点に対応する位置として、前記認識部で認識された実空間での前記第1部品に設定された第1基準位置と、前記第2部品の3次元モデルデータに設定された所定の第2基準点に対応する位置として、前記認識部で認識された実空間での前記第2部品に設定された第2基準位置とを互いに対応させて前記作業部の動作を制御し、前記第2基準点は、前記第2部品の3次元モデルデータ上において、前記第1部品の組み付けに関する箇所を指示する点であることを特徴とする。
【0012】
請求項2の発明は、請求項1に記載の組み付け装置であって、前記第1基準点が、前記作業部が前記第1部品を保持する際に、基準となる点であることを特徴とする。
【0013】
請求項3の発明は、請求項1または2に記載の組み付け装置であって、前記第2基準点が、前記第2部品に前記第1部品が組み付けられた状態を示す、前記第2部品および前記第1部品の3次元組み図データにおける、前記第2部品と前記第1基準点との相対位置関係に対応する点であることを特徴とする。
【0014】
請求項4の発明は、請求項1〜3のいずれかに記載の組み付け装置であって、前記制御部が、前記第1基準位置と前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする。
【0015】
請求項5の発明は、請求項1〜4のいずれかに記載の組み付け装置であって、前記作業部は、前記第1部品を保持するための第3基準位置を有し、前記制御部が、前記第1基準位置と前記第3基準位置とを一致させるように、前記作業部による前記第1部品の保持動作を制御し、保持した前記第1部品の前記第1基準位置と前記第2部品の前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする。
【0016】
請求項6の発明は、請求項1〜5のいずれかに記載の組み付け装置であって、前記第2部品の3次元モデルデータにおいて、前記第2基準点に従属する従属基準点がさらに規定され、前記制御部が、前記第1基準位置と前記従属基準点に対応する従属位置を一致させた後、前記第1基準位置と前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする。
【0017】
請求項7の発明は、請求項6に記載の組み付け装置であって、前記従属基準点の情報には、前記従属基準点から前記第2基準点に移動するまでの前記第1部品に対する動作指示の情報が含まれることを特徴とする。
【0018】
請求項8の発明は、請求項1〜7のいずれかに記載の組み付け装置であって、前記第1基準点の情報には、前記作業部が前記第1部品の保持動作を行う際の、前記第1基準点に対する前記作業部の進入角度の情報が含まれることを特徴とする。
【0019】
請求項9の発明は、請求項1〜8のいずれかに記載の組み付け装置であって、前記第2基準点の情報には、前記作業部が前記第1部品の組み付け動作を行う際の、前記第2基準点に対する前記作業部の進入角度の情報が含まれることを特徴とする。
【0020】
請求項10の発明は、請求項1〜9のいずれかに記載の組み付け装置であって、前記第1基準点が、前記第1部品ごとに複数決定されており、複数の第1基準点のうちの1が選択されて設定されることを特徴とする。
【0021】
請求項11の発明は、請求項1〜10のいずれかに記載の組み付け装置であって、前記第2基準点が、前記第2部品ごとに複数設定されることを特徴とする。
【0022】
請求項12の発明は、請求項1〜11のいずれかに記載の組み付け装置であって、前記第2部品が、複数の部品の組み合わせで構成されることを特徴とする。
【0023】
請求項13の発明は、請求項1〜12のいずれかに記載の組み付け装置であって、あらかじめ用意された、前記第1部品および前記第2部品の3次元モデルデータを記憶する記憶部をさらに備えることを特徴とする。
【0024】
また、請求項14の発明は、組み付け方法であって、組み付け部品としての第1部品を、被組み付け部品としての第2部品に組み付ける作業部を備える組み付け装置において、(a)前記第1部品および前記第2部品の3次元位置および姿勢を認識する工程と、(b)前記工程(a)における3次元位置および姿勢認識に基づいて、前記第1部品の3次元モデルデータに設定された所定の第1基準点に対応する位置として、認識された実空間での前記第1部品に設定された第1基準位置と、前記第2部品の3次元モデルデータに設定された所定の第2基準点に対応する位置として、認識された実空間での前記第2部品に設定された第2基準位置とを互いに対応させて前記作業部の動作を制御する工程とを備え、前記第2基準点は、前記第2部品の3次元モデルデータ上において、前記第1部品の組み付けに関する箇所を指示する点であることを特徴とする。
【0025】
また、請求項15の発明は、組み付け動作プログラムであって、コンピュータにインストールされて実行されることにより、前記作業部を前記コンピュータによって制御する装置を、請求項1〜13のいずれかに記載の組み付け装置として機能させることを特徴とする。
【発明の効果】
【0026】
請求項1〜15の発明によれば、被組み付け部品の3次元モデルデータにおいて、それぞれの3次元モデルデータでの第1基準点と第2基準点との設定に基づいて、実在の第1部品(組み付け部品)と第2部品(被組み付け部品)とに、第1基準位置と第2基準位置とがそれぞれ設定される。第2基準点は、第2部品の3次元モデルデータ上において、第1部品の組み付けに関する箇所を指示する点であり、実空間において第1基準位置と第2基準位置とを互いに対応させて作業部の動作を制御することによって、第2部品(被組み付け部品)の位置ずれに関わらず、効率的に組み付け動作を行うことができる。
【0027】
特に請求項6の発明によれば、被組み付け部品の3次元モデルデータにおいて、第2基準点に従属する従属基準点がさらに規定され、制御部が、第1基準位置と、実際の部品配置関係において従属基準点に対応する従属基準位置とを一致させた後、第1基準位置と第2基準位置とを一致させるように、作業部の動作を制御することにより、第2基準位置に第1部品を組み付ける際に、ねじ込み等の特定の動作を伴う複雑な組み付けの場合にも、従属基準位置から第2基準位置までの移動の間で当該動作を行わせ、作業部の動作制御をすることができる。
【0028】
特に請求項8の発明によれば、第1基準点の情報には、作業部が組み付け部品の保持動作を行う際の、第1基準点に対する作業部の進入角度の情報が含まれることにより、作業部の第1部品に対する3次元姿勢が特定され、作業部で第1部品を保持する際に、第1部品の各部分の強度を考慮し、把持した後の第1部品の3次元姿勢を調整することができる。
【0029】
特に請求項9の発明によれば、第2基準点の情報には、作業部が第1部品の組み付け動作を行う際の、第2基準点に対する作業部の進入角度の情報が含まれることにより、作業部および第1部品の、第2部品に対する3次元姿勢が特定され、作業部で第1部品を組み付ける際に、第2部品にぶつからない経路を考慮し、適切に組み付け動作を行うことができる。
【図面の簡単な説明】
【0030】
【図1】組み付け装置の構成を概念的に示した図である。
【図2】組み付け装置のハードウェア構造の例を示す図である。
【図3】組み付け装置の動作を示すフローチャートである。
【図4】組み付け装置の動作を説明する図である。
【図5】組み付け装置の動作を説明する図である。
【図6】組み付け装置の動作を説明する図である。
【図7】組み付け装置のデータ内容を説明する図である。
【図8】組み付け装置の動作を説明する図である。
【図9】組み付け装置の動作を説明する図である。
【図10】組み付け装置の動作を説明する図である。
【図11】組み付け装置の動作を説明する図である。
【図12】組み付け装置のデータ内容を説明する図である。
【図13】組み付け装置の動作を説明する図である。
【図14】組み付け装置の動作を説明する図である。
【図15】組み付け装置の動作を説明する図である。
【図16】組み付け装置の動作を説明する図である。
【図17】組み付け装置の動作を説明する図である。
【図18】組み付け装置の動作を説明する図である。
【図19】組み付け装置の動作を説明する図である。
【図20】組み付け装置の動作を説明する図である。
【発明を実施するための形態】
【0031】
<実施形態>
<構成>
図1は、本実施形態にかかる組み付け装置の構成を概念的に示した図である。図1に示すように本発明にかかる組み付け装置は、組み付け部品100および被組み付け部品101の3次元位置および姿勢を認識する認識部4と、3次元位置および姿勢を認識した組み付け部品100を、3次元位置および姿勢を認識した被組み付け部品101に組み付ける作業部1(例えば、ロボットハンド)と、作業部1の動作を制御する制御部2とを備える。
【0032】
ここで、組み付け部品100(第1部品)および被組み付け部品101(第2部品)は、必ずしも単独の部品に対応するものとは限らない。
【0033】
また、組み付け部品100および被組み付け部品101の3次元位置および姿勢を認識するために視差画像を用いる場合には、図1に示すように、認識部4に視差画像を提供する撮像部3を備えることも可能である。
【0034】
例えば、ステレオカメラ等の撮像部3を備える場合には、撮像部3において撮像した組み付け部品100または被組み付け部品101の視差画像を用いて、あらかじめ用意された組み付け部品100または被組み付け部品101の3次元モデルデータとICP(Iterative Closest Point)マッチングを行い、認識部4において、組み付け部品100または被組み付け部品101の3次元位置および姿勢を認識することができる。
【0035】
ここで3次元モデルデータとは、対象部品の既知の形状を形成するように配置された、それぞれが3次元位置情報を有する点群のデータであり、対象の各辺、各頂点等に対応した点群からなる。例えば3次元CAD(Computer Aided Design)形式で記述される。対象部品は単独の部品である必要はなく、複数の部品が組み合わされた状態であってもよい。以下、単独の部品に関する3次元モデルデータを特に3次元単独図データ、複数の部品の組み合わせに関する3次元モデルデータを特に3次元組み図データとする。
【0036】
撮像部3は、作業部1に取り付けられることも可能である。具体的には、作業部1がロボットハンドである場合、ロボットハンドの根元部分(後述の図2参照)に取り付けられることで、より近い視点から組み付け部品100または被組み付け部品101を捉えることができ、より精度の高い3次元位置および姿勢の認識が可能となる。
【0037】
なお、撮像部3が備えられない場合であっても、組み付け部品100または被組み付け部品101の3次元位置および姿勢がセンサ等から測定できればよいし、また測定した結果が外部等から認識部4へ与えられてもよい。
【0038】
また組み付け装置は、あらかじめ用意される組み付け部品100および被組み付け部品101の3次元モデルデータ等を記憶する記憶部5をさらに備えることができる。ただし、当該記憶部5の機能を果たす記憶機器が装置の外部に備えられ、当該記憶機器と通信等を行うことにより、データを取得する態様であってもよい。
【0039】
図2は、本実施形態にかかる組み付け装置のハードウェア構造の例を示すものである。
【0040】
図2に示すように組み付け装置は、組み付け部品100および被組み付け部品101を把持するロボットハンド1R、ロボットハンド1L(作業部1に対応)と、組み付け部品100および被組み付け部品101の3次元位置および姿勢を認識するため、ロボットハンド1Rに取り付けられたカメラ102(撮像部3に対応)と、ロボットハンド1Rおよびロボットハンド1Lの動作を制御するCPU103(認識部4、制御部2、記憶部5に対応)とを備える。
【0041】
図2においては、組み付け装置として双腕のロボットを示しているが、例えばロボットハンド1R単腕のロボットであってもよい。また、組み付け部品100および被組み付け部品101の形状は、図示したものに限られるものではない。
【0042】
<動作>
次に、本実施形態にかかる組み付け装置の動作を、図3に示すフローチャートに従って説明する。
【0043】
なお、以下の説明中で現れる位置要素のうち、「第1基準点」、「第2基準点」および「従属基準点」は3次元CADデータ上で設定される位置情報である。これに対して、「第1基準位置」、「第2基準位置」および「従属基準位置」は、上記の「第1基準点」、「第2基準点」および「従属基準点」の位置を、実際の部品が存在する空間での座標系(たとえばロボット座標系)に変換した位置情報である。また「第3基準位置」はロボット側(ロボット座標系)での位置情報であり、部品の配置状況とは無関係に規定される位置情報である。
【0044】
ステップS1では、ロボットハンド1Rにおいて部品を把持等するための点をTCP200(Tool Center Point;ツールセンターポイント)として設定する(図4参照)。TCP200(第3基準位置)は、作業部1としてのロボットハンド1Rが組み付け部品100または被組み付け部品101を把持等する際に基準となる、ロボットハンド1Rにおける3次元位置(x、y、z)である。この位置は、必ずしも図4に示すようなフィンガー間の中心位置である必要はなく、ロボットハンド1Rを用いて部品を把持等する際に都合のよい位置であればよい。TCP200は、ロボットハンド1Rごとにそれぞれ個別に、ロボットのローカル3次元座標内に設定することができる。
【0045】
またステップS1では、組み付け部品100の3次元モデルデータ300において、TCP把持点401(第1基準点)を設定する(図5参照)。このTCP把持点401は、ロボットハンド1Rに設定されたTCP200に対応する、組み付け部品100の3次元モデルデータ300における基準点である。ロボットハンド1RのTCP200と、TCP把持点401に対応する実空間の点であるTCP把持位置201との、例えば3次元位置を一致させることで、ロボットハンド1Rが組み付け部品100を適切に把持するための3次元位置および姿勢を特定することができる。具体的には、ロボットハンド1RのTCP200と、組み付け部品100のTCP把持位置201とが一致した状態で、ロボットハンド1Rのフィンガーを組み付け部品100にかけることで、組み付け部品100を適切に把持することができる。
【0046】
この位置は、必ずしも図5に示すように組み付け部品100の中心位置である必要はなく、ロボットハンド1Rを用いて組み付け部品100を把持等する際に都合のよい位置であればよい。TCP把持点401は、組み付け部品100の3次元モデルデータ300ごとにそれぞれ個別に、組み付け部品100のローカル3次元座標内に設定することができる。
【0047】
組み付け部品100の各3次元モデルデータ300において、上記のTCP把持点401を複数パターン記憶させておき、状況に応じてそれらのうちの1を実際の作業開始前に設定することも可能である(図5および図6参照)。同じ組み付け部品100であっても、組み付け方法の違いによりロボットハンド1Rによって把持等すべき位置が異なるからである。さらに、ロボットハンド1Rの形状等にも起因して変更されるため、それぞれのロボットハンド1Rに対応して、あらかじめ決定されて記憶されている複数のTCP把持点候補のうちのひとつをTCP把持点401として設定してもよい。
【0048】
TCP把持点401には、その3次元位置(x、y、z)の情報の他に、当該組み付け部品100をロボットハンド1Rによって把持等する際に、ロボットハンド1RがTCP把持点401に対して進入するためにとるべき3次元的な把持進入角度(Rx1、Ry1、Rz1)の情報を含むことができる。
【0049】
設定されたTCP把持点401の情報は、例えば、組み付け部品100の3次元モデルデータ300(点群データ)が記載されたデータ内に、他とは区別される方法で記載することができる(図7参照)。
【0050】
なお、上記の説明では、TCP把持点401の設定は各部品の3次元単独図データにおいてなされているが、3次元組み図データ上においてTCP把持点401を設定し、各部品のTCP把持点401としてもよい。このとき、TCP把持点401を設定する部品以外の部品は表示させないようにすることで、3次元単独図データにおいてTCP把持点401を設定する場合と同様に、TCP把持点401を設定することもできる。
【0051】
ステップS2では、記憶部5に記憶されたデータから、組み付け部品100および被組み付け部品101の3次元組み図データを読み出す(図8参照)。
【0052】
ここで、3次元組み図データは、組み付け部品100および被組み付け部品101それぞれの3次元単独図データが組み立てられた状態(組み立て対象110)で配置されたデータであり、組み付け部品100および被組み付け部品101のそれぞれのローカル座標で規定された3次元モデルデータ300(点群データ)を、統一の座標系で規定する。ここで、組み立てられた状態(組み立て対象110)には、組み立て完成までの途中段階の状態(部品A、部品B、部品Cの少なくとも1つが欠けた状態)も含む。
【0053】
各部品の3次元単独図データにおける点群が組み立て状態で配置されることで、組み立て対象110における部品間(図8においては、部品A、部品B、部品C間)の相対位置関係が記述される。
【0054】
当該3次元組み図データは、3次元CADソフトで各部品の3次元単独図データから組み図を作成し、実行できる状態にすることで代用してもよい。
【0055】
ステップS3では、3次元組み図データ上において、それぞれの組み付け部品100のTCP把持点401を抽出する。図9においては、部品A、部品B、部品Cそれぞれの3次元単独図データにおいて設定されていたTCP把持点401を、3次元組み図データが規定される座標系において抽出する。3次元組み図データ上においてTCP把持点401を設定した場合には、そのTCP把持点401を抽出する。なお部品Aが被組み立て部品101である場合には、そのTCP把持点401の抽出をしなくてもよい。当該抽出動作によって、各部品の3次元モデルデータにおけるTCP把持点401の相対位置関係を特定することができる(図9参照)。
【0056】
ステップS4では、抽出した各TCP把持点401を、例えば組み付け部品100が組み付けられる時点での被組み付け部品101の3次元モデルデータに、TCP組み付け点402(第2基準点)として付加する。ここでいう被組み付け部品101には、既に複数の部品が組み付けられた途中段階の組み立て対象を含む。また「組み付け点」とは、被組み付け部品(第2部品)において、組み付け部品(第1部品)の組み付けに関する箇所を指示する点であり、典型的には、被組み付け部品における組み付け部品の組み付け箇所(取付箇所)を示す点である。
【0057】
具体的には、部品A、部品B、部品Cの順で組み付けられることにより組み立てられる組み立て対象110がある場合、組み立て対象110の3次元組み図データにおいて抽出された、部品BのTCP把持点401は、部品Bが組み付けられる時点での被組み付け部品101である部品Aの3次元単独図データにTCP組み付け点402として付加される(図10参照)。付加する際には、組み立て対象110の3次元組み図データにおいて規定された部品BのTCP把持点401と、部品Aとの相対的位置関係を参照して(具体的には、その相対位置関係を維持して)、部品Aの3次元単独図データ上の座標系で記述する。
【0058】
また、部品CのTCP把持点401は、部品Cが組み付けられる時点での被組み付け部品101である部品Aと部品Bとの組み立て対象111の3次元組み図データにTCP組み付け点402として付加される(図11参照)。付加する際には、組み立て対象110の3次元組み図データにおいて規定された部品CのTCP把持点401と、組み立て対象111との相対的位置関係を参照して(具体的には、その相対位置関係を維持して)、組み立て対象111の3次元組み図データ上の座標系で記述する。
【0059】
ここで、TCP組み付け点402が付加される3次元モデルデータの被組み付け部品101は、組み付け部品100が組み付けられる時点での被組み付け部品101である場合に限られず、その時点より前の段階での被組み付け部品101であってもよいが、組み付け部品100が組み付けられる時点での被組み付け部品101の3次元モデルデータに付加しておけば、組み付け時に認識部4で認識した被組み付け部品101との相対位置関係を導くことが容易であり、効率がよい。
【0060】
被組み付け部品101の3次元モデルデータにTCP組み付け点402を付加するとは、例えば図12に示すように、被組み付け部品101の3次元モデルデータが記載されたデータ内に、他とは区別される方法で記載することである。
【0061】
なお、被組み付け部品101の3次元モデルデータにTCP組み付け点402を付加する際には、TCP把持点401の3次元位置(x、y、z)の情報および把持進入角度(Rx1、Ry1、Rz1)の情報を、被組み付け部品101の3次元モデルデータの座標系において引き継ぎ、また、組み付け部品100が当該位置に対して進入する際のとるべき組み付け進入角度(Rx2、Ry2、Rz2)の情報をさらに追加することができる。把持進入角度(Rx1、Ry1、Rz1)の情報の代わりに、組み付け進入角度(Rx2、Ry2、Rz2)の情報を加えてもよい。
【0062】
図10のような、TCP組み付け点402の情報を付加した被組み付け部品101の3次元単独図データは、被組み付け部品101の3次元位置情報の他に、組み付け部品100のTCP把持点401の情報を有する。図10においては、部品BのTCP把持点401に関する情報(TCP組み付け点402)が、部品Aの3次元単独図データに付加されている。なお、図10に示すTCP組み付け点402は、部品Aの外部の3次元位置に規定されているが、組み付け方法によっては部品Aの内部に規定されていてもよい。
【0063】
図11のような、TCP組み付け点402の情報を付加した3次元モデルデータの被組み付け部品101が複数の部品(部品Aおよび部品B)によって既に組み立てられている場合にも、その3次元組み図データは、被組み付け部品101の3次元位置情報の他に、組み付け部品100のTCP把持点401の情報を有する。図11においては、部品CのTCP把持点401に関する情報(TCP組み付け点402)が、部品Aおよび部品Bからなる組み立て対象111の3次元組み図データに付加されている。
【0064】
なお、TCP組み付け点402を付加した3次元モデルデータは、適宜記憶部5に記憶することができる。
【0065】
このように動作工程ごとに被組み付け部品101を特定し、その3次元モデルデータに、組み付け部品100のTCP組み付け点402を付加することによって、組み付け動作の際に3次元位置および姿勢を認識する被組み付け部品101の3次元モデルデータ上に、組み付けようとする組み付け部品100のTCP組み付け点402を特定することができる。よって、効率的に組み付け動作を行うことができる。
【0066】
なお、例えば部品Bと部品Cとが同時に組み付けられるような場合には、部品Aの3次元単独図データ上に、部品BのTCP組み付け点402と部品CのTCP組み付け点402とを付加することも可能である。部品Aに、複数の部品Bが同時に組み付けられるような場合にも、部品Aの3次元単独図データ上に、部品BのTCP組み付け点402を複数付加することができる。
【0067】
図10および図11においては、複数の部品A、部品B、部品Cを順次組み付けていく場合を示したが、1つの被組み付け部品101(部品A)に対して1つの組み付け部品100(部品B)を組み付ける場合であっても、同様に処理することができる。すなわち、次に組み付ける部品BのTCP組み付け点402が、部品Aの3次元単独図データ上に付加されていればよい。
【0068】
ステップS5では、実際に組み付け部品100を被組み付け部品101に組み付けていく。当該組み付け動作は、制御部2によって作業部1の動作が制御されることによって行われ、まず作業部1であるロボットハンド1RのTCP200が、後述するような3次元位置および姿勢認識に基づいた組み付け部品100の、TCP把持点401に対応する実空間の点であるTCP把持位置201と一致するように動作が制御される。このとき、把持進入角度が考慮されることによって、ロボットハンド1Rの3次元位置および姿勢が規定されることになる。
【0069】
次に、TCP200と、TCP把持点401に対応する実空間の点であるTCP把持位置201とが一致した3次元位置および姿勢において、ロボットハンド1Rで組み付け部品100を把持し、さらにロボットハンド1RのTCP200と、被組み付け部品101におけるTCP組み付け位置202とが一致するように動作が制御される。すなわち、組み付け部品100におけるTCP把持位置201と、被組み付け部品101におけるTCP組み付け位置202とが一致するように動作が制御される。
【0070】
このようにして、組み付け動作が実現する。
【0071】
以下、部品A、部品B、部品Cを用いた組み立て対象110を組み立てる場合の動作を例として、具体的に説明する。
【0072】
まず、認識部4において、初期位置にある部品Aの3次元位置および姿勢を認識し、制御部2において、ロボットハンド1Rによる把持動作を行わせる(図13参照)。
【0073】
このとき、3次元位置および姿勢認識のため、撮像部3(ロボットハンド1Rに取り付けられたカメラ102)によって取得した部品Aの視差画像を用いることができる。視差画像からステレオ法によって作成できる、それぞれが3次元位置情報を有する部品Aの点群データを用いて、あらかじめ準備した部品Aの3次元単独図データとのICPマッチングを行うことによって、部品Aの3次元位置および姿勢を認識することができる。
【0074】
以下では、同じ名称を付した点のうち、CADデータ上で定義される座標系で表現される点はそのまま「点」と呼び、各部品の実際の配置空間での座標系(実空間の座標系、具体的にはロボット座標系など)での点は「位置」と呼んで、それらを相互に区別することにする。例えば「基準点」や「把持点」はCADデータ上で定義され、「基準位置」や「把持位置」は実空間で定義される。
【0075】
動作説明に戻って、部品Aの実空間での3次元位置および姿勢を認識したら、その認識結果に基づいて、部品Aの3次元単独図データにおけるTCP把持点401(第1基準点)を実空間の座標系に座標変換して、部品AにおけるTCP把持位置201(第1基準位置)を特定する。
【0076】
TCP把持位置201が特定されたら、当該TCP把持位置201にロボットハンド1RのTCP200が一致するように、ロボットハンド1Rを動作制御する。このとき、TCP把持点401の情報に含まれる、把持進入角度の情報に基づいて、ロボットハンド1RのTCP把持位置201に進入する角度が3次元的に決定される。部品AのTCP把持位置201とロボットハンド1RのTCP200とのそれぞれの3次元位置が一致し、かつ、部品AのTCP把持位置201の把持進入角度とロボットハンド1Rの姿勢とが一致した3次元位置および姿勢において、ロボットハンド1Rのフィンガーで部品Aを把持する。把持されている部品AのTCP把持位置201は、ロボットハンド1RのTCP200と一致した状態が保たれる。
【0077】
次に、部品Aを把持した状態のロボットハンド1Rを移動させて、部品Aを、適当な作業位置に置く。当該作業位置は、作業のしやすさ等を考慮して、あらかじめ設定しておく。なお、部品Aが作業可能な位置にあらかじめ配置されている場合には、当該動作を省略し、部品Aを把持せず3次元位置および姿勢を認識するだけでもよい。
【0078】
次に、部品A(被組み付け部品101)に次に組み付ける部品B(組み付け部品100)の3次元位置および姿勢を認識部4において認識し、ロボットハンド1Rの動作を制御部2において制御して、部品Bを把持させる。当該動作は、部品Aを把持した場合と同様に行うことができる(図14参照)。
【0079】
次に、作業位置に置いた部品Aの3次元位置および姿勢を再度認識し、部品Aの3次元単独図データに付加された、部品BのTCP組み付け点402の情報を参照する(図14参照)。そして、部品BのTCP組み付け点402を、実空間における位置情報に変換(具体的には座標変換)してTCP組み付け位置202を得る。なお、作業位置に置かれた部品Aの3次元位置および姿勢が把握できている場合には、再度認識しなおす必要はない。
【0080】
次に、ロボットハンド1RのTCP200と、部品Aの3次元単独図データに付加された部品BのTCP組み付け点402から得た実空間でのTCP組み付け位置202とを一致させるように、すなわち、部品BのTCP把持位置201と、部品BのTCP組み付け位置202とを一致させるように、制御部2においてロボットハンド1Rの動作を制御する。
【0081】
当該動作制御は、被組み付け部品101である部品Aの3次元単独図データの座標系における、部品BのTCP組み付け点402と部品Aとの相対位置関係に基づいて、ロボット座標系において認識した部品Aの3次元位置および姿勢に対する部品BのTCP組み付け位置202の3次元位置を特定して行われる。
【0082】
このとき、TCP組み付け点402に含まれる、組み付け進入角度の情報に基づいて、ロボットハンド1RのTCP組み付け位置202に進入する角度が3次元的に決定される。部品BのTCP組み付け位置202とロボットハンド1RのTCP200とが一致した位置において、ロボットハンド1Rのフィンガーを部品Bから外す。当該動作によって、部品A(被組み付け部品101)に対する部品B(組み付け部品100)の組み付け動作が完了する。
【0083】
次に、部品Aと部品Bとの組み立て対象111(被組み付け部品101)に次に組み付ける部品Cの3次元位置および姿勢を認識部4において認識し、ロボットハンド1Rの動作を制御部2において制御して、部品Cを把持させる。当該動作は、部品Aおよび部品Bを把持した場合と同様に行うことができる(図15参照)。
【0084】
次に、組み立て対象111の3次元位置および姿勢を再度認識し、組み立て対象111の3次元組み図データに付加された、部品CのTCP組み付け点402を参照する(図15参照)。なお、組み立て対象111の3次元位置および姿勢が把握できている場合には、再度認識しなおす必要はない。
【0085】
次に、ロボットハンド1RのTCP200と、組み立て対象111の3次元組み図データに付加された部品CのTCP組み付け点402の座標変換によって得たTCP組み付け位置202とを一致させるように、すなわち、部品CのTCP把持位置201と、部品CのTCP組み付け位置202とを一致させるように、ロボットハンド1Rの動作を制御する。
【0086】
当該動作制御は、組み立て対象111(被組み付け部品101)と、部品CのTCP組み付け点402との3次元的な位置および姿勢に関する相対関係に関して、CAD座標系での相対関係を、実空間の座標系(ロボット座標系など)での相対的関係に変換して行われる。
【0087】
このとき、TCP組み付け点402に含まれる、組み付け進入角度の情報に基づいて、ロボットハンド1RのTCP組み付け位置202に進入する角度が3次元的に決定される。部品CのTCP組み付け位置202とロボットハンド1RのTCP200とが一致した位置関係において、ロボットハンド1Rのフィンガーを部品Cから外す。当該動作によって、組み立て対象111(被組み付け部品101)に対する部品C(組み付け部品100)の組み付け動作が完了し、組み立て対象110が完成する(図16参照)。
【0088】
<変形例>
組み付け部品100を組み付ける際に、組み付け動作に追加した特定の動作を必要とする場合には、例えば以下のようにして、被組み付け部品101の3次元モデルデータにおいて当該特定の動作指示の情報を含めることができる。
【0089】
例えば組み付け部品100がネジやボルトである場合について、以下に説明する(図17参照)。
【0090】
部品D(ネジ)を部品E(ネジ穴を備える部材)に組み付ける場合(図17参照)、部品Eの3次元単独図データ上において、部品DのTCP組み付け点402の他に、従属組み付け点403の情報を付加することができる(図18参照)。
【0091】
ここで従属組み付け点403(従属基準点)とは、最終的に部品DのTCP組み付け点402に到達する前に経由される3次元位置である。従属組み付け点403の情報には、当該3次元位置の情報に加え、従属組み付け点403における組み付け進入角度の情報、さらには、従属組み付け点403からTCP組み付け点402まで組み付け部品100(部品D)が移動する間、組み付け部品100が行う動作(特定の軸周りの回転動作等)を指示する情報が含まれる。
【0092】
当該従属組み付け点403は、部品Dの大きさ(長さ)等を考慮して、特定の動作が開始されるべき3次元位置に規定される。なお、従属組み付け点403は、複数備えられていてもよい。
【0093】
部品E(被組み付け部品101)に組み付ける部品D(組み付け部品100)の3次元位置および姿勢を認識部4において認識し、ロボットハンド1Rの動作を制御部2において制御して、部品Dを把持させる。当該動作は、実施の形態1に示す場合と同様に行うことができる。
【0094】
次に、部品Eの3次元単独図データに付加された、部品DのTCP組み付け点402および部品Dの従属組み付け点403を参照する(図18参照)。部品DのTCP組み付け点402および従属組み付け点403の3次元位置は、実空間におけるTCP組み付け位置202および従属組み付け位置203に変換される。
【0095】
次に、ロボットハンド1RのTCP200と、部品Dの従属組み付け位置203とを一致させるように、すなわち、部品DのTCP把持位置201と、部品Dの従属組み付け位置203とを一致させるように、ロボットハンド1Rの動作を制御する(図19参照)。このとき、従属組み付け点403に含まれる、組み付け進入角度の情報に基づいて、ロボットハンド1Rの従属組み付け位置203に進入する角度が3次元的に決定される。
【0096】
部品Dの従属組み付け位置203とロボットハンド1RのTCP200とが一致した位置において、従属組み付け位置203からTCP組み付け位置202まで部品Dが移動する間、部品Dが行う動作の指示を参照する。この例では、部品Dの長軸を回転軸とする回転動作が指示されているものとする。
【0097】
ロボットハンド1Rは、当該動作指示に従って、部品Dを把持したまま回転動作を行い、ロボットハンド1RのTCP200と、部品Eの3次元単独図データに付加された部品DのTCP組み付け点402から得たTCP組み付け位置202とを一致させるように、すなわち、部品DのTCP把持位置201と、部品DのTCP組み付け位置202とを一致させるように、ロボットハンド1Rの動作を制御する。このとき、部品DのTCP組み付け点402に含まれる、組み付け進入角度の情報に基づいて、ロボットハンド1RのTCP組み付け位置202に進入する角度が3次元的に決定される。このようにして、部品Dは部品E表面に形成された穴120にねじ込まれる(図20参照)。
【0098】
当該動作によって、部品E(被組み付け部品101)に対する部品D(組み付け部品100)の組み付け動作が完了する。
【0099】
<効果>
本発明にかかる実施形態によれば、組み付け装置において、制御部2が、組み付け部品100の3次元モデルデータにおいて規定された、組み付け部品100の第1基準点としてのTCP把持点401と、被組み付け部品101の3次元モデルデータにおいて規定された、組み付け部品100の第2基準点としてのTCP組み付け点402とに基づいて、これらに対応する第1基準位置と第2基準位置とを、認識された各部品について特定する。そして、制御部2が、それらの第1基準位置と第2基準位置とを相互に対応させるように、作業部1の動作を制御することで、被組み付け部品101に対する組み付け部品100の組み付け位置が容易かつ正確に特定でき、被組み付け部品101の位置ずれに関わらず、効率的に組み付け動作を行うことができる。
【0100】
また、組み付け部品100が小さい場合にも、組み付け部品100の本来の配置位置からのずれを考慮する必要がなくなり、適切な精度で組み付け動作を行うことができる。
【0101】
また、被組み付け部品101および組み付け部品100の3次元位置および姿勢にずれが生じやすい実際の組み付け動作において、より実用的な組み立て動作を実現することができる。
【0102】
また、本発明にかかる実施形態によれば、組み付け装置において、第2基準点としてのTCP組み付け点402が、被組み付け部品101および組み付け部品100の3次元組み図データにおいてあらかじめ設定される。この3次元組み図データは、被組み付け部品101に組み付け部品100が組み付けられた状態を示している。そして、3次元組み図データでのTCP組み付け点402の情報と実空間での認識結果に基づいて、実空間でのTCP組み付け位置202を設定し、このTCP組み付け位置202を目標として、作業部1であるロボットハンド1Rの動作を適切に制御することができる。
【0103】
また、本発明にかかる実施形態によれば、組み付け装置において、被組み付け部品101の3次元モデルデータにおいて、第2基準点としてのTCP組み付け点402に従属する従属基準点としての従属組み付け点403がさらに規定され、実空間でそれに対応する従属基準位置を特定する。そして制御部2が、第1基準位置としてのTCP把持位置201と従属組み付け位置203とを一致させた後、TCP把持位置201とTCP組み付け位置202とを一致させるように、作業部1の動作を制御することで、TCP組み付け位置202に組み付け部品100を組み付ける際に、ねじ込み等の特定の動作を伴う複雑な組み付けの場合にも、従属組み付け位置203からTCP組み付け位置202までの移動の間で当該動作を行わせ、ロボットハンド1Rの動作制御をすることができる。
【0104】
また、従属組み付け点403の3次元位置を適切に配置することにより、組み付け部品100に特定の動作を行わせる距離、時間を調整することができ、動作制御をより適切なものとすることができる。
【0105】
また、本発明にかかる実施形態によれば、組み付け装置において、第1基準点としてのTCP把持点401の情報には、作業部1が組み付け部品100の把持動作を行う際の、TCP把持点401に対する作業部1の進入角度の情報が含まれることで、ロボットハンド1Rの組み付け部品100に対する3次元姿勢が特定され、ロボットハンド1Rで組み付け部品100を把持する際に、組み付け部品100の各部分の強度を考慮し、把持した後の組み付け部品100の3次元姿勢を調整することができる。
【0106】
また、本発明にかかる実施形態によれば、組み付け装置において、第2基準点としてのTCP組み付け点402の情報には、作業部1が組み付け部品100の組み付け動作を行う際の、TCP組み付け点402に対する作業部1の進入角度の情報が含まれることで、ロボットハンド1Rおよび組み付け部品100の、被組み付け部品101に対する3次元姿勢が特定され、ロボットハンド1Rで組み付け部品100を組み付ける際に、被組み付け部品101にぶつからない経路を考慮し、適切に組み付け動作を行うことができる。
【0107】
また、本発明にかかる実施形態によれば、組み付け装置において、第1基準点としてのTCP把持点401が、組み付け部品100ごとに複数決定されて記憶されるとともに、それらを複数の組み付け部品のそれぞれに対して設定することで、組み付け部品100の組み付け方法によって、異なるパターンの把持方法を設定することができる。
【0108】
また、本発明にかかる実施形態によれば、組み付け装置において、第2基準点としてのTCP組み付け点402が、被組み付け部品101ごとに複数設定されることで、例えば複数のロボットアームを用いて同時に複数の組み付け部品を組み付ける場合にも対応することができ、複雑な組み付け動作にも対応可能となる。
【0109】
なお、組み付け部品や被組み付け部品の形状や材質によっては、ロボットハンドにおいて各部品を保持する保持機構は、上記実施の形態のような把持機構ではなく、係合機構や真空吸着機構などであってもよい。
【0110】
また本発明は、その発明の範囲内において、本実施形態における任意の構成要素の変形もしくは省略が可能である。
【産業上の利用可能性】
【0111】
ロボットを用いた、複合部品または装置の組み立て作業に用いることができる。
【符号の説明】
【0112】
1 作業部
1L,1R ロボットハンド
2 制御部
3 撮像部
4 認識部
5 記憶部
100 組み付け部品(第1部品)
101 被組み付け部品(第2部品)
102 カメラ
103 CPU
110,111 組み立て対象
120 穴
200 TCP
201 TCP把持位置
202 TCP組み付け位置
203 従属組み付け位置
300 3次元モデルデータ
301 穴データ
401 TCP把持点
402 TCP組み付け点
403 従属組み付け点
【特許請求の範囲】
【請求項1】
組み付け部品としての第1部品を、被組み付け部品としての第2部品に組み付ける作業部と、
前記第1部品および前記第2部品の3次元位置および姿勢を認識する認識部と、
前記認識部における3次元位置および姿勢認識に基づいて、前記作業部の動作を制御する制御部とを備え、
前記制御部が、
前記第1部品の3次元モデルデータに設定された所定の第1基準点に対応する位置として、前記認識部で認識された実空間での前記第1部品に設定された第1基準位置と、
前記第2部品の3次元モデルデータに設定された所定の第2基準点に対応する位置として、前記認識部で認識された実空間での前記第2部品に設定された第2基準位置とを互いに対応させて前記作業部の動作を制御し、
前記第2基準点は、前記第2部品の3次元モデルデータ上において、前記第1部品の組み付けに関する箇所を指示する点であることを特徴とする、
組み付け装置。
【請求項2】
前記第1基準点が、前記作業部が前記第1部品を保持する際に、基準となる点であることを特徴とする、
請求項1に記載の組み付け装置。
【請求項3】
前記第2基準点が、
前記第2部品に前記第1部品が組み付けられた状態を示す、前記第2部品および前記第1部品の3次元組み図データにおける、
前記第2部品と前記第1基準点との相対位置関係に対応する点であることを特徴とする、
請求項1または2に記載の組み付け装置。
【請求項4】
前記制御部が、前記第1基準位置と前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする、
請求項1〜3のいずれかに記載の組み付け装置。
【請求項5】
前記作業部は、前記第1部品を保持するための第3基準位置を有し、
前記制御部が、
前記第1基準位置と前記第3基準位置とを一致させるように、前記作業部による前記第1部品の保持動作を制御し、
保持した前記第1部品の前記第1基準位置と前記第2部品の前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする、
請求項1〜4のいずれかに記載の組み付け装置。
【請求項6】
前記第2部品の3次元モデルデータにおいて、前記第2基準点に従属する従属基準点がさらに規定され、
前記制御部が、前記第1基準位置と前記従属基準点に対応する従属位置を一致させた後、前記第1基準位置と前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする、
請求項1〜5のいずれかに記載の組み付け装置。
【請求項7】
前記従属基準点の情報には、前記従属基準点から前記第2基準点に移動するまでの前記第1部品に対する動作指示の情報が含まれることを特徴とする、
請求項6に記載の組み付け装置。
【請求項8】
前記第1基準点の情報には、前記作業部が前記第1部品の保持動作を行う際の、前記第1基準点に対する前記作業部の進入角度の情報が含まれることを特徴とする、
請求項1〜7のいずれかに記載の組み付け装置。
【請求項9】
前記第2基準点の情報には、前記作業部が前記第1部品の組み付け動作を行う際の、前記第2基準点に対する前記作業部の進入角度の情報が含まれることを特徴とする、
請求項1〜8のいずれかに記載の組み付け装置。
【請求項10】
前記第1基準点が、前記第1部品ごとに複数決定されており、複数の第1基準点のうちの1が選択されて設定されることを特徴とする、
請求項1〜9のいずれかに記載の組み付け装置。
【請求項11】
前記第2基準点が、前記第2部品ごとに複数設定されることを特徴とする、
請求項1〜10のいずれかに記載の組み付け装置。
【請求項12】
前記第2部品が、複数の部品の組み合わせで構成されることを特徴とする、
請求項1〜11のいずれかに記載の組み付け装置。
【請求項13】
あらかじめ用意された、前記第1部品および前記第2部品の3次元モデルデータを記憶する記憶部をさらに備えることを特徴とする、
請求項1〜12のいずれかに記載の組み付け装置。
【請求項14】
組み付け部品としての第1部品を、被組み付け部品としての第2部品に組み付ける作業部を備える組み付け装置において、
(a)前記第1部品および前記第2部品の3次元位置および姿勢を認識する工程と、
(b)前記工程(a)における3次元位置および姿勢認識に基づいて、
前記第1部品の3次元モデルデータに設定された所定の第1基準点に対応する位置として、認識された実空間での前記第1部品に設定された第1基準位置と、
前記第2部品の3次元モデルデータに設定された所定の第2基準点に対応する位置として、認識された実空間での前記第2部品に設定された第2基準位置とを互いに対応させて前記作業部の動作を制御する工程とを備え、
前記第2基準点は、前記第2部品の3次元モデルデータ上において、前記第1部品の組み付けに関する箇所を指示する点であることを特徴とする、
組み付け方法。
【請求項15】
コンピュータにインストールされて実行されることにより、前記作業部を前記コンピュータによって制御する装置を、請求項1〜13のいずれかに記載の組み付け装置として機能させることを特徴とする、
組み付け動作プログラム。
【請求項1】
組み付け部品としての第1部品を、被組み付け部品としての第2部品に組み付ける作業部と、
前記第1部品および前記第2部品の3次元位置および姿勢を認識する認識部と、
前記認識部における3次元位置および姿勢認識に基づいて、前記作業部の動作を制御する制御部とを備え、
前記制御部が、
前記第1部品の3次元モデルデータに設定された所定の第1基準点に対応する位置として、前記認識部で認識された実空間での前記第1部品に設定された第1基準位置と、
前記第2部品の3次元モデルデータに設定された所定の第2基準点に対応する位置として、前記認識部で認識された実空間での前記第2部品に設定された第2基準位置とを互いに対応させて前記作業部の動作を制御し、
前記第2基準点は、前記第2部品の3次元モデルデータ上において、前記第1部品の組み付けに関する箇所を指示する点であることを特徴とする、
組み付け装置。
【請求項2】
前記第1基準点が、前記作業部が前記第1部品を保持する際に、基準となる点であることを特徴とする、
請求項1に記載の組み付け装置。
【請求項3】
前記第2基準点が、
前記第2部品に前記第1部品が組み付けられた状態を示す、前記第2部品および前記第1部品の3次元組み図データにおける、
前記第2部品と前記第1基準点との相対位置関係に対応する点であることを特徴とする、
請求項1または2に記載の組み付け装置。
【請求項4】
前記制御部が、前記第1基準位置と前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする、
請求項1〜3のいずれかに記載の組み付け装置。
【請求項5】
前記作業部は、前記第1部品を保持するための第3基準位置を有し、
前記制御部が、
前記第1基準位置と前記第3基準位置とを一致させるように、前記作業部による前記第1部品の保持動作を制御し、
保持した前記第1部品の前記第1基準位置と前記第2部品の前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする、
請求項1〜4のいずれかに記載の組み付け装置。
【請求項6】
前記第2部品の3次元モデルデータにおいて、前記第2基準点に従属する従属基準点がさらに規定され、
前記制御部が、前記第1基準位置と前記従属基準点に対応する従属位置を一致させた後、前記第1基準位置と前記第2基準位置とを一致させるように、前記作業部の動作を制御することを特徴とする、
請求項1〜5のいずれかに記載の組み付け装置。
【請求項7】
前記従属基準点の情報には、前記従属基準点から前記第2基準点に移動するまでの前記第1部品に対する動作指示の情報が含まれることを特徴とする、
請求項6に記載の組み付け装置。
【請求項8】
前記第1基準点の情報には、前記作業部が前記第1部品の保持動作を行う際の、前記第1基準点に対する前記作業部の進入角度の情報が含まれることを特徴とする、
請求項1〜7のいずれかに記載の組み付け装置。
【請求項9】
前記第2基準点の情報には、前記作業部が前記第1部品の組み付け動作を行う際の、前記第2基準点に対する前記作業部の進入角度の情報が含まれることを特徴とする、
請求項1〜8のいずれかに記載の組み付け装置。
【請求項10】
前記第1基準点が、前記第1部品ごとに複数決定されており、複数の第1基準点のうちの1が選択されて設定されることを特徴とする、
請求項1〜9のいずれかに記載の組み付け装置。
【請求項11】
前記第2基準点が、前記第2部品ごとに複数設定されることを特徴とする、
請求項1〜10のいずれかに記載の組み付け装置。
【請求項12】
前記第2部品が、複数の部品の組み合わせで構成されることを特徴とする、
請求項1〜11のいずれかに記載の組み付け装置。
【請求項13】
あらかじめ用意された、前記第1部品および前記第2部品の3次元モデルデータを記憶する記憶部をさらに備えることを特徴とする、
請求項1〜12のいずれかに記載の組み付け装置。
【請求項14】
組み付け部品としての第1部品を、被組み付け部品としての第2部品に組み付ける作業部を備える組み付け装置において、
(a)前記第1部品および前記第2部品の3次元位置および姿勢を認識する工程と、
(b)前記工程(a)における3次元位置および姿勢認識に基づいて、
前記第1部品の3次元モデルデータに設定された所定の第1基準点に対応する位置として、認識された実空間での前記第1部品に設定された第1基準位置と、
前記第2部品の3次元モデルデータに設定された所定の第2基準点に対応する位置として、認識された実空間での前記第2部品に設定された第2基準位置とを互いに対応させて前記作業部の動作を制御する工程とを備え、
前記第2基準点は、前記第2部品の3次元モデルデータ上において、前記第1部品の組み付けに関する箇所を指示する点であることを特徴とする、
組み付け方法。
【請求項15】
コンピュータにインストールされて実行されることにより、前記作業部を前記コンピュータによって制御する装置を、請求項1〜13のいずれかに記載の組み付け装置として機能させることを特徴とする、
組み付け動作プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2013−99808(P2013−99808A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−244282(P2011−244282)
【出願日】平成23年11月8日(2011.11.8)
【出願人】(000207551)大日本スクリーン製造株式会社 (2,640)
【Fターム(参考)】
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願日】平成23年11月8日(2011.11.8)
【出願人】(000207551)大日本スクリーン製造株式会社 (2,640)
【Fターム(参考)】
[ Back to top ]