(57)【要約】【課題】教示時のロボットアームの動作に基づいて所望の態様でロボットアームを制御する。【解決手段】ロボット２００は、ハンドリング部２０３と、ロボットの先端部に作用する第１力データを取得する第１センサ２５１と、ハンドリング部２０３に作用する第２力データを取得する第２センサ２５２と、ロボットアーム２０１の先端部の位置姿勢データを取得する第３センサ２５３と、を備えている。ロボット２００を制御する制御装置は、ロボットアーム２０１の教示時の第１力データ及び第２力データの解析結果に基づき、第３センサ２５３の位置姿勢のデータに基づいてロボットアーム２０１を位置姿勢制御する第１期間と、第１力データ及び第２力データに基づいてロボットアーム２０１を力制御する第２期間とを有する教示データを生成する。【選択図】図１
2019136860.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームの動作を教示する際に操作されるハンドリング部と、ロボットの先端部に作用する第１力データを取得する第１センサと、前記ハンドリング部に作用する第２力データを取得する第２センサと、前記ロボットアームの先端部の位置姿勢データを取得する第３センサと、を備えるロボットの制御装置であって、
前記ロボットアームの教示時の前記第１力データ及び前記第２力データの解析結果に基づき、前記第３センサの前記位置姿勢のデータに基づいて前記ロボットアームを位置姿勢制御する第１期間と、前記第１力データ及び第２力データに基づいて前記ロボットアームを力制御する第２期間とを有する教示データを生成する生成手段と、
生成された前記教示データを格納する記憶部と、
を備えることを特徴とする制御装置。
【請求項２】
前記生成手段は、前記第３センサが取得した位置姿勢データのうちの２点間を所定の補間方法により補間して位置教示データを生成し、前記ロボットアームは、前記位置教示データに基づいて前記第１期間において位置姿勢制御される、
ことを特徴とする請求項１記載の制御装置。
【請求項３】
前記生成手段は、
前記第１及び第２力データに基づいて、教示時に前記ハンドリング部を操作した操作力を求めると共に、前記操作力に応じて前記第２期間において前記ロボットアームを力制御するための力教示データを生成し、
前記第２期間内の特定の期間については、前記操作力を平滑化し、この平滑化された操作力に応じて前記力教示データを生成する、
ことを特徴とする請求項１又は２記載の制御装置。
【請求項４】
前記生成手段は、前記第３センサによって取得した前記位置姿勢データに基づいて、前記ロボットアームの教示時のやり直し動作の有無を判定し、前記やり直し動作が有ると判定した場合には、失敗時の動作については、再現しないように前記教示データを生成する、
ことを特徴とする請求項１乃至３のいずれか１項記載の制御装置。
【請求項５】
前記第１センサは、前記ハンドリング部と、前記ロボットアームに支持されるエンドエフェクタとの間に設けられた力覚センサである、
ことを特徴とする請求項１乃至４のいずれか１項記載の制御装置。
【請求項６】
前記第２センサは、前記ロボットアームと前記ハンドリング部との間に設けられた力覚センサである、
ことを特徴とする請求項１乃至５のいずれか１項記載の制御装置。
【請求項７】
前記第１センサは、前記第２センサよりも、前記ロボットの先端部寄りに配設されている、
ことを特徴とする請求項１乃至６のいずれか１項記載の制御装置。
【請求項８】
前記生成手段により生成した教示データに対応した表示情報を表示部に出力する出力手段を備えた、
ことを特徴とする請求項１乃至７のいずれか１項記載の制御装置。
【請求項９】
前記出力手段は、前記表示部に対して前記表示情報を、前記第１期間と前記第２期間とを識別可能な時系列情報として表示する、
ことを特徴とする請求項８記載の制御装置。
【請求項１０】
ユーザーからの操作を受け付けて、前記表示部に表示されている表示情報に対する変更操作を可能に制御する操作部と、
前記変更操作に基づき前記教示データを更新する更新手段と、を備えた、
ことを特徴とする請求項８又は９記載の制御装置。
【請求項１１】
前記操作部は、前記第１期間及び前記第２期間を独立して選択可能であり、選択した期間ごとに変更操作が可能となっている、
ことを特徴とする請求項１０記載の制御装置。
【請求項１２】
前記操作部は、前記第１期間をさらに細分化した第１細期間または前記第２期間をさらに細分化した第２細期間をそれぞれ独立して選択可能であり、選択した期間ごとに変更操作が可能となっている、
ことを特徴とする請求項１０又は１１記載の制御装置。
【請求項１３】
前記操作部は、前記表示部に表示される期間の時間幅を変更可能に構成されている、
ことを特徴とする請求項１０乃至１２のいずれか１項記載の制御装置。
【請求項１４】
前記操作部は、前記ハンドリング部を操作しているときの前記第１力データ及び前記第２力データの取得の可否を選択可能な選択部を有する、
ことを特徴とする請求項１０乃至１３のいずれか１項記載の制御装置。
【請求項１５】
前記表示部はタッチパネルを備えており、前記変更操作は、前記タッチパネルの操作に基づき実行可能となっている、
ことを特徴とする請求項１０乃至１４のいずれか１項記載の制御装置。
【請求項１６】
ロボットアームと、前記ロボットアームの動作を教示する際に操作されるハンドリング部と、ロボットの先端部に作用する第１力データを取得する第１センサと、前記ハンドリング部に作用する第２力データを取得する第２センサと、前記ロボットアームの先端部の位置姿勢データを取得する第３センサと、を備えるロボットと、
前記ロボットを制御する請求項１乃至１５のいずれか１項記載の制御装置と、を備えた、
ことを特徴とするロボットシステム。
【請求項１７】
前記ロボットは、前記ロボットアームに支持されるエンドエフェクタを備え、前記第１センサは、前記エンドエフェクタに作用する前記第１力データを取得する、
ことを特徴とする請求項１６記載のロボットシステム。
【請求項１８】
ロボットアームの動作を教示する際に操作されるハンドリング部が設けられたロボットを制御装置が制御する制御方法であって、
教示時に、第１センサを用いて前記ロボットの先端部に作用する第１力データ、第２センサを用いて前記ハンドリング部に作用する第２力データ、及び第３センサを用いて前記ロボットアームの先端部の位置姿勢データを取得し、
前記第１力データ及び前記第２力データの解析結果に基づき、前記第３センサの前記位置姿勢のデータに基づいて前記ロボットアームを位置姿勢制御する第１期間と、前記第１力データ及び第２力データに基づいて前記ロボットアームを力制御する第２期間とを有する教示データを生成する、
ことを特徴とする制御方法。
【請求項１９】
請求項１８記載の制御方法をコンピュータに実行させるプログラム。
【請求項２０】
請求項１９記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、教示者がロボットアームを手動で操作してロボットアームの動作を教示するダイレクト教示が可能なロボットの制御装置、制御方法、ロボットシステム、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来、ロボットアームの動作を教示する際には、教示ペンダントのような操作装置を用いてエンドエフェクタなどを教示位置へ移動させる操作を行い、教示者が目視で位置を確認しつつ、教示位置を記憶させていた。その際、教示者が教示ペンダントに座標を入力するか教示ペンダントを操作して、ロボットアームを微小移動させる作業を繰り返す必要があり、作業が煩雑であったため、教示を効率的に行うことができなかった。
【０００３】
そこで、教示における操作性を改善する方法の一つとしてダイレクト教示という技術がある。ダイレクト教示は、教示者がロボットの所定の箇所を掴んでロボットアームを手動で操作し、そのときのロボットアームの先端の位置姿勢データを取得し、そのデータを基にロボットアームの動作指令値を生成し、教示時の組立動作を再現するものである。ダイレクト教示では、ロボットアームを手動で導くだけで直感的に教示できるため、煩雑な作業なく簡単にロボットアームを動作させる教示データを生成することができる。教示者がロボットアームを手動で操作する場合、ロボット制御装置は、一般的にコンプライアンス制御またはインピーダンス制御と呼ばれる制御を行う。例えばロボット制御装置は、ロボットアームの先端に加わる力がゼロになるようにロボットアームを制御することで教示者が力を掛けた方向にロボットアームを動作させる。
【０００４】
特許文献１には、教示者がロボットアームを手動で操作した際に、位置姿勢データとともに力トルクデータの時系列データを取得し、接触力に関する力教示データを生成するものが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１３４９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載されている方法は、接触力に関する力教示データを生成するものである。そのため、特許文献１に記載された力教示データに従ってロボットアームを再生動作させても、組み付け作業などの精密な作業が必要な箇所において、教示者が指示したようにロボットアームが動作するとは限らなかった。
【０００７】
本発明は、教示時のロボットアームの動作に基づいて所望の態様でロボットアームを制御することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、ロボットアームの動作を教示する際に操作されるハンドリング部と、ロボットの先端部に作用する第１力データを取得する第１センサと、前記ハンドリング部に作用する第２力データを取得する第２センサと、前記ロボットアームの先端部の位置姿勢データを取得する第３センサと、を備えるロボットの制御装置であって、前記ロボットアームの教示時の前記第１力データ及び前記第２力データの解析結果に基づき、前記第３センサの前記位置姿勢のデータに基づいて前記ロボットアームを位置姿勢制御する第１期間と、前記第１力データ及び第２力データに基づいて前記ロボットアームを力制御する第２期間とを有する教示データを生成する生成手段と、生成された前記教示データを格納する記憶部と、を備えることを特徴とする。
【０００９】
また、本発明は、ロボットアームの動作を教示する際に操作されるハンドリング部が設けられたロボットを制御装置が制御する制御方法であって、教示時に、第１センサを用いて前記ロボットの先端部に作用する第１力データ、第２センサを用いて前記ハンドリング部に作用する第２力データ、及び第３センサを用いて前記ロボットアームの先端部の位置姿勢データを取得し、前記第１力データ及び前記第２力データの解析結果に基づき、前記第３センサの前記位置姿勢のデータに基づいて前記ロボットアームを位置姿勢制御する第１期間と、前記第１力データ及び第２力データに基づいて前記ロボットアームを力制御する第２期間とを有する教示データを生成する、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、教示時のロボットアームの動作に基づいて所望の態様でロボットアームを制御することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係るロボット装置の説明図である。
【図２】第１実施形態に係るロボット装置の制御系を示すブロック図である。
【図３】第１実施形態に係るセンサを用いて測定される力の説明図である。
【図４】図２に示す制御システムの制御ブロック図である。
【図５】第１実施形態に係る操作力及び接触力の時系列データを示す説明図である。
【図６】第１実施形態に係る第３区間の説明図である。
【図７】（ａ）〜（ｃ）は、第１実施形態に係る第３区間における操作力のデータの説明図である。
【図８】第１実施形態に係るロボットでコネクタ接続する教示においてリトライ動作を行っている場合を示す説明図である。
【図９】図４に示す照合部の処理の説明図である。
【図１０】第１実施形態に係るロボット教示方法の一例を示すフローチャートである。
【図１１】図１０の力指令値生成処理を示すフローチャートである。
【図１２】（ａ）〜（ｄ）は、第１実施形態に係るロボットアームの探り動作を教示する説明図である。
【図１３】第１実施形態に係る軌道を補完する具体例を示す説明図である。
【図１４】第２実施形態に係るロボット装置の説明図である。
【図１５】第３実施形態に係るロボット装置の説明図である。
【図１６】第４実施形態に係るロボット装置の制御系を示すブロック図である。
【図１７】図１６に示す制御システムの制御ブロック図である。
【図１８】（ａ）操作装置の表示部を示す模式図であり、（ｂ）操作装置の操作部を示す模式図である。
【図１９】第５実施形態に係る操作装置の表示部を示す模式図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
［第１実施形態］
図１は、第１実施形態に係るロボット装置の説明図である。図１に示すロボットシステムとしてのロボット装置１００は、ロボット２００と、ロボット２００を制御する制御装置の一例である制御システム３００と、を備える。制御システム３００は、ロボット制御装置３５０及びサーボ制御装置３６０を有する。
【００１３】
ロボット２００は、垂直多関節の産業用ロボットである。ロボット２００は、ロボットアーム２０１と、エンドエフェクタの一例であるハンド２０２と、ハンドリング部２０３とを有する。ロボットアーム２０１の先端には、ハンドリング部２０３が取り付けられている。ハンド２０２は、ハンドリング部２０３を介してロボットアーム２０１の先端に支持されている。つまり、ハンドリング部２０３は、ロボットアーム２０１の先端とハンド２０２との間に設けられている。ハンドリング部２０３は、ロボットアーム２０１の動作をダイレクト教示する時に教示者に操作される部位であり、教示者が掴んで操作することができるような形状となっている。
【００１４】
ロボットアーム２０１は、直列に連結された複数、例えば７つのリンク２１０〜２１６を有し、例えば作業対象物が載置されるベースＢに基端（固定端）が固定されている。本実施形態では、７つのリンク２１０〜２１６が６つの関節Ｊ１〜Ｊ６で連結されている。なお、リンクの数は、７つに限定するものではない。各関節Ｊ１〜Ｊ６は、直動関節、旋回関節又は回転関節（捩り関節ともいう）のいずれかである。本実施形態では、関節Ｊ２，Ｊ３，Ｊ５が旋回関節であり、関節Ｊ１，Ｊ４，Ｊ６が回転関節である。リンク２１０は、ロボットアーム２０１の基端である。リンク２１６は、ロボットアーム２０１の先端（自由端）である。ハンド２０２は、複数のフィンガ２２０を有し、複数のフィンガ２２０を動作させることで、ワーク等を把持可能となっている。
【００１５】
ハンド２０２とハンドリング部２０３との間には、第１センサの一例である力覚センサ２５１が配置されている。ハンド２０２は力覚センサ２５１に支持され、力覚センサ２５１はハンドリング部２０３に支持されている。力覚センサ２５１は、ハンド２０２に内蔵されている。なお、本実施形態では、力覚センサ２５１は、ハンド２０２に内蔵されているが、ハンド２０２とハンドリング部２０３との間に配置されていればよく、ハンドリング部２０３に内蔵されていてもよい。力覚センサ２５１は、ハンド２０２に作用する６軸の力を測定するのに用いるセンサである。６軸の力とは、互いに直交する３軸方向の並進力と、各軸まわりの回転力、即ちモーメントとである。ハンド２０２に作用する力は、ハンド２０２又はハンドに把持された把持物が、作業対象物に接触した際にかかる反力（以下「接触力」という）である。接触力は、作業対象物に対してハンド２０２が印加した力でもある。
【００１６】
力覚センサ２５１は、自身に作用した力、即ち接触力に応じた信号を所定の周期で制御システム３００のロボット制御装置３５０に出力する。ロボット制御装置３５０は、力覚センサ２５１から得られた信号に基づいて、ハンド２０２に作用する力を求める処理を行う。このように、制御システム３００、即ちロボット制御装置３５０は、力覚センサ２５１を用いてハンド２０２に作用する力を測定することができる。即ち、力覚センサ２５１は、ロボット２００の先端部に作用する第１力データを取得するように構成されている。なお、上述したように、本実施の形態では、エンドエフェクタを含めてロボットと呼んでいる。このため、エンドエフェクタがついていれば、エンドエフェクタの先端がロボットの先端部となる。
【００１７】
ロボットアーム２０１の各関節Ｊ１〜Ｊ６には、駆動部２３０が配置されている。各駆動部２３０は、対応する関節を回転駆動するモータ２３１を有する。各関節Ｊ１〜Ｊ６に配置されたモータ２３１が動作することにより、ロボットアーム２０１の姿勢が変更される。ロボットアーム２０１の姿勢を変更することにより、ロボットアーム２０１の先端に支持されたハンド２０２を、任意の位置姿勢に変更することができる。以下、ロボットアーム２０１の先端の「位置姿勢」を、単に「位置」ともいう。
【００１８】
また、各駆動部２３０は、トルクセンサ２５２を有する。即ち、ロボットアーム２０１の関節Ｊ１〜Ｊ６には、第２センサの一例である複数のトルクセンサ２５２が配置されている。各トルクセンサ２５２は、各関節Ｊ１〜Ｊ６に作用するトルク、即ち各関節Ｊ１〜Ｊ６で連結された一対のリンクの間に作用するトルクに応じた信号を、所定の周期でロボット制御装置３５０に出力する。ロボット制御装置３５０は、複数のトルクセンサ２５２から得られた信号に基づき、ロボットアーム２０１の先端、即ちリンク２１６に取り付けられたハンドリング部２０３に作用する力を求める処理を行う。このように、ロボット制御装置３５０は、複数のトルクセンサ２５２を用いてロボットアーム２０１の先端、即ちハンドリング部２０３に作用する力を測定することができる。即ち、トルクセンサ２５２は、ハンドリング部２０３に作用する第２力データＦ２を取得するように構成されている。このハンドリング部２０３に作用する力には、教示者がハンドリング部２０３を掴んで操作するときにハンドリング部２０３に印加される操作力のほか、接触力が含まれる。なお、第１センサとしての力覚センサ２５１は、上述した第２センサとしてのトルクセンサ２５２よりもロボットの先端部寄り（エンドエフェクタ寄り）に配設されている。
【００１９】
また、各駆動部２３０は、エンコーダ２５３を有する。即ち、ロボットアーム２０１の関節Ｊ１〜Ｊ６には、第３センサの一例である複数のエンコーダ２５３が配置されている。各エンコーダ２５３は、ロータリエンコーダであり、モータ２３１の回転軸の回転角度に応じた信号を所定の周期でロボット制御装置３５０及びサーボ制御装置３６０に出力する。ロボット制御装置３５０は、複数のエンコーダ２５３から得られた信号に基づき、ロボットアーム２０１の先端の位置を求める処理を行う。このように、ロボット制御装置３５０は、複数のエンコーダ２５３を用いてロボットアーム２０１の先端の位置を測定することができる。即ち、エンコーダ２５３は、ロボットアーム２０１の先端部の位置姿勢データを取得するように構成されている。
【００２０】
図２は、第１実施形態に係るロボット装置１００の制御系を示すブロック図である。ロボット制御装置３５０は、コンピュータで構成されている。ロボット制御装置３５０は、処理部の一例であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１を備えている。また、ロボット制御装置３５０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３、及びＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０４を備えている。また、ロボット制御装置３５０は、記録ディスクドライブ３０５、及び入出力インタフェースであるＩ／Ｏ３１１〜３１４を備えている。
【００２１】
ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５、及びＩ／Ｏ３１１〜３１４は、互いに通信可能にバス３１０で接続されている。Ｉ／Ｏ３１１には、サーボ制御装置３６０が接続され、Ｉ／Ｏ３１２には、エンコーダ２５３が接続されている。また、Ｉ／Ｏ３１３には、トルクセンサ２５２が接続され、Ｉ／Ｏ３１４には、力覚センサ２５１が接続されている。
【００２２】
サーボ制御装置３６０には、各関節Ｊ１〜Ｊ６に対応するモータ２３１及びエンコーダ２５３が接続されている。なお、図２には、モータ２３１、エンコーダ２５３及びトルクセンサ２５２は、１つの関節分のみ図示しているが、第１実施形態では、６つの関節が存在する。したがって、図２において図示は省略するが、モータ２３１、エンコーダ２５３及びトルクセンサ２５２は、それぞれ６つ存在する。
【００２３】
ＣＰＵ３０１は、ロボットアーム２０１の各関節Ｊ１〜Ｊ６を駆動するモータ２３１を、サーボ制御装置３６０を介して制御することで、ロボットアーム２０１の動作を制御する。記憶部の一例であるＨＤＤ３０４は、制御及び演算用のプログラム３２５、及び教示データ３２０が記憶される。記録ディスクドライブ３０５は、記録ディスク３２６に記録された各種データやプログラム等を読み出すことができる。プログラム３２５は、ＣＰＵ３０１に、後述する各種演算や各種制御を行わせるプログラムである。
【００２４】
教示データ３２０は、ロボットアーム２０１を教示したときにＣＰＵ３０１によって生成され、例えば１［ｍｓ］などの所定の周期で指令する動作指令値の時系列データである。ＣＰＵ３０１は、ロボット制御装置３５０に設けられた不図示のスイッチが人によって操作されることで、教示モード及び再生動作モードのいずれかに設定される。
【００２５】
教示モードに設定された場合、ＣＰＵ３０１は、ロボットアーム２０１をインピーダンス制御することで、ロボットアーム２０１に作用した力の方向にならって動作するようロボットアーム２０１を制御する。そして、ＣＰＵ３０１は、教示データ３２０を生成してＨＤＤ３０４に記憶させる。再生動作モードに設定された場合、ＣＰＵ３０１は、ＨＤＤ３０４に記憶されている教示データ３２０に従ってロボットアーム２０１を動作させる。教示データ３２０は、軌道データともいう。
【００２６】
教示データ３２０に含まれている動作指令値は、位置指令値及び力指令値のいずれかである。位置指令値は、位置を示す３つのパラメータと、姿勢を示す３つのパラメータとで構成される。力指令値は、並進力を示す３つのパラメータと、モーメントを示す３つのパラメータとで構成される。
【００２７】
本実施形態では、位置指令値の時系列データが位置教示データ３２１、力指令値の時系列データが力教示データ３２２である。ＣＰＵ３０１は、位置教示データ３２１に基づいてロボットアーム２０１を位置姿勢制御し、力教示データ３２２に基づいてロボットアーム２０１を力制御する。以下、「位置姿勢制御」を「位置制御」という。なお、位置教示データ３２１が位置指令値の代わりに、各関節Ｊ１〜Ｊ６の目標角度を示す角度指令値、又は各モータ２３１の目標角度を示す角度指令値の時系列データで構成されていてもよい。
【００２８】
位置制御におけるフィードバック制御の一例について説明する。ＣＰＵ３０１は、教示データ３２０の位置指令値を、各関節Ｊ１〜Ｊ６の角度の目標値を示す角度指令値に変換する。更に、ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６の角度指令値から、各関節Ｊ１〜Ｊ６に配置したモータ２３１の回転角度の目標値を示す角度指令値に変換する。ＣＰＵ３０１は、各関節Ｊ１〜Ｊ６のモータ２３１に対する角度指令値を、所定の周期でサーボ制御装置３６０に出力する。サーボ制御装置３６０は、エンコーダ２５３により検出される角度が角度指令値に近づくようモータ２３１に供給する電流を制御する。以上の位置制御により、ロボットアーム２０１の先端の位置が位置指令値に近づけられる。
【００２９】
力制御におけるフィードバック制御の一例について説明する。ＣＰＵ３０１は、ロボットアーム２０１の先端に発生する力が教示データ３２０の力指令値となるよう各モータ２３１に対するトルク指令値を算出し、算出したトルク指令値をサーボ制御装置３６０に出力する。サーボ制御装置３６０は、各エンコーダ２５３の角度値に基づき、各関節に発生させるトルクが各トルク指令値となるよう、各モータ２３１に供給する電流を制御する。各モータ２３１は、通電されることにより駆動力を発生し、これにより各関節にトルクを発生させることで、ロボットアーム２０１の先端に力を発生させる。各エンコーダ２５３は、各モータ２３１の角度値を示す信号をＣＰＵ３０１へ出力する。各トルクセンサ２５２は、各トルク値を示す信号をＣＰＵ３０１へ出力する。これにより、各エンコーダ２５３の角度値と各トルクセンサ２５２のトルク値は、ＣＰＵ３０１にフィードバックされる。ＣＰＵ３０１は、ロボットモデル及び各エンコーダ２５３の角度値に基づいて各関節Ｊ１〜Ｊ６の角度値を算出する。ＣＰＵ３０１は、ロボットモデル及び各関節Ｊ１〜Ｊ６の角度値に基づいてロボットアーム２０１の先端の位置を算出する。ＣＰＵ３０１は、ロボットモデル、各関節の角度値及び各関節のトルク値に基づき、ロボットアーム２０１の先端に発生する力を算出する。以上の力制御により、ロボットアーム２０１の先端に発生する力が力指令値に近づけられる。
【００３０】
ＣＰＵ３０１がサーボ制御装置３６０に出力する角度指令値及びトルク指令値が駆動指令値である。ＣＰＵ３０１は、教示データ３２０からロボットアーム２０１の各関節Ｊ１〜Ｊ６のモータ２３１に対応する駆動指令値を生成してサーボ制御装置３６０に出力し、フィードバック制御によりロボットアーム２０１の位置制御や力制御を行うことができる。
【００３１】
図３は、力覚センサ２５１を用いて測定される力Ｆ１と、トルクセンサ２５２を用いて測定される力Ｆ２との関係を説明するための図である。教示者がハンドリング部２０３を操作する操作力をＦとし、ハンド２０２又はハンド２０２に支持された支持物が作業対象物に接触するときの接触力をｆとする。なお、図３に示すように、複数のトルクセンサ２５２をまとまった１つのセンサとして取り扱う。
【００３２】
図３に示すように、力覚センサ２５１とトルクセンサ２５２とが、ハンドリング部２０３を示す操作点Ｐを挟んで配置されている。力覚センサ２５１を用いて測定される力Ｆ１は、作業対象物との接触力ｆそのものである。これに対し、トルクセンサ２５２を用いて測定される力Ｆ２は、接触力ｆと、操作力Ｆとの合力（ｆ＋Ｆ）である。つまり、ハンドリング部２０３には、教示者が印加する操作力Ｆに加えて接触力ｆも作用する。
【００３３】
ロボット制御装置３５０は、接触力ｆおよび操作力Ｆに基づいて、各関節Ｊ１〜Ｊ６のモータ２３１に対応する駆動指令値を変化させる力フィードバック制御を行うことができる。具体的には、ロボット制御装置３５０は、接触力ｆが所定力となるように各関節Ｊ１〜Ｊ６のモータ２３１に対応する駆動指令値を変化させることで、所定力で把持物を作業対象物に押し付ける制御を行うことができる。また、ロボット制御装置３５０は、操作力Ｆの情報と仮想の粘性及び慣性によるインピーダンスモデルに基づき、各関節Ｊ１〜Ｊ６のモータ２３１に対応する駆動指令値を変化させる。これにより、人がハンドリング部２０３に加えた操作力Ｆに基づいてロボットアーム２０１を動かすことが可能となる。即ち、教示時においては、ロボット制御装置３５０は、ロボットアーム２０１に作用した操作力Ｆの方向にならって動作するようロボットアーム２０１をインピーダンス制御する。
【００３４】
以下、ロボットアーム２０１をダイレクト教示する場合について説明する。図４は、図２に示す制御システム３００の制御ブロック図である。図２に示すＣＰＵ３０１は、プログラム３２５を実行することにより、図４に示す各部３３１〜３４４として機能する。図２に示すＨＤＤ３０４は、図４に示す記憶部３４６として機能する。ロボットモデル３４７は、ロボットアーム２０１の形状や寸法などの情報（データ）であり、ＨＤＤ３０４に予め記憶されている。ハンド情報３４８は、ハンド２０２の形状や寸法などの情報（データ）であり、ＨＤＤ３０４に予め記憶されている。
【００３５】
ダイレクト教示を行う場合、ロボット制御装置３５０は、ロボットアーム２０１に作用した操作力Ｆの方向にならって動作するようロボットアーム２０１をインピーダンス制御する。ダイレクト教示としては、ロボットアーム２０１を手動で操作したときに、教示者が要所で決定ボタンを押して教示点を決定し、これら教示点を結んで教示データを生成する方法もある。これに対し、本実施形態のダイレクト教示では、教示者がロボットアーム２０１を操作したときの一連の動作データを逐一取得し、一連の時系列データを取得後、このデータに基づいて教示データ３２０を生成する。これにより、ロボットアーム２０１を教示データ３２０に従って再生動作させる自動運転においては、教示者が教示したときのロボットアーム２０１の動作を再現する再現性が向上する。
【００３６】
以下、教示データ３２０を生成する処理について説明する。ロボット制御装置３５０は、教示時、即ち教示モードに設定されたときに、所定の周期、例えば１［ｍｓ］の周期で、力覚センサ２５１、トルクセンサ２５２及びエンコーダ２５３から出力された信号を受け取る。第１測定部３３１は、力覚センサ２５１からの信号に基づき、第１力である力Ｆ１を測定、即ち力Ｆ１のデータを算出して、力Ｆ１のデータを記憶部３４６に記憶させる。第２測定部３３２は、複数のトルクセンサ２５２からの信号に基づき、第２力である力Ｆ２を測定、即ち力Ｆ２のデータを算出して、力Ｆ２のデータを記憶部３４６に記憶させる。第３測定部３３３は、複数のエンコーダ２５３それぞれからの信号に基づき、複数のモータ２３１それぞれの回転角度を求め、複数のモータ２３１それぞれの回転角度のデータを記憶部３４６に記憶させる。記憶部３４６に記憶させる力Ｆ１のデータ、力Ｆ２のデータ、回転角度のデータは、例えば１［ｍｓ］毎の時系列データである。各データは、時間軸で互いに対応するように同期させてある。
【００３７】
姿勢算出部３３４は、ロボットモデル３４７及び記憶部３４６に記憶された各エンコーダ２５３の回転角度のデータに基づき、ロボットアーム２０１の姿勢を算出する。ロボットアーム２０１の姿勢とは、ロボットアーム２０１の各関節Ｊ１〜Ｊ６の角度である。手先算出部３３５は、ロボットアーム２０１の姿勢のデータ及びハンド情報３４８に基づき、ロボットアーム２０１の先端、即ちハンドリング部２０３の座標を算出する。即ち、姿勢算出部３３４及び手先算出部３３５により、ロボットアーム２０１の先端の位置を時系列で測定したことになる。なお、ロボットアーム２０１の先端の位置の測定は、エンコーダ２５３を用いて行う場合に限定するものではない。例えば、ロボットアーム２０１の周囲に配置されたビジョンセンサを用いてロボットアーム２０１の先端の位置を測定するようにしてもよい。
【００３８】
接触力算出部３３６は、力覚センサ２５１を用いて測定した力Ｆ１から接触力ｆを算出する。本実施形態では、力覚センサ２５１を用いて測定した力Ｆ１が接触力ｆである。操作力算出部３３７は、力覚センサ２５１を用いて測定された力Ｆ１のデータと、トルクセンサ２５２を用いて測定された力Ｆ２のデータとの差分値（Ｆ２−Ｆ１）を算出する。本実施形態では、差分値（Ｆ２−Ｆ１）が操作力Ｆのデータである。このように、差分値（Ｆ２−Ｆ１）により操作力Ｆのデータのみを抽出することができる。
【００３９】
設定部３３８は、ロボットアーム２０１の位置の測定結果に基づいて、時系列データの全区間を、再生動作時にロボットアーム２０１を位置制御する第１区間と、再生動作時にロボットアーム２０１を力制御する第２区間とに区分けする。本実施形態では、設定部３３８は、時系列データの全区間に対し、算出した接触力ｆの大きさがゼロとなるかどうかで区分けする。具体的には、設定部３３８は、接触力ｆの大きさがゼロの区間を第１区間とし、接触力ｆの大きさがゼロ以外の区間を第２区間とする。なお、本実施の形態において、上記第１区間は、上述した第３センサ（本実施の形態では、エンコーダ２５３）の位置姿勢のデータを再現するようにロボットアーム２０１を位置姿勢制御する第１期間ということもできる。また、第２区間は、上述した第１力データ及び第２力データを再現するようにロボットアーム２０１を力制御する第２期間ということもできる。これら第１及び第２期間は、上述したように第１力データ及び第２力データの解析結果に基づいて、設定部３３８により設定される。なお、本実施の形態において「再現」とは、完全に同一のロボットの動きを実行することに留まらず、教示されたロボットの動作に基づいた動作を実行するのであれば、例え、教示されたロボットの動作とは異なっていても上記「再現」の概念の範囲に含まれる。即ち、第１期間の位置制御及び第２期間の力制御で、ロボットを適切に動作させることが出来れば、その動作は教示された動作から異なっていても良い。
【００４０】
図５は、操作力及び接触力の時系列データを示す説明図である。図５には、ハンド２０２に第１部品の一例であるコネクタＷ１を把持させ、第２部品の一例であるコネクタＷ２にコネクタＷ１を組み付ける組付動作について例示している。また、図５には、ＸＹＺ軸の直交座標系を基準とする操作力及び接触力を図示している。なお、説明を簡略にするため、操作力については、ＸＹＺ方向の３つの並進力である操作力Ｆｘ，Ｆｙ，Ｆｚのみとする。同様に、接触力については、ＸＹＺ方向の３つの並進力である接触力ｆｘ，ｆｙ，ｆｚのみとする。設定部３３８は、時系列データを測定したときの全区間を、３つの接触力ｆｘ，ｆｙ，ｆｚの大きさが共にゼロとなる第１区間である区間Ｓ１と、３つの接触力ｆｘ，ｆｙ，ｆｚの大きさがゼロ以外となる第２区間である区間Ｓ２とに区分けする。つまり、接触力がない場合は区間Ｓ１、接触力がある場合は区間Ｓ２とする。
【００４１】
区間Ｓ１においては、接触力が発生していない、即ち３つの接触力ｆｘ，ｆｙ，ｆｚがゼロである。具体的には、コネクタＷ１，Ｗ２同士が接触する前の状態である。操作力Ｆｘ，Ｆｙ，Ｆｚは、人がハンドリング部２０３に加える力に応じて変動する。コネクタＷ１，Ｗ２の組付において重要なのは、コネクタＷ１，Ｗ２同士が接触してからの挙動である。コネクタＷ１，Ｗ２同士が接触する前の動作軌跡や力変動は重要ではない。本実施形態では、接触力ｆと操作力Ｆとに分けることができる。そのため、コネクタＷ１，Ｗ２同士が接触していない区間Ｓ１と、コネクタＷ１，Ｗ２同士が接触する区間Ｓ２とに区分けすることが可能である。
【００４２】
コネクタＷ１，Ｗ２同士が接触する前は、上述したように接触力が発生していないため、ロボットアーム２０１を力制御する必要がない。よって、図４に示す位置教示データ生成部３３９は、区間Ｓ１において、ロボットアーム２０１の先端の位置のデータに基づいて、位置教示データ３２１を生成する。本実施形態では、位置教示データ生成部３３９は、区間Ｓ１の始点における位置のデータと、終点における位置のデータとの２点間を、所定の補間方法、例えば直線補間や関節補間により補間して、位置教示データ３２１を生成する。これにより、途中の軌道が単純化され、ロボットアーム２０１の動作をより高速化することができる。なお、位置教示データ３２１としては、測定した時系列の位置のデータそのものとしてもよい。このような場合であっても、力制御する場合に比べ、ロボットアーム２０１の動作を高速化することができる。また、本実施形態では、ロボット制御装置３５０が自動で区間Ｓ１，Ｓ２を区分けするため、教示者の手間が減る。なお、補間計算する始点及び終点の２点を、区間Ｓ１の始点及び終点とするのが好ましいが、これに限定するものではなく、区間Ｓ１の始点前後の点と、区間Ｓ１の終点前後の点としてもよい。
【００４３】
区間Ｓ２においては、接触力が発生している、即ち３つの並進力ｆｘ，ｆｙ，ｆｚのいずれかがゼロではないため、ロボットアーム２０１を力制御する必要がある。図４に示す力教示データ生成部３４２は、区間Ｓ２において、再生動作時に差分値（Ｆ２−Ｆ１）、即ち操作力Ｆに応じた力（第３力）でロボットアーム２０１が動作するよう力教示データ３２２を生成する。
【００４４】
教示データ生成部３４３は、生成した位置教示データ３２１と力教示データ３２２とを時系列につないで、教示データ３２０を生成し、生成された教示データ３２０を格納する記憶部であるＨＤＤ３０４に記憶させる。本実施の形態において、教示データ生成部３４３は、位置教示データ生成部３３９、力教示データ生成部３４２及び後述する補正部３４０や、照合部３４１などと共に、上述した第１及び第２期間を有する教示データを生成する生成手段を構成している。
【００４５】
動作指令部３４４は、再生動作モードに設定されたとき、ＨＤＤ３０４に格納された教示データ３２０を読み出して、動作指令値を生成し、サーボ制御装置３６０へ出力する。力教示データ３２２に従ってロボットアーム２０１を再生動作させることで、各関節Ｊ１〜Ｊ６のモータ２３１には、ロボットアーム２０１の先端に操作力Ｆに相当する力が発生するようなトルクを発生させる。これにより、教示者（熟練者）がロボットアーム２０１を操作したときと同様の動作をロボットアーム２０１に再現させることができる。即ち、ロボットアーム２０１の一連の動作のうち、精密な作業が必要な箇所において、教示時のロボットアーム２０１の動作を正確に再現することができる。即ち、教示時のロボットアームの動作に基づいて所望の態様でロボットアームを制御することができる。
【００４６】
操作力Ｆのデータ、即ち差分値（Ｆ２−Ｆ１）を補正せずにそのまま力教示データ３２２としてもよいが、一連の時系列データの中には、教示者の手振れや、リトライ動作をした場合にその前の動作などの無駄な動作も含まれている。そこで、補正部３４０及び照合部３４１は、無駄な動作を除去すべく、操作力Ｆのデータを補正する。力教示データ生成部３４２は、操作力Ｆのデータが補正された場合は、補正された操作力Ｆのデータから力教示データ３２２に含まれる力指令値を生成する。
【００４７】
以下、力教示データ３２２、即ち力指令値の生成方法について具体的に説明する。補正部３４０は、力制御を行う区間Ｓ２を、複数の第３区間である複数の区間Ｓ３−１，Ｓ３−２，Ｓ３−３に区分けする。
【００４８】
区間Ｓ３−１においては、コネクタＷ１，Ｗ２同士が接触した直後の状態を表わしている。区間Ｓ３−１では、接触力ｆｘ，ｆｙ，ｆｚが急峻に変化する。その後、ｙ方向の操作力Ｆｙが顕著に変化しており、人がｙ方向にロボットアーム２０１を動かそうとしている。操作力Ｆｙについてさらに着目すると、大部分は＋ｙ方向に力が掛かっているが、一時的に−ｙ方向に力が掛かっている。教示者は、一度動かした＋ｙ方向に対して意図的に−ｙ方向に戻している。区間Ｓ３−１の終了付近では、操作力Ｆｙが安定しており、＋ｙ方向に一定の力が掛かった状態である。安定している場合は組み付けに必要な力を教示者が教示時に発見していることが多い。
【００４９】
区間Ｓ３−２においては、ｘ方向の操作力Ｆｘ及び接触力ｆｘが急峻に変化している。操作力Ｆｘの方向が高頻度で変わっており、教示者が振動的にハンドリング部２０３に操作力を加えていることが分かる。コネクタＷ１を振動させながら組み付けを行うと、コネクタＷ１，Ｗ２の組み付けがし易くなることがあり、この場合は教示者が意図して振動的にハンドリング部２０３を操作している。記録された力のデータにおいて、操作力の方向が反転し、それが連続している場合は意図した動作と判断し、その間の操作力データの除外などは行わずに力教示データ３２２を生成する。これによって教示者が意図した動作を再生時に反映することができる。仮に、この状態の操作力を移動平均などで単純に補正してしまうと、操作力の変化がないデータとなってしまい、教示者が意図した動作を再現することができなくなる。なお、上記の説明では、操作力の方向が反転し、それが連続していることで判断しているが、操作力の反転する周波数の高低で判断してもよい。数ｋＨｚ以上の応答は人の操作によるものではないため、人が意図して振動的な動作を行う場合の周波数（数Ｈｚ程度）の前後に閾値を設けて補正の有無を区分けしてもよい。
【００５０】
区間Ｓ３−３においては、コネクタＷ１，Ｗ２同士の突き当て完了、即ち組み付けが完了しており、接触力の急峻な変化後に操作力がなくなっている。操作力がなくっているので教示動作が終了していることが分かる。
【００５１】
操作力Ｆのデータ、接触力ｆのデータ、及び位置のデータは、連続する区分けのないデータ群である。区間Ｓ２を複数の区間Ｓ３−１，Ｓ３−２，Ｓ３−３に区分けする方法について具体的に説明する。
【００５２】
人は、精密な作業ほど作業速度が低くなる傾向にある。そのため、ロボットアーム２０１を高速に動作させている区間は、緻密さを求めていない動作や制御的な揺れだと考えられる。そこで、本実施形態では、補正部３４０は、区間Ｓ２における操作力Ｆのデータを周波数分析し、その分析した結果に基づいて、区間Ｓ２を複数の区間Ｓ３−１，Ｓ３−２，Ｓ３−３に区分けする。具体例には、ＣＰＵ３０１は、操作力Ｆのデータを周波数分析し、周波数の変化点を抽出し、周波数の変化点を区間を区切る箇所とする。これにより、教示者の動作の変化点を抽出する、即ち教示者の動作の変化点で区間Ｓ２を複数の区間に区分けすることが可能である。なお、操作力Ｆｘ、Ｆｙ、Ｆｚの主となる力成分の変化や、それぞれの力の方向の正負の変化などからも人の動作の変化点を抽出することができる。例えば、操作力がｘ方向にのみ力が掛かっている状態からｙ方向に力が掛かっている状態に変化すれば、何かしら教示者が意図して動作を変更したことが分かる。
【００５３】
区間Ｓ２を区分けした複数の第３区間のうちの一つを区間Ｓ３とする。図６は、第３区間である区間Ｓ３の説明図である。ＣＰＵ３０１は、図６に示すように、区間Ｓ３をさらに複数の細区間ＳＡに区分けする。各細区間ＳＡは、同じ時間間隔、本実施形態では、データのサンプリング周期、例えば１［ｍｓ］とする。
【００５４】
補正部３４０は、複数の細区間ＳＡそれぞれにおいて、始点に対する終点の操作力Ｆの変化の大きさを求め、記憶部であるＨＤＤ３０４に記憶させる。図６に示すようにグラフで表せば、操作力Ｆの変化の大きさは、矢印で示すベクトルの角度に比例する。操作力Ｆの変化の大きさが予め設定された閾値を下回る場合は、「Ｓ」のラベル、上回る場合は「Ｌ」のラベルを付して、操作力Ｆの変化の大きさのデータと対応付けてＨＤＤ３０４に記憶させる。また、操作力Ｆの変化の方向について、ゼロから遠ざかる方向に「＋」のラベル，ゼロに近づく方向に「−」のラベルを付す。記憶させたラベルについて、「Ｓ」のラベルが付された細区間ＳＡが、予め設定した所定数以上連続している区間を連続区間ＳＢとする。連続区間以外の区間を区間ＳＣとする。
【００５５】
補正部３４０は、連続区間ＳＢに含まれる、操作力Ｆのデータを平均化処理などで平滑化する。即ち、補正部３４０は、第１及び第２力のデータの解析によって設定された第２期間内の特定の期間については、教示時にハンドリング部２０３が操作された操作力Ｆを平滑化している。力教示データ生成部３４２は、その平滑化したデータ（操作力）から力教示データ３２２を生成する。このように、本実施形態では、補正部３４０及び力教示データ生成部３４２は、連続区間ＳＢにおいて、ロボットアーム２０１に発生させる力が平滑化するよう力教示データ３２２を生成する。このように、微小な変化を平滑化することで、例えば教示者の手振れなどの無駄な動作を除去することができる。
【００５６】
補正部３４０は、連続区間ＳＢ以外の区間ＳＣにおいては、以下のように処理する。図７（ａ）、図７（ｂ）及び図７（ｃ）は、区間Ｓ３における操作力のデータの説明図である。破線は、補正前の操作力Ｆのデータを示し、実線は、補正後の操作力Ｆのデータを示している。なお、破線と実線とが重なっている箇所は、操作力Ｆのデータを補正していないことを示している。
【００５７】
補正部３４０は、区間ＳＣにおいて、操作力Ｆが図７（ａ）に示すようにゼロを跨いでいる場合は、操作力Ｆのデータを補正しない。このため、力教示データ生成部３４２は、操作力Ｆのデータをそのまま力教示データ３２２とする。操作力の正負が反転しているのは、操作者が意図的に振動させている場合など、組立を行う上で重要な動作の可能性があるからである。ここで、操作力Ｆのデータがゼロを跨ぐとは、操作力Ｆのデータの正負の符号が入れ替ることである。
【００５８】
補正部３４０は、区間ＳＣにおいて、操作力Ｆが図７（ｂ）に示すようにゼロを跨いでいない場合であっても、連続区間ＳＢの終点の操作力Ｆが、ゼロを含む所定範囲Ｒの内側に存在する場合は、操作力Ｆのデータを補正しない。このため、力教示データ生成部３４２は、操作力Ｆのデータをそのまま力教示データ３２２とする。連続区間ＳＢにおいて操作力Ｆがゼロ近傍の場合、仮にデータを平滑化して力教示データを生成すると、操作力の全てが無視された力ゼロの力教示データになってしまうためである。これを避けるため、図７（ｂ）の場合、区間ＳＣにおいて操作力Ｆのデータは補正しない。
【００５９】
補正部３４０は、区間ＳＣにおいて、操作力Ｆが図７（ｃ）に示すようにゼロを跨いでいない場合であって、連続区間ＳＢの終点の操作力Ｆが、ゼロを含む所定範囲Ｒの外側に存在する場合、操作力Ｆのデータを平滑化する補正する。具体的には、補正部３４０は、区間ＳＣにおいて、連続区間のＳＢの始点と同じ操作力に向かう前半の区間に対する後半の区間の操作力Ｆのデータを平滑化する。力教示データ生成部３４２は、補正された操作力Ｆのデータから力教示データ３２２を生成する。ここで、区間ＳＣは、連続区間ＳＢよりも前の細区間の集まりである。これにより、本実施形態では、補正部３４０及び力教示データ生成部３４２は、連続区間ＳＢよりも前の区間において、ロボットアーム２０１に発生させる力（第３力）が平滑化するよう力教示データ３２２を生成する。図７（ｃ）の例では、区間ＳＣの前半において、力ベクトルの最大傾きで増加し、区間ＳＣの後半において、連続区間ＳＢ内の力教示データを最終指令値とした力教示データ３２２を生成する。これにより、教示者が試行錯誤している間の力変動を除去し、最終的な操作力の結果を初めから反映させることができる。
【００６０】
次に、照合部３４１の処理について説明する。図８は、コネクタ接続する教示においてリトライ動作を行っている場合を示す説明図である。図８に示すコネクタＷ１，Ｗ２同士を接続する場合において、例えばフレキシブルフラットケーブルなどの柔軟物Ｗをハンド２０２に把持させた場合、力を掛け過ぎると柔軟物Ｗの変形量が大きくなる。コネクタＷ１の向きが、組付可能な方向に対してズレが大きくなる。このような場合、教示者は、元の位置に戻す動作を行い、リトライ動作を行って、掛かる力を調整する。
【００６１】
図９は、照合部３４１の処理の説明図である。図９に示すように、戻し動作が終了したときの位置データは、組み付け作業を行う前の位置データと同じ値となる。したがって、後半のリトライ動作を行う場合、前半の動作は全て不要である。
【００６２】
そこで、本実施形態では、照合部３４１は、区間Ｓ２において、時系列の位置データうち、同じ値となる２つの位置データ間のデータを除外するとともに、時系列の操作力データのうち除外した位置データに同期する操作力データを除外する。換言すると、照合部３４１は、補正部３４０で補正された操作力データと同期した位置データを参照し、類似した時系列の位置データがあるかどうかを判定する。類似した時系列の位置データがある場合は、類似した時系列の位置データを除外し、同期している力教示データも併せて除外する。力教示データ生成部３４２は、部分的に除外された操作力データから力教示データ３２２を生成する。このように、照合部３４１及び力教示データ生成部３４２は、区間Ｓ２において、時系列の位置データうち、同じ値となる２つの位置データ間のロボットアーム２０１の動作を省略するよう、力教示データ３２２を生成する。ここで、「同じ値」とは、予めＨＤＤ３０４等の記憶部に設定された許容差の範囲内で互いに位置データがずれている場合も含む。例えば、許容差が０．１［ｍｍ］に設定されている場合、座標Ｘ：２００．０［ｍｍ］、Ｙ：２００．０［ｍｍ］、Ｚ：２００．０［ｍｍ］と、座標Ｘ：１９９．９［ｍｍ］、Ｙ：２００．０［ｍｍ］、Ｚ：２００．０［ｍｍ］とは同じ値であるものとする。なお、２つの位置データ間のロボットアーム２０１の動作を省略する場合には、２つの位置データのうちいずれか一方の位置データに対応する動作は省略し、他方の位置データに対応する動作は残しておくのが好ましい。図９の例では、組み付けに失敗した区間Ｓ４の動作を省略する。即ち、生成手段（３４１，３４２）は、第３センサによって取得した位置姿勢データに基づいてロボットアームの教示時のやり直し動作の有無を判定し、やり直し動作が有ると判定した場合には、失敗時の動作については、再現しないように教示データを生成する。このように、位置データも併せてデータ処理をすることにより、無駄な動作を効果的に除去することができる。
【００６３】
以上、ロボット制御装置３５０の動作を、図４に示すブロック図に沿って説明した。以下、ロボット制御装置３５０の一連の処理をまとめると、図１０に示すフローチャートとなる。図１０は、第１実施形態に係るロボット教示方法の一例を示すフローチャートである。
【００６４】
まず、ＣＰＵ３０１は、教示時のロボットアーム２０１の時系列の位置データ、操作力データ及び接触力データを取得する（Ｓ１０１）。なお、ＣＰＵ３０１は、事前に手動で設定した教示データの区間分割設定や細区間のラベル分けの閾値、位置データの類似判定の設定などを読み込む。
【００６５】
次に、ＣＰＵ３０１は、教示時の各データを読み込んだ設定に従って区分け処理を行う（Ｓ１０２）。具体的には、ＣＰＵ３０１は、図５の例に示すように区間Ｓ１，Ｓ３−１，Ｓ３−２，Ｓ３−３…のように区分けする。
【００６６】
ＣＰＵ３０１は、区分けしたデータに対し、区間番号１〜ＮＭＡＸを時系列に付与する（Ｓ１０３）。以下、区間毎に教示データを生成する。ＣＰＵ３０１は、区間処理番号Ｎを定義し、まずＮ＝１とする（Ｓ１０４）。
【００６７】
ＣＰＵ３０１は、Ｎ区間目における接触力の有無を判断する（Ｓ１０５）。接触力がない場合（Ｓ１０５：ＮＯ）、ＣＰＵ３０１は、位置制御をベースとし（Ｓ１０６）、位置指令値を生成する処理を実行する（Ｓ１０７）。ステップＳ１０８において、ＣＰＵ３０１は、Ｎ区間の始点の位置と終了の位置とを、所定の補間方法で結んで、即ち位置データを補正して、位置指令値を生成する。即ち、生成手段としてのＣＰＵ３０１は、第１期間（第１区間）にて再現する位置教示データを、第３センサが取得した位置姿勢データのうちの２点間を所定の補間方法により補間して生成する。
【００６８】
接触力がある場合（Ｓ１０５：ＹＥＳ）、ＣＰＵ３０１は、力制御をベースとし（Ｓ１０８）、力指令値を生成する処理を実行する（Ｓ１０９）。ＣＰＵ３０１は、位置指令値又は力指令値を生成後、Ｎ＜ＮＭＡＸであるかどうかを判断する（Ｓ１１０）。Ｎ＜ＮＭＡＸである場合（Ｓ１１０：ＹＥＳ）、ＣＰＵ３０１は、Ｎを１つインクリメントし（Ｓ１１１）、ステップＳ１０５の処理に戻る。Ｎ＝ＮＭＡＸの場合（Ｓ１１０：ＮＯ）、ＣＰＵ３０１は、全区間の指令値を時系列に並べた教示データ３２０を生成する（Ｓ１１２）。
【００６９】
以下、図１０のステップＳ１０９の処理について具体的に説明する。図１１は、力指令値生成処理を示すフローチャートである。ＣＰＵ３０１は、位置データにおいて、類似箇所があるかどうかを判定する（Ｓ１２１）。ＣＰＵ３０１は、類似箇所がある場合（Ｓ１２１：ＹＥＳ）、位置データが類似すると判定した箇所のデータを、類似箇所の最後のデータを除き、同時系列の力データも併せて削除する削除処理を実行する（Ｓ１２２）。
【００７０】
次にＣＰＵ３０１は、Ｎ区間目のデータを、力センサのサンプリング周期毎にさらに区分して細区間とする（Ｓ１２３）。ＣＰＵ３０１は、各細区間に番号１〜ｎＭＡＸを付与する（Ｓ１２４）。なお、ＣＰＵ３０１は、細区間における操作力データの変位が、大きいか小さいかを閾値から判定し、ラベル付けを行う。このとき、ＣＰＵ３０１は、変位が小さい細区間が連続している細区間群を連続区間とする。
【００７１】
ＣＰＵ３０１は、細区間処理番号ｎを定義し、まずｎ＝１とする（Ｓ１２５）。ＣＰＵ３０１は、ｎ区間目の細区間が連続区間であるかどうかを判断する（Ｓ１２６）。連続区間である場合（Ｓ１２６：ＹＥＳ）、ＣＰＵ３０１は、操作力データを平均化処理することで、平滑された力指令値を生成する（Ｓ１２７）。
【００７２】
ＣＰＵ３０１は、連続区間でない場合（Ｓ１２６：ＮＯ）、操作力Ｆがゼロを跨ぐかどうかを判断する（Ｓ１２８）。操作力Ｆがゼロを跨ぐ場合（Ｓ１２８：ＹＥＳ）、ＣＰＵ３０１は、操作力データの処理を行わず力指令値を生成する。操作力Ｆがゼロを跨がない場合（Ｓ１２８：ＮＯ）、ＣＰＵ３０１は、Ｎ区間目における連続区間の有無や、操作力データが収束する値に応じて、操作力のデータ処理を行う（Ｓ１２９）。上述したように、Ｎ区間目に連続区間が存在する場合は、連続区間の開始時の値を目標にした力指令値を生成する。
【００７３】
ＣＰＵ３０１は、ｎ＜ｎＭＡＸであるかどうかを判断する（Ｓ１３０）。ｎ＜ｎＭＡＸである場合（Ｓ１３０：ＹＥＳ）、ＣＰＵ３０１は、ｎを１つインクリメントし（Ｓ１３１）、ステップＳ１２６の処理に戻る。ｎ＝ｎＭＡＸの場合（Ｓ１３０：ＮＯ）、図１０のステップＳ１１０の処理に移行する。
【００７４】
以上の説明では、例えば図５に示すコネクタＷ１，Ｗ２同士の組み付け動作について説明したが、ロボット２００に行わせる作業はこれだけではなく、例えば、探り動作をロボットアーム２０１に行わせる場合もある。
【００７５】
人が視覚に頼らずに手の感覚で組立作業を行う場合がある。目視で大まかな目標位置を決めた後、手の感覚を頼りに組立を進めていく。これは部品に合わせて目視で目標位置を修正しながら組立を行うよりも、大まかな位置に部品を当接させ、ある方向に部品を押し当てながら部品がある状態に収束する組立方法を発見する方が効率的だからと思われる。ロボット２００を用いた組立でも同じことが言える。
【００７６】
図１２（ａ）〜図１２（ｄ）は、ロボットアームの探り動作を教示する説明図である。ワークＷ１２の上面に沿う方向の軸をＸ，Ｙとし、Ｘ，Ｙ軸に直交する方向の軸をＺとする。図１２（ａ）に示すように、棒状物のワークＷ１１を、ワークＷ１２の挿入穴Ｈ１２に挿入する際の探り動作（位置探索）をロボットアームに行わせる。ハンドに把持させたワークＷ１１を挿入対象のワークＷ１２の上面に当接させ、Ｚ方向に一定の力で押し付けながら、ＸＹ方向に挿入位置を探索する。図１２（ｂ）に示すようにワークＷ１１が挿入穴Ｈ１２に差し掛かった場合、人は接触力の変化を感じ取り、操作力を変更して組立を図１２（ｃ）及び図１２（ｄ）に示すように次の段階に進める。操作力の変化時に接触力の変化がある場合、動作の歩進条件に接触力の変化を設定することで部品のズレなどを吸収できる組立動作を再現する。しかし、探り動作（位置探索）のように操作力が継続的に変動しているが接触力の変化がない又は少ない場合は、今までと異なる処理になる。教示時の挿入穴Ｈ１２に差し掛かかるまでの動作範囲内に再生動作時の挿入穴Ｈ１２がある場合、接触力の変化を動作の歩進条件にすることで組立動作を再現することができるが部品のズレが教示時の動作範囲外にあるときは動作の再現ができない。探り動作に関しては教示時から動作を補完して部品のズレにも対応できるようにする必要がある。
【００７７】
そこで、本実施形態では、ＣＰＵ３０１は、操作力が継続的に変動しているが接触力の変化がない又は少ない動作は、探り動作と判断し、動作の傾向から再生動作の補完を行う。図１３は、軌道を補完する具体例を示す説明図である。図１３には、３つの探索動作α，β，γを図示している。ＣＰＵ３０１は、挿入穴Ｈ１２に到達する、即ち接触力が変化するまでの各座標の変位から探り動作の傾向を分析し、教示時にない動作を補完することで部品のずれなどに対応することができ、汎用性が高くなる。
【００７８】
［第２実施形態］
図１４は、第２実施形態に係るロボット装置１００Ａの説明図である。第１実施形態では、第２センサである複数のトルクセンサであり、ロボットアーム２０１の各関節に配置される場合について説明した。第２実施形態では、第２センサが力覚センサ２５２Ａである。力覚センサ２５２Ａは、ロボットアーム２０１の先端とハンドリング部２０３との間に配置されているのが好ましい。本実施形態では、力覚センサ２５２Ａは、ハンドリング部２０３に内蔵されている。力覚センサ２５２Ａは、力覚センサ２５１と同様の構成である。力覚センサ２５２Ａは、ハンドリング部２０３にかかる力に応じた信号をロボット制御装置３５０に所定の周期で出力する。第２実施形態においても、第１実施形態と同様、力覚センサ２５２Ａを用いて測定される力Ｆ２から力覚センサ２５１を用いて測定される力Ｆ１を差し引くことで、操作力Ｆを算出することができる。
【００７９】
［第３実施形態］
図１５は、第３実施形態に係るロボット装置１００Ｂの説明図である。第１実施形態では、第１センサである力覚センサ２５１を、ロボット２００に搭載した場合について説明した。第３実施形態では、第１センサは、作業対象物Ｗ２２を載置するベースＢに設けられた力覚センサ２５１Ｂである。力覚センサ２５１Ｂは、第１実施形態で説明した力覚センサ２５１と同様の構成である。
【００８０】
ハンド２０２にワークＷ２１を把持させた場合には、作業対象物Ｗ２２には、ワークＷ２１が接触する。力覚センサ２５１Ｂには、このときの接触力が作用する。力覚センサ２５１Ｂは、自身に作用した力に応じた信号をロボット制御装置３５０に所定の周期で出力する。よって、ロボット制御装置３５０は、力覚センサ２５１Ｂを用いて接触力を測定することができる。
【００８１】
［第４実施形態］
ついで、第４実施形態について、図１６乃至図１８（ｂ）に基づいて説明をする。なお、以下の説明において、第１実施形態に対して異なる点についてのみ説明をし、第１実施形態と同様の構成については、同様の参照符号を用いることによって、その説明を省略する。図１６は、第４実施形態に係るロボット装置の制御系を示すブロック図である。図１６に示すように、本実施の形態では、バス３１０にＩ／Ｏ３１５を介して操作装置２５４が接続されている。即ち、操作装置２５４がロボット制御装置３５０と接続されており、このロボット制御装置３５０を介して、ロボット２００の位置姿勢情報や力覚センサ２５１やトルクセンサ２５２などからの力センサ情報を操作装置２５４が取得できるように構成されている。
【００８２】
図１７に示すように、上記操作装置２５４は、表示部２５６、操作部２５７、外部入出力部２５８、表示制御部２５９、通信インタフェース部２６０を備えている。操作装置２５４は、ロボット制御装置３５０から取得したデータを処理し、表示部２５６で表示を行うと共に、操作部２５７の状態変化をロボット制御装置３５０へ通知する。ここで、操作部２５７は、ユーザー（教示作業者）からの操作を受け付けて、表示部２５６に表示されている表示情報に対する変更操作を可能に制御する制御手段である。また、外部入出力部２５８は、任意のセンサ信号やトリガ信号などを外部に入出力する為のインタフェースである。更に、表示制御部２５９は、教示データ生成部３４３により生成した教示データに対応した表示情報を表示部に出力する出力手段となっている。表示制御部２５９は、表示部２５６に対して表示情報を、第１区間（第１期間）と第２区間（第２期間）とを識別可能な時系列情報として表示する。
【００８３】
ついで、表示部２５６の構成について詳しく説明を行う。表示部２５６は画面の描画を行い、図１８（ａ）の教示データ確認画面に示すような教示時のデータを表示する。教示データ確認画面は常に表示部２５６に表示されていても良いし、画面の遷移を行うことで別の画面として切り替え表示されても良い。教示データ確認画面には、教示時のロボット２００の位置情報、ロボット２００の力センサ情報が時系列データ（時系列生データ）として表示される。また、取得した位置情報や力センサ情報から自動生成された教示データも時系列（時系列教示データ）と併せて表示される。このように取得された時系列生データと、生成された教示データとしての時系列教示データとを比較することで、作業者の意図が忠実に反映されている領域と、省略やスムージングや削除が行われた領域を区別して確認することができる。またこの表示を確認しながら、教示データの修正を行うことができるようにしてもよい。なお、図１８（ａ）では便宜上、データを上下に配置しているが、同じグラフ上に重ねて表示しても良い。
【００８４】
時系列生データは前述したように自動的に区間分割され、区間毎に特徴に合わせてデータ処理が行われ教示データが生成される。上記区間分割は、少なくとも第１区間（第１期間）及び第２区間（第２期間）の単位では分割され、これら分割された区間は操作部２５７によって独立して選択及び変更操作が可能となっている。より具体的には、本実施形態では、上記区間分割は、第１区間及び第２区間を更に細分化して表示するようになっている。即ち、表示部２５６には、第１区間をさらに細分化した第１細区間（第１細期間）及び／又は第２期間をさらに細分化した第２細区間（第２細期間）が表示され、これら第１細区間及び第２細区間はそれぞれ独立して選択及び変更操作ができるようになっている。なお、本実施形態では、第１区間及び第２区間において、自動で細区間に分割するように構成しているが、手動で細区間に分割するように構成されてもよく、当然にこれらの細区間は、選択したり、編集や削除したり、することができるようにしてもよい。
【００８５】
教示データ確認画面では時系列生データと時系列教示データそれぞれで、区間の区切りが分かるように表示される。上記分割した区間は操作部２５７に設けられたボタンや、操作装置２５４の表示部２５６がタッチパネルになっている場合は、直接画面をクリックすることなどで選択することが可能になっている。選択された区間は選択されたことが分かるように網掛け表示や反転表示、その他色表示などで明示され、選択された区間における教示データ生成の方法が選択指示することを可能としている。ただし、区間の選択なしに常に教示データが時系列生データからどのように生成されたかがわかるような情報を表示していても良い。
【００８６】
また、ある区間が選択されると、選択ＵＩを表示し、あらかじめ設定された各種処理から所望の処理を選択可能とする。例えば平均化処理、線形近似、ゼロ値化、省略、最速軌道生成、補正なし（教示生データを忠実に再現する）、などの教示データ生成方法を再選択し、教示データの再生成を行うこともできる。教示データの生成方法を再選択した場合には教示データを再生成するかの確認画面が表示される。ただし、再生成するかの確認画面をなくし、再生成は自動で行っても良い。教示データを再生成した場合には表示部２５６の時系列教示データが更新表示される。即ち、操作部２５７を介して、表示部２５６に表示されている表示情報に対する変更操作が実行されると、更新手段としての表示制御部２５９によって、上記変更操作に基づいて教示データが更新される。また、教示データの生成方法の再選択および再生成の確認画面はポップアップ画面を表示して行うか操作部２５７に割り付けられたボタンなどで選択しても良い。
【００８７】
また、区間の選択だけではなく、操作部２５７に設けられたボタンや操作装置２５４の表示部２５６がタッチパネルになっている場合は、直接画面をクリックすることなどで上述した区間の区切り自体を選択することも可能である。また自動的に処理生成された区間の区切りの時間軸上での移動や、区切りの削除および追加も行うことができるようにしており、区間の時間幅を変更可能にしている。区間の区切りの選択は上記区間の選択のときと同様の手段で行う。区切りの追加に関しては画面上の区切りがない場所を選択することで追加画面をポップアップ表示させても良いし、操作部２５７に割り付けられたボタンなどで行えるようにしても良い。なお、上記表示部２５６がタッチパネルになっている場合は、操作部２５７が表示部２５６と一体的に構成される。また、上述した変更操作は、操作部２５７のボタンもしくはタッチパネルの操作に基づき実行可能となっている。加えて、操作部２５７のボタンもしくはスイッチとは、物理的なボタン／スイッチであっても、タッチパネル上に画像として表示されるボタン／スイッチであっても、どちらでも良い。
【００８８】
ついで、図１８（ｂ）を用いて操作部２５７の構成について詳しく説明をする。なお、以下の説明においては、操作部２５７は、図１６の操作装置２５４上の表示部２５６上に表示されているボタンを例として説明するが、操作装置２５４に設けられている物理ボタンであっても良い。
【００８９】
操作部２５７は、教示作業が有効か無効かを切り替える教示有効／無効スイッチ２５７ａを備えており、この教示有効／無効スイッチ２５７ａが有効時には時系列生データを更新表示する。常時、時系列生データを更新表示しても良いが、教示作業以外の不要なときに描画など制御装置の負荷が増大するのを避ける目的で、教示有効／無効スイッチ２５７ａは設けられている。更新表示を行う期間はあらかじめ任意に設定できるが、期間が長すぎるとデータの表示密度が上がり、作業者にとって見難くなるため適度に設定する。
【００９０】
また、操作部２５７は、教示データ取得ボタン２５７ｂを備えており、この教示データ取得ボタン２５７ｂを操作することによって、表示されている時系列生データをリセットし、表示を一から行うことができるように構成されている。即ち、操作部２５７は、ハンドリング部２０３を操作しているときの第１力データ及び第２力データの取得の可否を選択可能な選択部によって、上記教示データ取得ボタン２５７ｂの機能を実現している。教示データ取得ボタン２５７ｂが押下される、もしくは、教示データ取得ボタンが解除された場合、ロボットはその場で即停止する。また教示データ取得ボタン２５７ｂは、ロボット側のハンドリング部２０３に設置されていても良い。
【００９１】
更に、操作部２５７は、時系列教示データを再現動作させる実行ボタン２５７ｃを備えており、実行ボタン２５７ｃが押下されるとロボット２００（ロボットアーム２０１）は、選択されている時系列教示データに基づき動作を行うようになっている。
【００９２】
ついで、教示時の流れについて詳しく説明を行う。教示作業有効／無効スイッチ２５７ａを有効にし、ロボット２００の教示を開始する。教示作業有効／無効スイッチ２５７ａを有効にすると、操作装置２５４の表示部２５６に時系列生データがあらかじめ設定した任意の期間、表示される。そして、教示作業者は時系列生データを見ながらワークの組立作業などの検討を進めていく。ついで、試行錯誤が終わり実際に教示データを生成する段階に達すると、教示作業者は教示データ取得ボタン２５７ｂを押下し、時系列生データを蓄積させていく。
【００９３】
蓄積表示された時系列生データは、上述したように複数の区間に分割して表示されており、教示作業有効中でも選択し削除することは可能である。削除した区間の始めから教示データを取得し直すことができ、削除した区間を選択した状態で教示データ取得ボタン２５７ｂを押下すれば教示データの結合が行われる。
【００９４】
ただし、削除した区間の直前の区間の最終の時系列生データ（特に位置姿勢情報）と再取得した時系列生データとの間に、予め設定した閾値以上の差がある場合は、警告の表示を行い、データの結合を回避する。また、データがうまく結合できるように作業者をアシストする機能を設けても良い。例えば、削除した区間の直前の区間をトレースするように低速で自動動作を行い、区間の最終区間近傍に到達すると到達を通知する表示を行うような機能である。この場合、作業者は通知が出てから教示データ取得ボタン２５７ｂを押下し教示作業を継続する。また削除した次の区間との結合に関しても同様なアシストを行い、教示データ取得ボタン２５７ｂが解放された時点で削除された区間の次の区間の始めの位置姿勢まで自動的に動作を補間する機能があっても良い。つまり、教示データの結合部分に急峻な位置姿勢の変化を発生させないことが重要である。ただし、力情報に関しては連続性が失われる為注意が必要である。
【００９５】
教示データ取得ボタン２５７ｂが押下されると、取得した時系列生データから自動的に時系列教示データが生成され、操作装置２５４の表示部２５６に表示される。作業者は表示されている時系列教示データを確認し、適宜編集を行い教示データの保存を行う。
【００９６】
ついで、教示データの再生について説明を行う。教示データの再生は実行ボタン２５７ｃの押下で行う。作業者は、教示作業時の各種条件、例えば組立対象物の初期位置やロボットの初期位置姿勢などを揃え、実行ボタン２５７ｃを押下する。操作装置２５４の表示部２５６の時系列教示データ上には再生している箇所が分かるように、時間軸上での位置が分かるように表示される。例えば、時間軸に垂直なバーが時間経過と共に移動していくなどの表示やハイライト表示されるなどである。それにより、教示作業のうまくいった箇所や問題のある箇所が確認でき、教示データの編集がより容易になる。
【００９７】
また、時系列生データと時系列教示データは操作装置から再読み込みおよび再編集が可能なようにロボット制御装置３５０の記憶部などにセットデータとして管理され、保存する教示データは任意のファイル名を付けることが可能である。上記のような操作はロボットのティーチングを行うティーチングペンダントで実行してもよいし、任意のコンピュータ上の所定のアプリケーションで実行するように構成してもよい。
【００９８】
以上の機能を有することで、教示データの自動生成や教示データの修正を簡単で分かりやすく実行することができる。そのため、ロボットの扱いに不慣れな初級ユーザーからロボットの扱いに慣れている熟練者まで、簡単に教示データの生成と修正を実行できるＵＩを提供することができる。また、ロボットの扱いに慣れている熟練者は教示データを確認しながら教示を行い、教示データの生成方法を試行錯誤することが可能な為、簡単な操作で高度な教示を実施することが可能になる。
【００９９】
［第５実施形態］
ついで、第５実施形態を図１９に基づいて説明をする。なお、以下の説明では、第４実施形態と異なる点についてのみ説明し、同様の構成については、同じ参照符号を付すことによってその説明を省略する。本実施の形態では、表示部２５６において、時系列生データと時系列教示データが時間軸を合わせて並べて表示されないように構成されている。例えば、図１９に示すように、不要な動作など時系列教示データの時間軸を一部圧縮し、時間軸のデータの短縮量が分かり易いように区間の対応箇所が認識できるような対応線４００を表示している。
【０１００】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能であり、各実施形態に記載されている発明はどのように組み合わされても良い。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【０１０１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０２】
また、上述の実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４の場合について説明したがこれに限らず、記録ディスク３２６等、いかなる記録媒体であってもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、光ディスク（例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ）、光磁気ディスク、磁気テープ、不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等、種々の記録媒体を用いることができる。また、上述の実施形態におけるプログラム３２５を、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１０３】
また、コンピュータが読み出したプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【０１０４】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述の実施形態の機能が実現される場合も含まれる。
【符号の説明】
【０１０５】
１００…ロボットシステム（ロボット装置）、２００…ロボット、２０１…ロボットアーム、２０２…ハンド（エンドエフェクタ）、２０３…ハンドリング部、２５１…力覚センサ（第１センサ）、２５２…トルクセンサ（第２センサ）、２５３…エンコーダ（第３センサ）、２５６…表示部、２５７…操作部、２５９…出力手段／更新手段（表示制御部）、３００…制御システム（制御装置）、３０１：生成手段（ＣＰＵ）、３２０…教示データ、３２１…位置教示データ、３２２…力教示データ
【図１】
2019136860.tif 000003
【図２】
2019136860.tif 000004
【図３】
2019136860.tif 000005
【図４】
2019136860.tif 000006
【図５】
2019136860.tif 000007
【図６】
2019136860.tif 000008
【図７】
2019136860.tif 000009
【図８】
2019136860.tif 000010
【図９】
2019136860.tif 000011
【図１０】
2019136860.tif 000012
【図１１】
2019136860.tif 000013
【図１２】
2019136860.tif 000014
【図１３】
2019136860.tif 000015
【図１４】
2019136860.tif 000016
【図１５】
2019136860.tif 000017
【図１６】
2019136860.tif 000018
【図１７】
2019136860.tif 000019
【図１８】
2019136860.tif 000020
【図１９】
2019136860.tif 000021