(57)【要約】【課題】ロボットに組み付け動作を行わせるときのロボットの動作時間を短縮する。【解決手段】ロボット２００を動作させてハンド２０２の目標軌道に対する実軌道のずれを測定する。測定したハンド２０２のずれとワークＷ２の形状に基づき、ロボット２００に対するワークＷ２の位置及び姿勢を決定する。自動運転において、決定した位置及び姿勢にワークＷ２を移動させて、ワークＷ１をワークＷ２に組み付ける組み付け動作をロボット２００に行わせる。【選択図】図１
2019093504.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの把持部に把持させた第１のワークを載置面上に配置された第２のワークに組み付ける物品の製造方法において、
前記把持部の目標軌道に対する実軌道のずれを測定する第１の工程と、
前記第１の工程で測定したずれと、前記第２のワークの形状に基づき、前記ロボットに対する前記第２のワークの位置及び姿勢を決める第２の工程と、
前記第２の工程にて決めた位置及び姿勢に前記第２のワークを移動させて、組み付け動作を前記ロボットに行わせる第３の工程と、を備えることを特徴とする物品の製造方法。
【請求項２】
前記第１の工程及び前記第２の工程は、前記ロボットに前記組み付け動作を行わせる自動運転に先立って行い、前記第３の工程は、前記自動運転において繰り返し行うことを特徴とする請求項１に記載の物品の製造方法。
【請求項３】
前記第２の工程では、処理部が、仮想空間において、前記第１の工程で測定したずれに基づいて、前記第１のワークに対応する第１の仮想ワークを前記第２のワークに対応する第２の仮想ワークに組み付ける仮想組み付け動作を、前記第２の仮想ワークの位置及び姿勢を変えて前記ロボットに対応する仮想ロボットに行わせるシミュレーションをし、
前記シミュレーションの結果、前記第１の仮想ワークを前記第２の仮想ワークに組み付け可能な前記第２の仮想ワークの位置及び姿勢から、前記第２のワークの位置及び姿勢を決めることを特徴とする請求項１又は２に記載の物品の製造方法。
【請求項４】
前記第１の工程では、前記載置面を含む平面内の複数の領域のそれぞれに対応する前記把持部の目標軌道に対する実軌道のずれを測定し、
前記第２の工程では、前記処理部が、前記第１の工程で測定したずれを、前記複数の領域に対応する複数の仮想領域のそれぞれに対応付けて、前記シミュレーションをすることを特徴とする請求項３に記載の物品の製造方法。
【請求項５】
前記シミュレーションでは、前記処理部が、前記仮想空間において、前記第１の工程で測定したずれに基づいて前記第１の仮想ワークを動かしたときに前記第１の仮想ワークが通過する領域の外形から仮想物を形成し、前記仮想物を前記第１の仮想ワークと見立てて、前記仮想ロボットに前記仮想組み付け動作を行わせることを特徴とする請求項３又は４に記載の物品の製造方法。
【請求項６】
前記第２の工程では、前記シミュレーションの結果、前記第１の仮想ワークを前記第２の仮想ワークに組み付け可能な前記第２の仮想ワークの位置及び姿勢が複数ある場合、複数ある前記第２の仮想ワークの位置及び姿勢の中から、前記第２のワークの位置及び姿勢を決めることを特徴とする請求項３乃至５のいずれか１項に記載の物品の製造方法。
【請求項７】
前記第２の工程では、複数ある前記第２の仮想ワークの位置及び姿勢のうち、前記第２のワークを移動させるときの時間が最小となるものを、前記第２のワークの位置及び姿勢とすることを特徴とする請求項６に記載の物品の製造方法。
【請求項８】
前記第１の工程では、前記把持部の目標軌道に対する実軌道のずれを、前記ロボットの加速度を変えて複数回測定し、
前記第２の工程では、前記仮想ロボットの加速度を変えて前記シミュレーションを複数回行った結果、前記第１の仮想ワークを前記第２の仮想ワークに組み付け可能な前記第２の仮想ワークの位置及び姿勢から、前記第２のワークの位置及び姿勢を決めることを特徴とする請求項３乃至５のいずれか１項に記載の物品の製造方法。
【請求項９】
前記第２の工程では、前記シミュレーションの結果、前記第１の仮想ワークを前記第２の仮想ワークに組み付け可能な前記第２の仮想ワークの位置及び姿勢がない場合に、前記ロボットの加速度を下げて測定されたずれに基づいて前記シミュレーションを再度行うことで、前記シミュレーションを複数回行う、
ことを特徴とする請求項８に記載の物品の製造方法。
【請求項１０】
前記第１の工程では、前記シミュレーションの結果、前記第１の仮想ワークを前記第２の仮想ワークに組み付け可能な前記第２の仮想ワークの位置及び姿勢がない場合に、前記ロボットの加速度を下げて、前記把持部の目標軌道に対する実軌道のずれの測定を再度行う、
ことを特徴とする請求項９に記載の物品の製造方法。
【請求項１１】
前記第３の工程では、前記第２のワークを、前記載置面を有する移動ステージによって移動させることを特徴とする請求項１乃至１０のいずれか１項に記載の物品の製造方法。
【請求項１２】
前記第１の工程では、前記把持部の目標軌道に対する実軌道のずれを、前記ロボットの周囲に設けられた測定器を用いて測定することを特徴とする請求項１乃至１１のいずれか１項に記載の物品の製造方法。
【請求項１３】
前記第１の工程では、前記把持部の目標軌道に対する実軌道のずれを、前記ロボットの各関節に設けられたエンコーダを用いて測定することを特徴とする請求項１乃至１１のいずれか１項に記載の物品の製造方法。
【請求項１４】
前記組み付け動作は、前記載置面に垂直な方向に前記把持部を直線移動させる指令に従う動作であることを特徴とする請求項１乃至１３のいずれか１項に記載の物品の製造方法。
【請求項１５】
前記第２のワークの形状は前記載置面の平面方向に異方性を有し、
前記第２の工程において、前記第１の工程で測定したずれの大きい方向に、前記第２のワークの長手方向を向けることを特徴とする請求項１乃至１４のいずれか１項に記載の物品の製造方法。
【請求項１６】
前記第１のワークが、軸部を有する部材であり、
前記第２のワークが、前記組み付け動作により前記軸部を挿入させる長穴を有する部材であることを特徴とする請求項１乃至１５のいずれか１項に記載の物品の製造方法。
【請求項１７】
ロボットの把持部に把持させた第１のワークを載置面上に配置された第２のワークに組み付ける物品の製造方法において、
前記把持部の目標軌道に対する実軌道のずれと、前記第２のワークの形状に基づき、前記ロボットに対する前記第２のワークの位置及び姿勢を決める工程と、
前記第２のワークの位置及び姿勢を決める工程にて決めた位置及び姿勢に前記第２のワークを移動させて、組み付け動作を前記ロボットに行わせる工程と、を備えることを特徴とする物品の製造方法。
【請求項１８】
第１のワーク又は治具を把持する把持部を有するロボットと、
前記ロボット、又は前記ロボットの周囲に設けられ、前記把持部又は前記把持部に把持された前記治具の振れに応じた信号を出力するセンサ部と、
第２のワークが載置される移動ステージと、
前記ロボット及び前記移動ステージを制御する制御部と、を備え、
前記制御部は、
前記把持部の目標軌道に対する実軌道のずれを測定する第１の処理と、
前記第１の処理で測定したずれと前記第２のワークの形状に基づき、前記ロボットに対する前記第２のワークの位置及び姿勢を決める第２の処理と、
前記第２の処理にて決めた位置及び姿勢に前記第２のワークを移動させて、前記組み付け動作を前記ロボットに行わせる第３の処理と、を実行することを特徴とするロボットシステム。
【請求項１９】
前記制御部は、前記第１の処理及び前記第２の処理を、前記ロボットに前記組み付け動作を行わせる自動運転に先立って行い、前記第３の処理を、前記自動運転において繰り返し行うことを特徴とする請求項１８に記載のロボットシステム。
【請求項２０】
前記制御部は、前記第２の処理として、仮想空間において、前記第１の処理で測定したずれに基づき、前記第１のワークに対応する第１の仮想ワークを前記第２のワークに対応する第２の仮想ワークに組み付ける仮想組み付け動作を、前記第２の仮想ワークの位置及び姿勢を変えて前記ロボットに対応する仮想ロボットに行わせるシミュレーションをし、前記シミュレーションの結果、前記第１の仮想ワークを前記第２の仮想ワークに組み付け可能な前記第２の仮想ワークの位置及び姿勢から、前記第２のワークの位置及び姿勢を決めることを特徴とする請求項１８又は１９に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに組み付け動作を行わせる技術に関する。
【背景技術】
【０００２】
従来、工場等の生産ラインにおいて、様々なロボットが使用されている。昨今の多関節ロボットは、動きの自由度が高いので、人間の手のように様々な作業をこなすことができる。その特徴から、１つのロボットを多能工化することが検討されている。ロボットの動作効率が向上すれば、同じサイクルタイムでより多くの作業を１つのロボットに担わせることが可能となり、装置のコストダウンにつながる。そこで、ロボットの動作時間を可能な限り短縮することが要求されている。
【０００３】
特許文献１には、シミュレーションにより、ロボットアームの移動時間が最も短くなる移動経路に対応する作業対象物の位置を決定することが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２６０６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、実際のロボットを動作させると、例えばロボットの各関節の制御同期ずれや減速機等の振動を要因として、ロボットの把持部に位置ずれや振動などに起因して目標起動と実軌道にずれが生じる。特許文献１に記載の方法では、実際のロボットの動作による把持部のずれが考慮されていないため、把持部のずれ量が大きすぎると、把持部に把持させた第１のワークを第２のワークに組み付けるのが失敗することがあった。したがって、把持部のずれがワーク同士の組み付けに影響するような精密な組み付け動作においては、ロボットの動作速度を十分に低下させて、把持部のずれを抑える必要があった。この結果、ロボットの組み付け動作における動作時間が長くなるという問題があった。
【０００６】
そこで、本発明は、ロボットに組み付け動作を行わせるときのロボットの動作時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、ロボットの把持部に把持させた第１のワークを載置面上に配置された第２のワークに組み付ける物品の製造方法において、前記把持部の目標軌道に対する実軌道のずれを測定する第１の工程と、前記第１の工程で測定したずれと、前記第２のワークの形状に基づき、前記ロボットに対する前記第２のワークの位置及び姿勢を決める第２の工程と、前記第２の工程にて決めた位置及び姿勢に前記第２のワークを移動させて、組み付け動作を前記ロボットに行わせる第３の工程と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ロボットに組み付け動作を行わせるときのロボットの動作時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係るロボットシステムを模式的に示す斜視図である。
【図２】第１実施形態に係るロボットアームの関節を示す断面模式図である。
【図３】第１実施形態に係るロボットシステムの制御系を示すブロック図である。
【図４】第１実施形態に係る物品の製造方法を説明するためのフローチャートである。
【図５】第１実施形態に係る物品の製造方法を説明するためのフローチャートである。
【図６】（ａ）は第１実施形態に係るロボットの上面図、（ｂ）は第１実施形態に係るロボットの側面図である。
【図７】（ａ）は第１実施形態に係る仮想ロボットの上面図、（ｂ）は第１実施形態に係る仮想ロボットの側面図である。
【図８】（ａ）及び（ｂ）は第１実施形態に係る仮想ロボットの上面図である。
【図９】第２実施形態に係る物品の製造方法を説明するためのフローチャートである。
【図１０】第２実施形態に係る物品の製造方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
［第１実施形態］
図１は、第１実施形態に係るロボットシステム１００を模式的に示す斜視図である。ロボットシステム１００は、組み付け作業等を行う産業用ロボットであるロボット２００と、制御部であって処理部の一例であるロボット制御装置３００と、入力部の一例である教示ペンダント４００と、を備える。また、ロボットシステム１００は、センサ部の一例であって、ロボット２００の周囲に配置された測定器の一例であるレーザ変位計５００と、移動ステージ６００と、表示部の一例であるディスプレイ７００と、を備える。ロボット２００、教示ペンダント４００、レーザ変位計５００、移動ステージ６００及びディスプレイ７００は、ロボット制御装置３００に接続され、ロボット制御装置３００と信号の送受信を行う。ロボット２００及び移動ステージ６００は、台座の上面１５０に配置されている。教示ペンダント４００は、作業者が操作するものであり、ロボット２００やロボット制御装置３００の動作を指示するのに用いる。ここで、台座の上面１５０に垂直な方向をＺ方向、台座の上面１５０と平行な方向であって、互いに直交する２方向をＸ方向及びＹ方向とする。
【００１１】
ロボット２００は、垂直多関節のロボットであり、ロボットアーム２０１と、ロボットアーム２０１の先端に取り付けられたエンドエフェクタの一例であるハンド２０２と、を備えている。ロボットアーム２０１の基端は、台座の上面１５０に固定されている。ハンド２０２は、物体、例えば部品やツール等のワークを把持する把持部である。
【００１２】
ロボットアーム２０１は、複数の関節、例えば６つの関節Ｊ１〜Ｊ６で連結された複数のリンク２１０〜２１６を有する。ロボットアーム２０１は、各関節Ｊ１〜Ｊ６を各関節軸まわりにそれぞれ回転駆動する複数の駆動機構２３０（図１では、関節Ｊ２のみ図示）を有している。各関節Ｊ１〜Ｊ６を回転駆動することで、ロボットアーム２０１の姿勢を変更することができる。ロボットアーム２０１の姿勢を変更することで、ロボット２００の手先、即ちロボットアーム２０１の先端に設けられたハンド２０２を、任意の位置及び姿勢に変更することができる。
【００１３】
ハンド２０２は、複数のフィンガ２２０を有し、複数のフィンガ２２０を動作させることで、ワーク等を把持可能となっている。第１実施形態では、第１のワークであるワークＷ１を、第２のワークであるワークＷ２に組み付ける組み付け動作をロボット２００に行わせる。したがって、ハンド２０２は、ワークＷ１を把持可能となっている。
【００１４】
ロボット２００の手先の位置及び姿勢は、ロボットアーム２０１の基端、即ち台座の上面１５０を基準とするベース座標系で表現される。ロボット２００の手先とは、ハンド２０２がワークを把持していない場合は、ハンド２０２であり、ハンド２０２がワーク等を把持している場合は、ハンド２０２及びワーク等である。即ち、ロボット２００の手先とは、ロボットアーム２０１の先端よりも先の部分である。ロボット制御装置３００において、ロボット２００の手先は、ＴＣＰ（Tool  Center  Point）で定義される。ベース座標系におけるＴＣＰの位置及び姿勢を教示ペンダント４００で指示することで、ロボット２００のハンド２０２の位置及び姿勢を決めることができる。
【００１５】
レーザ変位計５００は、複数（２つ）のレーザヘッド５０１Ｘ，５０１Ｙと、レーザヘッド５０１Ｘ，５０１Ｙに接続された処理装置５０２と、を有する。レーザヘッド５０１Ｘ，５０１Ｙは、台座の上面１５０の上方に不図示の支持部材等を介して固定して配置されている。レーザヘッド５０１Ｘは、Ｘ方向にレーザ光を出射して、対象物、具体的には、移動してきたハンド２０２から反射する反射光を受光して、処理装置５０２に受光信号を送信する。レーザヘッド５０１Ｙは、Ｙ方向にレーザ光を出射して、ハンド２０２から反射する反射光を受光して、処理装置５０２に受光信号を送信する。処理装置５０２は、各レーザヘッド５０１Ｘ，５０１Ｙから信号を受信して、レーザヘッド５０１Ｘとハンド２０２とのＸ方向の距離、及びレーザヘッド５０１Ｙとハンド２０２とのＹ方向の距離を求める。そして、処理装置５０２は、各方向の距離を示すデータ信号を、ロボット制御装置３００へ送信する。なお、図１においては、レーザヘッド５０１Ｘ，５０１Ｙがそれぞれ１つずつ配置される場合について図示しているが、ハンド２０２のＺ方向の移動に追従するように、それぞれＺ方向に間隔をあけて複数配置してもよい。
【００１６】
移動ステージ６００は、台座の上面１５０に固定された固定ステージと、固定ステージに対してＸＹ方向に並進する並進ステージと、並進ステージに対してＺ方向に延びる軸線まわりに回転する回転ステージとを有するＸＹ回転ステージである。また、移動ステージ６００は、並進ステージ及び回転ステージを駆動するモータ等を有する駆動部を備えている。移動ステージ６００は、載置面６０１を有しており、載置面６０１が、ＸＹ方向に並進可能であり、かつＺ方向に延びる軸線まわりに回転可能となっている。第１実施形態では、移動ステージ６００の載置面６０１上には、直接又は不図示の治具等を介して、ワークＷ２が高精度に配置される。例えば、移動ステージ６００の載置面上にワークＷ２の位置決めをする不図示の位置決め部材を配置しておいてもよい。載置面上にワークＷ２が位置決めされた移動ステージ６００を動作させることにより、ロボット２００に対するワークＷ２の位置及び姿勢を高精度に決めることができる。
【００１７】
なお、図１では図示を省略しているが、ロボットアーム２０１とハンド２０２との間には、力センサが配置されていてもよい。この場合、ハンド２０２は、不図示の力センサを介してロボットアーム２０１の先端に取り付けられている。
【００１８】
以下、ロボットアーム２０１の関節Ｊ１〜Ｊ６の構成について説明する。第１実施形態においては、関節Ｊ１〜Ｊ６は同様の構成であるため、関節Ｊ２について説明し、他の関節Ｊ１，Ｊ３〜Ｊ６の説明は省略する。
【００１９】
図２は、第１実施形態に係るロボットアーム２０１の関節Ｊ２を示す断面模式図である。図２に示すように、ロボットアーム２０１の関節Ｊ２には、駆動機構２３０、入力軸エンコーダ２５０、出力軸エンコーダ２６０等が配置されている。駆動機構２３０は、サーボモータ２３１と、サーボモータ２３１の回転軸２３２の回転を減速して出力する減速機２３３と、を有する。サーボモータ２３１及び減速機２３３の本体は、一対のリンク２１１，２１２のうち、一方、例えば可動側のリンク２１２に固定され、減速機２３３の出力軸２３４は、他方、例えば固定側のリンク２１１に固定されている。減速機２３３を介したサーボモータ２３１の駆動力により、リンク２１１がリンク２１２に対して相対的に回転する。
【００２０】
サーボモータ２３１は、ブラシレスＤＣモータやＡＣサーボモータなどの電動モータであり、図１に示すサーボ制御装置３５０によってサーボ制御される。なお、図１では、サーボ制御装置３５０が、ロボットアーム２０１の内部に配置されている場合について図示しているが、いずれの箇所に配置されていてもよく、例えばロボット制御装置３００の筐体内部に配置されている場合であってもよい。減速機２３３は、例えば波動歯車減速機である。
【００２１】
エンコーダである入力軸エンコーダ２５０及び出力軸エンコーダ２６０は、ロータリエンコーダであり、光学式或いは磁気式のいずれであってもよく、また、アブソリュート形或いはインクリメンタル形のいずれであってもよい。入力軸エンコーダ２５０は、減速機２３３の入力軸側に設けられ、サーボモータ２３１の回転軸２３２の回転角度に応じたパルス信号をサーボ制御装置３５０に出力する。出力軸エンコーダ２６０は、減速機２３３の出力軸側、即ちリンク２１１とリンク２１２との間に設けられ、リンク２１１に対するリンク２１２の相対角度、即ち関節Ｊ２の回転角度に応じたパルス信号をサーボ制御装置３５０に出力する。
【００２２】
なお、リンク２１１とリンク２１２との間には、クロスローラベアリング２３７が設けられており、リンク２１１とリンク２１２とは、クロスローラベアリング２３７を介して回転自在に連結されている。
【００２３】
図３は、第１実施形態に係るロボットシステムの制御系を示すブロック図である。ロボット制御装置３００は、コンピュータで構成されている。ロボット制御装置３００は、ＣＰＵ（Central  Processing  Unit）３０１を備えている。また、ロボット制御装置３００は、記憶部の一例として、ＲＯＭ（Read  Only  Memory）３０２、ＲＡＭ（Random  Access  Memory）３０３、及びＨＤＤ（Hard  Disk  Drive）３０４を備えている。また、ロボット制御装置３００は、記録ディスクドライブ３０５、及び入出力インタフェースであるＩ／Ｏ３１１〜３１５を備えている。
【００２４】
ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５、及びＩ／Ｏ３１１〜３１５は、互いに通信可能にバス３１０で接続されている。Ｉ／Ｏ３１１には、サーボ制御装置３５０が接続され、Ｉ／Ｏ３１２には、レーザ変位計５００の処理装置５０２が接続されている。また、Ｉ／Ｏ３１３には、教示ペンダント４００が接続され、Ｉ／Ｏ３１４には、移動ステージ６００が接続され、Ｉ／Ｏ３１５には、ディスプレイ７００が接続されている。サーボ制御装置３５０には、各関節Ｊ１〜Ｊ６のサーボモータ２３１、入力軸エンコーダ２５０、出力軸エンコーダ２６０が接続されている。なお、図３には、サーボモータ２３１、入力軸エンコーダ２５０及び出力軸エンコーダ２６０は、１つの関節分のみ図示しているが、第１実施形態では、６つの関節が存在する。したがって、図３において図示は省略するが、サーボモータ２３１、入力軸エンコーダ２５０及び出力軸エンコーダ２６０の組が６つ、サーボ制御装置３５０に接続されている。
【００２５】
ＣＰＵ３０１は、ロボット２００の各関節を駆動するサーボモータ２３１を、サーボ制御装置３５０を介して制御することで、ロボット２００の動作を制御する。また、ＣＰＵ３０１は、移動ステージ６００の動作を制御する。また、ＣＰＵ３０１は、ディスプレイ７００を制御して、ディスプレイ７００に画像を表示させる。更に、ＣＰＵ３０１は、入力軸エンコーダ２５０及び出力軸エンコーダ２６０により検出された角度を示す信号を、サーボ制御装置３５０を介して取得し、レーザ変位計５００の処理装置５０２から距離を示す信号を取得する。また、ＣＰＵ３０１は、作業者の操作によって教示ペンダント４００から送信される指示を受け付ける。
【００２６】
ＨＤＤ３０４には、制御プログラム３２１、タスクプログラム３２２、３Ｄデータ３２３、指令軌道データＴＡが記憶される。記録ディスクドライブ３０５は、記録ディスク３３０に記録された各種データやプログラム等を読み出すことができる。
【００２７】
制御プログラム３２１は、ＣＰＵ３０１に、タスクプログラム３２２の解釈、ロボット２００の指令軌道データＴＡの生成、シミュレーション、ロボット２００や移動ステージ６００の動作制御、各種演算や各種制御を行わせるプログラムである。制御プログラム３２１は、ユーザによる変更が容易にはできないようになっている。
【００２８】
タスクプログラム３２２は、例えばロボット言語で記述されたテキストファイルであり、ユーザ又はコンピュータにより変更が可能となっている。タスクプログラム３２２には、例えば「ＴＣＰを教示点Ｐ１から教示点Ｐ２に直線移動する」といった内容の命令文がロボット言語で記述されている。教示点のパラメータ数値は、タスクプログラム３２２と別のデータ（ファイル）で作成しておいてもよいが、第１実施形態では、タスクプログラム３２２に記述されているものとして説明する。
【００２９】
ＣＰＵ３０１は、タスクプログラム３２２を読み込み、教示点を結ぶＴＣＰの軌道である指令軌道データＴＡを、指定された補間方法（例えば、直線補間や円弧補間等）により生成し、ＨＤＤ３０４に記憶させる。直線補間の場合は、ＴＣＰを直線移動させる指令軌道データが生成されることになる。
【００３０】
指令軌道データＴＡは、例えば１［ｍｓ］などの所定時間毎に指令するＴＣＰの位置及び姿勢を含む点データの集合であり、速度パラメータ、加速度パラメータなどの時間パラメータを含んでいることになる。３Ｄデータ３２３は、ロボット２００の形状データ、ワークＷ１，Ｗ２の形状データ等である。
【００３１】
ＣＰＵ３０１は、指令軌道データＴＡの各点データを、ロボットの逆運動学計算により、各関節Ｊ１〜Ｊ６の回転角度に変換する。更に、ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６の回転角度から、各関節Ｊ１〜Ｊ６に配置した駆動機構２３０のサーボモータ２３１の回転角度を示す角度指令に変換する。
【００３２】
ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６のサーボモータ２３１に対する角度指令を、所定時間毎にサーボ制御装置３５０に出力する。サーボ制御装置３５０は、入力軸エンコーダ２５０から得られる角度が角度指令となるようにサーボモータ２３１に供給する電流を制御する。以上のセミクローズドループ制御により、ロボット制御装置３００は、指令軌道データＴＡに従ってロボット２００を動作させることになる。なお、セミクローズドループ制御よりも応答性が低くなるが、状況に応じて、出力軸エンコーダ２６０を用いたフルクローズドループ制御を行ってもよい。また、フルクローズドループ制御を行わない場合には、出力軸エンコーダ２６０を省略してもよい。
【００３３】
また、ロボット制御装置３００は、指令軌道データＴＡに従ってロボット２００を動作させて、物品の製造を行う自動運転モードと、教示などで試験的にロボット２００を動作させる試験運転モードと、を有する。教示ペンダント４００は、図１に示すように、自動運転モードに切り替える釦４１０と、試験運転モードに切り替える釦４１１とを有する。作業者によって釦４１０が操作されたとき、教示ペンダント４００は、自動運転を行うように指示する信号をロボット制御装置３００のＣＰＵ３０１に送信する。この信号を受信したロボット制御装置３００のＣＰＵ３０１は、指令軌道データＴＡに従いロボット２００の自動運転を開始する。自動運転では、指令軌道データＴＡを繰り返し再生することで、ロボット２００に同じ組み付け動作を繰り返し行わせる。
【００３４】
また、作業者によって釦４１１が操作されたとき、教示ペンダント４００は、自動運転を停止するように指示する信号をロボット制御装置３００のＣＰＵ３０１に送信する。この信号を受信したＣＰＵ３０１は、ロボット２００の自動運転を停止し、教示ペンダント４００による教示操作などを受け付ける試験運転モードに移行する。
【００３５】
なお、第１実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４であり、ＨＤＤ３０４に制御プログラム３２１が格納される場合について説明するが、これに限定するものではない。制御プログラム３２１は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されてもよい。例えば、制御プログラム３２１をコンピュータに供給するための記録媒体として、図３に示す記録ディスク３３０を用いてもよい。
【００３６】
第１実施形態では、ロボット２００に、ワークＷ１をワークＷ２に組み付ける組み付け動作を行わせるほか、別の作業をロボット２００に行わせて、物品を製造する。即ち、第１実施形態では、ロボット２００を多工能化することで、１つのロボット２００に複数の作業を連続して行わせる。これら複数の作業の中の１つに、ワークＷ１をワークＷ２に組み付ける組み付け作業がある。ワークＷ２の位置及び姿勢は、移動ステージ６００を動作させることにより、各作業に合わせて変更可能となっている。第１実施形態において、ワークＷ１は、軸部を有する部材、例えば円柱状の部材である。移動ステージ６００に載置されるワークＷ２は、載置面６０１の平面方向であるＸＹ方向に異方性を有する部材、例えばワークＷ１が挿入される長穴Ｈを有する部材である。移動ステージ６００により、ワークＷ２の長手方向、即ち長穴Ｈの長手方向が、ＸＹ平面内で変更可能となっている。以下、組み付け作業とは、ワークＷ１をワークＷ２の長穴Ｈに挿入する作業である。
【００３７】
組み付け作業は、一旦、ワークＷ１をワークＷ２の直上に移動させ、この状態からワークＷ１をＺ方向に直線的に移動させることで行われる。この組み付け作業を行うときのロボット２００の動作が、組み付け動作である。その際、ロボット２００は、指令軌道データＴＡに従って動作するが、関節Ｊ１〜Ｊ６の撓みや、各関節Ｊ１〜Ｊ６の制御同期ずれなどにより、ハンド２０２が実際に辿る実軌道が、目標軌道に対してずれることがある。ここで、ハンド２０２のずれとは、ハンド２０２の振動やハンド２０２の位置ずれなどである。第１実施形態では、各関節Ｊ１〜Ｊ６に減速機２３３が配置されているので、ハンド２０２のずれとして、減速機２３３の撓みによるハンド２０２の振動が大きく関わっている。このようにハンド２０２に振動が生じることにより、目標軌道に対して実軌道にずれが生じる。
【００３８】
目標軌道に対する実軌道のずれは、ロボット２００の動作加速度、即ちハンド２０２の移動加速度を高めるほど大きくなる傾向にある。即ち、ハンド２０２の移動加速度を高めるほど、関節の撓み量が増大するため、ハンド２０２の振動が大きくなる。したがって、ハンド２０２の移動加速度をある閾値以下にすれば、ハンド２０２の振動を抑制し、ロボット２００による組み付け動作を確実に行わせることは可能ではあるが、組み付けに要するロボット２００の動作時間が長くなってしまう。
【００３９】
ハンド２０２の振動には方向性があるため、ワークＷ２の長穴Ｈの長手方向と、ハンド２０２の振動の振幅の大きい方向とを一致させれば、ハンド２０２に振動が生じている状態であっても、組み付けを行うことができる。ハンド２０２の振動のプロファイルは、ハンド２０２を移動させる位置、即ちロボット２００の姿勢によっても変化する。
【００４０】
そこで、第１実施形態では、自動運転を行うのに先立って、ハンド２０２の目標軌道に対する実軌道のずれを測定し、その測定結果とワークＷ２の形状に基づいて、ワークＷ２の位置及び姿勢を決定する。自動運転では、決定した位置及び姿勢にワークＷ２を移動させて、組み付け作業を繰り返し行う。
【００４１】
以下、ロボットシステム１００を用いた物品の製造方法について詳細に説明する。図４及び図５は、第１実施形態に係る物品の製造方法を説明するためのフローチャートである。
【００４２】
まず、ロボット制御装置３００、即ちＣＰＵ３０１は、作業者により釦４１１が操作されたときに教示ペンダント４００からの指示を受け付けて試験運転モードに移行する（Ｓ１０１）。次に、ＣＰＵ３０１は、作業者の操作により教示ペンダント４００から受けた指示に従ってロボット２００を動作させ、ハンド２０２に治具ＷＡを把持させる（Ｓ１０２）。なお、ハンド２０２に把持させる治具ＷＡとしては、ワークＷ１そのものであってもよいし、ワークＷ１に相当する部材であってもよい。ワークＷ１に相当する部材としては、例えばワークＷ１と同じ形状及び重さの部材、ワークＷ１と形状は異なるが重さが同じ部材などである。つまり、治具ＷＡは、ワークＷ１そのもののほか、ワークＷ１と同じとみなせるものであればよい。
【００４３】
次に、ＣＰＵ３０１は、ロボット２００に、組み付け動作に相当する試験動作を行わせる。試験動作とは、ワークＷ２が移動ステージ６００に配置されていない状態でロボット２００に行わせる、組み付け動作と同様の動作である。つまり、ＣＰＵ３０１は、試験動作では、ロボット２００に治具ＷＡを把持させ、移動ステージ６００にワークＷ２がない状態で模擬的に組み付け動作を行わせる。これにより、実際に組み付け動作を行うときのハンド２０２に生じる振動が、ロボット２００において再現される。
【００４４】
以下、ロボット２００に試験動作を行わせる処理について具体的に説明する。図６（ａ）は、ロボット２００の上面図、図６（ｂ）は、ロボット２００の側面図である。移動ステージ６００の載置面６０１を含む仮想的な平面ＰＬの全領域うち、移動ステージ６００の可動領域とロボット２００の可動領域とが重なる領域を、図６（ａ）に示すように、複数の領域Ｒ１，Ｒ２，Ｒ３に仮想的に分けて考える。
【００４５】
ＣＰＵ３０１は、各領域Ｒ１，Ｒ２，Ｒ３に対応する目標軌道として、各領域Ｒ１，Ｒ２，Ｒ３に対応する指令軌道データＴＡ１，ＴＡ２，ＴＡ３を作成する（Ｓ１０３）。各指令軌道データＴＡ１，ＴＡ２，ＴＡ３は、例えば各領域Ｒ１，Ｒ２，Ｒ３の直上から各領域Ｒ１，Ｒ２，Ｒ３に向かうＺ方向にハンド２０２が直線移動するよう指令する軌道データである。指令軌道データＴＡ１，ＴＡ２，ＴＡ３は、直線補間で作成する。作成した指令軌道データＴＡ１，ＴＡ２，ＴＡ３は、記憶部、例えばＨＤＤ３０４に格納しておく。
【００４６】
各指令軌道データＴＡ１，ＴＡ２，ＴＡ３の始点は、各領域Ｒ１，Ｒ２，Ｒ３の中心点の直上に、中心点と間隔をあけて規定されている。そして、各指令軌道データＴＡ１，ＴＡ２，ＴＡ３は、平面ＰＬに近づく方向であって、Ｚ方向にハンド２０２を直線移動させるようロボット２００を動作させる軌道データである。各指令軌道データＴＡ１，ＴＡ２，ＴＡ３に従ってロボット２００を動作させることで、各領域Ｒ１，Ｒ２，Ｒ３に対応した試験動作をロボット２００に行わせる。なお、各指令軌道データＴＡ１，ＴＡ２，ＴＡ３は、測定用の軌道データであって、自動運転時に用いる指令軌道データＴＡは、まだ生成されていない。
【００４７】
次に、ＣＰＵ３０１は、領域Ｒ１の直上にハンド２０２及び治具ＷＡを移動させ（Ｓ１０４）、指令軌道データＴＡ１に従いロボット２００の動作を開始させて（Ｓ１０５）、領域Ｒ１に対応する試験動作をロボット２００に行わせる。このとき、ＣＰＵ３０１は、レーザ変位計５００により測定された距離の測定結果を順次取得する（Ｓ１０６）。このステップＳ１０６の測定は、指令軌道データＴＡ１の終点、即ち試験動作が終了するまで行う（Ｓ１０７）。
【００４８】
以上のステップＳ１０４〜Ｓ１０７においては、組み付け動作に相当する試験動作中のロボット２００のハンド２０２が実際に移動した軌道（実軌道）を取得するのが目的である。そのため、前述したように、ワークＷ２との干渉を防ぐため、移動ステージ６００上にワークＷ２を設置しない状態で試験動作を行う。
【００４９】
次に、ＣＰＵ３０１は、レーザ変位計５００から取得した距離の測定結果を用いて、ロボット２００のハンド２０２（ＴＣＰ）の実軌道（実軌道データ）ＴＢ１を算出する（Ｓ１０８）。そして、ＣＰＵ３０１は、ハンド２０２の目標軌道に対する実軌道のずれとして指令軌道データＴＡ１に対する実軌道データＴＢ１のずれを算出し（Ｓ１０９）、記憶部、例えばＨＤＤ３０４に記憶させる。
【００５０】
ＣＰＵ３０１は、全ての領域Ｒ１，Ｒ２，Ｒ３に対応する実軌道データＴＢ１，ＴＢ２，ＴＢ３の測定が終了したかどうかを判断し（Ｓ１１０）、終了していなければ（Ｓ１１０：Ｎｏ）、次の領域に変更して（Ｓ１１１）、ステップＳ１０４の処理に戻る。以上、ステップＳ１０４〜Ｓ１１１を繰り返すことで、順次、各領域Ｒ１，Ｒ２，Ｒ３に対応するハンド２０２のずれが測定される。
【００５１】
このように、ＣＰＵ３０１は、ステップＳ１０１〜Ｓ１１１により、治具ＷＡをハンド２０２に把持させて、ロボット２００に組み付け動作に相当する試験動作を行わせ、ハンド２０２のずれを測定する（第１の工程、第１の処理）。その際、ＣＰＵ３０１は、載置面６０１を含む平面内の複数の領域Ｒ１，Ｒ２，Ｒ３のそれぞれに対して試験動作を行わせて、複数の領域Ｒ１，Ｒ２，Ｒ３のそれぞれに対応するハンド２０２のずれを測定する。具体的には、ＣＰＵ３０１は、ハンド２０２のずれを、ロボット２００の周囲に配置されたレーザ変位計５００を用いて測定する。第１実施形態では、ハンド２０２のずれは、ロボット２００の指令軌道データＴＡ１，ＴＡ２，ＴＡ３に対するロボット２００の実軌道データＴＢ１，ＴＢ２，ＴＢ３のずれとして測定される。つまり、ＣＰＵ３０１は、レーザ変位計５００からの信号を用いて、実軌道データＴＢ１，ＴＢ２，ＴＢ３を演算し、指令軌道データＴＡ１，ＴＡ２，ＴＡ３に対する実軌道データＴＢ１，ＴＢ２，ＴＢ３のずれを演算する。
【００５２】
次に、ＣＰＵ３０１は、３Ｄデータ３２３及び測定したハンド２０２のずれの情報を用いて、ロボット２００による組み付け動作のシミュレーションを行う（Ｓ１１２）。
【００５３】
図７（ａ）は、仮想空間ＲＩにおける仮想ロボット２００Ｉの上面図、図７（ｂ）は、仮想空間ＲＩにおける仮想ロボット２００Ｉの側面図である。ＣＰＵ３０１は、３Ｄデータ３２３に基づく演算処理により、仮想空間ＲＩにおいて、ロボット２００に対応する仮想ロボット２００Ｉ、移動ステージ６００に対応する仮想移動ステージ６００Ｉを構築する。また、ＣＰＵ３０１は、３Ｄデータ３２３に基づく演算処理により、仮想空間ＲＩにおいて、ワークＷ１に対応する第１の仮想ワークである仮想ワークＷＩ１、ワークＷ２に対応する第２の仮想ワークである仮想ワークＷＩ２を構築する。仮想ロボット２００Ｉは、ハンド２０２に対応する仮想把持部である仮想ハンド２０２Ｉを有する。このように、実空間に配置したロボット２００及びその周囲の構成を、仮想空間ＲＩにおいて構築する。
【００５４】
ＣＰＵ３０１は、仮想ロボット２００Ｉを基準に、領域Ｒ１，Ｒ２，Ｒ３に対応する仮想領域ＲＩ１，ＲＩ２，ＲＩ３を規定する。第１実施形態では、ＣＰＵ３０１は、シミュレーションにおいて、仮想領域ＲＩ１，ＲＩ２，ＲＩ３内で仮想ワークＷＩ２の位置及び姿勢を変えて、仮想ワークＷＩ１の組み付けが可能な仮想ワークＷＩ２の位置及び姿勢を、総当たりで探す演算を行う。なお、ＣＰＵ３０１の負荷を考慮して、作業者の判断で、シミュレーションに用いる３Ｄデータ３２３を簡略的に表現するようにしてもよい。
【００５５】
以下、ステップＳ１１２のシミュレーションについて具体的に説明する。ＣＰＵ３０１は、仮想空間ＲＩにおいて、仮想ワークＷＩ１を把持した仮想ハンド２０２Ｉ、又は仮想ハンド２０２Ｉに把持させる仮想ワークＷＩ１に、測定したハンド２０２のずれを反映させる。第１実施形態では、仮想ワークＷＩ１に、測定したハンド２０２のずれを反映させる。即ち、仮想ロボット２００Ｉに、測定したハンド２０２のずれを適用させながら仮想組み付け動作を行わせてもよいが、第１実施形態では、仮想ワークＷＩ１に、ハンド２０２のずれを適用させる。詳述すると、ＣＰＵ３０１は、仮想空間ＲＩにおいて、測定したハンド２０２のずれに基づいてＸＹ方向に仮想ワークＷＩ１を移動させたときに仮想ワークＷＩ１が通過する領域の外形から仮想物ＷＩ１Ａを形成する。例えば、仮想ワークＷＩ１は、図７（ａ）に示すように、Ｚ方向から視て円形であるが、仮想ワークＷＩ１にＸＹ方向の振動を適用することで、振動の振幅に応じて、円形よりも大きい、例えばＺ方向から視て楕円形の仮想物ＷＩ１Ａが形成される。そして、ＣＰＵ３０１は、仮想物ＷＩ１Ａを仮想ワークＷＩ１と見立てて仮想ハンド２０２Ｉに把持させて、仮想組み付け動作を仮想ロボット２００Ｉに行わせる。
【００５６】
このように、ＣＰＵ３０１は、測定したハンド２０２のずれに基づき、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付ける仮想組み付け動作を、仮想領域ＲＩ１，ＲＩ２，ＲＩ３内で仮想ワークＷＩ２の位置及び姿勢を変えて仮想ロボット２００Ｉに行わせる。
【００５７】
仮想ワークＷＩ２を仮想領域ＲＩ１，ＲＩ２又はＲＩ３に配置することは、Ｚ方向から視たときの仮想ワークＷＩ２の基準点（例えば中心点）が、仮想領域ＲＩ１，ＲＩ２又はＲＩ３に位置するように仮想空間ＲＩに配置することを意味する。なお、仮想領域ＲＩ１，ＲＩ２，ＲＩ３の境界に関しては、隣り合ういずれかの仮想領域に対応付けたハンド２０２のずれを対応付けておけばよい。
【００５８】
以上、第１実施形態では、ＣＰＵ３０１は、仮想物ＷＩ１Ａを仮想ワークＷＩ１に見立てて仮想ロボット２００Ｉに仮想組み付け動作を行わせる。したがって、仮想ハンド２０２Ｉを振れさせながら仮想組み付け動作を行わせるよりも、ＣＰＵ３０１における演算負荷が軽減され、シミュレーションに要する時間を短縮することができる。
【００５９】
第１実施形態では、各領域Ｒ１，Ｒ２，Ｒ３に対応付けてハンド２０２のずれが測定されているので、ＣＰＵ３０１は、各領域Ｒ１，Ｒ２，Ｒ３に対応付けたハンド２０２のずれを、各仮想領域ＲＩ１，ＲＩ２，ＲＩ３に対応付けて、シミュレーションする。図８（ａ）及び図８（ｂ）は、仮想空間ＲＩにおける仮想ロボット２００Ｉの上面図である。なお、図８（ａ）には、仮想領域ＲＩ１において仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢の一例を図示している。図８（ｂ）には、仮想領域ＲＩ２において仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢の一例を図示している。
【００６０】
図８（ａ）に示すように、仮想領域ＲＩ１に仮想ワークＷＩ２を配置して行うシミュレーションにおいては、仮想ワークＷＩ１に見立てて仮想ハンド２０２Ｉに把持させる仮想物ＷＩ１Ａを、領域Ｒ１に対応付けられたハンド２０２のずれに基づいて生成する。図８（ｂ）に示すように、仮想領域ＲＩ２に仮想ワークＷＩ２を配置して行うシミュレーションにおいては、仮想ワークＷＩ１に見立てて仮想ハンド２０２Ｉに把持させる仮想物ＷＩ１Ｂを、領域Ｒ２に対応付けられたハンド２０２のずれに基づいて生成する。また、図示は省略するが、仮想領域ＲＩ３に仮想ワークＷＩ２を配置して行うシミュレーションにおいては、仮想ワークＷＩ１に見立てて仮想ハンド２０２Ｉに把持させる仮想物を、領域Ｒ３に対応付けられたハンド２０２のずれに基づいて生成する。
【００６１】
シミュレーションにおける仮想ワークＷＩ２の位置の変更量は、演算に要する時間や移動ステージ６００の精度に応じて作業者が適宜設定すればよく、例えば０．１［ｍｍ］のように、細かく設定することもできる。また、仮想ワークＷＩ２の姿勢の変更量も、演算に要する時間や移動ステージ６００の精度に応じて作業者が適宜設定すればよく、例えば０．１［°］のように、細かく設定することもできる。このように、仮想領域ＲＩ１，ＲＩ２，ＲＩ３全ての領域において、仮想ワークＷＩ２の位置及び姿勢を変更して総当たりで仮想組み付け動作の演算処理を行う。
【００６２】
以上、ロボット２００の可動領域と移動ステージ６００の可動領域とが重なる領域を複数の領域Ｒ１〜Ｒ３に分けて各領域Ｒ１〜Ｒ３においてハンド２０２のずれを測定する場合について説明したが、領域の数はこれに限定するものではない。ロボット２００の可動領域を細かく分割するほど、ハンド２０２のずれを測定するポイント数が増えるが、後述する組み付け可能かどうかの判断の精度が向上する。なお、ハンド２０２のずれの軌跡が、位置に応じてほとんど変わらない場合には、複数の領域に分けずにハンド２０２のずれを１回のみ代表して測定してもよい。
【００６３】
ＣＰＵ３０１は、ステップＳ１１２のシミュレーションの結果から、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢があるかどうかを判定する（Ｓ１１３）。つまり、ステップＳ１１３では、仮想ワークＷＩ１に見立てた仮想物が仮想ワークＷＩ２の仮想長穴ＨＩに嵌るかどうか、即ち重ならないかどうかを判定する干渉確認を行う。仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢がある場合とは、仮想ワークＷＩ１に見立てた仮想物が仮想ワークＷＩ２に重ならない仮想ワークＷＩ２の位置及び姿勢がある場合である。仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢がない場合とは、仮想ワークＷＩ１に見立てた仮想物が仮想ワークＷＩ２の全ての位置及び姿勢で仮想ワークＷＩ２に重なる場合である。
【００６４】
ＣＰＵ３０１は、ステップＳ１１２のシミュレーションの結果、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢がない場合（Ｓ１１３：Ｎｏ）、ディスプレイ７００にその旨を通知ための画像を表示させる（Ｓ１１９）。そして、処理を終了する。なお、この場合、仮想ワークＷＩ１と仮想ワークＷＩ２とのＸ、Ｙ方向の重なり量の和が最も小さい仮想ワークＷＩ２の位置及び姿勢を、ワークＷ２の位置及び姿勢に採用して、ロボット２００の加速度を調整し、加速度の低下を最小限にするようにしてもよい。
【００６５】
ＣＰＵ３０１は、ステップＳ１１２のシミュレーションの結果、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢がある場合は（Ｓ１１３：Ｙｅｓ）、その候補が１つか複数かで処理が分かれる（Ｓ１１４）。
【００６６】
ＣＰＵ３０１は、候補が１つの場合は（Ｓ１１４：Ｙｅｓ）、その仮想ワークＷＩ２の位置及び姿勢を、ワークＷ２の位置及び姿勢に決定する（Ｓ１１５）。ＣＰＵ３０１は、候補が複数の場合は（Ｓ１１４：Ｎｏ）、複数ある仮想ワークＷＩ２の位置及び姿勢の中の１つを、ワークＷ２の位置及び姿勢に決定する（Ｓ１１６）。具体的に説明すると、ＣＰＵ３０１は、複数ある仮想ワークＷＩ２の位置及び姿勢の中から、ワークＷ２を移動させるときに要する時間が最小となるものを１つ選択し、ワークＷ２の位置及び姿勢に決定する。これにより、組み付けに要する時間を短縮することができる。
【００６７】
次いでＣＰＵ３０１は、決定したワークＷ２の位置及び姿勢に基づくタスクプログラム３２２における教示点のパラメータ数値、即ち指令軌道データＴＡを決定する（Ｓ１１７）。この指令軌道データＴＡは、載置面６０１に近づくＺ方向にハンド２０２を直線移動させる軌道データであり、直線補間により作成される。作成された指令軌道データＴＡは、ロボット２００の自動運転時に用いることができるように、図３に示すように、ＨＤＤ３０４に記憶させておく。
【００６８】
以上、ＣＰＵ３０１は、ステップＳ１１２〜Ｓ１１７により、ハンド２０２のずれ及びワークＷ２の形状に基づき、ロボット２００に対するワークＷ２の位置及び姿勢を決める（第２の工程、第２の処理）。なお、ステップＳ１０１〜Ｓ１１７の処理は、ロボット２００の自動運転に先立って１度だけ行えばよい。
【００６９】
次に、ＣＰＵ３０１は、教示ペンダント４００の釦４１０が作業者によって操作されたときに教示ペンダント４００から送信される指示を示す信号を受けたら、自動運転モードに移行する（Ｓ１１８）。これにより、ＣＰＵ３０１は、指令軌道データＴＡに従ってロボット２００を動作させる自動運転を行う。ＣＰＵ３０１は、この自動運転において、移動ステージ６００を動作させることによりステップＳ１１５，Ｓ１１６にて決めた位置及び姿勢にワークＷ２を移動させて、ロボット２００に組み付け動作を行わせる（第３の工程、第３の処理）。自動運転におけるロボット２００の組み付け動作は、自動運転が解除されるまで、繰り返し行われる。これにより、ワークＷ１をワークＷ２に組み付けた物品が次々と生産される。
【００７０】
以上、第１実施形態によれば、ロボット２００に組み付け動作を行わせるときに、ハンド２０２に振動などのずれが生じても、ハンド２０２のずれに倣うようにワークＷ２の位置及び姿勢が変更されることになる。したがって、ハンド２０２に振動などのずれが生じている状態でも、ワークＷ１をワークＷ２に組み付けることができる。したがって、ロボット２００のハンド２０２の速度及び加速度を必要以上に下げる必要がなく、ロボット２００に組み付け動作を行わせるときのロボット２００の動作時間を短縮することができる。
【００７１】
また、第１実施形態によれば、シミュレーションにより、仮想ワークＷＩ２の位置及び姿勢を細かく変更して仮想ロボット２００Ｉに仮想組み付け動作を行わせることができる。したがって、実機で組み付け可能かどうかの確認を行うよりも、ワークＷ２の位置及び姿勢を決める作業時間を大幅に短縮することができる。
【００７２】
［第２実施形態］
次に、第２実施形態に係る物品の製造方法について説明する。なお、第２実施形態では、図１に示すロボットシステム１００において、レーザ変位計５００を省略したものである。レーザ変位計５００によりハンド２０２のずれを高精度に測定するには、レーザ変位計５００のレーザヘッド５０１Ｘ，５０１Ｙを高精度に配置する必要がある。しかし、ロボット２００の周囲の配置物によっては、レーザヘッド５０１Ｘ，５０１Ｙの配置が困難な場合がある。また、配置可能であっても、レーザヘッド５０１Ｘ，５０１Ｙを設置するのに時間を要する。そこで、第２実施形態では、センサ部として、ロボット２００の各関節Ｊ１〜Ｊ６に設けられたエンコーダである出力軸エンコーダ２６０（図２）を用いて、ハンド２０２の振動などのずれを測定する。この出力軸エンコーダ２６０は、フルクローズドループ制御において用いられるので、第２実施形態ではハンド２０２のずれの測定にも兼用する。なお、出力軸エンコーダ２６０を制御及びその他の測定の用途に使用しない場合には、出力軸エンコーダ２６０は、ハンド２０２のずれを測定する専用のものとなる。
【００７３】
図９及び図１０は、第２実施形態に係る物品の製造方法を説明するためのフローチャートである。以下、図１〜図３を参照しながら、図９及び図１０に示す動作について具体的に説明する。図９に示すステップＳ２０１〜Ｓ２０５は、図４に示すステップＳ１０１〜Ｓ１０５と同様であるため、説明を省略する。
【００７４】
第２実施形態では、図３に示すＣＰＵ３０１は、ステップＳ２０６において、出力軸エンコーダ２６０を用いてハンド２０２のずれを測定する。このため、ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６の出力軸エンコーダ２６０からサーボ制御装置３５０を介して関節Ｊ１〜Ｊ６の回転角度に応じた信号を取得する。そして、ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６の回転角度を、ロボットの順運動学計算により、ハンド２０２（ＴＣＰ）の位置及び姿勢に変換することで、実軌道データを求める。そして、ＣＰＵ３０１は、指令軌道データに対する実軌道データのずれを求める。
【００７５】
このように、関節Ｊ１〜Ｊ６の撓み、即ち減速機２３３の撓みによる振動を、直接、出力軸エンコーダ２６０を用いて測定することで、外部の測定器を用いることなく、ハンド２０２の振れを正確に測定することができる。また、測定器をロボット２００の周囲に配置する必要がないので、測定器を設置する手間を省くことができる。
【００７６】
図９に示すステップＳ２０７〜Ｓ２１１は、図４に示すステップＳ１０７〜Ｓ１１１と同様であるため、説明を省略する。また、図１０に示すステップＳ２１２〜Ｓ２１８は、図５に示すステップＳ１１２〜Ｓ１１８と同様であるため、説明を省略する。
【００７７】
第２実施形態では、ＣＰＵ３０１は、ステップＳ２１３において組み付け可能となる仮想ワークＷＩ２がないときには（Ｓ２１３：Ｎｏ）、ハンド２０２の加速度が低下するように加速度を変更する（Ｓ２１９）。具体的には、ＣＰＵ３０１は、軌道計算に用いる加速度パラメータを所定量低下させる。そして、ＣＰＵ３０１は、ステップＳ２０３に戻り、指令軌道データＴＡ１〜ＴＡ３（図６（ａ）参照）を再び生成し、ステップＳ２０４〜Ｓ２１３の処理を再び実行する。
【００７８】
このように、ＣＰＵ３０１は、ステップＳ２０３〜Ｓ２１１を繰り返し実行することで、ハンド２０２の目標軌道に対する実軌道のずれを、ロボット２００の加速度を変えて複数回測定する。即ち、ＣＰＵ３０１は、ステップＳ２０３〜Ｓ２１１を繰り返し実行することで、試験動作をロボット２００のハンド２０２の加速度を変えて複数回行って、それぞれの加速度に対するハンド２０２のずれを測定する。そして、ＣＰＵ３０１は、ステップＳ２１２を繰り返し実行することで、仮想ロボット２００Ｉの仮想ハンド２０２Ｉの加速度を変えてシミュレーションを複数回行う。その結果、ＣＰＵ３０１は、ステップＳ２１４〜Ｓ２１６において、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢から、ワークＷ２の位置及び姿勢を決める。
【００７９】
ここで、ロボット２００の加速度に応じたシミュレーションを複数回行った後に、組み付け可能かどうかの判定を行ってもよいが、全ての加速度パターンでシミュレーションを行うと、シミュレーションに時間を要する。また、複数回、シミュレーションを行うのに先立って、予め、ハンド２０２の加速度を変更させたときの加速度に対応したハンド２０２のずれを、複数パターン測定しておいてもよいが、測定に時間を要する。
【００８０】
第２実施形態ではＣＰＵ３０１は、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢がない場合（Ｓ２１３：Ｎｏ）、ロボット２００の加速度を下げて測定されたハンド２０２のずれに基づきシミュレーションを再度行う。これにより、ＣＰＵ３０１は、ステップＳ２１２のシミュレーションを複数回行う。これにより、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢が見つかった時点で、シミュレーションを打ち切ることができる。したがって、全ての加速度パターンでシミュレーションする場合よりも、シミュレーションに要する時間を短縮することができる。
【００８１】
またＣＰＵ３０１は、ステップＳ２１２のシミュレーションの結果、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢がない場合（Ｓ２１３：Ｎｏ）、試験動作をロボット２００の加速度を下げて再度行う（Ｓ２１９）。これにより、ＣＰＵ３０１は、ハンド２０２のずれを測定する際の試験動作を複数回行うことになる。これにより、仮想ワークＷＩ１を仮想ワークＷＩ２に組み付け可能な仮想ワークＷＩ２の位置及び姿勢が見つかった時点で、ハンド２０２のずれの測定を打ち切ることができる。したがって、全ての加速度パターンでハンド２０２のずれを測定する場合よりも、測定に要する時間を短縮することができる。
【００８２】
以上第２実施形態によれば、出力軸エンコーダ２６０を用いることで、ハンド２０２（ＴＣＰ）の実軌道のずれを、レーザ変位計のような外部測定器を用いずに、簡便かつ精度よく測定することができる。
【００８３】
また、加速度パラメータを徐々に低下させて組み立て可能となる指令軌道データＴＡをシミュレーションすることで作成するので、加速度を予め定めた閾値以下に大幅に低下させる必要がなく、組み付けを高精度に行うことができる。つまり、ハンド２０２の加速度を低下させる場合であっても、加速度の低下を最小限に抑えることができる。
【００８４】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【００８５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８６】
また、上述の第１及び第２実施形態では、処理部であって制御部でもあるロボット制御装置３００が、１つのコンピュータ（ＣＰＵ）で構成される場合について説明したが、これに限定するものではない。即ち、ロボット制御装置３００を、複数のコンピュータで構成してもよい。例えば、１つのコンピュータをシミュレータとして機能させ、別のコンピュータを軌道生成やロボット２００の制御などを行うコントローラとして機能させてもよい。このように複数のコンピュータで分散して処理を行うことにより、１つのコンピュータ当たりのタスクを軽減することができる。
【００８７】
また、上述の第１及び第２実施形態では、ロボット２００が、垂直多関節ロボットである場合について説明したが、水平多関節ロボット（スカラロボット）、パラレルリンクロボットなどであってもよい。
【００８８】
また、上述の第１実施形態では、ハンド２０２のずれを直接測定する場合について説明したが、これに限定するものでない。例えば、ハンド２０２に把持させた治具ＷＡのずれを測定することで、間接的にハンド２０２のずれを測定するようにしてもよい。この場合、レーザヘッド５０１Ｘ，５０１Ｙから出射されるレーザ光は、治具ＷＡに照射されることになる。
【００８９】
また、上述の第１実施形態では、測定器がレーザ変位計５００の場合について説明したが、これに限定するものではなく、例えば測定器がカメラなどであってもよい。この場合、カメラによりハンド２０２及び治具ＷＡの一方又は両方を撮像し、撮像画像からハンド２０２及び治具ＷＡの一方又は両方のずれを測定すればよい。
【００９０】
また、上述の第１及び第２実施形態では、ワークＷ２の位置及び姿勢を、移動ステージ６００により変更する場合について説明したが、これに限定するものではなく、例えばロボット２００とは別のロボットなどの搬送装置により変更するようにしてもよい。
【００９１】
また、上述の第１及び第２実施形態では、ロボット制御装置３００によりハンド２０２の振動などのずれを測定する場合について説明したが、これに限定するものではない。例えばロボット制御装置３００が、予め測定された実軌道データを、不図示のストレージや別のコンピュータなどから、直接又はネットワークを介して取得するようにしてもよい。また、シミュレーションによりハンド２０２の実軌道を計算するようにしてもよい。この場合、上述の第１及び第２実施形態におけるハンド２０２の実軌道を測定する工程は省略可能である。
【符号の説明】
【００９２】
１００…ロボットシステム、２００…ロボット、２００Ｉ…仮想ロボット、２０２…ハンド（把持部）、２６０…出力軸エンコーダ（エンコーダ、センサ部）、３００…ロボット制御装置（処理部、制御部）、５００…レーザ変位計（測定器、センサ部）、６００…移動ステージ、６０１…載置面、Ｗ１…ワーク（第１のワーク）、Ｗ２…ワーク（第２のワーク）、ＷＡ…治具、ＷＩ１…仮想ワーク（第１の仮想ワーク）、ＷＩ２…仮想ワーク（第２の仮想ワーク）
【図１】
2019093504.tif 000003
【図２】
2019093504.tif 000004
【図３】
2019093504.tif 000005
【図４】
2019093504.tif 000006
【図５】
2019093504.tif 000007
【図６】
2019093504.tif 000008
【図７】
2019093504.tif 000009
【図８】
2019093504.tif 000010
【図９】
2019093504.tif 000011
【図１０】
2019093504.tif 000012