(57)【要約】【課題】ロボットアームによる作業の精度を向上させる。【解決手段】ロボットシステム１００は、ロボットアーム２０１と、ロボット制御装置３００とを備える。ロボット制御装置３００は、ロボットアーム２０１が治具を支持した状態で作成された第１教示点、及び第１教示点を作成した際のロボットアーム２０１の姿勢に関する第１データを取得する。ロボット制御装置３００は、ロボットアーム２０１がワークＷ１を支持した状態で、第１教示点に従ってロボットアーム２０１を動作させ、その際のロボットアーム２０１の姿勢に関する第２データを取得する。ロボット制御装置３００は、第１データと第２データとの差に基づいて第１教示点を修正した第２教示点を作成する。【選択図】図１
2019123073.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームと、
前記ロボットアームの姿勢を制御する制御部と、を備え、
前記制御部は、
前記ロボットアームがワークとは異なる器具を支持した状態で作成された第１教示点、及び前記第１教示点を作成した際の前記ロボットアームの姿勢に関する第１データを取得し、
前記ロボットアームが前記ワークを支持した状態もしくは前記ロボットアームが何も支持していない状態で、前記第１教示点に従って前記ロボットアームを動作させ、その際の前記ロボットアームの姿勢に関する第２データを取得し、
前記第１データと前記第２データとの差に基づいて前記第１教示点を修正した第２教示点を作成することを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムにおいて、
前記器具は、教示治具もしくはカメラであることを特徴とするロボットシステム。
【請求項３】
請求項１又は２に記載のロボットシステムにおいて、
前記制御部は、外部から前記第１教示点、及び前記第１データを取得することを特徴とするロボットシステム。
【請求項４】
請求項１乃至３のいずれか１項に記載のロボットシステムにおいて、
前記第１データ及び前記第２データのそれぞれは、前記ロボットアームの先端における位置のデータを含むことを特徴とするロボットシステム。
【請求項５】
請求項１乃至４のいずれか１項に記載のロボットシステムにおいて、
前記ロボットアームは、モータと、前記モータの回転出力を減速して関節を動作させる減速機と、を有することを特徴とするロボットシステム。
【請求項６】
請求項５に記載のロボットシステムにおいて、
前記ロボットアームは、前記減速機の出力側に設けられた第１エンコーダを有し、
前記制御部は、前記第２データを、前記第１エンコーダの出力値に基づいて求めることを特徴とするロボットシステム。
【請求項７】
請求項１乃至６のいずれか１項に記載のロボットシステムにおいて、
前記制御部は、前記第１データと前記第２データとの差が所定量以下となるまで、前記第１教示点を繰り返し修正して、前記第２教示点を作成することを特徴とするロボットシステム。
【請求項８】
請求項４乃至６のいずれか１項に記載のロボットシステムにおいて、
前記第１データと前記第２データとの差は、前記ロボットアームの先端における並進方向の位置を示す成分と、回転方向の位置を示す成分とを含んでおり、
前記制御部は、前記各成分が、それぞれに割り当てた所定値以下となるまで、前記第１教示点を繰り返し修正して前記第２教示点を作成することを特徴とするロボットシステム。
【請求項９】
請求項５又は６に記載のロボットシステムにおいて、
前記ロボットアームは、前記減速機の入力側に設けられた第２エンコーダを有しており、
前記制御部は、前記第２データを取得する際に、前記ロボットアームの動作として、前記第１教示点に基づく指令値に、前記第２エンコーダの出力値が近づくように、前記モータをフィードバック制御することを特徴とするロボットシステム。
【請求項１０】
請求項１乃至９のいずれか１項に記載のロボットシステムにおいて、
前記第１教示点は、前記ロボットアームに一連の動作を行わせるための複数の教示点に含まれることを特徴とするロボットシステム。
【請求項１１】
ロボットアームの姿勢を制御するロボットアームの制御方法であって、
前記ロボットアームがワークとは異なる器具を支持した状態で作成された第１教示点、及び前記第１教示点を作成した際の前記ロボットアームの姿勢に関する第１データを取得し、
前記ロボットアームが前記ワークを支持した状態もしくは前記ロボットアームが何も支持していない状態で、前記第１教示点に従って前記ロボットアームを動作させ、その際の前記ロボットアームの姿勢に関する第２データを取得し、
前記第１データと前記第２データとの差に基づいて前記第１教示点を修正した第２教示点を作成することを特徴とするロボットアームの制御方法。
【請求項１２】
請求項１１に記載の制御方法をコンピュータに実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【請求項１４】
ロボットアームを用いて、第１ワークが第２ワークに組み付けられた物品を製造する物品の製造方法であって、
前記ロボットアームが前記第１ワークとは異なる器具を支持した状態で作成された第１教示点、及び前記第１教示点を作成した際の前記ロボットアームの姿勢に関する第１データを取得し、
前記ロボットアームが前記第１ワークを支持した状態で、前記第１教示点に従って前記ロボットアームを動作させ、その際の前記ロボットアームの姿勢に関する第２データを取得し、
前記第１データと前記第２データとの差に基づいて前記第１教示点を修正した第２教示点を作成し、
前記第２教示点に従って前記ロボットアームを動作させて、前記第１ワークを前記第２ワークに組み付けることを特徴とする物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム、ロボットアームの制御方法、プログラム、記録媒体、及び物品の製造方法に関する。
【背景技術】
【０００２】
工場等において、各種の作業を行わせる産業用ロボットが広く普及している。産業用ロボットの多くは、制御方式としてティーチングプレイバック方式を採用している。ティーチングプレイバック方式は、教示動作と再生動作とで成り立っている。教示動作では、教示ペンダント等の操作装置を作業者が操作して、ロボットアームの先端を所望の教示位置に合わせ、その時のロボットアームの各関節の位置情報、つまり教示点の情報を、ロボットコントローラのメモリに記憶させる。再生動作では、メモリ内の教示点の情報を読み出し、読み出した教示点に従って、ロボットアームの各関節についてサーボ制御する。
【０００３】
ロボットアームを教示する際、ロボットアームの先端を精密に位置決めするために、高精度に製作した一対の治具を用いる。一対の治具のうち、一方の治具をロボットアームの先端に支持させ、目標位置に配置した他方の治具に一方の治具を嵌合させる動作を、作業者が教示ペンダント等を操作することにより、ロボットアームに行わせる。このように、作業者は、ロボットアームを目視等により確認しながら、ロボットアームの教示点を決める。この方法では、工数が増大するということから、カメラをロボットアームに搭載させて、自動での教示を行う方法も提案されている。
【０００４】
ロボットアームの関節には、減速機が配置されているのが一般的である。減速機は、リンクと比較して剛性が低いため、ロボットアームの各関節に配置した減速機が撓むことにより、ロボットアームの先端の位置がずれることがある。
【０００５】
特許文献１には、関節を駆動するモータに流れる電流値より求めたトルクと、減速機のバネ定数よりアームの各関節の撓み量を算出し、各関節の撓み量により、各関節の指令角度を補正する方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−０２５２６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１には、ロボットアームの各関節の撓み量を、減速機のバネ定数を用いて計算することが記載されているが、減速機のバネ定数は、減速機に掛る力の大きさに応じて変化する。このため、ロボットアームの各関節の撓み量を正確に計算するのは困難であった。
【０００８】
ロボットアームを教示するときには、重さのある治具やカメラなど教示に用いる器具をロボットアームに支持させる必要がある。ロボットが例えば組立作業や搬送作業などの実際の作業を行うようにロボットアームを動作させる場合、ロボットアームは、器具を支持していない状態となる。このため、ロボットアームの先端に掛る力は、教示を行ったときに掛る力とは異なっている。例えば、ロボットアームの先端にハンドが取り付けられる場合には、ハンドにワークを把持させるかどうかの違いでもロボットアームの先端に掛る力が異なる。ハンドにワークを把持させる場合でも、ワークの重量によってロボットアームの先端に掛る力が異なる。このように、状況に応じてロボットアームの先端に掛る力が大きく異なるため、ロボットアームに精密な作業を行わせるのが困難であった。
【０００９】
本発明は、ロボットアームによる作業の精度を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
本発明のロボットシステムは、ロボットアームと、前記ロボットアームの姿勢を制御する制御部と、を備え、前記制御部は、前記ロボットアームがワークとは異なる器具を支持した状態で作成された第１教示点、及び前記第１教示点を作成した際の前記ロボットアームの姿勢に関する第１データを取得し、前記ロボットアームが前記ワークを支持した状態もしくは前記ロボットアームが何も支持していない状態で、前記第１教示点に従って前記ロボットアームを動作させ、その際の前記ロボットアームの姿勢に関する第２データを取得し、前記第１データと前記第２データとの差に基づいて前記第１教示点を修正した第２教示点を作成することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ロボットアームによる作業の精度が向上する。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係るロボットシステムを模式的に示す斜視図である。
【図２】第１実施形態に係るロボットアームの関節を示す断面模式図である。
【図３】第１実施形態に係るロボットシステムの制御系を示すブロック図である。
【図４】第１実施形態に係るロボットアームの制御方法を説明するためのフローチャートである。
【図５】（ａ）及び（ｂ）は、第１実施形態に係るロボットアームの動作を説明するための図である。
【図６】第１実施形態に係るロボットシステムの制御系を機能的に表した機能ブロック図である。
【図７】第１実施形態に係るロボットアームの制御方法を説明するためのフローチャートである。
【図８】（ａ）及び（ｂ）は、第１実施形態に係るロボットアームの動作を説明するための図である。
【図９】第２実施形態に係るロボットアームの制御方法を示すフローチャートである。
【図１０】第３実施形態に係るロボットアームの制御方法を示すフローチャートである。
【図１１】第４実施形態に係るロボットアームの制御方法を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１４】
［第１実施形態］
図１は、第１実施形態に係るロボットシステム１００を模式的に示す斜視図である。ロボットシステム１００は、ロボット２００と、ロボット制御装置３００と、教示ペンダント４００と、ディスプレイ５００とを備える。ロボット２００は、組み付け作業等を行う産業用ロボットである。ロボット制御装置３００は、制御部の一例であり、教示装置を兼ねる。教示ペンダント４００は、操作装置の一例である。ディスプレイ５００は、表示装置の一例である。ロボット２００、教示ペンダント４００、及びディスプレイ５００は、ロボット制御装置３００に接続され、ロボット制御装置３００と信号の送受信を行う。ロボット２００は、台座の上面１５０に配置されている。教示ペンダント４００は、作業者が操作するものであり、ロボット２００やロボット制御装置３００の動作を指示するのに用いる。
【００１５】
ロボット２００は、垂直多関節のロボットであり、ロボットアーム２０１と、ロボットアーム２０１の先端に取り付けられたエンドエフェクタの一例であるハンド２０２と、を備えている。ロボットアーム２０１の基端は、台座の上面１５０に固定されている。ハンド２０２は、物体、例えば部品、ツール、治具、カメラ等を把持する把持部である。
【００１６】
ロボットアーム２０１は、複数の関節、例えば６つの関節Ｊ１〜Ｊ６で連結された複数のリンク２１０〜２１６を有する。以下、ロボットアーム２０１の関節が回転関節である場合について説明するが、関節が直動関節であってもよい。以下、「関節の位置」とは、関節が回転関節の場合は関節の回転位置、即ち角度を示し、関節が直動関節の場合は関節の並進位置を示す。
【００１７】
ロボットアーム２０１は、各関節Ｊ１〜Ｊ６を各関節軸まわりにそれぞれ回転駆動する複数の駆動機構２３０を有している。各関節Ｊ１〜Ｊ６を回転駆動することで、ロボットアーム２０１の姿勢を変更することができる。ロボットアーム２０１の姿勢を変更することで、ロボットアーム２０１の先端に設けられたハンド２０２を、任意の位置に変更することができる。
【００１８】
ハンド２０２は、複数のフィンガ２２０を有し、複数のフィンガ２２０を動作させることで、ワーク等を把持可能となっている。第１実施形態では、第１ワークであるワークＷ１を、第２ワークであるワークＷ２に組み付ける動作をロボット２００に行わせる。したがって、ハンド２０２は、ワークＷ１を把持可能となっている。
【００１９】
ロボット制御装置３００は、ロボットアーム２０１の姿勢を制御する。ロボットアーム２０１の姿勢は、ロボットアーム２０１の先端における作業空間内での位置、即ちロボットアーム２０１の各関節Ｊ１〜Ｊ６の位置で決まる。ロボットアーム２０１の先端における位置は、ロボットアーム２０１の基端、即ち台座の上面１５０を基準とするベース座標系Σにおいて、並進方向の位置を示す３つの成分と、回転方向の位置を示す３つの成分で表現される。ロボット制御装置３００において、ロボットアーム２０１の先端は、ＴＣＰ（Tool  Center  Point）で定義される。ベース座標系ΣにおけるＴＣＰの位置を教示ペンダント４００で指示することで、ロボットアーム２０１の先端、即ちハンド２０２の位置を決めることができる。
【００２０】
なお、図１では図示を省略しているが、ロボットアーム２０１とハンド２０２との間には、力センサが配置されていてもよい。この場合、ハンド２０２は、不図示の力センサを介してロボットアーム２０１の先端に取り付けられている。
【００２１】
以下、ロボットアーム２０１の関節Ｊ１〜Ｊ６の構成について説明する。第１実施形態においては、関節Ｊ１〜Ｊ６は同様の構成であるため、関節Ｊ２について説明し、他の関節Ｊ１，Ｊ３〜Ｊ６の説明は省略する。
【００２２】
図２は、第１実施形態に係るロボットアーム２０１の関節Ｊ２を示す断面模式図である。図２に示すように、ロボットアーム２０１の関節Ｊ２には、駆動機構２３０、第１エンコーダの一例である出力側エンコーダ２６０、第２エンコーダの一例である入力側エンコーダ２５０等が配置されている。駆動機構２３０は、サーボモータ２３１と、サーボモータ２３１の回転軸２３２の回転を減速して出力する減速機２３３と、を有する。減速機２３３の出力軸２３４は、例えばリンク２１２に接続されている。減速機２３３を介したサーボモータ２３１の駆動力により、リンク２１２がリンク２１１に対して相対的に回転する。
【００２３】
サーボモータ２３１は、ブラシレスＤＣモータやＡＣサーボモータなどの電動モータであり、図１に示すサーボ制御装置３５０によってサーボ制御される。なお、図１では、サーボ制御装置３５０は、ロボットアーム２０１の内部に配置されている場合について図示しているが、配置される箇所はこれに限定するものではなく、例えばロボット制御装置３００の筐体内部に配置されている場合であってもよい。
【００２４】
減速機２３３は、例えば波動歯車減速機であり、減速比Ｎ（例えばＮ＝５０）でサーボモータ２３１の回転出力を減速して関節Ｊ２を動作させる。これにより、リンク２１２がリンク２１１に対して関節Ｊ２で相対的に回転する。減速機２３３の出力軸２３４の回転角度が、関節Ｊ２の角度となる。
【００２５】
入力側エンコーダ２５０及び出力側エンコーダ２６０は、ロータリエンコーダであり、光学式或いは磁気式のいずれであってもよく、また、アブソリュート形或いはインクリメンタル形のいずれであってもよい。入力側エンコーダ２５０は、減速機２３３の入力側に設けられ、サーボモータ２３１の回転軸２３２の角度情報である出力値を示す信号をサーボ制御装置３５０に出力する。出力側エンコーダ２６０は、減速機２３３の出力側、即ちリンク２１１とリンク２１２との間に設けられ、リンク２１１に対するリンク２１２の相対角度、即ち関節Ｊ２の角度情報である出力値を示す信号をサーボ制御装置３５０に出力する。
【００２６】
なお、リンク２１１とリンク２１２との間には、クロスローラベアリング２３７が設けられており、リンク２１１とリンク２１２とは、クロスローラベアリング２３７を介して回転自在に連結されている。
【００２７】
図３は、第１実施形態に係るロボットシステムの制御系を示すブロック図である。ロボット制御装置３００は、コンピュータで構成されている。ロボット制御装置３００は、処理部の一例であるＣＰＵ（Central  Processing  Unit）３０１を備える。ロボット制御装置３００は、記憶部の一例として、ＲＯＭ（Read  Only  Memory）３０２、ＲＡＭ（Random  Access  Memory）３０３、及び内部記憶装置としてのＨＤＤ（Hard  Disk  Drive）３０４を備える。ロボット制御装置３００は、記録ディスクドライブ３０５、入出力インタフェースであるＩ／Ｏ３１１〜３１６、及びサーボ制御装置３５０を備える。
【００２８】
ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５、及びＩ／Ｏ３１１〜３１６は、互いに通信可能にバス３１０で接続されている。Ｉ／Ｏ３１１には、サーボ制御装置３５０が接続され、Ｉ／Ｏ３１２には、出力側エンコーダ２６０が接続されている。また、Ｉ／Ｏ３１３には、教示ペンダント４００が接続され、Ｉ／Ｏ３１４には、ディスプレイ５００が接続されている。Ｉ／Ｏ３１５には、外部記憶装置６００が接続可能である。Ｉ／Ｏ３１６は、通信ネットワーク７００に接続可能である。
【００２９】
サーボ制御装置３５０には、各関節Ｊ１〜Ｊ６に対応するサーボモータ２３１及び入力側エンコーダ２５０が接続されている。なお、図３には、サーボモータ２３１、入力側エンコーダ２５０及び出力側エンコーダ２６０は、１つの関節分のみ図示しているが、第１実施形態では、６つの関節が存在する。したがって、図３において図示は省略するが、サーボモータ２３１、入力側エンコーダ２５０及び出力側エンコーダ２６０の組が６つ存在する。
【００３０】
ＣＰＵ３０１は、ロボットアーム２０１の各関節Ｊ１〜Ｊ６を駆動するサーボモータ２３１を、サーボ制御装置３５０を介して制御することで、ロボットアーム２０１の動作を制御する。また、ＣＰＵ３０１は、ディスプレイ５００を制御して、ディスプレイ５００に画像を表示させる。出力側エンコーダ２６０は、検知結果である角度情報を示す出力値の信号を、ＣＰＵ３０１へ出力する。ＣＰＵ３０１は、出力側エンコーダ２６０からの出力値の信号の入力を受ける。また、ＣＰＵ３０１は、作業者の操作によって教示ペンダント４００から送信される指示を示す信号を受け付ける。
【００３１】
ＨＤＤ３０４には、制御及び演算用のプログラム３２１、タスクプログラム３２２及び教示データ３２３が記憶される。記録ディスクドライブ３０５は、記録ディスク３３０に記録された各種データやプログラム等を読み出すことができる。
【００３２】
プログラム３２１は、ＣＰＵ３０１に、後述する各種演算や各種制御を行わせるプログラムである。タスクプログラム３２２は、例えばロボット言語で記述されたテキストファイルであり、ユーザ又はコンピュータにより変更が可能となっている。タスクプログラム３２２には、例えば「ＴＣＰを教示点Ｐ１から教示点Ｐ２に直線移動する」といった内容の命令文がロボット言語で記述されている。教示点のパラメータ数値は、タスクプログラム３２２に記述されてもよいが、第１実施形態では、タスクプログラム３２２とは別のファイルに教示データ３２３として記憶部であるＨＤＤ３０４に記憶される。即ち、教示データ３２３には、ロボットアーム２０１に組立作業などの一連の動作を行わせる複数の教示点の情報が含まれている。なお、教示点は、ＴＣＰの目標値であり、ベース座標系Σを基準に、並進方向の位置を示す３つの成分（Ｘ，Ｙ，Ｚ）、及び回転方向の位置を示す３つの成分（ＴＸ，ＴＹ，ＴＺ）からなる６つの成分（Ｘ，Ｙ，Ｚ，ＴＸ，ＴＹ，ＴＺ）で構成される。
【００３３】
ＣＰＵ３０１は、タスクプログラム３２２を読み込み、教示点を結ぶＴＣＰの軌道データを、タスクプログラム３２２にて指定された補間方法、例えば、直線補間や円弧補間等により生成する。例えば直線補間の場合、ＣＰＵ３０１は、ＴＣＰを直線移動させる軌道データを生成する。
【００３４】
軌道データは、例えば１［ｍｓ］などの所定時間毎に指令する、ＴＣＰの位置である６つのパラメータを含む点データの集合であり、速度及び加速度などの時間情報を含んでいることになる。ＣＰＵ３０１は、軌道データの各点データを、ロボットの逆運動学計算により、各関節Ｊ１〜Ｊ６の角度（位置）の目標値を示す角度指令値（位置指令値）に変換する。更に、ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６の角度指令値から、各関節Ｊ１〜Ｊ６に配置したサーボモータ２３１の回転角度の目標値を示す角度指令値（位置指令値）に変換する。具体的には、ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６の角度指令値に、減速機２３３の減速比Ｎを掛け算することで、各関節Ｊ１〜Ｊ６に配置したサーボモータ２３１に対する角度指令値を計算する。
【００３５】
ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６のサーボモータ２３１に対する指令値の一例として角度指令値を、所定時間毎にサーボ制御装置３５０に出力する。サーボ制御装置３５０は、入力側エンコーダ２５０により検知される角度、即ち入力側エンコーダ２５０からの出力値が角度指令値に近づくようにサーボモータ２３１に供給する電流を制御する。このように、サーボ制御装置３５０は、教示点の情報に基づく角度指令値に、入力側エンコーダ２５０の検知結果が近づくようにフィードバック制御する。
【００３６】
以下、ロボットアーム２０１の制御方法について詳細に説明する。第１実施形態における制御方法としては、教示データ３２３を作成する工程と、作成した教示データ３２３を修正する工程とに大別される。教示データ３２３を作成する工程においては、作業者が、教示ペンダント４００を操作することで、ロボットアーム２０１に、組立作業や搬送作業などの所定の作業に必要な一連の動作を行わせる。作業者は、ロボットアーム２０１の状態を目視により確認しながら、教示ペンダント４００を操作することにより、複数の教示点の情報（データ）を順番に決めていく。
【００３７】
以下、教示データ３２３を作成する工程（教示工程，教示処理）について具体的に説明する。図４は、第１実施形態に係るロボットアーム２０１の制御方法を説明するためのフローチャートである。図５（ａ）及び図５（ｂ）は、ロボットアーム２０１の動作を説明するための図である。まず、図５（ａ）及び図５（ｂ）に示すような、教示に用いる器具の一例である一対の教示治具ＷＡ，ＷＢを用意しておく。教示治具ＷＡ，ＷＢは、高精度に製作されている。ハンド２０２に対して高精度に位置決めした状態で教示治具ＷＡをハンド２０２に把持させる。教示治具ＷＢをベース座標系Σにおいて高精度に位置決めしておく。教示治具ＷＡを教示治具ＷＢに嵌合させることにより、教示治具ＷＢに対する教示治具ＷＡの位置が高精度に決まる。即ち、ロボット２００に、教示治具ＷＡを教示治具ＷＢに嵌合させる作業を行わせることで、ロボットアーム２０１の先端をベース座標系Σにおいて高精度に位置決めすることができる。なお、ロボットアーム２０１の先端を高精度に位置決めする必要がない場合には、教示治具ＷＡを教示治具ＷＢに嵌合させる作業をロボット２００に行わせなくてもよい。
【００３８】
以下、図４に示すフローチャートに沿って、ハンド２０２に教示治具ＷＡを把持させた状態で教示を行う場合について説明する。なお、複数の教示点のうち、高い教示精度の必要がない教示点においても、ハンド２０２に対する教示治具ＷＡの位置がずれる可能性があるため、ハンド２０２に教示治具ＷＡを把持させた状態で教示を行うのが好ましい。
【００３９】
ＣＰＵ３０１は、ロボットアーム２０１に教示動作を行わせる（Ｓ１０１）。即ち、ＣＰＵ３０１は、作業者が操作する教示ペンダント４００の指示に従い、ハンド２０２に教示治具ＷＡを把持させた状態でロボットアーム２０１を動作させる。
【００４０】
作業者は、目視によりロボットアーム２０１の姿勢が定まったと判断したときには、教示ペンダント４００を操作して、教示ペンダント４００に教示点の情報を決定する指示をＣＰＵ３０１に送信させる。ＣＰＵ３０１は、教示ペンダント４００の指示に従い、そのときにサーボ制御装置３５０に指令した指令値に基づき、教示点の情報を示す６つの成分それぞれのパラメータ値を決定する。教示点の情報を決定するとは、記憶部であるＨＤＤ３０４に教示点の情報を記憶させることである。即ち、ＣＰＵ３０１は、ＨＤＤ３０４に教示点の情報を記憶させる（Ｓ１０２）。
【００４１】
サーボ制御装置３５０に指令する指令値は、サーボモータ２３１の角度に対応する角度指令値である。ＣＰＵ３０１は、教示点を求める処理として、サーボモータ２３１の角度に対応する角度指令値を、関節の角度指令値に変換し、更にロボットの順運動学計算により、ＴＣＰの位置を示す指令値に変換する。このようにして、ＴＣＰの位置を示す指令値、即ち教示点の情報が求まる。なお、この順運動学計算には、ロボットアーム２０１の撓み、即ち減速機２３３の撓みの計算は含まれていない。
【００４２】
ＣＰＵ３０１は、ロボットアーム２０１を、教示点の情報を決定したときに取らせた姿勢としたまま、各関節Ｊ１〜Ｊ６に配置されている出力側エンコーダ２６０から、各関節Ｊ１〜Ｊ６の角度の情報を示す出力値を取得する（Ｓ１０３）。
【００４３】
ＣＰＵ３０１は、ロボットアーム２０１の姿勢に関する第１データとして、関節Ｊ１〜Ｊ６の角度情報に基づき、ロボットの順運動学計算により、ロボットアーム２０１の先端における実際の位置を求める（Ｓ１０４）。このステップＳ１０４で求めた位置の情報（データ）は、後の比較演算に用いる基準値となる。以下、ステップＳ１０４で求めた、ロボットアーム２０１の先端における位置の情報を、基準位置の情報という。基準位置の情報は、並進方向の位置を示す３つの成分と、回転方向の位置を示す３つの成分とを含む。
【００４４】
以上、第１実施形態では、ＣＰＵ３０１は、教示点を作成したときの各関節Ｊ１〜Ｊ６に設けた出力側エンコーダ２６０の検知結果を取得し、これら検知結果に基づき、ロボットアーム２０１の先端の基準位置を測定する。ＣＰＵ３０１は、測定により得られた基準位置の情報を、ＨＤＤ３０４に記憶させる（Ｓ１０５）。
【００４５】
なお、ロボットアーム２０１が備えている複数の出力側エンコーダ２６０を用いてロボットアーム２０１の先端の位置を測定するものとしたが、これに限定するものではない。例えば、ロボットアーム２０１の周囲に、測定器の一例であるレーザ変位計を配置してもよい。この場合、ＣＰＵ３０１は、レーザ変位計を用いて、ロボットアーム２０１の先端の位置を測定することになる。
【００４６】
ロボットアーム２０１の各関節Ｊ１〜Ｊ６に配置した減速機２３３は、ロボット２００の自重及びハンド２０２が把持した教示治具ＷＡの重量により、撓みが生じる。したがって、出力側エンコーダ２６０から得られる角度情報には、減速機２３３の撓みによる変位分が重畳していることになる。したがって、各関節Ｊ１〜Ｊ６の出力側エンコーダ２６０から得られる角度情報からロボットの順運動学計算によって求まるロボットアーム２０１の先端の位置は、実際の位置に近いものとなる。
【００４７】
ＣＰＵ３０１は、教示が完了したかどうか、即ち複数の教示点の情報の全てについて決定したかどうかを判断する（Ｓ１０６）。ＣＰＵ３０１は、教示が完了していない場合（Ｓ１０６：ＮＯ）、ステップＳ１０１に戻り、ロボットアーム２０１に次の教示動作を行わせる。ステップＳ１０１〜Ｓ１０６を繰り返すことで、複数の教示点の情報とともに、各教示点と対応付けた基準位置の情報が得られる。
【００４８】
組立作業を教示する場合を例に説明する。図５（ａ）の教示点Ｐ１は、低い精度でもよいものとする。図５（ｂ）の教示点Ｐ２は、ワークＷ１をワークＷ２に組み付ける位置に対応し、高い精度が求められるものとする。ＣＰＵ３０１は、作業者が操作する教示ペンダント４００の指示に従い、図５（ａ）に示すように、ハンド２０２に教示治具ＷＡを把持させた状態で、対象となる教示点Ｐ１の位置にロボットアーム２０１の先端を移動させる。ロボットアーム２０１の姿勢が定まったら、ＣＰＵ３０１は、作業者が操作する教示ペンダント４００の指示に従い、そのときにサーボ制御装置３５０に指令した情報から教示点Ｐ１の情報を決定する。
【００４９】
次に、ＣＰＵ３０１は、作業者が操作する教示ペンダント４００の指示に従い、図５（ｂ）に示すように、ハンド２０２に教示治具ＷＡを把持させた状態で、対象となる教示点Ｐ２の位置にロボットアーム２０１の先端を移動させる。教示治具ＷＡが教示治具ＷＢに嵌合完了したとき、ロボットアーム２０１の先端は、所定の位置に高精度に位置決めされている状態となる。ロボットアーム２０１の姿勢が定まったら、ＣＰＵ３０１は、作業者が操作する教示ペンダント４００の指示に従い、そのときにサーボ制御装置３５０に指令した情報から教示点Ｐ２の情報を決定する。教示治具ＷＡ，ＷＢを用いずに教示点を決める方法と、教示治具ＷＡ，ＷＢを用いて教示点を決める方法のうちいずれかの方法で次々と教示点を決めていくことで、一連の動作に対応する複数の教示点Ｐ１，Ｐ２，…を順次決定していく。このように決定された教示点Ｐ１，Ｐ２，…の情報は、教示データ３２３として、ＨＤＤ３０４に記憶させていくことになる。
【００５０】
なお、ハンド２０２に教示治具ＷＡを把持させることで、ロボットアーム２０１に教示治具ＷＡを支持させる場合について説明したが、これに限定するものではない。例えば、ハンド２０２に、教示に用いる器具としてカメラを把持させて、カメラを用いてロボットアーム２０１を教示してもよい。また、教示に用いる器具をハンド２０２に把持させる場合について説明したが、ロボットアーム２０１の先端に、直接的又は間接的に教示に用いる器具を設置してもよい。いずれの場合であっても、ロボットアーム２０１は、教示に用いる器具を支持することになる。また、教示に用いる器具として、カメラを用いた場合、ＣＰＵ３０１は、プログラム３２１に従って、自動で教示を行ってもよい。
【００５１】
ところで、実際にロボット２００に作業させる際、ロボットアーム２０１には、教示治具ＷＡを支持させていない状態となる。ロボット２００に行わせる実際の作業のうち場面に応じて異なるが、ハンド２０２は、何も把持していないか、或いは教示治具ＷＡとは異なるワークＷ１を把持している状態となる。即ち、ロボットアーム２０１は、ワークＷ１を支持した状態、或いは何も支持していない状態となる。よって、ロボットアーム２０１の先端にかかる荷重は、ステップＳ１０１〜Ｓ１０６にて教示を行ったときに対して変化することになる。これにより、ロボットアーム２０１の各関節Ｊ１〜Ｊ６における減速機２３３の撓み量が変化する。このため、入力側エンコーダ２５０を用いたセミクローズドループ制御によりロボットアーム２０１を動作させると、ロボットアーム２０１の先端の位置が、ステップＳ１０１〜Ｓ１０６にて教示を行ったときに対してずれることになる。
【００５２】
そこで、第１実施形態では、ＣＰＵ３０１は、ロボットアーム２０１の姿勢が、教示を行ったときの状態となるように、ＨＤＤ３０４に記憶された、教示点の情報、即ち教示データ３２３を修正する。つまり、ＣＰＵ３０１は、ＨＤＤ３０４に格納された教示データ３２３を書き換える。ＣＰＵ３０１は、教示データ３２３の修正が終わった後は、修正後の教示データ３２３に従って軌道データを作成し、この軌道データに従ってロボットアーム２０１を自動運転することになる。
【００５３】
以下、作成した教示データ３２３を修正する工程について説明する。図６は、第１実施形態に係るロボットシステム１００の制御系を機能的に表した機能ブロック図である。図７は、第１実施形態に係るロボットアーム２０１の制御方法を説明するためのフローチャートである。図８（ａ）及び図８（ｂ）は、ロボットアーム２０１の動作を説明するための図である。
【００５４】
図３に示すＣＰＵ３０１は、プログラム３２１を実行することにより、図６に示す、指令生成部６０１、第１測定部６０２、第２測定部６０３、比較部６０４及び修正部６０５として機能し、図７に示すフローを実行する。以下、各部６０１，６０２，６０３，６０４，６０５の動作について説明する。
【００５５】
指令生成部６０１は、ＨＤＤ３０４に記憶されている教示データ３２３に含まれる複数の教示点の情報のうち、いずれかの教示点の情報を読み出すことで、教示点の情報を取得する。指令生成部６０１は、読み出した教示点の情報に基づき、各関節のサーボモータ２３１の角度を指令する指令値である角度指令値（位置指令値）を求め、求めた角度指令値をサーボ制御装置３５０に送信する。サーボ制御装置３５０は、教示点の情報に基づく各関節Ｊ１〜Ｊ６のサーボモータ２３１の角度指令値に、入力側エンコーダ２５０の検知結果である出力値が近づくように、角度指令値と出力値との差に基づき、各サーボモータ２３１をフィードバック制御する。これにより、指令生成部６０１は、サーボ制御装置３５０を介して、教示点の情報に従ってロボットアーム２０１を動作させる（Ｓ２０１）。このとき、ハンド２０２は、教示治具ＷＡを把持しておらず、何も把持していないか、或いはワークＷ１を把持している状態とする。即ち、実際の作業と同じ状態又は近い状態を再現して、ロボット２００に実動作を行わせる。よって、指令生成部６０１は、教示治具ＷＡをロボットアーム２０１に支持させていない状態で教示点の情報に従ってロボットアーム２０１を動作させる。
【００５６】
第１測定部６０２は、出力側エンコーダ２６０から角度の情報である出力値の信号を取得する（Ｓ２０２）。前述したように、この角度の情報には、減速機２３３の撓みによる変位分が含まれている。第２測定部６０３は、ロボットアーム２０１の姿勢に関する第２データとして、各関節Ｊ１〜Ｊ６の角度の情報に基づき、順運動学計算により、ロボットアーム２０１の先端の位置を求める（Ｓ２０３）。即ち、測定部６０２，６０３は、各関節Ｊ１〜Ｊ６に設けた出力側エンコーダ２６０の検知結果を取得し、これら検知結果に基づき、ロボットアーム２０１の先端の位置を求める。このように、測定部６０２，６０３は、ロボットアーム２０１の先端の位置を測定することにより、測定結果として、ロボットアーム２０１の姿勢に関する第２データを取得する（Ｓ２０２，Ｓ２０３：測定工程，測定処理）。ロボットアーム２０１の先端における位置の情報は、並進方向の位置を示す３つの成分と、回転方向の位置を示す３つの成分とを含む。
【００５７】
なお、ロボットアーム２０１が備えている複数の出力側エンコーダ２６０を用いてロボットアーム２０１の先端の位置を測定するものとしたが、これに限定するものではない。例えば、ロボットアーム２０１の周囲に、測定器の一例であるレーザ変位計を配置してもよい。この場合、ＣＰＵ３０１は、レーザ変位計を用いて、ロボットアーム２０１の先端の位置を測定することになる。
【００５８】
比較部６０４は、ロボットアーム２０１の姿勢に関する第１データと第２データとの差を求める。本実施形態では、比較部６０４は、ＨＤＤ３０４に記憶されている、第１データである基準位置の情報を読み出すことで、基準位置の情報を取得する。また、比較部６０４は、第２データであるロボットアーム２０１の先端における位置の情報を、測定部６０２，６０３から取得する。比較部６０４は、基準位置に対する、測定部６０２，６０３により測定したロボットアーム２０１の先端の位置の差であるずれ量を求める（Ｓ２０４）。ずれ量は、前述したＴＣＰや教示点と同様、６つの成分を含み、６つの成分のパラメータを、（ΔＸ，ΔＹ，ΔＺ，ΔＴＸ，ΔＴＹ，ΔＴＺ）で表す。
【００５９】
修正部６０５は、ロボットアーム２０１の姿勢に関する第１データと第２データとの差に基づき、教示点を修正する。本実施形態では、修正部６０５は、比較部６０４により求めたずれ量に基づき、実動作時のロボットアーム２０１の先端の位置を教示時に一致させるような、教示点の情報の修正量を演算する。修正部６０５は、ＨＤＤ３０４に記憶されている教示点の情報を修正して書き換える（Ｓ２０６：修正工程，修正処理）。
【００６０】
具体例を挙げて説明する。図８（ａ）に示す教示点Ｐ１は、低い精度でもよく、修正しなくてもよいものとする。図８（ｂ）に示す教示点Ｐ２は、ワークＷ１をワークＷ２に組み付ける位置に対応し、高い精度が求められ、修正する必要があるものとする。即ち、複数の教示点の情報のうち、一部についてのみ、ステップＳ２０１〜Ｓ２０６で説明した処理を行えばよい。
【００６１】
以下、教示点Ｐ２の情報を修正する場合について説明する。本実施形態では、ロボットアーム２０１を教示点Ｐ２へ動作させる際に、先行する教示点がある場合、この例では、教示点Ｐ１があるので、その教示点Ｐ１から教示点Ｐ２へ動作させる。これは、各関節Ｊ１〜Ｊ６に配置されている減速機２３３にヒステリシスが存在するためであり、より実際の組み立て動作に近い状況を再現させるためである。また、図８（ｂ）に示すように、組み付け対象である図１に示すワークＷ２は、ワークＷ１と干渉しないように配置していない。
【００６２】
修正前の第１教示点である教示点Ｐ２の各成分のパラメータを（Ｘ２，Ｙ２，Ｚ２，ＴＸ２，ＴＹ２，ＴＺ２）とする。ずれ量の各成分のパラメータは（ΔＸ，ΔＹ，ΔＺ，ΔＴＸ，ΔＴＹ，ΔＴＺ）である。ＣＰＵ３０１は、このずれ量をキャンセルするように、即ちロボットアーム２０１の先端の位置のずれ量が小さくなるように、ステップＳ２０６において、教示点Ｐ２を修正して、修正後の第２教示点である新たな教示点Ｐ２Ａを作成する。そして、ＣＰＵ３０１は、ＨＤＤ３０４に記憶されている修正前の教示点Ｐ２を修正後の新たな教示点Ｐ２Ａに書き換える。具体的には、ＣＰＵ３０１は（Ｘ２−ΔＸ，Ｙ２−ΔＹ，Ｚ２−ΔＺ，ＴＸ２−ΔＴＸ，ＴＹ２−ΔＴＹ，ＴＺ２−ΔＴＺ）を求めて、これを新たな教示点Ｐ２Ａとする。
【００６３】
教示点Ｐ２Ａに修正した後、ＣＰＵ３０１は、Ｐ１→Ｐ２Ａ→・・・を辿る軌道データを生成してＨＤＤ３０４に記憶させておく。以上の修正作業により、ロボットアーム２０１の実質的な教示が完了する。
【００６４】
ＣＰＵ３０１は、ロボットアーム２０１の自動運転時には、生成した修正後の軌道データを再生する。つまり、サーボ制御装置３５０によるフィードバック制御中に軌道データを逐一修正するのではなく、教示点そのものを、教示の段階で修正しておき、実際の自動運転時には、サーボ制御装置３５０は予め修正された軌道データを再生することになる。よって、サーボ制御装置３５０における演算負荷が小さくなり、これによりロボット動作の応答性が向上する。
【００６５】
ロボットアーム２０１の先端のずれが、修正前よりも小さくなるので、ロボットアーム２０１の先端の位置精度が向上し、実際に行わせる作業の精度が向上する。よって、ロボット２００による精密な作業、例えば組立作業などにおいて、作業が失敗する割合が低減し、ロボット２００に所定の作業を確実に行わせることができる。なお、本実施形態では、ロボットアーム２０１の自動運転の前に教示点Ｐ２を修正して教示点Ｐ２Ａを作成するものとして説明したが、これに限定するものではない。例えば、ロボットアーム２０１の自動運転時、即ちワークＷ１をワークＷ２に組み付けて物品を製造するときに、ワークＷ１を支持したロボットアーム２０１の姿勢に関する第２データを取得して、教示点Ｐ２を修正して教示点Ｐ２Ａを作成するようにしてもよい。
【００６６】
［第２実施形態］
第２実施形態に係るロボットシステムにおけるロボットアームの制御方法について説明する。図９は、第２実施形態に係るロボットアームの制御方法を示すフローチャートである。なお、第２実施形態のロボットシステムの構成は、第１実施形態において説明した図１、図２、図３及び図６と同様であり、説明を省略する。また、第２実施形態において、教示工程も、第１実施形態において説明した図４と同様であるため、説明を省略する。
【００６７】
第２実施形態では、図６に示す修正部６０５による修正処理が第１実施形態と異なる。即ち、第２実施形態では、図９に示すように、ステップＳ２０４の処理とステップＳ２０６の処理との間に、ステップＳ２０５の処理がある点が、第１実施形態と異なる。なお、ステップＳ２０１〜Ｓ２０４，Ｓ２０６の処理は、第１実施形態で説明した図７に示す処理と同様である。
【００６８】
即ち、修正部６０５は、ステップＳ２０４において求めたずれ量が、所定量以下であるかどうか、即ち許容範囲内であるかどうかを判断する（Ｓ２０５）。修正部６０５は、ずれ量が所定量以下、即ち許容範囲内であれば（Ｓ２０５：ＹＥＳ）、教示点の情報を修正せずにそのまま終了する。修正部６０５は、ずれ量が所定量を超えている、即ち許容範囲を超えていれば（Ｓ２０５：ＮＯ）、教示点の情報を修正する（Ｓ２０６）。
【００６９】
所定量、即ち許容範囲は、作業者が図１に示す教示ペンダント４００を操作することにより任意に設定することができる。つまり、作業に応じて精度が異なるため、作業者は、求められる精度に応じて所定量（許容範囲）を設定すればよい。
【００７０】
ここで、第２実施形態では、ずれ量は、第１実施形態で説明した通り、ロボットアーム２０１の先端における並進方向及び回転方向それぞれに対する６つのずれ成分（ΔＸ，ΔＹ，ΔＺ，ΔＴＸ，ΔＴＹ，ΔＴＺ）を含んでいる。よって、修正部６０５は、ずれ量が所定量以下であるかどうかを、各ずれ成分（ΔＸ，ΔＹ，ΔＺ，ΔＴＸ，ΔＴＹ，ΔＴＺ）が、それぞれに割り当てた所定値（ＴＨＸ，ＴＨＹ，ＴＨＺ，ＴＨＴＸ，ＴＨＴＹ，ＴＨＴＺ）以下であるかどうかで判断する。第２実施形態において、所定量は、各ずれ成分に割り当てた所定値からなる。
【００７１】
具体的には、修正部６０５は、ステップＳ２０５では、６つ全てのずれ成分がそれぞれに割り当てた所定値以下であるかどうかを判断する。修正部６０５は、６つ全てのずれ成分が所定値以下である場合（Ｓ２０５：ＹＥＳ）、処理を終了し、そうでない場合（Ｓ２０５：ＮＯ）、ステップＳ２０６で教示点の情報を修正する。すなわち、６つのずれ成分のうち、１つでも所定値を上回るものがあれば、修正部６０５は、ステップＳ２０６で教示点の情報を修正する。なお、ステップＳ２０５において、修正部６０５は、ずれ量に含まれる複数のずれ成分の平均値が所定値以下であるかどうかを判断してもよい。平均値を求める場合には、単位系の同じずれ成分を平均すればよい。例えば、ずれ成分ΔＸ，ΔＹ，ΔＺの平均値、及び／又はずれ成分ΔＴＸ，ΔＴＹ，ΔＴＺの平均値が所定値以下であるかどうかを判断してもよい。また、ロボットアーム２０１の先端の位置のずれ量を求める場合について説明したが、ロボットアーム２０１の各関節Ｊ１〜Ｊ６の角度のずれ成分を含むずれ量を求めてもよい。この場合、修正部６０５は、６つ全てのずれ成分がそれぞれに割り当てた所定値以下であるかどうかを判断してもよいし、６つのずれ成分の平均値が所定値以下であるかどうかを判断してもよい。
【００７２】
第２実施形態においても、第１実施形態と同様、ロボットアーム２０１の先端のずれが、修正前よりも小さくなるので、ロボットアーム２０１の教示精度が向上し、実際に行わせる作業の精度が向上する。よって、ロボット２００による精密な作業、例えば組立作業などにおいて、作業が失敗する割合が低減し、ロボット２００に所定の作業を確実に行わせることができる。
【００７３】
［第３実施形態］
第３実施形態に係るロボットシステムにおけるロボットアームの制御方法について説明する。図１０は、第３実施形態に係るロボットアームの制御方法を示すフローチャートである。なお、第３実施形態のロボットシステムの構成は、第１実施形態において説明した図１、図２、図３及び図６と同様であり、説明を省略する。また、第３実施形態において、教示工程も、第１実施形態において説明した図４と同様であるため、説明を省略する。
【００７４】
第３実施形態では、図１０に示すように、ステップＳ２０１〜Ｓ２０６の処理を繰り返す点で、第２実施形態と異なる。なお、ステップＳ２０１〜Ｓ２０６の処理は、第２実施形態で説明した図９に示す処理と同様である。
【００７５】
即ち、修正部６０５は、ステップＳ２０４において求めたずれ量が、所定量以下であるかどうか、即ち許容範囲内であるかどうかを判断する（Ｓ２０５）。修正部６０５は、ずれ量が所定量以下、即ち許容範囲内であれば（Ｓ２０５：ＹＥＳ）、教示点の情報を修正せずにそのまま終了する。修正部６０５は、ずれ量が所定量を超えている、即ち許容範囲を超えていれば（Ｓ２０５：ＮＯ）、教示点の情報を修正する（Ｓ２０６）。そして、再びステップＳ２０１の処理に戻って、ステップＳ２０１〜Ｓ２０６を繰り返す。即ち、ＣＰＵ３０１は、ずれ量が許容範囲内に収束するまで、ステップＳ２０１〜Ｓ２０６を繰り返す。図８（ｂ）を例に説明すると、ＣＰＵ３０１は、ずれ量が許容範囲内に収束するまで教示点Ｐ２を繰り返し修正して教示点Ｐ２Ａを作成する。これにより、第２実施形態よりもロボットアーム２０１の教示精度を向上させることができる。
【００７６】
［第４実施形態］
第４実施形態に係るロボットシステムにおけるロボットアームの制御方法について説明する。図１１は、第４実施形態に係るロボットアームの制御方法を示すフローチャートである。なお、第４実施形態のロボットシステムの構成は、第１実施形態において説明した図１、図２、図３及び図６と同様であり、説明を省略する。また、第４実施形態において、教示工程も、第１実施形態において説明した図４と同様であるため、説明を省略する。
【００７７】
第４実施形態では、図３に示すＣＰＵ３０１は、図１１に示すように、ステップＳ２０１〜Ｓ２０４の処理を実行した後、図７に示すステップＳ２０６と同様の処理をステップＳ２１１で実行する。次に、ＣＰＵ３０１は、ステップＳ２０１〜Ｓ２０４と同様の処理をステップＳ２１２〜Ｓ２１５で実行する。そして、ＣＰＵ３０１は、図９に示すステップＳ２０５と同様の処理をステップＳ２１６で実行する。
【００７８】
ＣＰＵ３０１は、ずれ量が所定量を超えている、即ち許容範囲を超えていれば（Ｓ２１６：ＮＯ）、ステップＳ２１１の処理に戻り、ずれ量が所定量以下、即ち許容範囲内であれば（Ｓ２１６：ＹＥＳ）、処理を終了する。
【００７９】
このように、第４実施形態では、１回目はずれ量に拘らず教示点を修正し、２回目以降はずれ量が所定量を超える場合に教示点を修正する。これにより、第４実施形態においても、第１実施形態と同様、ロボットアーム２０１の先端のずれが、修正前よりも小さくなるので、ロボットアーム２０１の教示精度が向上し、実際に行わせる作業の精度が向上する。よって、ロボット２００による精密な作業、例えば組立作業などにおいて、作業が失敗する割合が低減し、ロボット２００に所定の作業を確実に行わせることができる。
【００８０】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【００８１】
上述の実施形態においては、ロボットが、垂直多関節ロボットである場合について説明したが、水平多関節ロボット（スカラロボット）、又はパラレルリンクロボットなどであってもよい。
【００８２】
また、上述の実施形態では、ロボット制御装置３００が、教示装置を兼ね、自ら教示点Ｐ２のデータと、教示点Ｐ２にロボットアーム２０１を動作させたときのロボットアーム２０１の姿勢に関する第１データとを作成する場合について説明した。しかし、この開示に限定するものではない。例えば、教示装置とロボット制御装置３００とが別々のコンピュータで構成されていてもよい。即ち、ロボット制御装置３００とは別のコンピュータで、教示点Ｐ２のデータと、教示点Ｐ２にロボットアーム２０１を動作させたときのロボットアーム２０１の姿勢に関する第１データとを作成してもよい。この場合ロボット制御装置３００は、作成された教示点Ｐ２のデータと、教示点Ｐ２にロボットアーム２０１を動作させたときのロボットアーム２０１の姿勢に関する第１データとを、図３の外部記憶装置６００又は通信ネットワーク７００から取得してもよい。
【００８３】
また、上述の実施形態では、ロボットアーム２０１の姿勢の第１データ及び第２データとして、それぞれロボットアーム２０１の先端における位置のデータを求める場合について説明したが、これに限定するものではない。例えば、ロボットアーム２０１の姿勢の第１データ及び第２データとして、それぞれロボットアーム２０１の関節Ｊ１〜Ｊ６の並進又は回転位置のデータを求めるようにしてもよい。具体的には、関節Ｊ１〜Ｊ６のそれぞれに設けられた出力側エンコーダ２６０の出力値を用いて、関節Ｊ１〜Ｊ６の並進又は回転位置のデータを求めればよい。
【００８４】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８５】
また、上述の実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４に限らず、記録ディスク３３０等、いかなる記録媒体であってもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、光ディスク（例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ）、光磁気ディスク、磁気テープ、不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等、種々の記録媒体を用いることができる。また、上述の実施形態におけるプログラム３２１を、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【００８６】
また、コンピュータが読み出したプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００８７】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述の実施形態の機能が実現される場合も含まれる。
【符号の説明】
【００８８】
１００…ロボットシステム、２００…ロボット、２０１…ロボットアーム、２０２…ハンド、２３１…サーボモータ（モータ）、２３３…減速機、３００…ロボット制御装置（制御部）
【図１】
2019123073.tif 000003
【図２】
2019123073.tif 000004
【図３】
2019123073.tif 000005
【図４】
2019123073.tif 000006
【図５】
2019123073.tif 000007
【図６】
2019123073.tif 000008
【図７】
2019123073.tif 000009
【図８】
2019123073.tif 000010
【図９】
2019123073.tif 000011
【図１０】
2019123073.tif 000012
【図１１】
2019123073.tif 000013