(57)【要約】【課題】修正対象の教示点の修正時に、工程動作の順番通りに修正対象の教示点までロボットを動作させたときの位置及び姿勢に対してロボットの位置及び姿勢がずれるのを低減する。【解決手段】ＣＰＵ２０１は、修正対象の教示点に動作するようロボットを制御する修正モードにおいてロボットを修正対象の教示点に動作させる際のロボットの各関節の動作方向が、工程動作モードのときに修正対象の教示点に対し１つ前の移動元の教示点から修正対象の教示点にロボットを動作させる際のロボットの各関節の動作方向と同じとなるよう、移動元の教示点とは異なる経由点を設定する。ＣＰＵ２０１は、修正モードにおいて、ロボットを、現在の位置及び姿勢から経由点を経由して修正対象の教示点に動作させる。【選択図】図３
2016040067.tif 000002
【特許請求の範囲】
【請求項１】
多関節のロボットと、
複数の教示点を順番に動作するよう前記ロボットを制御する工程動作モード、及び前記複数の教示点の中から修正対象の教示点の指定を受けたときに、前記修正対象の教示点のパラメータ値の修正に先立って、前記修正対象の教示点に動作するよう前記ロボットを制御する修正モードを有する制御部と、を備え、
前記制御部は、前記修正モードにおいて前記ロボットを前記修正対象の教示点に動作させる際の前記ロボットの各関節の動作方向が、前記工程動作モードのときに前記修正対象の教示点に対し１つ前の移動元の教示点から前記修正対象の教示点に前記ロボットを動作させる際の前記ロボットの各関節の動作方向と同じとなるよう、前記移動元の教示点とは異なる経由点を設定し、
前記ロボットを、現在の位置及び姿勢から前記経由点を経由して前記修正対象の教示点に動作させることを特徴とするロボット装置。
【請求項２】
前記制御部は、前記経由点から前記修正対象の教示点までの前記ロボットの動作経路が、前記移動元の教示点から前記修正対象の教示点までの前記ロボットの動作経路よりも短くなるように前記経由点を設定することを特徴とする請求項１に記載のロボット装置。
【請求項３】
前記制御部は、前記工程動作モードにて前記ロボットが前記移動元の教示点から前記修正対象の教示点に動作する動作経路上に、前記経由点を設定することを特徴とする請求項１又は２に記載のロボット装置。
【請求項４】
前記制御部は、前記修正対象の教示点に動作したとする前記ロボットの先端の位置と、前記経由点に動作したとする前記ロボットの先端の位置との距離が、予め設定された所定距離以上となるように前記経由点を設定することを特徴とする請求項１乃至３のいずれか１項に記載のロボット装置。
【請求項５】
ロボット種別毎に前記所定距離を記憶する距離情報記憶部を備え、
前記制御部は、前記ロボットに対応する前記所定距離を前記距離情報記憶部から取得して、前記経由点を設定することを特徴とする請求項４に記載のロボット装置。
【請求項６】
前記各教示点に対して移動先の教示点に前記ロボットが動作する際の前記ロボットの各関節の動作方向を示す動作方向データを記憶する動作記憶部を備え、
前記制御部は、前記修正モードにて前記経由点を設定する際に、前記動作記憶部に記憶された前記動作方向データを用いることを特徴とする請求項１乃至５のいずれか１項に記載のロボット装置。
【請求項７】
作業者に報知する報知部を備え、
前記制御部は、前記移動元の教示点から修正後の前記修正対象の教示点に前記ロボットを動作させるときの前記ロボットの関節の動作方向が、前記移動元の教示点から修正前の前記修正対象の教示点に前記ロボットを動作させるときの前記ロボットの関節の動作方向と異なる場合には、前記報知部に報知させることを特徴とする請求項１乃至６のいずれか１項に記載のロボット装置。
【請求項８】
複数の教示点を順番に動作するよう多関節のロボットを制御する工程動作モード、及び前記複数の教示点の中から修正対象の教示点の指定を受けたときに、前記修正対象の教示点のパラメータ値の修正に先立って、前記修正対象の教示点に動作するよう前記ロボットを制御する修正モードを有する制御部によるロボット制御方法であって、
前記制御部が、前記修正モードにおいて前記ロボットを前記修正対象の教示点に動作させる際の前記ロボットの各関節の動作方向が、前記工程動作モードのときに前記修正対象の教示点に対し１つ前の移動元の教示点から前記修正対象の教示点に前記ロボットを動作させる際の前記ロボットの各関節の動作方向と同じとなるよう、前記移動元の教示点とは異なる経由点を設定する工程と、
前記制御部が、前記ロボットを、現在の位置及び姿勢から前記経由点を経由して前記修正対象の教示点に動作させる工程と、を備えたことを特徴とするロボット制御方法。
【請求項９】
コンピュータに、請求項８に記載のロボット装置の制御方法の各工程を実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置、ロボット制御方法、プログラム及び記録媒体に関し、特に、複数の教示点のうち、ある教示点を修正する際のロボットの動作の制御に関する。
【背景技術】
【０００２】
従来、ロボットの教示点のパラメータ値を決定する作業（教示作業）を行う際には、例えばオフライン（コンピュータシミュレーション）で教示作業を行ったり、実際にロボットを動作させて教示作業を行ったりしていた。
【０００３】
このような教示作業後であっても、複数の教示点のうち、ある教示点についてパラメータ値を修正する場合が生じており、このような場合には、実際にロボットを動作させて修正する必要があった。
【０００４】
特許文献１には、ロボットの現在位置から修正が必要なロボットの教示点へ移動するためのパスを作成し、そのパスを辿って修正対象の教示点にロボットを移動させることが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２５４１７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された技術では、修正対象の教示点にロボットを移動させる際に、実際の工程動作時と同じ方向から進入するとは限らない。修正対象の教示点へ動作させるロボットの進入方向が工程動作時と異なると、修正時に教示点にロボットを移動させたときのロボットの位置又は姿勢に対して、工程動作時に教示点にロボットを移動させたときのロボットの位置又は姿勢がずれることがあった。
【０００７】
このずれを発生させないために、実際の工程動作の順番に教示点を移動させて修正対象の教示点に移動させるか、又は現在位置から修正対象の教示点に移動させた後、一旦工程動作時の移動元の教示点に戻って再度修正対象の教示点に移動させる必要があった。しかし、このような教示点の修正の作業は、多大な時間を要し、作業者にとって大きな負担となっていた。
【０００８】
そこで、本発明は、修正対象の教示点の修正時に、工程動作の順番通りに修正対象の教示点までロボットを動作させたときの位置及び姿勢に対してロボットの位置及び姿勢がずれるのを低減することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のロボット装置は、多関節のロボットと、複数の教示点を順番に動作するよう前記ロボットを制御する工程動作モード、及び前記複数の教示点の中から修正対象の教示点の指定を受けたときに、前記修正対象の教示点のパラメータ値の修正に先立って、前記修正対象の教示点に動作するよう前記ロボットを制御する修正モードを有する制御部と、を備え、前記制御部は、前記修正モードにおいて前記ロボットを前記修正対象の教示点に動作させる際の前記ロボットの各関節の動作方向が、前記工程動作モードのときに前記修正対象の教示点に対し１つ前の移動元の教示点から前記修正対象の教示点に前記ロボットを動作させる際の前記ロボットの各関節の動作方向と同じとなるよう、前記移動元の教示点とは異なる経由点を設定し、前記ロボットを、現在の位置及び姿勢から前記経由点を経由して前記修正対象の教示点に動作させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、修正対象の教示点の修正時に、工程動作の順番通りに修正対象の教示点までロボットを動作させたときの位置及び姿勢に対してロボットの位置及び姿勢がずれるのを低減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るロボット装置を示す斜視図である。
【図２】ロボットの第２関節を示す部分断面図である。
【図３】ロボット装置の制御装置の構成を示すブロック図である。
【図４】教示点情報を示す説明図である。
【図５】ロボット種別毎のずれ解消用距離情報を示す説明図である。
【図６】教示点情報をティーチングペンダントの液晶ディスプレイ上に表示した状態を示す説明図である。
【図７】修正モードが選択された際のロボット制御方法の各工程を示すフローチャートである。
【図８】経由点の算出方法を示すフローチャートである。
【図９】工程動作モードにおいてロボットが動作する動作経路と、修正モードにおいてロボットが動作する動作経路を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図１は、本発明の実施形態に係るロボット装置を示す斜視図である。図１に示すロボット装置５００は、把持したワークＷを別のワークに組付ける組立作業を行うロボット１００と、ロボット１００を制御する制御装置２００と、教示装置であるティーチングペンダント３００と、を備えている。
【００１３】
ロボット１００は、多関節のロボットである。ロボット１００は、垂直多関節型のロボットアーム１０１と、ロボットアーム１０１の先端に接続されたエンドエフェクタであるロボットハンド１０２と、を備えている。
【００１４】
ロボットアーム１０１は、作業台に固定されるベース部（基端リンク）１０３と、変位や力を伝達する複数のリンク１２１〜１２６と、を有している。ベース部１０３及び複数のリンク１２１〜１２６は、複数の関節Ｊ１〜Ｊ６で旋回又は回転可能に互いに連結されている。また、ロボットアーム１０１は、各関節Ｊ１〜Ｊ６に設けられた、関節を駆動する関節駆動装置１１０を備えている。各関節Ｊ１〜Ｊ６に配置された関節駆動装置１１０は、必要なトルクの大きさに合わせて適切な出力のものが用いられる。
【００１５】
ロボットハンド１０２は、ワークＷを把持する複数の把持爪（フィンガ）１０４と、複数の把持爪１０４を駆動する不図示の駆動部と、駆動部の回転角度を検出する不図示のエンコーダと、回転を把持動作に変換する不図示の機構とを有している。この不図示の機構は、カム機構やリンク機構などで必要な把持動作に合わせて設計される。なお、ロボットハンド１０２に用いる駆動部に必要なトルクは、ロボットアーム１０１の関節用と異なるが、基本構成は同じである。また、ロボットハンド１０２は、把持爪１０４等に作用する反力を検出可能な不図示の力覚センサを有している。
【００１６】
ロボット１００の先端部（ロボットハンド１０２の先端部）には、ツールセンターポイント（ＴＣＰ）が設定されており、教示点がタスク空間で規定される場合、その教示点は、ＴＣＰの位置及び姿勢を示す６つのパラメータで表現される。具体的には、教示点は、タスク空間で表すと、３つの位置パラメータ（Ｘ，Ｙ，Ｚ）と、３つの姿勢パラメータ（ｔＸ，ｔＹ，ｔＺ）とからなる６つのパラメータで表現される。教示点がコンフィグレーション空間（関節空間）で規定される場合、その教示点は、ロボット１００の各関節Ｊ１〜Ｊ６の関節位置（関節角度）を示すパラメータ（θ１，θ２，θ３，θ４，θ５，θ６）で表現される。
【００１７】
なお、コンフィグレーション空間で規定された教示点は、順運動学計算により、タスク空間に変換することができ、タスク空間で規定された教示点は、逆運動学計算により、コンフィグレーション空間に変換することができる。本実施形態では、教示点は、タスク空間の６つのパラメータ（Ｘ，Ｙ，Ｚ，ｔＸ，ｔＹ，ｔＺ）で作業者により設定される。各関節Ｊ１〜Ｊ６の駆動の際には、制御装置２００によりコンフィグレーション空間のパラメータ（θ１，θ２，θ３，θ４，θ５，θ６）に変換される。
【００１８】
ティーチングペンダント３００は、制御装置２００に接続可能に構成され、制御装置２００に接続された際に、ロボットアーム１０１やロボットハンド１０２を駆動制御する指令を制御装置２００に送信可能に構成されている。
【００１９】
以下、関節Ｊ２における関節駆動装置１１０を例に代表して説明し、他の関節Ｊ１，Ｊ３〜Ｊ６の関節駆動装置１１０については、サイズや性能が異なる場合もあるが、同様の構成であるため、説明を省略する。
【００２０】
図２は、ロボット１００のロボットアーム１０１の第２関節である関節Ｊ２を示す部分断面図である。関節駆動装置１１０は、電動モータであるサーボモータ（以下、「モータ」という）１と、モータ１の回転軸２の回転を減速して出力する減速機１１と、を有している。
【００２１】
また、関節駆動装置１１０は、モータ１の回転軸２の回転角度（出力角度）を検出するモータ側角度検出器である入力側エンコーダ１０を有している。また、関節駆動装置１１０は、減速機１１の出力軸の回転角度（出力角度）を検出する減速機側角度検出器である出力側エンコーダ１６を有している。
【００２２】
モータ１は、例えばブラシレスＤＣサーボモータやＡＣサーボモータである。モータ１は、回転軸２とロータマグネット３とで構成された回転部４と、モータハウジング５と、回転軸２を回転自在に支持する軸受６，７と、回転部４を回転させるステータコイル８と、を備えている。軸受６，７はモータハウジング５に設けられ、ステータコイル８はモータハウジング５に取り付けられている。また、サーボモータ１はモータカバー９で囲われている。
【００２３】
入力側エンコーダ１０は、光学式或いは磁気式のロータリエンコーダであり、モータ１の回転軸２の一端側に設けられ、モータ１の回転軸２の回転に伴ってパルス信号を生成し、制御装置２００に生成したパルス信号を出力する。なお、入力側エンコーダ１０は、回転軸２に取り付けられているが、減速機１１の入力軸に取り付けてもよい。
【００２４】
出力側エンコーダ１６は、光学式或いは磁気式のロータリエンコーダであり、減速機１１の出力角度、本実施形態では、ベース部１０３とリンク１２１、或いは隣り合う２つのリンク間の相対角度を検出する。関節Ｊ２においては、出力側エンコーダ１６は、リンク１２１とリンク１２２との間の相対角度を検出する。具体的には、出力側エンコーダ１６は、関節Ｊ２の駆動（リンク１２１とリンク１２２との相対移動）に伴ってパルス信号を生成し、制御装置２００に生成したパルス信号を出力する。
【００２５】
リンク１２１とリンク１２２とは、クロスローラベアリング１５を介して回転自在に結合されている。モータ１と入力側エンコーダ１０との間には、必要に応じて、電源オフ時にロボットアーム１０１の姿勢を保持するためのブレーキユニットを設けてもよい。
【００２６】
減速機１１は、本実施形態では、小型軽量で減速比の大きい波動歯車減速機である。減速機１１は、モータ１の回転軸２に結合された、入力軸を有するウェブジェネレータ１２と、リンク１２２に固定された、出力軸を有するサーキュラスプライン１３と、を備えている。なお、サーキュラスプライン１３は、リンク１２２に直結されているが、リンク１２２に一体に形成されていてもよい。
【００２７】
また、減速機１１は、ウェブジェネレータ１２とサーキュラスプライン１３との間に配置され、リンク１２１に固定されたフレクスプライン１４を備えている。フレクスプライン１４は、ウェブジェネレータ１２の回転に対して減速比Ｎで減速され、サーキュラスプライン１３に対して相対的に回転する。従って、モータ１の回転軸２の回転数が減速機１１で１／Ｎに減速され、フレクスプライン１４が固定されたリンク１２１に対してサーキュラスプライン１３が固定されたリンク１２２を相対的に回転運動させ、関節Ｊ２を屈曲（回転）させる。このときの減速機１１の出力側の回転角度が、実出力角度、即ち関節Ｊ２の角度（関節角度）となる。
【００２８】
図３は、ロボット装置５００の制御装置２００の構成を示すブロック図である。制御装置２００は、制御部（演算部）としてのＣＰＵ（Central  Processing  Unit）２０１を備えている。また、制御装置２００は、記憶部として、ＲＯＭ（Read  Only  Memory）２０２、ＲＡＭ（Random  Access  Memory）２０３、ＨＤＤ（Hard  Disk  Drive）２０４を備えている。また、制御装置２００は、記録ディスクドライブ２０５及び各種のインタフェース２１１〜２１７を備えている。
【００２９】
ＣＰＵ２０１には、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、記録ディスクドライブ２０５及び各種のインタフェース２１１〜２１７が、バス２２０を介して接続されている。ＲＯＭ２０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果等、各種データを一時的に記憶する記憶部である。
【００３０】
ＨＤＤ２０４は、ＣＰＵ２０１の演算処理結果や外部から取得した各種データ等を記憶する記憶部であると共に、ＣＰＵ２０１に、後述する各種演算処理を実行させるためのプログラム２４０を記録するものである。ＣＰＵ２０１は、ＨＤＤ２０４に記録（格納）されたプログラム２４０に基づいてロボット制御方法の各工程を実行する。
【００３１】
記録ディスクドライブ２０５は、記録ディスク２４１に記録された各種データやプログラム等を読み出すことができる。
【００３２】
インタフェース２１１には、ユーザが操作可能なティーチングペンダント３００が接続されている。ティーチングペンダント３００は、ロボット１００を操作する際に使用する携帯型の端末である。ティーチングペンダント３００はタッチパネルである液晶ディスプレイを有しており、液晶ディスプレイ上に、ＨＤＤ２０４に格納されたロボットプログラム情報や教示点情報等を表示することができる。
【００３３】
また、ロボット１００を目的の教示点の位置座標に移動させる機能やジョグ動作させる機能を持つ。ジョグ動作とは、機械の位置合わせなどのために、モータ１を断続的に微動させる動作を指す。さらに、ロボット１００の位置及び姿勢を教示点情報に登録する教示作業や教示点のパラメータ値を修正する再教示作業を行うことができる。
【００３４】
インタフェース２１２には、キーボードやマウス等の入力装置３１０が接続されている。インタフェース２１３には、各種画像が表示されるモニタ等の出力装置３１１が接続されている。インタフェース２１４には、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置３１２が接続されている。
【００３５】
インタフェース２１５，２１６には、入力側エンコーダ１０及び出力側エンコーダ１６がそれぞれ接続されている。入力側エンコーダ１０及び出力側エンコーダ１６は、前述したパルス信号をインタフェース２１５，２１６及びバス２２０を介してＣＰＵ２０１に出力する。
【００３６】
インタフェース２１７には、サーボ制御装置２３０が接続されている。サーボ制御装置２３０は、ロボットアーム１０１に内蔵されている。
【００３７】
ＣＰＵ２０１は、工程動作モードと修正モードとのいずれか一方に設定可能となっている。ティーチングペンダント３００や入力装置３１０により工程動作モードが選択された場合、ＣＰＵ２０１は、工程動作モードに移行し、ティーチングペンダント３００や入力装置３１０により修正モードが選択された場合、修正モードに移行する。
【００３８】
ＣＰＵ２０１は、工程動作モードに移行した場合には、複数の教示点を順番に動作するようロボット１００を制御する。即ち、ＣＰＵ２０１は、ＨＤＤ２０４に格納された教示点情報２５２から複数の教示点を取得し、ロボットプログラム情報２５１に記述された補間方法（例えば直線補間や円弧補間等）で教示点間を補間する多数の補間教示点を求める。そして、ＣＰＵ２０１は、教示点間を繋ぐ軌道（多数の補間教示点を繋ぐ軌道）を生成して、サーボモータ１の回転軸２の回転角度の制御量を示す駆動指令を生成する。ＣＰＵ２０１は、駆動指令を所定の時間間隔でサーボ制御装置２３０に出力する。
【００３９】
サーボ制御装置２３０は、ＣＰＵ２０１から入力を受けた駆動指令に基づき、フィードバック制御によるサーボモータ１への電流の出力量を演算し、サーボモータ１へ電流を供給して、ロボットアーム１０１の関節Ｊ１〜Ｊ６の関節角度制御を行う。即ち、ＣＰＵ２０１は、サーボ制御装置２３０を介して、関節Ｊ１〜Ｊ６の関節角度（関節位置）が教示した目標角度（目標位置）となるように、サーボモータ１による関節Ｊ１〜Ｊ６の駆動を制御する。
【００４０】
ＨＤＤ２０４には、工程動作モード時に、ロボット１００に所定の作業、例えば把持、運搬等の一連の動作を実行させるためのロボットプログラム情報２５１が記憶されている。また、ＨＤＤ２０４には、ロボット１００の教示点情報（複数の教示点を含む）２５２と、ロボットの種別毎のずれ解消用距離情報２５３とが記憶されている。ＣＰＵ２０１は、ロボットプログラム情報２５１に従ってロボット１００に所定の作業を行わせる。ロボットプログラム情報２５１や教示点情報２５２は予めオフラインで作成しておく。
【００４１】
ＣＰＵ２０１は、修正モードに移行した場合には、複数の教示点の中から修正対象の教示点（以下、対象教示点という）の指定を受けたときに、対象教示点のパラメータ値の修正に先立って、対象教示点に動作するようロボット１００を制御する。つまり、ＣＰＵ２０１は、ＨＤＤ２０４に格納されたロボットプログラム情報２５１、教示点情報２５２、及びロボット種別毎のずれ解消用距離情報２５３、並びに周囲環境モデルの情報に基づいて動作経路を生成する。ここで、ロボット１００の教示点とは、各プログラム指令実行開始時のロボット１００の教示点をいう。ロボット１００の動作を制御することで、ロボット１００を教示点に移動させ、その教示点の情報を捕え、予めオフラインで作成したロボットプログラム情報２５１上の教示点の情報を、捕えた情報に置換して修正することができる。
【００４２】
次に、図４及び図５を用いて、記憶部であるＨＤＤ２０４に格納される情報２５２，２５３について説明する。
【００４３】
図４は、ＨＤＤ２０４に格納された教示点情報２５２を示す説明図である。図４（ａ）は、教示点情報２５２を示し、図４（ｂ）は、各関節Ｊ１〜Ｊ６の動作方向を２進数で示す図である。図４（ａ）に示すように、本実施形態では、教示点情報２５２として、直交座標系におけるロボット１００の教示点の座標データがＸ，Ｙ，Ｚ，ｔＸ，ｔＹ，ｔＺのパラメータ値によって格納される。さらに、教示点の識別ＩＤ、教示点の名称、教示点を使用するプログラム名、その教示点への移動元教示点の識別ＩＤ、移動先教示点の識別ＩＤ、各関節の動作方向が格納される。
【００４４】
教示点情報２５２、特に教示点のパラメータ値は、オフライン教示により作業者が予めＨＤＤ２０４に記憶させておくものである。ＨＤＤ２０４に格納される教示点情報２５２における教示点は、ＣＰＵ２０１が教示点間をロボットプログラム情報２５１にて指定した補間方法（例えば直線補間や円弧補間等）により計算して得られる補間教示点とは異なるものである。
【００４５】
図４（ｂ）に示すように、各関節Ｊ１〜Ｊ６の動作方向を２進数、即ち１（正方向：第１の回転方向）または０（負方向：第１の回転方向とは反対の第２の回転方向）によって表している。図４（ａ）における各関節の動作方向の値は、図４（ｂ）の２進数の情報を１０進数で表したものである。例えば図４（ｂ）の「１０１００１」は、図４（ａ）の識別ＩＤ「Ｐ＿０００１」の教示点において識別ＩＤ「Ｐ＿０００２」の移動先の教示点に動作する各関節の動作方向「４１」を意味する。
【００４６】
つまり、ＨＤＤ２０４は、各教示点に対して次の（１つ後の）移動先の教示点にロボット１００が動作する際のロボット１００の各関節Ｊ１〜Ｊ６の動作方向を示す動作方向データを記憶する動作記憶部である。例えば、教示点Ｐ２から移動先の教示点Ｐ３に動作する際の各関節の動作方向データは、図４（ａ）中の各関節の動作方向において上から２行目の「４３」となる。
【００４７】
図５は、ＨＤＤ２０４に格納された、ロボット種別毎のずれ解消用距離情報２５３を示す説明図である。ＨＤＤ２０４には、図５に示すように、ロボット種別毎に、ずれ解消に必要な所定距離の情報（ずれ解消用距離情報）２５３が格納されている。つまり、ＨＤＤ２０４は、ロボット種別毎に所定距離を記憶する距離情報記憶部である。ＣＰＵ２０１は、この情報２５３に加えて、図４の情報２５２を使って移動の際に経由する経由点を算出し、対象教示点へアプローチする。この所定距離は、シミュレーションや実験を行い、各関節Ｊ１〜Ｊ６のバックラッシュを考慮して設定されている。
【００４８】
次に、ティーチングペンダント３００から対象教示点を選択（指定）する方法を説明する。図６は、ＨＤＤ２０４に格納された教示点情報２５２をティーチングペンダント３００の液晶ディスプレイ上に表示した状態を示す説明図である。
【００４９】
図６に示すように、「アーム１」というロボットプログラムで使用する教示点の識別ＩＤ「Ｐ＿０００１」〜「Ｐ＿００２０」が、一覧として画面に表示される。そして、例えば、作業者によって識別ＩＤ「Ｐ＿０００５」が選択され、選択された識別ＩＤ「Ｐ＿０００５」の教示点情報２５２が一覧の下方に表示される。また、図６に示すように、「移動」ボタン、「教示」ボタン、「次候補」ボタン、及び「閉じる」ボタンが表示される。
【００５０】
作業者が画面下部の「移動」ボタンを押下すると、「移動」ボタンを押下している間、ＣＰＵ２０１は、ロボット１００のロボットハンド１０２の先端部（つまり、ＴＣＰ）を、識別ＩＤ「Ｐ＿０００５」の教示点の位置座標へ向かって移動させる。位置が確定し作業者が「教示」ボタンを押下すると、ＣＰＵ２０１は、ロボット１００のロボットハンド１０２の先端部の位置座標を「Ｐ＿０００５」へ登録する。つまり、現在のロボット１００の位置及び姿勢を、識別ＩＤ「Ｐ＿０００５」のパラメータ値（Ｘ，Ｙ，Ｚ，ｔＸ，ｔＹ，ｔＺ）としてＨＤＤ２０４に格納する。登録が終わり、作業者が画面下部の「次候補」ボタンを押下すると、現在選択されている「Ｐ＿０００５」から教示点一覧中に表示された次の教示点の識別ＩＤ「Ｐ＿０００６」に選択が移る。
【００５１】
ここで、教示点一覧の表示方法について説明する。画面上部にある教示点表示方法選択部３０１を作業者が押下すると、教示点一覧の表示方法を「名前順」、「最短経路順」から選択することができる。「名前順」とは、教示点一覧を、図４中の「名称」列の値のアスキーコードの昇順に並べたものである。「最短経路順」とは、最短経路探索アルゴリズムであるダイクストラ法などを用いてロボット１００の現在の位置座標を起点とし、そこからプログラム「アーム１」で使用する全教示点間を結ぶ最短経路を導き出し、その経路の順番に教示点を並べたものである。「次候補」ボタン押下時の次の教示点はこの表示方法による表示順に従う。
【００５２】
次に、図７及び図８に示されたフローチャートを用いて、再教示作業を行う際の教示点へのアプローチの方法について説明する。図７は、修正モードが選択された際のロボット制御方法の各工程を示すフローチャートである。
【００５３】
まず、ＣＰＵ２０１は、作業者によって修正モードが選択された場合、修正モードの処理動作に移行する。
【００５４】
ＣＰＵ２０１は、ティーチングペンダント３００から対象教示点への移動指示を受けると、ＨＤＤ２０４より、対象教示点の教示点情報２５２とロボット種別毎のずれ解消用距離情報２５３を取得する（Ｓ１）。
【００５５】
次に、ＣＰＵ２０１は、経由点を算出する（Ｓ２）。工程動作モードのときの対象教示点に対する１つ前の移動元の教示点を、以下、移動元教示点という。ＣＰＵ２０１は、ロボット１００を対象教示点に動作させる際のロボット１００の各関節Ｊ１〜Ｊ６の動作方向が移動元教示点から対象教示点にロボット１００を動作させる際のロボット１００の各関節Ｊ１〜Ｊ６の動作方向と同じとなるよう経由点を設定する。この経由点は、移動元教示点とは異なる点である。
【００５６】
ここで、ＣＰＵ２０１は、経由点から対象教示点までのロボット１００の動作経路が、移動元教示点から対象教示点までのロボット１００の動作経路よりも短くなるように経由点を設定するのが好ましい。これにより、ロボット１００が経由点から対象教示点に動作する時間を短縮することができる。
【００５７】
例えば、図４中、教示点Ｐ４が対象教示点であった場合、移動元の教示点Ｐ３から対象教示点Ｐ４にロボット１００が動作するときの動作方向が「４３」となる。したがって、ロボット１００が経由点から教示点Ｐ４に動作するときの動作方向が「４３」となるよう、教示点Ｐ３以外の点に経由点が設定される。その際、教示点Ｐ３から教示点Ｐ４までの経路よりも経由点から教示点Ｐ４までの経路が短くなるように経由点が設定される。
【００５８】
ＣＰＵ２０１は、経由点の算出が終わると、現在の位置及び姿勢から経由点を経由して対象教示点へロボット１００が動作する動作経路を生成する（Ｓ３）。その際、少なくとも現在の位置及び姿勢から経由点までの動作経路は、周囲環境モデルの情報に基づいて、ロボット１００が他の物体に干渉しないように生成する。
【００５９】
次に、ＣＰＵ２０１は、作成された動作経路を辿って、対象教示点へロボット１００をアプローチさせる（Ｓ４）。つまり、ＣＰＵ２０１は、現在の位置及び姿勢から経由点を経由して対象教示点にロボット１００を動作させる。その後は、上述したように、作業者がティーチングペンダント３００を操作して、対象教示点の修正（再教示）を行うことができる。
【００６０】
以上、ＣＰＵ２０１は、修正モードに移行した場合には、経由点を経由して対象教示点へロボット１００を動作させる。これにより、経由点から対象教示点へ動作するロボット１００の各関節の動作方向が、工程動作モードにおいて移動元の教示点から対象教示点へ動作するロボット１００の各関節の動作方向と一致する。従って、修正時に対象教示点へロボット１００を動作させる際に、工程動作の順番通りにロボット１００を動作させなくても、対象教示点に到達したときのロボット１００の位置及び姿勢が工程動作時に対してずれるのを低減することができる。これにより作業者にとって作業しやすい順序や対象教示点を結ぶ最短経路となる順序で、対象教示点の修正が可能であり、また修正が不要な教示点への移動を省くことも可能である。これらによって対象教示点の修正作業の時間が短縮され、作業者の作業負担が低減し、作業効率が向上する。
【００６１】
特に、ロボット１００の各関節Ｊ１〜Ｊ６には、減速機１１が設けられているので、対象教示点に向かう動作方向が異なると、減速機１１のバックラッシュにより、工程動作時のロボットの位置及び姿勢に対してずれることがあった。これに対して、本実施形態では、例えば減速機１１にバックラッシュがあって、関節にガタが生じる場合であっても、対象教示点に到達したときのロボット１００の位置及び姿勢が工程動作時に対してずれるのを低減することができる。
【００６２】
次に、図７におけるステップＳ２の経由点の算出方法について詳細に説明する。図８は、経由点の算出方法を示すフローチャートである。
【００６３】
まず、ＣＰＵ２０１は、教示点情報２５２から、対象教示点に対する移動元の教示点の識別ＩＤを取得し、識別ＩＤから移動元教示点の位置及び姿勢のパラメータ値及び各関節の動作方向のデータを取得する（Ｓ５）。
【００６４】
次に、ＣＰＵ２０１は、図５のロボット種別毎のずれ解消用距離情報２５３の中から、該当するロボット１００の情報を取得する（Ｓ６）。図５中の「装着中」列の値が”○”のものが現在装着中のロボット種別を意味し、そのときの所定距離は１５ｍｍである。つまり、ＣＰＵ２０１は、ロボット１００に対応する所定距離のデータをＨＤＤ２０４に格納されたずれ解消用距離情報２５３から取得する。なお、例えばロボットアーム１０１の先端に取り付けられているロボットハンド１０２を別のエンドエフェクタに交換して別のロボットを構成した際には、当該ロボットに対応する別の所定距離のデータが読み出されることとなる。このように、ロボットの種別に応じて所定距離のデータが異なるので、該当する所定距離のデータを読み出している。
【００６５】
次に、ＣＰＵ２０１は、ステップＳ５、ステップＳ６で取得した情報を基に、対象教示点への進入方向を計算する（Ｓ７）。ここでいう進入方向とは、対象教示点に対してどのような角度でＴＣＰが進入するかを指す。次に、ＣＰＵ２０１は、対象教示点からステップＳ７で決定した進入方向に対して、ステップＳ６で取得した所定距離（１５ｍｍ）の分戻った点を経由点に設定する（Ｓ８）。なお、ステップＳ７，Ｓ８では、既に移動元教示点と対象教示点との間の動作経路が計算済みの場合は、該動作経路上、所定距離の分対象教示点から移動元教示点に戻った点を経由点に設定する。
【００６６】
つまり、ＣＰＵ２０１は、ステップＳ５〜Ｓ８において、工程動作モードにてロボット１００が移動元教示点から対象教示点に動作する動作経路上（移動元教示点及び対象教示点を除く）に、経由点を設定する。これにより、経由点から対象教示点にロボット１００を動作させたときには、工程動作時と同じ進入方向から対象教示点に進入することとなる。したがって、対象教示点に到達したときのロボット１００の位置及び姿勢が工程動作時に対してずれるのをより効果的に低減することができる。
【００６７】
そして、本実施形態では、対象教示点から所定距離以上（本実施形態では所定距離）離れたところに経由点が設定される。これにより、関節Ｊ１〜Ｊ６（例えば減速機１１）のバックラッシュの影響により対象教示点に到達したときのロボット１００の位置及び姿勢が工程動作時に対してずれるのをより効果的に低減することができる。
【００６８】
図９は、工程動作モードにおいてロボット１００が動作する工程動作時の動作経路と、修正モードにおいて再教示の際に作業者が任意に選んだ教示点間の動作経路を示す図である。Ｐ１〜Ｐ８は教示点を示しており、Ｐ４’，Ｐ６’，Ｐ８’はそれぞれ教示点Ｐ４，Ｐ６，Ｐ８に対する経由点を示している。図９中の破線は、工程動作時の動作経路を示しており、実線は再教示の際に作業者がＰ１→Ｐ４→Ｐ６→Ｐ８の順にロボット１００を動作させる動作経路を示している。
【００６９】
例えば、教示点Ｐ１から教示点Ｐ４へ移動する場合は、教示点Ｐ３から教示点Ｐ４への動作経路上に経由点Ｐ４’を設定する。そして、ロボット１００は、実線で示すように、教示点Ｐ１から経由点Ｐ４’へ動作し、また経由点Ｐ４’から教示点Ｐ４へ動作する。
【００７０】
教示点間の移動は、図６中の「移動」ボタンを作業者が押下し続けている間に行われ、経由点Ｐ４’で停止するか、教示点Ｐ４まで移動するか等は操作によって決定される。また、作業者が操作ボタンを押下し続けた場合に経由点Ｐ４’で自動的に一旦停止するかはティーチングペンダント３００から設定により決めることができる。作業者は実線で示す動作経路に沿って教示点Ｐ４へロボット１００を移動させた後に、ジョグ機能などを使って微細な位置修正を行う。
【００７１】
ジョグ機能を使った位置修正の際、作業者は、ロボット１００における図４に示した各関節の動作方向の値が登録された情報と変わらない範囲内においてジョグ操作を行うことにより、ずれを発生させることなく位置修正が可能である。例えば、図６中に表示された教示点Ｐ５に対するジョグ操作の場合は、図４中の識別ＩＤが「Ｐ＿０００５」の行の各関節の動作方向の値と変わらない範囲であればずれは生じない。
【００７２】
もし、位置修正中に各関節の動作方向の値と登録された情報との間に差異が生じた場合は、ティーチングペンダント（報知部）３００からブザーを鳴動させ、また図９中の「各関節の動作方向」を点滅表示させることにより、作業者に警告する。
【００７３】
ここで、移動元教示点から修正後の対象教示点にロボット１００を動作させるときのロボット１００の関節Ｊ１〜Ｊ６の動作方向を、修正後動作方向とする。また、移動元教示点から修正前の対象教示点にロボット１００を動作させるときのロボット１００の関節Ｊ１〜Ｊ６の動作方向を、修正前動作方向とする。つまり、ＣＰＵ２０１は、修正後動作方向が、修正前動作方向と異なる場合には、ティーチングペンダント（報知部）３００において、作業者にブザー音や画像表示により報知させる。このように作業者に注意喚起することにより、動作方向が変更されるような教示点のパラメータ値の修正が行われることを防止することができ、関節Ｊ１〜Ｊ６のガタによる修正した教示点のずれを防止することができる。
【００７４】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
【００７５】
上記実施形態においては、再教示を行う場合について説明したが、進入方向を合わせる機能を教示点の位置確認、進入方向の確認等に適用できることは明らかである。
【００７６】
また、上記実施形態においては、制御装置２００が１つのコンピュータにより構成される場合について説明したが、複数のコンピュータにより構成される場合についても本発明は適用可能である。この場合、複数のＣＰＵで本発明の制御部が構成されていてもよい。
【００７７】
上記実施形態の各処理動作は具体的にはＣＰＵ３０１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を制御装置２００に供給し、制御装置２００を構成するコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【００７８】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ２０４であり、ＨＤＤ２０４にプログラム２４０が格納される場合について説明したが、これに限定するものではない。プログラム２４０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図３に示すＲＯＭ２０２や外部記憶装置３１２、記録ディスク２４１等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【００７９】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８０】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【００８１】
また、上記実施形態では、コンピュータが記録媒体や記憶装置に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する制御部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【符号の説明】
【００８２】
１００…ロボット、１０１…ロボットアーム、１０２…ロボットハンド、２００…制御装置、２０１…ＣＰＵ（制御部）、３００…ティーチングペンダント（報知部）、５００…ロボット装置
【図１】
2016040067.tif 000003
【図２】
2016040067.tif 000004
【図３】
2016040067.tif 000005
【図４】
2016040067.tif 000006
【図５】
2016040067.tif 000007
【図６】
2016040067.tif 000008
【図７】
2016040067.tif 000009
【図８】
2016040067.tif 000010
【図９】
2016040067.tif 000011