(57)【要約】  組立を行うロボットアーム（５）の制御装置において、ロボットアーム（５）の動作に関する情報が記録された動作データベース（１７）と、前記動作の補正種別を決定する補正動作種別決定部（２３）と、人（１６）の力を検出する力検出部（５３）と、ロボットアーム（５）の作業中に、人（１６）の力と補正種別に応じて、動作を補正する動作補正部（２０）とを備えてロボットアームの制御装置を構成する。
2011021375.tif 000002
【特許請求の範囲】
【請求項１】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御装置であって、  前記ロボットアームに作用する人の力を検出する力検出手段と、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出された前記人の力とをそれぞれ取得する情報取得部と、  前記ロボットアームが前記組立対象物に加える力を検出する対象物力検出手段と、  前記情報取得部でそれぞれ取得した前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とから前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段  とを備えるロボットアームの制御装置。
【請求項２】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢との情報と、前記ロボットアームから組立作業面にかける力情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、前記ロボットアームの作業を行わない領域に関する情報である作業不可領域情報のうちの少なくとも１つの情報を有する請求項１に記載のロボットアームの制御装置。
【請求項３】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームから前記作業面にかける力情報を少なくとも有し、前記動作補正手段は、前記動作に関する情報に基づいて、予め設定された力を前記ロボットアームから前記作業面に作用させて前記動作を行なう力制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記動作を前記ロボットアームで行っている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、補正動作前の前記動作に関する情報のうちの前記設定された力の大きさ又は方向を補正する請求項１に記載のロボットアームの制御装置。
【請求項４】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢の情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、作業を行わない領域に関する情報である作業不可領域情報とを有し、  前記動作補正手段は、前記動作に関する情報に基づいて、前記ロボットアームの位置を制御する位置制御モードで動作している最中に、前記ロボットアームに対して前記人から前記ロボットアームに加わる力に応じて前記ロボットアームが作動するインピーダンス制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記作業を動作させている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、前記インピーダンス制御での前記動作に関する情報の前記動作を補正する請求項１に記載のロボットアームの制御装置。
【請求項５】
前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備えることを特徴とする請求項１〜４のいずれか１つに記載のロボットアームの制御装置。
【請求項６】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、  前記補正動作種別決定手段は、前記対象物検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値以上である場合に、前記補正動作の種別として、作業面の位置と姿勢の移動の種別であると決定し、  さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの前記手先の位置と姿勢を補正する請求項１に記載のロボットアームの制御装置。
【請求項７】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、  前記補正動作種別決定手段は、前記対象物検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値未満である場合に、前記補正動作の種別として、速度の補正の種別であると決定し、  さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの速度を補正する請求項１に記載のロボットアームの制御装置。
【請求項８】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置の移動量を検出するとともに、  前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値以下であり、かつ、前記補正動作種別決定部で検出された前記ロボットアームの移動量が、ある閾値以上である場合に、前記補正動作の種別として、位置・姿勢の補正の種別であると決定し、  さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正する請求項１に記載のロボットアームの制御装置。
【請求項９】
前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値を越える場合に、前記補正動作の種別として、力の補正の種別であると決定し、  さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正する請求項１に記載のロボットアームの制御装置。
【請求項１０】
前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備える請求項１〜４,６〜８のいずれか１つに記載のロボットアームの制御装置。
【請求項１１】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、  前記ロボットアームに作用する人の力を力検出手段で検出し、  前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正するロボットアームの制御方法。
【請求項１２】
前記ロボットアームと、  前記ロボットアームを制御する請求項１〜４，６〜９のいずれか１つに記載のロボットアームの制御装置とを備える組立ロボット。
【請求項１３】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定するステップと、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させための組立ロボット用ロボットアームの制御プログラム。
【請求項１４】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備える組立ロボット用ロボットアームの制御用集積電子回路。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、例えば工場内で組立を行うロボットの組立方法を生成、教示するためのロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有する組立ロボット、ロボットアームのプログラム、ロボットアームの制御用集積電子回路に関する。
【背景技術】
【０００２】  近年、工場内ではセル生産が盛んに行われるようになってきた。セル生産では、ネジ締め作業又は部品の勘合作業、装着作業、フレキシブル基板などの挿入作業、研磨作業などのように多種多様な作業を人手中心で行っている。【０００３】  さらに、携帯電話などの電気製品はモデル数が増大し、加えて、各々の機種において、モデルチェンジが頻繁に起こるため、扱う部品の仕様変更又は作業手順の変更が頻繁に発生する。【０００４】  これらの作業をロボットにより自動化するためには、多種多様な部品又は作業手順に柔軟に対応する必要がある。【０００５】  そのためには、部品変更又は作業手順の変更を簡単、短時間に教示ができる必要がある。【０００６】  ロボット装置の教示方法の一例として、ロボットの手首などに力センサを装着し、力センサの先に装着されたハンドルを教示者が直接把持してロボットを教示点に誘導し、ロボットの位置の教示を行っている（特許文献１を参照）。【０００７】  さらに、ロボットを直接把持してロボットを教示する際に、教示作業者の意図を理解して教示作業中に力制御の操作感を自動的に変更することを行っている（特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開昭５９−１５７７１５号公報
【特許文献２】特開２００８−１１０４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】  しかしながら、特許文献１においては、全ての教示点を教示者が教示する必要があるため、教示に時間がかかり、非常に面倒であった。さらに、産業用分野にて、教示した動きの一部を修正する場合に、ティーチングペンダントと呼ばれる遠隔装置により、プログラミングにより修正するか、若しくは、全ての動作を一から教示しなければならず、効率が悪かった。【００１０】  さらに、特許文献２においては、人の直接教示時に、教示作業者の意図を理解し、作業中の操作感を自動的に変更しているが、教示作業者が位置、力、速度などの複数種類の教示パラメータのうち、どのパラメータを操作しようとしているかなどの操作感以外の操作意図の理解は行っていない。そのため、作業教示者がどのパラメータを教示するかを明示的に設定する必要がある。さらに、教示した動きの一部を修正することができず、作業効率が悪かった。【００１１】  本発明の目的は、このような課題に鑑みてなされたものであり、作業者が簡単で短時間にロボットの教示を行うことが可能な、ロボットアームの制御装置及び制御方法、組立ロボット、ロボットアームの制御プログラム、及び、ロボットアームの制御用集積電子回路を提供することにある。
【課題を解決するための手段】
【００１２】  前記目的を達成するために、本発明は以下のように構成する。【００１３】  本発明の第１態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御装置であって、  前記ロボットアームに作用する人の力を検出する力検出手段と、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出された前記人の力とをそれぞれ取得する情報取得部と、  前記ロボットアームが前記組立対象物に加える力を検出する対象物力検出手段と、  前記情報取得部でそれぞれ取得した前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とから前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とするロボットアームの制御装置を提供する。【００１４】  本発明の第１１態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、  前記ロボットアームに作用する人の力を力検出手段で検出し、  前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正することを特徴とするロボットアームの制御方法を提供する。【００１５】  本発明の第１２態様によれば、前記ロボットアームと、  前記ロボットアームを制御する第１〜９のいずれか１つの態様に記載のロボットアームの制御装置とを備えることを特徴とする組立ロボットを提供する。【００１６】  本発明の第１３態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決���するステップと、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させための組立ロボット用ロボットアームの制御プログラムを提供する。【００１７】  本発明の第１４態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とする組立ロボット用ロボットアームの制御用集積電子回路を提供する。
【発明の効果】
【００１８】  以上述べたように、本発明のロボットアームの制御装置によれば、補正動作種別決定手段と、力検出手段と、対象物力検出手段と、動作補正手段と、制御手段とを有することにより、前記ロボットアームが加える力及び対象物に加わる力及び前記ロボットアームの位置及び速度を含む組立動作に関する情報を利用して、人の力に応じて、組立動作を簡単に補正することができるロボットアームの制御が可能となる。【００１９】  また、本発明のロボットアームの制御方法、ロボットアームの制御プログラム、及び、ロボットアームの制御用集積電子回路によれば、補正動作種別決定手段と、動作補正手段と、制御手段とを有することにより、前記ロボットアームが加える力及び対象物に加わる力及び前記ロボットアームの位置及び速度を含む組立動作に関する情報を利用して、力検出手段で検出された人の力に応じて、組立動作を簡単に補正することができるロボットアームの制御が可能となる。【００２０】  さらに、補正動作種別決定手段を有することにより、複数の動作をボタンなどを使わずに自動で切り替えて補正することが可能となる。さらに、補正動作種別決定手段を有することにより、操作する人のスキルなどに応じて、一度に複数種別の補正を行うか、１種類の補正を行うかを切り替えることができる。【００２１】  また、制御パラメータ管理手段と制御部をさらに有することにより、補正動作の種別に応じて、ロボットアームの機械インピーダンス値を設定することで、ロボットアームの補正方向に応じて、機械インピーダンス値を変更させて制御したり、補正中の作業面に対する力を弱めたり停止することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の第１実施形態における組立ロボットを構成するロボットアームの制御装置の構成の概要を示す図であり、
【図２Ａ】図２Ａは、本発明の前記第１実施形態における前記ロボットアームの制御装置においてロボットアームの操作状態を示す図であり、
【図２Ｂ】図２Ｂは、本発明の前記第１実施形態における前記ロボットアームの制御装置においてロボットアームの操作状態を示す図であり、
【図３】図３は、本発明の前記第１実施形態における前記ロボットアームの制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図４】図４は、本発明の前記第１実施形態の前記ロボットアームの制御装置における動作データベースの動作情報の一覧表を説明する図であり、
【図５】図５は、本発明の前記第１実施形態の前記ロボットアームの制御装置における動作データベースのフラグに関する情報を説明する図であり、
【図６】図６は、本発明の前記第１実施形態の前記ロボットアームの制御装置における補正パラメータのフラグに関する情報を説明する図であり、
【図７】図７は、本発明の前記第１実施形態における前記ロボットアームの制御装置の制御部の構成を示すブロック図であり、
【図８】図８は、本発明の前記第１実施形態における前記ロボットアームの制御装置の経路に関する図であり、
【図９】図９は、本発明の前記第１実施形態における周辺装置の表示部を説明する図であり、
【図１０】図１０は、本発明の前記第１実施形態の前記ロボットアームの制御装置における作業不可領域データベース情報の一覧表を説明する図であり、
【図１１】図１１は、本発明の前記第１実施形態における前記ロボットアーム制御装置の経路に関する図であり、
【図１２Ａ】図１２Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置における座標系に関する図であり、
【図１２Ｂ】図１２Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置における座標系に関する図であり、
【図１２Ｃ】図１２Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置における座標系に関する図であり、
【図１３】図１３は、本発明の前記第１実施形態の前記ロボットアーム制御装置における動作補正部と補正動作種別決定部と動作選択部と動作記憶部と動作データベースと制御パラメータ管理部の動作ステップを表すフローチャートであり、
【図１４】図１４は、本発明の前記第１実施形態の前記ロボットアーム制御装置における補正動作種別決定部の動作ステップを表すフローチャートであり、
【図１５】図１５は、本発明の前記第１実施形態の前記ロボットアーム制御装置において人のかける力とその時刻の関係を示す図であり、
【図１６】図１６は、本発明の前記第１実施形態の前記ロボットアーム制御装置における制御部の動作ステップを表すフローチャートであり、
【図１７】図１７は、本発明の前記第１実施形態の前記ロボットアーム制御装置における力と位置の閾値を説明する図であり、
【図１８Ａ】図１８Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１８Ｂ】図１８Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１８Ｃ】図１８Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１８Ｄ】図１８Ｄは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１９Ａ】図１９Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１９Ｂ】図１９Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１９Ｃ】図１９Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１９Ｄ】図１９Ｄは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２０Ａ】図２０Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２０Ｂ】図２０Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２０Ｃ】図２０Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図２０Ａを上から見た図）であり、
【図２０Ｄ】図２０Ｄは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２０Ｅ】図２０Ｅは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２１Ａ】図２１Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図２１Ｂ】図２１Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図２２Ａ】図２２Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２２Ｂ】図２２Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２２Ｃ】図２２Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２３】図２３は、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２４Ａ】図２４Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２４Ｂ】図２４Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２４Ｃ】図２４Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２５Ａ】図２５Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２５Ｂ】図２５Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を説明するときのハンドの拡大図であり、
【図２６】図２６は、本発明の前記第１実施形態の前記ロボットアーム制御装置における周辺装置のデータ入力ＩＦを説明する図であり、
【図２７】図２７は、本発明の第２実施形態の前記ロボットアーム制御装置における組立ロボットを構成する制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図２８Ａ】図２８Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２８Ｂ】図２８Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２８Ｃ】図２８Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２９】図２９は、本発明の前記実施形態の前記ロボットアーム制御装置における動作データベースの動作情報の一覧表を説明する図であり、
【図３０Ａ】図３０Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｂ】図３０Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｃ】図３０Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｄ】図３０Ｄは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｅ】図３０Ｅは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｆ】図３０Ｆは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｇ】図３０Ｇは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｂの挿入口の挿入部分を拡大した図)であり、
【図３０Ｈ】図３０Ｈは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｃの挿入口の挿入部分を拡大した図)であり、
【図３０Ｉ】図３０Ｉは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｄの挿入口の挿入部分を拡大した図)であり、
【図３０Ｊ】図３０Ｊは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｅの挿入口の挿入部分を拡大した図)であり、
【図３０Ｋ】図３０Ｋは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｆの挿入口の挿入部分を拡大した図)であり、
【図３０Ｌ】図３０Ｌは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示しかつ挿入口の付近を拡大した図（図３０Ｉの円Ｌの拡大図）であり、
【図３０Ｍ】図３０Ｍは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示しかつ挿入口の付近を拡大した図（図３０Ｊの円Ｍの拡大図）であり、
【図３０Ｎ】図３０Ｎは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示しかつ挿入口の付近を拡大した図（図３０Ｋの円Ｎの拡大図）であり、
【図３１】図３１は、本発明の前記実施形態の前記ロボットアーム制御装置における対象物にかける力とその時刻の関係を示す図であり、
【図３２】図３２は、本発明の前記実施形態の前記ロボットアーム制御装置における補正動作種別決定部の動作ステップを表すフローチャートであり、
【図３３Ａ】図３３Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３３Ｂ】図３３Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３３Ｃ】図３３Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３４Ａ】図３４Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３４Ｂ】図３４Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３４Ｃ】図３４Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３４Ｄ】図３４Ｄは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３４Ａの挿入口の挿入部分を拡大した図)であり、
【図３４Ｅ】図３４Ｅは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３４Ｂの挿入口の挿入部分を拡大した図)であり、
【図３４Ｆ】図３４Ｆは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３４Ｃの挿入口の挿入部分を拡大した図)であり、
【図３５Ａ】図３５Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３５Ｂ】図３５Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３５Ｃ】図３５Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３５Ｄ】図３５Ｄは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３５Ａの挿入口の挿入部分を拡大した図)であり、
【図３５Ｅ】図３５Ｅは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３５Ｂの挿入口の挿入部分を拡大した図)であり、
【図３５Ｆ】図３５Ｆは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３５Ｃの挿入口の挿入部分を拡大した図)であり、
【図３６Ａ】図３６Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３６Ｂ】図３６Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３６Ｃ】図３６Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３６Ｄ】図３６Ｄは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ａの挿入口の挿入部分を拡大した図)であり、
【図３６Ｅ】図３６Ｅは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｂの挿入口の挿入部分を拡大した図)であり、
【図３６Ｆ】図３６Ｆは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｃの挿入口の挿入部分を拡大した図)であり、
【図３６Ｇ】図３６Ｇは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｄの円Ｇの拡大図）であり、
【図３６Ｈ】図３６Ｈは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｅの円Ｈの拡大図）であり、
【図３６Ｉ】図３６Ｉは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｆの円Ｉの拡大図）である。
【発明を実施するための形態】
【００２３】  以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【００２４】  以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【００２５】  本発明の第１態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御装置であって、  前記ロボットアームに作用する人の力を検出する力検出手段と、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出された前記人の力とをそれぞれ取得する情報取得部と、  前記ロボットアームが前記組立対象物に加える力を検出する対象物力検出手段と、  前記情報取得部でそれぞれ取得した前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とから前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とするロボットアームの制御装置を提供する。
【００２６】  このような構成により、人の力に応じて、ロボットアームの組立方法を補正することができる。
【００２７】  本発明の第２態様によれば、前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢との情報と、前記ロボットアームから組立作業面にかける力情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、前記ロボットアームの作業を行わない領域に関する情報である作業不可領域情報のうちの少なくとも１つの情報を有することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００２８】  このような構成により、前記ロボットアームが行う作業に応じて、それぞれの時間での、位置情報と、前記ロボットアームがかける力情報と、方向に関する情報と、速度情報と、作業をしてほしくない領域に関する情報のうちの少なくとも１つの情報を補正することができる。
【００２９】  本発明の第３態様によれば、前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームから前記作業面にかける力情報を少なくとも有し、  前記動作補正手段は、前記動作に関する情報に基づいて、予め設定された力を前記ロボットアームから前記作業面に作用させて前記動作を行なう力制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記動作を前記ロボットアームで行っている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、補正動作前の前記動作に関する情報のうちの前記設定された力の大きさ又は方向を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３０】  このような構成により、前記動作に関する情報に基づいて、予め設定された力を前記ロボットアームから前記作業面に作用させて前記動作を行なう力制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記動作を前記ロボットアームで行っている最中に、前記力検出手段で検出した前記人の力に応じて、補正動作前の前記動作に関する情報のうちの前記設定された力の大きさ又は方向を補正することができる。
【００３１】  本発明の第４態様によれば、前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢の情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、作業を行わない領域に関する情報である作業不可領域情報とを有し、  前記動作補正手段は、前記動作に関する情報に基づいて、前記ロボットアームの位置を制御する位置制御モードで動作している最中に、前記ロボットアームに対して前記人から前記ロボットアームに加わる力に応じて前記ロボットアームが作動するインピーダンス制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記作業を動作させている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、前記インピーダンス制御での前記動作に関する情報の前記動作を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３２】  このような構成により、前記動作に関する情報に基づいて、前記ロボットアームの位置を制御する位置制御モードで動作している最中に、駆動停止している前記ロボットアームに対して前記人から前記ロボットアームに加わる力に応じて前記ロボットアームが作動するインピーダンス制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記作業を動作させている最中に、前記力検出手段で検出した前記人の力に応じて、前記インピーダンス制御での前記動作に関する情報の前記動作を補正することができる。
【００３３】  本発明の第５態様によれば、前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備えることを特徴とする第１〜４のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３４】  本発明の第６態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、  前記補正動作種別決定手段は、前記対象物検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値以上である場合に、前記補正動作の種別として、作業面の位置と姿勢の移動の種別であると決定し、  さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの前記手先の位置と姿勢を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３５】  本発明の第７態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、  前記補正動作種別決定手段は、前記対象物検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値未満である場合に、前記補正動作の種別として、速度の補正の種別であると決定し、  さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの速度を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３６】  本発明の第８態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置の移動量を検出するとともに、  前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値以下であり、かつ、前記補正動作種別決定部で検出された前記ロボットアームの移動量が、ある閾値以上である場合に、前記補正動作の種別として、位置・姿勢の補正の種別であると決定し、  さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３７】  本発明の第９態様によれば、前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値を越える場合に、前記補正動作の種別として、力の補正の種別であると決定し、  さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３８】  本発明の第１０態様によれば、前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備える第１〜９のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３９】  このような構成により、補正動作の種別に関する情報を表示することができる。
【００４０】  本発明の第１１態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、  前記ロボットアームに作用する人の力を力検出手段で検出し、  前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正することを特徴とするロボットアームの制御方法を提供する。
【００４１】  このような構成により、ロボットアームの動作に関する情報に基づき、前記動作の補正種別を決定し、人の力を検出し、前記ロボットアームの作業中に、前記人の力と前記補正種別に応じて、前記動作を提供することができる。
【００４２】  本発明の第１２態様によれば、前記ロボットアームと、  前記ロボットアームを制御する第１〜９のいずれか１つの態様に記載のロボットアームの制御装置とを備えることを特徴とする組立ロボットを提供する。
【００４３】  本発明の第１３態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定するステップと、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させための組立ロボット用ロボットアームの制御プログラムを提供する。
【００４４】  本発明の第１４態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、  前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、  予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とする組立ロボット用ロボットアームの制御用集積電子回路を提供する。
【００４５】  以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００４６】  （第１実施形態）  まず、本発明の第１実施形態における、ロボットアームの制御装置を備える組立ロボット１の構成について説明する。
【００４７】  図１に示すように、組立ロボット１の一例として、工場内のセル生産で、テレビ若しくはＤＶＤレコーダ、又は、携帯電話などの機器６のフレキシブル基板挿入口７５に、フレキシブル基板７４を取り付ける組立作業を行う、組立ロボット用ロボットアーム５について説明する。
【００４８】  組立ロボット１のロボットアーム５は、作業台７の壁面７ａに設置され、ロボットアーム５の基端が、壁面７ａに固定されたレール８に、移動可能に支持され、レール８上をロボットアーム５が、レール８沿いの横方向例えば水平方向に、人１６Ａの手１６の力により、又はモータなどにより自動的に、移動可能とする。ロボットアーム５の基端の固定場所は、作業台７の壁面７ａに限られるものではなく、天井などでもよい。
【００４９】  作業台７の側面には、ボタン２６ａなどが配置された操作盤２６Ａなどのデータ入力ＩＦ２６と、作業台７の壁面などに配置された表示手段の一例としての表示部１４とを備えるように構成されている。
【００５０】  レール８は、壁面７ａに固定されたレール固定部８ａと、モータ６５の駆動により正逆回転駆動される車輪（図示せず）を有してレール固定部８ａに対して移動可能なレール可動部８ｂとで構成されている。ロボットアーム５の基端が連結された台部３４が前記レール可動部８ｂに連結されて、レール固定部８ａに対して、ロボットアーム５の台部３４がレール可動部８ｂと共に移動可能に構成されている。又は、このような構成に代えて、ロボットアーム５の基端が連結された台部３４にモータ６５により正逆回転駆動される車輪を設けて、壁面７ａに固定されたレール８に沿って、台部３４が移動するような構成としてもよい。
【００５１】  ロボットアーム５の先端には、フレキシブル基板７４を把持するために開閉可能なハンド３０が取り付けられている。
【００５２】  組立ロボット１は、作業台７の上に固定的に載置された機器６の挿入口７５にフレキシブル基板７４を挿入するロボットであり、前記ロボットアーム５と、ロボットアーム５の動作を制御する制御装置とで構成されている。
【００５３】  組立ロボット１の操作手順の概要を説明する。
【００５４】  まず、図２Ａにおいて、人１６が作業台７の側面に配置されているデータ入力ＩＦ２６（例えば図２６の操作盤２６Ａの電源ボタン２６ａの「ＯＮ」を押すなど）により電源を入れる。
【００５５】  次に、機器６を作業台７の上に設置する。設置の際に、図２Ｂに示すように、ロボットアーム５の先端を移動させて、機器６を作業台７の上に設置しやすいように、ロボットアーム５を人の手１６により移動することができる（機器６を作業台７の上に設置するのに邪魔にならない位置までロボットアーム５を人の手１６により移動することができる）。
【００５６】  次に、作業台７の側面に配置されているデータ入力ＩＦ２６（例えば図２６の操作盤２６Ａの作業スイッチ２６ｃのスタートボタンなど）を人の手１６で押すことにより、組立ロボット１が作動し、後述する動作選択部２９で最適な組立動作を選択して、その選択された動作に基づき、ロボットアーム５による組立作業を開始させる。
【００５７】  なお、データ入力ＩＦ２６の一例としての操作盤２６Ａは、作業台７の側面に固定したが、遠隔操作が可能なリモコンでも良い。
【００５８】  ロボットアーム５による組立作業の際には、ロボットアーム５のハンド３０により、フレキシブル基板７４の基板自体若しくは基板先端のコネクタ部などの所望の箇所を把持させる。その後、ハンド３０でフレキシブル基板７４を把持した状態でロボットアーム５を、人の手１６で又は自動的に移動させ、フレキシブル基板７４のコネクタ部が機器６のフレキシブル基板挿入口７５に対向させ、ロボットアーム５により、フレキシブル基板７４のコネクタ部を挿入口７５内に挿入して、フレキシブル基板７４を機器６に組み付ける。このとき、必要に応じて、人の手１６でロボットアーム５を押すなどしてロボットアーム５の動作を補正などするように制御している。
【００５９】  より具体的には、図１８Ｂに示すように、フレキシブル基板７４又は機器６などのモデルチェンジにより、フレキシブル基板７４を挿入口７５内に挿入する力加減又は位置などが変更になった場合には、人１６が変更の状態を確認し、図１８Ｃに示すように、人の手１６でロボットアーム５を押すなどして力を強めにかけるように補正する。このようにすることで、図１８Ｄに示すように、力加減を強めに挿入することができる。以下、このようなロボットアーム５による組立作業について詳細に説明する。
【００６０】  図３は、組立ロボット１を構成する制御装置の構成要素を詳細に示す図であり、制御装置本体部４５と、動作を生成する動作生成装置１２と、制御対象であるロボットアーム５と、レール８と、周辺装置４７との詳細構成を示す図である。組立ロボット１の前記制御装置は、制御装置本体部４５と、動作生成装置１２と、周辺装置４７とで大略構成されている。
【００６１】  制御装置本体部４５及び動作生成装置１２及び周辺装置４７は、それぞれ、一般的なパーソナルコンピュータにより構成される。
【００６２】  制御装置本体部４５は、動作生成装置１２の動作補正手段の一例としての動作補正部２０と補正動作種別決定手段の一例としての補正動作種別決定部２３と周辺装置４７のデータ入力ＩＦ２６とにそれぞれ接続された制御パラメータ管理手段の一例としての制御パラメータ管理部２１と、制御パラメータ管理部２１と周辺装置４７の入出力ＩＦ２４とに接続されたインピーダンス制御手段の一例としての制御部（インピーダンス制御部）２２とを備えるように構成される。
【００６３】  動作生成装置１２は、動作データベース１７と、作業不可領域データベース２８と、動作補正部２０と、補正動作種別決定部２３と、動作記憶部１５と、動作選択部２９と、情報取得部（情報取得手段の一例）１００とを備えるように構成される。動作記憶部１５は、動作データベース１７と作業不可領域データベース２８と動作補正部２０とに接続されている。動作データベース１７と作業不可領域データベース２８とは、それぞれ、動作記憶部１５と動作補正部２０と動作選択部２９とに接続されている。動作補正部２０は、動作データベース１７と作業不可領域データベース２８と動作記憶部１５と制御装置本体部４５の制御パラメータ管理部２１と補正動作種別決定部２３と周辺装置４７のデータ入力ＩＦ２６とが接続されている。補正動作種別決定部２３は、動作補正部２０と周辺装置４７のデータ入力ＩＦ２６と制御装置本体部４５の制御パラメータ管理部２１とに接続されている。動作選択部２９は、動作データベース１７と作業不可領域データベース２８とデータ入力ＩＦ２６と接続されている。情報取得部１００は、補正動作種別決定部２３と、動作データベース１７と作業不可領域データベース２８と、制御部２２の力検出部（力検出手段の一例）５３と対象物力検出部（対象物力検出手段の一例）７８とに接続されている。よって、情報取得部１００は、組立作業におけるロボットアーム５の位置を含むロボットアーム５の動作に関する情報と、力検出部５３で検出されたロボットアーム５に作用する人の力に関する情報と、対象物力検出部７８からの情報とをそれぞれ取得可能としている。情報取得部１００で取得した情報は、補正動作種別決定部２３に入力され、情報取得部１００でそれぞれ取得した動作に関する情報と人の力に関する情報とから、後述するように、ロボットアーム５の動作を補正する補正動作の種別を補正動作種別決定部２３で決定することができる。
【００６４】  周辺装置４７は、補正動作種別決定部２３と動作補正部２０と制御装置本体部４５の制御パラメータ管理部２１と表示部１４と動作生成装置１２とに接続されたデータ入力ＩＦ２６と、レール可動部８ｂのモータ６５の回転軸に取り付けられてその回転軸の回転角度を検出するエンコーダ６４と各関節部のモータ４３の回転軸に取り付けられてその回転軸の回転角度を検出するエンコーダ４４とハンド駆動用のモータ６２の回転軸に取り付けられてその回転軸の回転角度を検出するエンコーダ６１とからそれぞれの角度情報が入力されるとともに制御部２２に接続された入出力ＩＦ２４と、レール可動部８ｂのモータ６５とロボットアーム５の各関節部のモータ４３とハンド開閉駆動用のモータ６２とにそれぞれ接続されたモータドライバ２５と、補正動作種別決定部２３に接続された表示部１４とを備えるように構成される。
【００６５】  入出力ＩＦ２４は、パーソナルコンピュータのＰＣＩバスなどの拡張スロットに接続された、例えばＤ／Ａボードと、Ａ／Ｄボードと、カウンタボードとなどを備えるように構成されている。
【００６６】  ロボットアーム５及びレール可動部８ｂの動作を制御する動作生成装置１２と、制御装置本体部４５と、周辺装置４７とが、それぞれの動作を実行することにより、ロボットアーム５の各関節部の各関節角度情報であってかつ後述するエンコーダ４４より出力される各関節角度情報が、入出力ＩＦ２４を通じて制御装置本体部４５に取り込まれる。そして、制御装置本体部４５は、取り込まれた各関節角度情報に基づき、ロボットアーム５の各関節部の回転動作での制御指令値を算出する。さらに、レール可動部８ｂのモータ６５のエンコーダ６４より出力されるレール可動部８ｂの位置情報が、入出力ＩＦ２４を通じて制御装置本体部４５に取り込まれる。そして、制御装置本体部４５は、取り込まれた各位置情報に基づき、レール可動部８ｂのモータ６５の制御指令値を算出する。
【００６７】  算出されたロボットアーム５の各関節部のモータ４３の制御指令値は、入出力ＩＦ２４を通じてモータドライバ２５に与えられ、モータドライバ２５から送られた各制御指令値に従って、ロボットアーム５の各関節部のモータ４３がそれぞれ独立して駆動される。
【００６８】  また、算出されたレール可動部８ｂの制御指令値は、入出力ＩＦ２４を通じてモータドライバ２５に与えられ、モータドライバ２５から送られた各制御指令値に従って、レール可動部８ｂのモータ６５が駆動される。
【００６９】  また、モータドライバ２５により駆動制御されるハンド駆動装置の一例としてハンド駆動用のモータ６２と、ハンド駆動用のモータ６２の回転軸の回転位相角を検出するエンコーダ６１とをさらにハンド３０に備えて、例えば、モータ６２の回転軸を正方向に回転させることによりハンド３０を開いて、フレキシブル基板７４をハンド３０で把持可能に位置させる一方、モータ６２の回転軸を逆方向に回転させることによりハンド３０を閉じて、ハンド３０に把持可能な位置に位置させたフレキシブル基板７４をハンド３０で把持するように構成することができる。このような場合、エンコーダ６１で検出されたモータ６２の回転軸の回転角度を基に、制御装置本体部４５の制御部２２のハンド制御部５４（図７に図示）からの制御信号（開閉指令信号）により、モータドライバ２５を介してハンド駆動用のモータ６２の回転を駆動制御して、ハンド駆動用のモータ６２の回転軸を正逆回転させることによりハンド３０を開閉させる。
【００７０】  ロボットアーム５は、６自由度の多リンクマニピュレータであり、ハンド３０と、ハンド３０が取り付けられている手首部３１を先端に有する前腕リンク３２と、前腕リンク３２の基端に先端が回転可能に連結される上腕リンク３３と、上腕リンク３３の基端が回転可能に連結支持される台部３４とを備えている。台部３４は、レール可動部８ｂに連結されている。手首部３１は、第４関節部３８と、第５関節部３９と、第６関節部４０との３つの回転軸を有しており、前腕リンク３２に対するハンド３０の相対的な姿勢を変化させることができる。すなわち、図３において、第４関節部３８は、手首部３１に対するハンド３０の横軸周りの相対的な姿勢を変化させることができる。第６関節部４０は、手首部３１に対するハンド３０の、第４関節部３８の横軸及び第５関節部３９の縦軸とそれぞれ直交する横軸周りの相対的な姿勢を変化させることができる。前腕リンク３２の他端は、上腕リンク３３の先端に対して第３関節部３７周りに、すなわち、第４関節部３８の横軸と平行な横軸周りに回転可能とする。上腕リンク３３の他端は、台部３４に対して第２関節部３６周りに、すなわち、第４関節部３８の横軸と平行な横軸周りに回転可能とする。さらに、台部３４の上側可動部３４ａは、台部３４の下側固定部３４ｂに対して第１関節部３５周りに、すなわち、第５関節部３９の縦軸と平行な縦軸周りに回転可能としている。この結果、ロボットアーム５は、合計６個の軸周りに回転可能として前記６自由度の多リンクマニピュレータを構成している。
【００７１】  各軸の回転部分を構成する各関節部には、回転駆動装置の一例としてのモータ４３と、モータ４３の回転軸の回転位相角（すなわち関節角）を検出するエンコーダ４４とを備えている。モータ４３は、各関節部を構成する一対の部材（例えば、回動側部材と、該回動側部材を支持する支持側部材）のうちの一方の部材に備えられ、かつ後述するモータドライバ２５により駆動制御される（実際には、ロボットアーム５の各関節部の一方の部材の内部に配設されている）。また、エンコーダ４４は、モータ４３の回転軸の回転位相角（すなわち、関節角）を検出するために、一方の部材に備えられる（実際には、ロボットアーム５の各関節部の一方の部材の内部に配設されている）。一方の部材に備えられたモータ４３の回転軸が他方の部材に連結されて、前記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
【００７２】  ４６はレール座標系Ｏｄであり、レール８の端の点Ｏｓ（図８参照）からの相対的な位置関係を示す。４１はレール８のレール可動部８ｂに固定された台部３４の台部座標系であり、レール座標系Ｏｄからの相対的な位置関係を示す。手先座標系４２は台部座標系４１からの相対的な位置関係を示す。
【００７３】  レール８の端の点Ｏｓから見たレール座標系４６の原点位置Ｏｄ（ｘ、ｙ）をレール可動部８ｂの位置（レール位置）とする。さらに、台部座標系４１から見た手先座標系４２の原点位置Ｏｅ（ｘ、ｙ、ｚ）をロボットアーム５の手先位置（ハンド３０の先端の位置）とし、台部座標系４１から見た手先座標系４２の姿勢をロール角とピッチ角とヨー角とで表現した（φ、θ、ψ）をロボットアーム５の手先姿勢とし、手先位置及び姿勢ベクトルをベクトルｒ＝［ｘ、ｙ、ｚ、φ、θ、ψ］Ｔと定義する。ロール角、ピッチ角、ヨー角について図１２Ａ〜図１２Ｃを用いて説明する。
【００７４】  まず、絶対座標系３５のＺ軸を回転軸として、座標系を角度φだけ回転させた座標系を考える（図１２Ａ）。このときの座標軸を［Ｘ"、Ｙ"、Ｚ］とする。
【００７５】  次に、この座標系を、Ｙ"を回転軸として角度θだけＺ軸周りに回転させる（図１２Ｂ参照）。このときの座標軸を［Ｘ’’、Ｙ"、Ｚ’’］とする。
【００７６】  最後に、この座標系を、Ｘ’’軸を回転軸として、角度ψだけＸ’’軸周りに回転させる（図１２Ｃ参照）。このときの座標軸を［Ｘ’’、Ｙ’’’、Ｚ’’’］とする。このときの座標系の姿勢を、ロール角度φ、ピッチ角度θ、ヨー角度ψとし、このときの姿勢ベクトルは（φ，θ，ψ）となる。姿勢（φ，θ，ψ）の座標系が、原点位置を手先座標系４２の原点位置Ｏｅ（ｘ，ｙ，ｚ）に平行移動した座標系と、手先座標系４２が一致する場合、手先座標系４２の姿勢ベクトルは（φ，θ，ψ）であるとする。
【００７７】  ロボットアーム５の手先位置と姿勢とをそれぞれ制御する場合には、手先位置及び姿勢ベクトルｒを、後述する目標軌道生成部５５で生成された手先位置と姿勢目標ベクトルｒｄとに追従させることになる。
【００７８】  ２６はデータ入力ＩＦ（インターフェース）であり、人（組立作業者）がボタン又はキーボード又はマウス又はマイクなどの入力装置を使用して、組立作業の開始、終了などの指令を組立ロボット１に入力するインターフェースである。
【００７９】  表示部１４は、例えば作業台７に設置されたディスプレイ装置であり、後述するロボットの動作又は補正するパラメータの種別などを表示部１４に表示する。
【００８０】  動作データベース１７は、レール可動部８ｂ及びロボットアーム５の、ある時間における位置及び姿勢など動作（例えば組立動作）に関する情報（動作に関する情報）を記憶して保持している。ここで、動作に関する情報とは、データベースは、前記ロボットアーム５が行う作業（例えば組立作業）に応じた、ロボットアーム５の手先位置姿勢の情報と、ロボットアーム５が機器６に加える力情報と、ロボットアーム５の速度情報と、作業を行わない領域に関する情報である作業不可領域情報とのうちの少なくとも１つの情報を含むものである。
【００８１】  動作データベース１７の詳細について説明する。
【００８２】  動作データベース１７は、例えば、図４に示したレール可動部８ｂ及びロボットアーム５の動作に関する情報で、作業を識別する作業ＩＤ番号と、その作業内の個々の動作を識別する動作ＩＤ番号と、その動作におけるレール可動部８ｂの位置に関する情報と、前記動作におけるロボットアーム５の手先位置と姿勢とに関する情報と、前記その動作におけるロボットアーム５が組立作業面（例えば、機器６のフレキシブル基板挿入口７５の挿入面）にかける力に関する情報と、ロボットアーム５の位置と姿勢と力とのパラメータのうちのいずれの情報が有効か否かを示すフラグ（有効性を示すフラグ）に関する情報と、各動作が作用する時間に関する情報と、後述する動作補正部２０で動作データベース１７の動作情報を補正する際の補正すべきパラメータの種別に関する情報と、現在動作中かどうかを示す進捗情報とを保持するように構成される。
【００８３】  動作データベース１７の挿入作業を識別する作業ＩＤ番号は、複数種類の組立作業（例えば挿入作業）がある場合に、互いに識別するために、それぞれの作業に対して付された作業ＩＤ番号を表す情報である。
【００８４】  動作データベース１７の組立作業内の個々の動作を識別する動作ＩＤ番号は、１つの組立作業が複数の組立動作で構成されている場合に、１つの組立作業内の個々の組立動作を互いに識別するために、それぞれの組立動作に対して付された動作ＩＤ番号を表す情報である。
【００８５】  動作データベース１７のレール可動部８ｂの位置に関する情報は、前述したレール位置の情報を表し、すなわち、レール８の端のＯｓから見たレール座標系４６の原点位置Ｏｄ（ｘ、ｙ）とし、例えば図８に示すように、組立ロボット１がレール固定部８ａ上を左から右に走行して組立動作を行なう場合においては、レール可動部８ｂの第１のレール位置（ｘ１、ｙ１）、第２のレール位置（ｘ２、ｙ２）、第３のレール位置（ｘ３、ｙ３）などを記憶する。
【００８６】  動作データベース１７のレール可動部８ｂの位置に関する情報は、動作データベース１７内に、予め設定しておくか、ロボットアーム５を人の手１６で直接把持して、後述するインピーダンス制御モードにて、ロボットアーム５を移動させて記憶させても良い。
【００８７】  動作データベース１７のロボットアーム５の手先位置と姿勢とに関する情報は、前述したロボットアーム５の手先位置と姿勢とを表し、原点位置Ｏｅと姿勢とから、（ｘ、ｙ、ｚ、φ、θ、ψ）と表す。
【００８８】  動作データベース１７のロボットアーム５の位置及び姿勢・時間の情報は、例えば、図１に示すように、ロボットアーム５を人の手１６で直接把持して、後述するインピーダンス制御モードにて、ロボットアーム５を移動させて、ある一定時間毎（例えば０．２ｍｓｅｃ毎）にロボットアーム５の手先位置と姿勢の情報を制御部２２で取得し（具体的に、制御部２２の説明でも記載しているように、順運動学計算部５８により各関節部のエンコーダ４４で計測された関節角を手先位置及び姿勢に変換してロボットアーム５の手先位置と姿勢の情報を取得し）、時間の情報と共に、動作データベース１７に動作記憶部１５で記憶する。なお、製品出荷時にメーカにてあらかじめ位置及び姿勢・時間の情報を同様の方法で生成し、動作データベース１７に記憶しておいても良い。また、ロボットアーム５を移動させて、（例えば、ロボットアーム５の上方に配置された）カメラなどの画像撮像装置で環境（ロボットアーム５６及び機器６を含む環境）を撮影し、得られた画像データ（例えば、得られた環境情報のうちの機器６の挿入口７５の画像）と、あらかじめ記憶された物体の画像（例えば機器６の挿入口７５の画像）との間でモデルマッチング処理を行い、合致した位置をロボットアーム５の手先位置として動作データベース１７に、具体的には図示していないがデータ入力ＩＦ２６を介して動作記憶部１５で記憶するようにしても良い。  動作データベース１７に記憶されているロボットアーム５がかける力に関する情報は、ロボットアーム５が作業をする際に対象となる物体にかける力の情報を示し、ロボットアーム５のｘ、ｙ、ｚ方向にかける力をそれぞれｆｘ、ｆｙ、ｆｚとし、さらにφ、θ、ψ方向にかける力をfφ、fθ、fψとする。動作データベース１７では、（fｘ、fｙ、fｚ、fφ、fθ、fψ）と表す。例えばfｚ＝５[Ｎ]である場合は、ｚ軸方向に５Ｎの力をかけて作業することを表し、機器６の挿入口７５にフレキシブル基板７４を挿入する組立作業の際に、機器６の挿入口７５の挿入面に対して垂直方向に力をかけて挿入する場合などに使用するパラメータである。
【００８９】  動作データベース１７の、ロボットアーム５の位置と姿勢と力とのパラメータのうちのいずれの情報が有効か否かを示すフラグ（有効性を示すフラグ）に関する情報、すなわち、図４の動作データベース１７のフラグの情報は、各動作ＩＤが示すロボットアーム５の位置と姿勢と力とのうちのいずれの情報が有効かを示す値であり、具体的には、図５で示した３２ビットの数値で表す。図５において、それぞれのビットで位置、姿勢、力のそれぞれの値が有効の場合は「１」とし、無効の場合は「０」とする。例えば、０ビット目は位置のｘ座標の値が有効の場合は「１」とし、無効の場合は「０」とする。１ビット目は位置のｙ座標の値が有効の場合は「１」とし、無効の場合は「０」とする。２ビット目は位置のｚ座標の値が有効の場合は「１」とし、無効の場合は「０」とし、順次、３，４，５ビット目は姿勢のφ、θ、ψの有効性を表す。６ビット目〜１１ビット目は力のそれぞれの成分fｘ、fｙ、fｚ、fφ、fθ、fψが有効か無効かを表す。また、フラグは将来の拡張用に多め（３２ビット）に用意しているため、この例では、１２ビット目から３１ビット目は使用しないので、「０」を入れておくが、１２ビット目のみ、格納できる変数としても良い。図５では、０ビット目から１ビット目が「１」となり、８ビット目が「１」となっているので、動作情報のうち、位置のｘ、ｙ情報と力のｆｚ情報のみが有効であることを示し、動作情報のうち、ｚ、φ、θ、ψ、及び、力のｆｚ以外の値のそれぞれに、どういう値が記憶されていても無効であるとする。
【００９０】  動作データベース１７の各動作が作用する時間に関する情報、すなわち、図４の動作データベース１７の時間は、各動作を組立ロボット１が実行するために必要な時間であり、この動作ＩＤに記憶された動作を、ここで記憶された時間をかけて組立ロボット１が動作することを表す。この時間は、絶対時刻ではなく、前の動作からの相対時間を表す。すなわち、動作ＩＤが示すレール可動部８ｂの位置及びロボットアーム５の位置及び姿勢に、レール可動部８ｂ及びロボットアーム５がそれぞれ移動するまでの時間を表す。
【００９１】  動作データベース１７の、動作補正部２０で動作データベース１７の動作情報を補正する際の補正すべきパラメータの種別に関する情報、すなわち、図４の補正パラメータフラグは、後述する補正動作種別決定部２３で決定した種別に応じて、どのパラメータを補正するかを表す情報である。具体的には、図６に示した３２ビットの数値で表す。図６において、それぞれのビットで位置、姿勢、力のそれぞれの値の補正が可能な場合は「１」とし、補正が不可能な場合は「０」とする。例えば、０ビット目は位置のｘ座標の値の補正が可能な場合は「１」とし、不可能な場合は「０」とする。１ビット目は位置のｙ座標の値の補正が可能な場合は「１」とし、不可能な場合は「０」とする。２ビット目は位置のｚ座標の値の補正が可能な場合は「１」とし、不可能な場合は「０」とする。順次、３，４，５ビット目は姿勢のφ、θ、ψの補正可能性を表す。同様に、６ビット目〜１１ビット目は力の補正可能性を表す。また、フラグは将来の拡張用に多め（３２ビット）に用意しているため、この例では、１２ビット目から３１ビット目は使用しないので、「０」を入れておくが、１２ビット目のみ、格納できる変数としても良い。
【００９２】  動作データベース１７の、現在動作中かどうかを示す進捗情報は、組立ロボット１の現在動作中の動作であるかどうかどうかを示す情報で、動作中の場合は「１」を記録するとともに、動作中でない場合は「０」を記録する。具体的には、人は、データ入力ＩＦ２６を介して作業したい組立作業を選択して、選択された情報がデータ入力ＩＦ２６から動作選択部２９に入力される。選択した作業のうちの一番目の組立動作が組立ロボット１で開始されると、動作選択部２９により、その組立作業を構成する複数の組立動作のうち、現在動作中の組立動作について「１」を動作データベース１７に記憶するとともに、動作していない組立動作について「０」を動作データベース１７に記憶する。なお、動作中か否かの情報は、制御部２２から指令した動作が終了したことの通知を動作補正部２０を介して動作記憶部１５に入力し、動作記憶部１５にて作業方法データベース１７に記憶する。
【００９３】  図４において、動作ＩＤ「１」〜「８」は、図２１Ａに示すように、機器６の挿入口７５まで機器６の上方を、ロボットアーム５のハンド３０がフレキシブル基板７４を把持しながら移動する動作である。動作「９」〜「１６」は、図２１Ｂに示すように、ロボットアーム５を使用して、機器６の挿入口７５にフレキシブル基板７４を挿入する動作である。
【００９４】  図３の動作選択部２９は、動作データベース１７の作業一覧（例えば、図２６のスイッチ２６ｃの中央の下側に表示された「挿入１」及び「挿入２」というような作業表示）から最適な作業を人１６がデータ入力ＩＦ２６を介して選択するとき、選択された作業のうち、現在、動作している動作ＩＤの進捗情報に「１」を設定して動作データベース１７に記憶し、その他の動作については「０」を設定して動作データベース１７に記憶する。
【００９５】  作業不可領域データベース２８は、組立ロボット１で作業（この例ではフレキシブル基板挿入作業）をしない領域に関する情報を記憶しており、具体的な情報については、図１０に示す。図１０において、作業不可領域の位置（ｘ、ｙ）は、人が、組立ロボット１により作業をしてほしくない領域を表す。例えば、図１１の作業可能面Ｒのうち、斜線の領域を作業不可領域ＲＢとした場合は、その領域ＲＢを表すのに必要な座標（この例では、矩形領域の４個の角の座標（ｘｃ１，ｙｃ１）、（ｘｃ２，ｙｃ２）、（ｘｃ３，ｙｃ３）、（ｘｃ４，ｙｃ４））を記憶する。なお、それぞれの座標は、作業を行う作業領域ＲＡの作業経路のうち、レール８の端の座標Ｏｓからの相対座標で表す。これらの作業不可領域ＲＢを表す座標は、後述する動作補正部２０で生成され、作業不可領域データベース２８に記憶される。
【００９６】  補正動作種別決定部２３は、後述する動作補正部２０にて、人がその手１６でロボットアーム５に力をかけることにより動作の補正を行うことが可能な補正の種別を決定する。例えば、図１９Ｃのように、人がその手１６でロボットアーム５に横方向から力をかけると、ロボットアーム５の作業面（例えば、機器６の挿入口７５の挿入面）に対する平行な方向（例えば、作業面が水平方向沿いの場合には水平方向を意味する。以下の説明では、説明を簡単にするため、単に「水平方向」と称する。）の位置を移動することで、作業領域ＲＡを平行移動させることができる。この場合の補正動作の種別は、「作業面の位置の移動」である。図１８Ａに示すようにロボットアーム５で機器６の挿入口７５にフレキシブル基板７４を挿入中に、図１８Ｃに示すように、人がその手１６でロボットアーム５の上方からロボットアーム５（例えばハンド３０）に下向きの力をかけると、後述する動作補正部２０によって、図１９Ｄのように挿入時の力のかけ具合を強めに設定することができる。この場合の補正動作の種別は、「力のかけ具合」である。このように、補正動作種別決定部２３は、人の手１６によるロボットアーム５への力のかけ具合とロボットアーム５の手先位置などから、組立動作の補正の種別を決定することができる。なお、詳細については後述する。
【００９７】  動作補正部２０は、動作データベース１７の位置と姿勢と時間との情報に基づいて組立ロボット１が組立動作中に、人が手１６でロボットアーム５に力をかけることにより、動作データベース１７の組立動作情報を補正する機能を持っている。詳細については、後述する。
【００９８】  動作記憶部１５は、動作補正部２０により補正した動作情報を動作データベース１７若しくは作業不可領域データベース２８に記憶する。
【００９９】  次に、制御パラメータ管理部２１の詳細について説明する。
【０１００】  制御パラメータ管理部２１は、動作補正部２０の動作補正指示に基づいて、ロボットアーム５のインピーダンス制御モードと、ハイブリッドインピーダンス制御モードと、力制御モードと、力ハイブリッドインピーダンス制御モードと、高剛性の位置制御モードとを切り替える設定、及び、それぞれの制御モード時の機械インピーダンス設定値の設定、及び、それぞれの制御モードで制御部２２のインピーダンス計算部５１で出力する手先位置及び姿勢目標補正出力ｒｄΔの設定、及び、制御部２２の目標軌道設定部５５への動作情報の設定を行う。
【０１０１】  さらに、制御パラメータ管理部２１は、動作データベース１７に記憶されているレール可動部８ｂの位置（レール８の端の座標Ｏｓから見たレール座標系４６の原点位置Ｏｄ（ｘ、ｙ））から、作業不可領域データベース２８の作業不可領域ＲＢを除いた作業領域ＲＡでの経路を生成する。また、制御部２２からロボットアーム５の手先位置又は力の情報などの情報を制御パラメータ管理部２１で受けて、制御パラメータ管理部２１から動作補正部２０へそれらの情報の通知を行う。また、データ入力ＩＦ２６によりハンド３０の開閉の指令が入力されると、データ入力ＩＦ２６からの入力情報が制御パラメータ管理部２１を介して制御部２２のハンド制御部５４へ入力されて、制御パラメータ管理部２１からハンド制御部５４へハンド３０の開閉指令を出す。
【０１０２】  位置制御モードは、後述する目標軌道生成部５５の手先位置及び姿勢目標ベクトル指令に基づいて、ロボットアーム５が作動するモードである。
【０１０３】  インピーダンス制御モードは、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモードである。
【０１０４】  ハイブリッドインピーダンス制御モードは、位置制御モードでロボットアーム５が動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード（インピーダンス制御モード）であり、位置制御モードとインピーダンス制御モードを同時に行うモードである。例えば、機器６の挿入口７５にフレキシブル基板７４を挿入する組立作業中に、図１８Ｃのように、人の手１６でロボットアーム５を直接持って、作業領域ＲＡを平行移動するなどの補正を行うモードである。
【０１０５】  力制御モードは、制御部２２へ予め与えられた力で、ロボットアーム５が作業面（例えば、機器６の挿入口７５の挿入面）に対してハンド３０で把持した対象物（例えば、フレキシブル基板７４）を押し付けながら動作する制御モードで、例えば、機器６の挿入口７５に対してロボットアーム５が、ある力をかけてフレキシブル基板７４を挿入口７５に挿入する際に、ロボットアーム５の作業面成分に使用する制御モードである。
【０１０６】  力ハイブリッドインピーダンス制御モードは、６軸の方向別にハイブリッドインピーダンス制御モードかインピーダンス制御モードかを切り替え、さらに、指定した力を作用させて動作する力制御モードで動作させる制御モードである。なお、力制御モードが設定された方向にインピーダンス制御モードを設定することはできない（力制御モードとインピーダンス制御モードは排他的な関係）。
【０１０７】  これらの制御モードは、組立動作の際に、ロボットアーム５の方向及び姿勢別に、それぞれ、以下のように、適切な制御モードを設定して動作させる。
【０１０８】  例えば、組立ロボット１が、図１８Ａのように、機器６の挿入口７５に対して、ハンド３０で把持したフレキシブル基板７４を、作業面の一例である機器６の挿入口７５の挿入面に対して垂直な挿入方向（図１８Ａでは、挿入口７５の挿入面が水平面沿いであるため、水平面対して垂直な挿入方向でかつ下向き）に指定した力をかけて、フレキシブル基板７４を挿入口７５に挿入する場合には、力ハイブリッドインピーダンス制御モードを設定する。具体的には、（ｘ、ｙ、ｚ、φ、θ、ψ）の６軸のそれぞれに、以下の制御モードを設定する。すなわち、（ｘ、ｙ）成分がハイブリッドインピーダンス制御モードで動作し、（φ、θ、ψ）成分がインピーダンス制御モードで動作し、ｚ軸成分が力制御モードで動作する力ハイブリッドインピーダンス制御モードである。このように機器６の挿入口７５の挿入面と平行な方向は、ハイブリッドインピーダンス制御モードとすることで、位置制御モードで動作している最中に、人が操作している際に、ハイブリッドインピーダンス制御モードに切り替えることで、人などからロボットアーム５に加わる力に応じて、ロボットアーム５を移動させることができる。さらに、（φ、θ、ψ）成分をインピーダンス制御モードとすることで、停止している状態で人などからロボットアーム５に加わる力に応じて、ロボットアーム５の姿勢を変更することができるようになる。また、ｚ軸成分を力制御モードに設定することで、指定された力で押し付けながら動作することができるようになる。
【０１０９】  高剛性位置制御モードは、組立作業中の位置制御モードを、さらに高剛性にしたモードで、かつ、後述する位置誤差補償部５６でのゲインを大きくすることで実現し、人の手１６で力をロボットアーム５にかけると、ロボットアーム５を容易に移動できなくすることで、ロボットアーム５の手先位置の変化量により、人の手１６がかけた力を力検出部５３で検出することができる。
【０１１０】  機械インピーダンス設定値の設定パラメータとしては、慣性Ｍ、粘性Ｄ、剛性Ｋがある。機械インピーダンス設定値の各パラメータの設定は、補正値を使って、以下の評価式に基づいて行う。
【０１１１】
【数１】
2011021375.tif 000003
【０１１２】
【数２】
2011021375.tif 000004
【０１１３】
【数３】
2011021375.tif 000005
【０１１４】  前記式（１）〜（３）中のＫＭ、ＫＤ、ＫＫはゲインであり、それぞれ、ある定数値である。
【０１１５】  制御パラメータ管理部２１は、前記式（１）〜（３）に基づいて計算した機械インピーダンスパラメータの慣性Ｍ、粘性Ｄ、剛性Ｋを制御部２２へそれぞれ出力する。
【０１１６】  前記式（１）〜（３）により、例えば、図１９Ｃのように、人が作業面（例えば、挿入口７５に対してフレキシブル基板７５を挿入する挿入作業を行う作業面）の領域を移動させるように補正させたい場合に、ｘ軸及びｙ軸以外の位置成分及び姿勢成分が簡単に動くと、前記補正作業を行うことが困難になる。そこで、ｘ軸及びｙ軸以外の位置成分及び姿勢成分についてのみ、制御パラメータ管理部２１で、上述の補正値を高く（具体的には約１０倍だけ高く）設定することで、粘性Ｄ及び剛性Ｋが大きくなるように設定されることになり、ロボットアーム５の動きに抵抗感又は硬さが生じ、ｘ軸及びｙ軸以外の位置成分及び姿勢成分について動きにくくなる。
【０１１７】  又は、別の方法として、後述するインピーダンス計算部５１から出力される手先位置及び姿勢目標補正出力ｒｄΔの各成分のうち、ｘ軸及びｙ軸以外の値を、制御パラメータ管理部２１で、全て０にする方法がある。これによって、ｘ軸及びｙ軸以外は、人の手１６の力で移動できなくなるため、誤操作を防ぐことができる。
【０１１８】  さらに、動作補正部２０に、ロボットアーム５の手先位置と姿勢と、人のかけた力の情報（ロボットアーム５に作用する人の力に関する情報)とを制御パラメータ管理部２１から通知する必要がある。そのため、制御部２２からロボットアーム５の手先位置及び力の情報を制御パラメータ管理部２１が受けて、動作選択部２９と、動作記憶部１５と、動作補正部２０とへ制御パラメータ管理部２１から通知を行う。また、制御パラメータ管理部２１は、動作補正部２０から入力された、位置と姿勢と時間となどの動作情報を制御部２２へ通知する。
【０１１９】  図７は制御部２２のブロック図を示す。制御部２２は、制御パラメータ管理部２１で設定された制御モードで動作し、さらに制御モードに応じて、慣性Ｍと粘性Ｄと剛性Ｋとの設定値に基づき設定されたロボットアーム５の機械インピーダンス設定値に、ロボットアーム５の機械インピーダンスの値を制御する。さらに、制御部２２は、挿入作業の場合には、指定された力で、挿入口７５の挿入面に対してフレキシブル基板７４を押し付ける制御を行う。さらに、制御部２２は、レール可動部８ｂを制御して、ロボットアーム５をレール固定部８ａ上の指定された位置に移動する制御を行う。
【０１２０】  次に、制御部２２の詳細について、図７により説明する。
【０１２１】  制御部２２は、ロボットアーム５の各関節部のモータ４３の駆動をそれぞれ制御するロボットアーム制御部４９と、レール可動部８ｂのモータ６５の駆動を制御するレール制御部４８とを備えるように構成される。ロボットアーム制御部４９は、位置誤差計算部５０とインピーダンス計算部５１と力検出手段の一例としての力検出部５３とハンド制御部５４と目標軌道生成部５５と位置誤差補償部５６と近似逆運動学計算部５７と順運動学計算部５８とを備えて構成している。位置誤差補償部５６と近似逆運動学計算部５７と順運動学計算部５８とで位置制御系５９を構成している。
【０１２２】  次に、ロボットアーム制御部４９について詳細に説明する。
【０１２３】  ロボットアーム５からは、それぞれの関節部の関節軸のエンコーダ４４により計測された関節角の現在値（関節角度ベクトル）ベクトルｑ＝［ｑ１，ｑ２，ｑ３，ｑ４，ｑ５，ｑ６］Ｔが出力され、入出力ＩＦ２４により制御部２２に取り込まれる。ただし、ｑ１，ｑ２，ｑ３，ｑ４，ｑ５，ｑ６は、それぞれ、第１関節部３５、第２関節部３６、第３関節部３７、第４関節部３８、第５関節部３９、第６関節部４０の関節角度である。
【０１２４】  目標軌道生成部５５は、制御パラメータ管理部２１からの組立動作の入力を受けて、目標とするロボットアーム５の動作を実現するための、手先位置及び姿勢目標ベクトルｒｄと、手先の力ベクトルｆｄと、それぞれの方向別にどのパラメータが有効かを示すフラグ（有効性を示すフラグ）とが出力される。目標とするロボットアーム５の動作は、目的とする組立作業に応じて、動作補正部２０から、制御パラメータ管理部２１を介して、それぞれの時間（ｔ＝０、ｔ＝ｔ１、ｔ＝ｔ２、・・・）でのポイントごとの位置及び姿勢（ｒｄ０、ｒｄ１、ｒｄ２、・・・）の情報と、力（ｆｄ０、ｆｄ１、ｆｄ２、・・・）の情報とが目標軌道生成部５５に与えられる。
【０１２５】  目標軌道生成部５５は、多項式補間を使用し、各ポイント間の軌道と、力とを補間し、手先位置及び姿勢目標ベクトルｒｄ及び力ベクトルｆｄを生成する。
【０１２６】  ハンド制御部５４は、制御パラメータ管理部２１から入力したハンド開閉指令により、ハンド駆動用のモータ６２を駆動してハンド３０を開閉するよう、ロボットアーム５のハンド駆動用のモータ６２へ指令を出す。
【０１２７】  力検出部５３は、力検出手段の一例として機能し、人などとロボットアーム５との接触によってロボットアーム５に加わる外力を検出する。力検出部５３には、モータドライバ４７の電流センサで計測された、ロボットアーム５の各関節部を駆動するモータ４３を流れる電流値ｉ＝［ｉ１，ｉ２，ｉ３，ｉ４，ｉ５，ｉ６］Ｔが入出力ＩＦ２４を介して取り込まれ、また、各関節部の各関節角の現在値ｑが入出力ＩＦ２４を介して取り込まれるとともに、後述する近似逆運動学計算部５７からの関節角度誤差補償出力ｕｑｅが取り込まれる。力検出部５３は、オブザーバーとして機能し、以上の電流値ｉと関節角の現在値ｑと関節角度誤差補償出力ｕｑｅとに基づいて、ロボットアーム５に加わる外力により各関節部に発生するトルクτｅｘｔを算出する。そして、Ｆｅｘｔ＝Ｊｖ（ｑ）−Ｔτｅｘｔ−［０，０，ｍｇ］Ｔによりロボットアーム５の手先における等価手先外力Ｆｅｘｔに換算して等価手先外力Ｆｅｘｔを出力する。ここで、Ｊｖ（ｑ）は、
【０１２８】
【数４】
2011021375.tif 000006
【０１２９】を満たすヤコビ行列である。ただし、ただし、ｖ＝［ｖｘ、ｖｙ、ｖｚ、ωｘ、ωｙ、ωｚ］Ｔであり、（ｖｘ、ｖｙ、ｖｚ）は手先座標系４２でのロボットアーム５の手先の並進速度、（ωｘ、ωｙ、ωｚ）は手先座標系４２でのロボットアーム５の手先の角速度である。また、ｍはロボットアーム５のハンド３０に把持されたフレキシブル基板７４の重さであり、ｇは重力加速度である。フレキシブル基板７４の重さｍの値は、フレキシブル基板７４をハンド３０で把持する前に、人がデータ入力ＩＦ２６から力検出部５３に入力することもできるが、通常は、フレキシブル基板７４の重さｍは度々変更される値ではないため、予め設定した値とすることもできる。
【０１３０】  インピーダンス計算部５１は、ロボットアーム５に機械インピーダンス設定値への前記ロボットアーム５の機械インピーダンスの値の制御を実現する機能を果たす部分である。
【０１３１】  インピーダンス制御モードが指定された際には、インピーダンス計算部５１から手先位置及び姿勢目標補正出力ｒｄΔを出力する。力ハイブリッドインピーダンス制御モードに切り替えられた際には、フラグ（有効性を示すフラグ）で有効と指定された力成分が存在する場合には、制御パラメータ管理部２１で設定されたインピーダンスパラメータである慣性Ｍと粘性Ｄと剛性Ｋと、関節角の現在値ｑと、力検出部５３が検出した外力Ｆｅｘｔと、目標軌道生成部５５から出力されるｆｄとに基づいて、前記ロボットアーム５の機械インピーダンスの値がロボットアーム５に機械インピーダンス設定値に近づくようにする制御を実現するための手先位置及び姿勢目標補正出力ｒｄΔを、以下の式（４）によりインピーダンス計算部５１で計算し、インピーダンス計算部５１から出力する。
【０１３２】  手先位置及び姿勢目標補正出力ｒｄΔは、目標軌道生成部５５の出力する手先位置及び姿勢目標ベクトルｒｄに位置誤差計算部５０で加算され、手先位置及び姿勢補正目標ベクトルｒｄｍが位置誤差計算部５０で生成される。例えば、ｚ軸方向のみ、力をかけて挿入し、その他の成分は位置制御モードで動くようにするには、手先位置及び姿勢目標補正出力ｒｄΔのｚ成分以外を０に位置誤差計算部５０で設定する。
【０１３３】
【数５】
2011021375.tif 000007
【０１３４】ただし、
【０１３５】
【数６】
2011021375.tif 000008
【０１３６】
【数７】
2011021375.tif 000009
【０１３７】
【数８】
2011021375.tif 000010
【０１３８】であり、ｓはラプラス演算子である。
【０１３９】  位置誤差計算部５０は、さらに、手先位置及び姿勢補正目標ベクトルｒｄｍと、後述する順運動学計算部５８により計算される手先位置及び姿勢ベクトルｒとの誤差ｒｅを求め、求められた誤差ｒｅを位置誤差補償部５６に出力する。
【０１４０】  順運動学計算部５８には、ロボットアーム５の各関節部の各関節軸のエンコーダ４４からエンコーダ４４で計測された関節角の現在値ｑである関節角度ベクトルｑが、入出力ＩＦ２４を介して入力される。順運動学計算部５８は、ロボットアーム５の関節角度ベクトルｑから、手先位置及び姿勢ベクトルｒへの変換の幾何学的計算を行う。順運動学計算部５８で計算された手先位置及び姿勢ベクトルｒは、位置誤差計算部５０及びインピーダンス計算部５１及び目標軌道生成部５５に出力される。
【０１４１】  位置誤差補償部５６は、位置誤差計算部５０で求められた誤差ｒｅに基づいて、位置誤差補償出力ｕｒｅを近似逆運動学計算部５７に出力する。
【０１４２】  具体的には、位置誤差補償出力ｕｒｅは、
【０１４３】
【数９】
2011021375.tif 000011
【０１４４】により計算される。ここで、ＫＰは比例ゲイン行列、ＫＩは積分ゲイン行列、ＫＤは微分ゲイン行列であり、その対角成分が手先位置ベクトルｒｅ = [ｘ、ｙ、ｚ、φ、θ、ψ]Ｔの各成分に対するゲインで構成される対角行列である。
【０１４５】  さらに、位置誤差補償部５６では、高剛性位置制御モードが設定された際に、比例ゲイン行列ＫＰ、積分ゲイン行列ＫＩ、微分ゲイン行列ＫＤをあらかじめ設定された値に大きく設定する。ここで、高剛性とは、通常の位置制御と比較して剛性が高くなることを意味し、具体的には、通常の位置制御モードと比較して大きな値を設定する。例えば、通常の位置制御モード時の２倍程度の値に設定すると、剛性を約２倍まで高くすることができる。
【０１４６】  このようにすることで、高剛性の位置制御を実現することができる。なお、前記ゲインを各成分毎に値を変えることで、例えば、ｚ軸方向のみ高剛性で、その他の方向は通常の位置制御で動作するよう制御することができる。
【０１４７】  近似逆運動学計算部５７は、位置誤差補償部５６から入力される位置誤差補償出力ｕｒｅとロボットアーム５において計測される関節角度ベクトルｑとに基づいて、近似式ｕｏｕｔ＝Ｊｒ（ｑ）−１ｕｉｎにより、逆運動学の近似計算を行う。ただし、Ｊｒ（ｑ）は、
【０１４８】
【数１０】
2011021375.tif 000012
【０１４９】の関係を満たすヤコビ行列であり、ｕｉｎは近似逆運動学計算部５７への入力であり、ｕｏｕｔは近似逆運動学計算部５７からの出力であり、入力ｕｉｎを関節角度誤差ｑｅとすれば、ｑｅ＝Ｊｒ（ｑ）−１ｒｅのように手先の位置姿勢誤差ｒｅから関節角度誤差ｑｅへの変換式となる。
【０１５０】  従って、位置誤差補償部５６から位置誤差補償出力ｕｒｅが近似逆運動学計算部５７に入力されると、近似逆運動学計算部５７からの出力として、関節角度誤差ｑｅを補償するための関節角度誤差補償出力ｕｑｅが近似逆運動学計算部５７から入出力ＩＦ２４を介してロボットアーム５のモータドライバ２５に出力される。
【０１５１】  関節角度誤差補償出力ｕｑｅは、入出力ＩＦ２４のＤ／Ａボードを介してロボットアーム５のモータドライバ２５に電圧指令値として与えられ、各モータ４３により各関節軸が正逆回転駆動されロボットアーム５が動作する。
【０１５２】  レール制御部４８は、目標軌道生成部５５から入力されたレール可動部８ｂの位置情報に基づき、レール可動部８ｂのモータ６５を駆動制御してレール固定部８ａ上でロボットアーム５をレール可動部８ｂと共に移動させるように制御を行う。具体的には、レール可動部８ｂのモータ６５の正逆回転駆動をレール制御部４８により制御して、ロボットアーム５が連結されたレール可動部８ｂをレール固定部８ａ上で左右方向に移動可能としている。
【０１５３】  以下、ロボットアーム５のロボットアーム制御プログラムの実際の動作ステップについて、図１６のフローチャートに基づいて説明する。
【０１５４】  ロボットアーム５の関節部のそれぞれのエンコーダ４４により計測された関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）が制御装置本体部４５に取り込まれる(ステップＳ５１)。
【０１５５】  次いで、逆運動学計算部５７にて、ロボットアーム５の運動学計算に必要なヤコビ行列Ｊｒ等の計算を行う (ステップＳ５２)。
【０１５６】  次いで、順運動学計算部５８にて、ロボットアーム５からの関節角度データ（関節角度ベクトルｑ）から、ロボットアーム５の現在の手先位置及び姿勢ベクトルｒを計算する（ステップＳ５３）。
【０１５７】  次いで、動作補正部２０から送信された動作情報に基づき、目標軌道計算部５５は、ロボットアーム５の手先位置及び姿勢目標ベクトルｒｄ及び力目標ベクトルｆｄを計算する（ステップＳ５４）。
【０１５８】  次いで、力検出部５３は、モータ４３の駆動電流値ｉと、関節角度データ（関節角度ベクトルｑ）と、関節角度誤差補償出力ｕｑｅとから、ロボットアーム５の手先における等価手先外力Ｆｅｘｔを計算する（ステップＳ５５）。
【０１５９】  次いで、ステップＳ５６では、制御パラメータ管理部２１で設定された制御モードを設定する。高剛性位置制御モードのみの場合には、ステップＳ５７に処理を進める。一方、力ハイブリッドインピーダンス制御モード若しくはインピーダンス制御モード若しくはハイブリッドインピーダンス制御モードの場合には、ステップＳ５８へ処理を進める。
【０１６０】  ステップＳ５７（インピーダンス計算部５１での処理）では、制御パラメータ管理部２１において、高剛性位置制御モードが設定された場合には、インピーダンス計算部５１で、手先位置及び姿勢目標補正出力ｒｄΔを０ベクトルとする。その後、ステップＳ５９に進む。
【０１６１】  制御パラメータ管理部２１において、力ハイブリッドインピーダンス制御モード、若しくはインピーダンス制御モード若しくはハイブリッドインピーダンス制御モードが設定された場合には、制御パラメータ管理部２１において設定された機械インピーダンスパラメータの慣性Ｍと粘性Ｄと剛性Ｋと、関節角度データ（関節角度ベクトルｑ）と、力検出部５３により計算されたロボットアーム５に加わる等価手先外力Ｆｅｘｔとから、手先位置及び姿勢目標補正出力ｒｄΔが、インピーダンス計算部５１により計算される（ステップＳ５８）。
【０１６２】  次いで、位置誤差計算部５０では、手先位置及び姿勢目標ベクトルｒｄと手先位置及び姿勢目標補正出力ｒｄΔの和である手先位置及び姿勢補正目標ベクトルｒｄｍと、現在の手先位置及び姿勢ベクトルｒとの差である手先位置及び姿勢の誤差ｒｅが計算される（ステップＳ５９、ステップＳ６０）。ステップＳ６０では、位置誤差補償部５６の具体例としてはＰＩＤ補償器が考えられる。定数の対角行列である比例、微分、積分の３つのゲインを適切に調整することにより、位置誤差が０に収束するように制御が働く。ステップＳ５９では、そのゲインを、ある値まで大きくすることで、高剛性の位置制御を実現する。
【０１６３】  ステップＳ５９又はステップＳ６０に次いでステップＳ６１では、近似逆運動学計算部５７では、ステップＳ５２で計算したヤコビ行列Ｊｒの逆行列を近似逆運動学計算部５７で乗算することにより、位置誤差補償出力ｕｒｅを、手先位置及び姿勢の誤差に関する値から関節角度の誤差に関する値である関節角度誤差補償出力ｕｑｅに、近似逆運動学計算部５７により変換する。
【０１６４】  ステップＳ６１に次いで、関節角度誤差補償出力ｕｑｅが、近似逆運動学計算部５７から入出力ＩＦ２４を通じ、モータドライバ２５に与えられ、それぞれのモータ４３を流れる電流量を変化させることによりロボットアーム５のそれぞれの関節軸の回転運動が発生する（ステップＳ６２）。
【０１６５】  以上のステップＳ５１〜ステップＳ６２が制御の計算ループとして繰り返し実行されることにより、ロボットアーム５の動作の制御、すなわち、ロボットアーム５の機械インピーダンスの値を、前記適切に設定された設定値に制御する動作を実現することができる。
【０１６６】  次に、補正動作種別決定部２３と動作補正部２０について詳細に説明する。
【０１６７】  補正動作種別決定部２３は、動作補正部２０にて、人の手１６でロボットアーム５に力をかけることで組立動作の補正を行うことが可能な補正の種別を決定する。以下の６種類の補正の種別がある。
【０１６８】  １つ目の補正の種別は、「作業面の位置の移動」である。具体的には、図１９Ａのように動作する動作情報を使って、モデルチェンジにより大きさ又は剛性が変化したフレキシブル基板７４ａを機器６の挿入口７５に挿入するとき、図１９Ｂのようにフレキシブル基板７４ａが挿入口７５ａにひっかかってフレキシブル基板７４ａのコネクタ部を挿入口７５ａ内に挿入できない場合がある。そのような場合に、図１９Ｃのように、ロボットアーム５が位置制御モードで機器６の挿入口７５ａにフレキシブル基板７４ａを挿入している最中に、図１９Ｃのように人の手１６でロボットアーム５に横方向から力をかけると、動作補正部２０によって、図１９Ｄのようにロボットアーム５の作業面（例えば、機器６の挿入口７５の挿入面）に対する水平方向の位置をロボットアーム５が移動することで、ロボットアーム５を機器６の挿入口７５の挿入面に対して平行移動することができる。
【０１６９】  ２つ目の補正の種別は、フレキシブル基板７４の挿入時の「力のかけ具合」である。これは、現在動作中（動作データベース１７の進捗情報が「１」）の動作のフラグ（有効性を示すフラグ）において、力のビットが「１」となっている場合に有効である。図１８Ｂに示すように、ロボットアーム５でフレキシブル基板７４ｂの挿入口７５ｂへの挿入作業中に、図１８Ｃのように、人の手１６でロボットアーム５に上方から下向きに力をかけると、動作補正部２０によって、図１８Ｄのように力のかけ具合を強めに、逆に、人の手１６でロボットアーム５に下方から上向きに力をかけると、力のかけ具合を弱めに補正することができる。
【０１７０】  ３つ目の補正の種別は、ロボットアーム５の手先「速度」である。図２２Ａのように、フレキシブル基板７４を把持したロボットアーム５が機器６の挿入口７５に向かって移動中に、図２２Ｂのように、ロボットアーム５の進行方向に反する方向に人の手１６でロボットアーム５に力をかけると、動作補正部２０によって、図２２Ｃのように、ロボットアーム５の移動時の速度を減速させることができる。逆に、ロボットアーム５が移動中に、人の手１６がロボットアーム５の進行方向に向かって人の手１６でロボットアーム５に力をかけると、動作補正部２０によって、ロボットアーム５の移動時の速度を加速させることができる。
【０１７１】  ４つ目の補正の種別は、「方向（姿勢）の変更」である。図２０Ａ及び図２０Ｃ（図２０Ａを上から見た図）のように動作する動作情報を使って、モデルチェンジにより、図２０Ａの機器６の挿入口７５の向きが図２０Ｂの挿入口７５ｃのように変更された場合には、図２０Ｂのように、フレキシブル基板７４を把持したロボットアーム５を、図２０Ａの機器６の挿入口７５に対する動作と同様な動作で挿入を行うと、フレキシブル基板７４が挿入口７５ｃに引っかかってフレキシブル基板７４を挿入口７５ｃに挿入することができない。その場合に、図２０Ｄのように、ロボットアーム５によるフレキシブル基板７４の挿入作業中に、人の手１６でロボットアーム５（特に、フレキシブル基板７４を把持しているハンド３０）の姿勢の向きを変更するようにロボットアーム５（特にハンド３０又はハンド近傍の部分）に力をかけると、動作補正部２０によって、図２０Ｅのようにロボットアーム５（特に、フレキシブル基板７４を把持しているハンド３０）の姿勢を変更して、挿入口７５ａに合わせてロボットアーム５（特に、ハンド３０）の進行方向を変更することができる。これは、ロボットアーム５の手先の姿勢（φ、θ、ψ）を変更することで実現できる。
【０１７２】  ５つ目の補正の種別は、「作業をして欲しくない領域」である。人１６Ａの手１６で図２３に示すように、ロボットアーム５（例えば、ハンド３０）を把持して、作業をして欲しくない領域ＲＢの輪郭に沿って、ロボットアーム５に力をかけてロボットアーム５（例えば、ハンド３０）を移動させると、動作補正部２０によって、図２３のように、作業をして欲しくない領域ＲＢを設定することができる。
【０１７３】  ６つ目の補正の種別は、「作業面垂直方向の移動」である。図２４Ａのように、ロボットアーム５で機器６の挿入口７５に対するフレキシブル基板７４の挿入作業中に、図２４Ｂのように人の手１６でロボットアーム５に、上方向の力をかけて、ロボットアーム５を上方向に移動させると、動作補正部２０によって、例えば、図２４Ｃに示すように、機器６の上向きに突出した凸部６ａでのフレキシブル基板７４の挿入作業を行うことができる。
【０１７４】  補正動作種別決定部２３は、前記の６種類の補正の種別のうち、１種類の補正の種別を決定する。具体的には、ボタンなどのデータ入力ＩＦ２６にて６種の補正の種別のうちの１つの補正の種別を選択するか、若しくは、力検出部５３で検出されて情報取得部１００で取得された人の手１６でロボットアーム５にかけた力と、動作データベース１７に記憶されて情報取得部１００で取得されたロボットアーム５にかけた力と、補正の種別との関係情報（例えば、力のかかる向きと大きさと補正の種別との関係情報）とにより、補正動作種別決定部２３で種別を推定する。
【０１７５】  以下、補正の種別の推定方法の具体的な補正種別推定処理について、図１４のフローチャートを使って詳細に説明する。
【０１７６】  組立ロボット１の電源ボタン２６ａを「ＯＮ」にした状態で、人の手１６でロボットアーム５を把持して力をロボットアーム５に加えていない場合は、ロボットアーム５は動かない。人の手１６でロボットアーム５に力を加えている場合は、インピーダンス制御モード（人の手１６の力を検出した方向にインピーダンス制御で移動させるモード）でロボットアーム５を移動させたい方向に移動させることができる。この場合、制御部２２の力検出部５３にて、ロボットアーム５に作用する力を検出し、力検出部５３で検出された力の情報が、情報取得部１００を介して、補正動作種別決定部２３に入力される（ステップＳ７１）。
【０１７７】  次いで、ステップＳ７２では、力検出部５３で検出しかつ情報取得部１００で取得された力の全ての成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分）が、ある閾値（具体的には、図１７のＩＤ「１」の（ｆdｘ、ｆdｙ、ｆdｚ、ｆdφ、ｆdθ、ｆdψ））以下であるか否かを補正動作種別決定部２３で判断する。力検出部５３で検出しかつ情報取得部１００で取得された力の全ての成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分）が、前記ある閾値以下であると補正動作種別決定部２３で判断した場合は、ロボットアーム５は動かず、補正はせず（ステップＳ８８）、補正動作の種別推定方法の補正種別推定処理を終了する。その場合の制御モードは、インピーダンス制御モードである。
【０１７８】  ステップＳ７２にて、力検出部５３で検出しかつ情報取得部１００で取得された力のいずれかの成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分のうちのいずれかの成分）が、前記ある閾値（具体的には、図１７のＩＤ「１」の（ｆdｘ、ｆdｙ、ｆdｚ、ｆdφ、ｆdθ、ｆdψ））を越えると補正動作種別決定部２３で判断した場合は、ステップＳ７３に進む。
【０１７９】  ステップＳ７３では、さらに、現在の組立ロボット１が動作データベース１７で動作しているかどうか、を情報取得部１００を介して取得した情報を基に補正動作種別決定部２３で判定する。具体的には、動作選択部２９にて作業を選択しておらず、かつ、動作データベース１７の全ての作業ＩＤについて、進捗情報が「０」となっている、と補正動作種別決定部２３で判断する場合（作業を開始していない状態）は、動作データベース１７で動作していないと補正動作種別決定部２３で判定して、ステップＳ７６に進む。動作選択部２９にて組立作業を選択して組立を開始しており、かつ、進捗情報が「１」となっていると補正動作種別決定部２３で判断している場合は、動作データベース１７で動作していると補正動作種別決定部２３で判定して、ステップＳ７４に進む。
【０１８０】  ステップＳ７４では、人の手１６でロボットアーム５を把持して、ロボットアーム５の動作を補正したい方向に力を加えるとき、力検出部５３でロボットアーム５に加えられた力を検出し、力検出部５３で検出されかつ情報取得部１００を介して取得した人の手１６からの力（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψ）のそれぞれのある一定時間の変位量を補正動作種別決定部２３で計測し、位置成分（ｆｘ、ｆｙ、ｆｚ）と姿勢成分（ｆφ、ｆθ、ｆψ）のどちらの変位量が大きいかを補正動作種別決定部２３で計測する。具体的には、図１５に示すように、（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψ）それぞれの時系列の力を補正動作種別決定部２３で計測し、ある一定時間（例えばｔｉｍｅ  １）に力がどれくらい変位したか、を補正動作種別決定部２３で計測し、最も変位の大きかった成分を補正動作種別決定部２３で計測する。この例では、fφの変位が最も大きいので、姿勢成分が位置成分より力がかかっていると補正動作種別決定部２３で判断してステップＳ７９へ進む。
【０１８１】  ステップＳ７４にて姿勢の変位量が位置の変位量より大きいと補正動作種別決定部２３で判断する場合には、補正の種別は「方向（姿勢）の変更」の種別であると補正動作種別決定部２３で決定して、補正の種別推定処理を終了する（ステップＳ７９）。その際の制御モードは、補正の種別を決定する前と同様の制御モード（力ハイブリッドインピーダンス制御モード）である。
【０１８２】  一方、ステップＳ７４にて位置の変位量が姿勢の変位量以上であると補正動作種別決定部２３で判断する場合には、さらに、作業面（例えば、機器６の挿入口７５の挿入面）に垂直な方向の力成分（例えば、機器６の挿入口７５が地面（例えば、機器６の載置面）に水平になるように設置された機器６にフレキシブル基板７５のコネクタ部を挿入する場合、又は、組立作業の一部として、地面（例えば、機器６の載置面）に水平になるように設置された機器６の研磨対象面を研磨する研磨作業の場合はｆｚ）が、ある閾値（具体的には、図１７のＩＤ「１」のfdｚ）以上かどうか、を補正動作種別決定部２３で判定する（ステップＳ７５）。
【０１８３】  ステップＳ７５で、作業面（例えば、機器６の挿入口７５の挿入面）に垂直な方向の力成分が前記ある閾値より小さい、と補正動作種別決定部２３で判定された場合は、さらに作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向（作業面沿いの方向）の力成分（例えば作業台７に水平に設定された機器６にフレキシブル基板７４を挿入する場合はｆｘ、ｆｙのいずれか若しくは両方）が、ある閾値（具体的には、図１７のＩＤ「１」のｆｄｘ、ｆｄｙ）以上であるかどうかを補正動作種別決定部２３で判定する（ステップＳ８０）。
【０１８４】  ステップＳ８０にて、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向（作業面沿いの方向）の力成分が前記ある閾値（具体的には、図１７のＩＤ「１」のｆｘ、ｆｙ）未満であると補正動作種別決定部２３で判断する場合は、補正なし（種別なし）と決定して、補正種別推定処理を終了する（ステップＳ８１）。補正なしの場合は補正を中止して作業を行う。
【０１８５】  ステップＳ８０にて、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向（作業面沿いの方向）の力成分が前記ある閾値以上であると補正動作種別決定部２３で判断する場合は、ステップＳ８３に進む。
【０１８６】  ステップＳ８３では、さらに補正動作種別決定部２３で算出された作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向（作業面沿いの方向）のロボットアーム５の移動量が、ある閾値（具体的には、図１７のＩＤ「２」のｇｘ、ｇｙ）以上であると補正動作種別決定部２３で判断する場合は、補正の種別として「作業面の位置の移動」の種別を補正動作種別決定部２３で決定して、補正種別推定処理を終了する（ステップＳ８４）。なお、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向の移動量を補正動作種別決定部２３で算出するとき、具体的には、制御部２２から制御パラメータ管理部２１又は情報取得部１００を介して人の操作前のロボットアーム５の手先位置と操作中の手先位置を補正動作種別決定部２３に入力し、操作中の手先位置から操作前の手先位置を減じた値を移動量として補正動作種別決定部２３で算出することができる。また、作業面に垂直な方向の移動量を補正動作種別決定部２３で算出するとき、具体的には、制御部２２から制御パラメータ管理部２１又は情報取得部１００を介して人の操作前のロボットアーム５の手先位置のｚ成分と操作中の手先位置のｚ成分を補正動作種別決定部２３に入力し、操作中の手先位置のｚ成分から操作前の手先位置のｚ成分を減じた値を移動量として補正動作種別決定部２３で算出することができる。
【０１８７】  ステップＳ８３にて、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向の移動量が前記ある閾値未満であると補正動作種別決定部２３で判定された場合は、補正の種別として、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向の「速度」の種別を決定して、補正種別推定処理を終了する（ステップＳ８５）。
【０１８８】  また、ステップＳ７５で、作業面（例えば、機器６の挿入口７５の挿入面）に垂直な力が前記ある閾値以上であると補正動作種別決定部２３で判定された場合は、さらに、補正動作種別決定部２３で算出された作業面（例えば、機器６の挿入口７５の挿入面）のロボットアーム５の垂直方向の移動量が、ある閾値（具体的には、図１７のＩＤ「２」のｇｚ）より大きいか否かを補正動作種別決定部２３で判断する（ステップＳ８２）。
【０１８９】  ステップＳ８２において、作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向の移動量が、前記ある閾値より大きいと補正動作種別決定部２３で判断する場合には、補正の種別して「作業面垂直方向の移動」の種別を補正動作種別決定部２３で決定して、補正種別推定処理を終了する（ステップＳ８７）。
【０１９０】  また、ステップＳ８２で作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向の移動量が前記ある閾値以下であると補正動作種別決定部２３で判断する場合には、補正の種別として「力の補正」と決定し（ステップＳ８６）、補正種別推定処理を終了する。
【０１９１】  また、ステップＳ７３において、動作データベース１７で動作していないと補正動作種別決定部２３で判定された場合には、ステップＳ７６に進み、ステップＳ７６にて、さらに、人の手１６でロボットアーム５にかけている力が作業面（例えば、機器６の挿入口７５の挿入面）に水平であり、かつ、ある一定時間の水平方向の移動量が、ある閾値（具体的には、図１７のＩＤ「２」のｇｘ、ｇｙ）以上であるか否かを補正動作種別決定部２３で判断する。
【０１９２】  ステップＳ７６において、人の手１６でロボットアーム５にかけている力が作業面（例えば、機器６の挿入口７５の挿入面）に水平であり、かつ、ある一定時間の水平方向の移動量が、前記ある閾値以上であると補正動作種別決定部２３で判断する場合には、補正の種別として「作業をして欲しくない領域」の種別であると決定し（ステップＳ７８）、補正種別推定処理を終了する。ステップＳ７６で、人の手１６でロボットアーム５にかけている力が作業面（例えば、機器６の挿入口７５の挿入面）に対して水平ではない場合（例えば、垂直である場合）、又は、作業面（例えば、機器６の挿入口７５の挿入面）に水平な力であっても水平方向の移動量が前記ある閾値未満であると補正動作種別決定部２３で判断する場合は、補正の種別として「補正なし」と決定し（ステップＳ７７）、補正種別推定処理を終了する。
【０１９３】  以上により、ボタンなどのデータ入力ＩＦ２６を使わずに、補正動作種別決定部２３により、補正の種別を切り替えることができる。
【０１９４】  動作補正部２０は、動作データベース１７の位置と姿勢と時間とに基づいて動作中に、人の手１６でロボットアーム５に力をかけることで、動作データベース１７の動作情報を補正する機能である。
【０１９５】  以下、動作補正部２０の機能について説明する。
【０１９６】  人の手１６で、組立ロボット１の作業台７に配置されているデータ入力ＩＦ２６（例えば操作盤２６Ａの電源ボタン２６ａなど）により電源を入れると、動作補正部２０は、インピーダンス制御モードで動作するよう、制御パラメータ管理部２１へ指令を出す。
【０１９７】  次に、人の手１６で、動作選択部２９により、動作データベース１７の作業の一覧の中から所望の組立作業を選択して、組立動作開始の指示を行う。動作補正部２０は、動作データベース１７の中から選択された作業ＩＤの動作情報（具体的には、レール可動部８ｂの位置及びロボットアーム５の位置と姿勢と時間と）に基づきレール可動部８ｂ及びロボットアーム５の制御モードを設定する。この例では、図４の作業ＩＤ「３」が選択されたので、動作データベース１７の動作ＩＤ「１」に対するフラグ（有効性を示すフラグ）のうち、フラグのビットが「１」になっているロボットアーム５の位置及び姿勢のそれぞれに対して、ハイブリッドインピーダンス制御モード（位置制御モードで動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード）が動作補正部２０で設定され、制御パラメータ管理部２１へ指令を出す。動作補正部２０から制御パラメータ管理部２１へ指令を出すと、図２１Ａに示すように、挿入口７５に向かって、フレキシブル基板７５をハンド３０で把持したロボットアーム５が移動する。動作ＩＤ「１」から順次次の動作情報により、制御パラメータ管理部２１へ指令を出す。動作ＩＤ「９」は力ハイブリッドインピーダンス制御モードで動作するように、制御パラメータ管理部２１へ指令を出す。
【０１９８】  力ハイブリッドインピーダンス制御モードの場合は、動作データベース１７の動作ＩＤに対するフラグ（有効性を示すフラグ）のうち、フラグのビットが「１」になっているロボットアーム５の位置及び姿勢のそれぞれに対して、ハイブリッドインピーダンス制御モード（位置制御モードで動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード）が動作補正部２０で設定され、力のフラグ（有効性を示すフラグ）のビットが「１」になっている成分は力制御モードが動作補正部２０で設定される。位置及び姿勢の６成分のうち、ハイブリッドインピーダンス制御モードも力制御モードもいずれも設定されていない成分は、インピーダンス制御モードが動作補正部２０で設定される。
【０１９９】  例えば、図４の作業ＩＤ「３」の動作ＩＤ「９」の場合は、挿入口７５に対してフレキシブル基板７４を挿入する作業を示しており、動作ＩＤが「９」の場合のフラグは１，２，８ビット目のみ「１」であるので、ｘ軸成分及びｙ軸成分に対しては、ハイブリッドインピーダンス制御モードが動作補正部２０で設定されるとともに、ｚ軸成分に対しては力制御モードが動作補正部２０で設定され、姿勢成分に対してはインピーダンス制御モードが動作補正部２０で設定される。
【０２００】  制御パラメータ管理部２１は、動作補正部２０から指令を受ける。すなわち、力ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードで組立作業をするように動作補正部２０から制御パラメータ管理部２１へ指令を出すと、図２１Ａ〜図２１Ｂに示すように、ロボットアーム５が挿入口７５に向かって移動した後、挿入口７５にフレキシブル基板７４を挿入する作業をロボットアーム５が開始する。
【０２０１】  次に、モデルチェンジなどにより、フレキシブル基板７４又は挿入口７５の仕様変更に伴って、人が状況などを確認して、図１９Ｃに示すように、もう少し横方向にロボットアーム５を平行移動させて作業させたい場合を例にとって説明する。  図１９Ｃに示すように、人の手１６でロボットアーム５を直接つかんで、作業面（例えば、機器６の挿入口７５の挿入面）に対して平行移動するように作業面（例えば、機器６の挿入口７５の挿入面）に平行に力をロボットアーム５にかける。
【０２０２】  補正動作種別決定部２３により、情報取得部１００で取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７に記憶された情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６で、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向に力をロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させているので、ステップＳ８４において、補正の種別として「作業面の位置の移動」の種別であると補正動作種別決定部２３で決定する。
【０２０３】  図４の作業ＩＤが「３」の場合で動作ＩＤが「９」に示す作業の場合は、ｘ軸成分及びｙ軸成分は力ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより人の手１６でロボットアーム５にかけられた力を力検出部５３で検出して人の手１６でロボットアーム５に力をかけた方向にロボットアーム５をｘ軸方向及びｙ軸方向に移動させて、図１９Ｄのようにフレキシブル基板７５の挿入位置を補正することができる。
【０２０４】  なお、この例では、ｘ軸の方向及びｙ軸の方向にのみ動作を補正したいので、補正動作種別決定部２３で補正の種別が決定されたタイミングで、補正動作種別決定部２３により、図６の補正パラメータフラグの０，１ビット目を「１」に設定するとともに、その他のビットを「０」に設定して、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ｘ軸及びｙ軸以外の移動ができないように設定することができる。さらに、インピーダンス制御モード時の機械インピーダンス設定値を補正動作種別決定部２３で変更して補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ロボットアーム５のｘ軸方向及びｙ軸方向の剛性を他の方向の剛性よりも低くして、人の手１６でロボットアーム５をｘ軸方向及びｙ軸方向に動かしやすくし、ｘ軸方向及びｙ軸方向以外の方向の剛性を高くして、人の手１６でロボットアーム５をｘ軸方向及びｙ軸方向以外の方向に動かしにくくするようにすることができる。これにより、ロボットアーム５のｘ軸成分及びｙ軸成分のみを補正したい場合に、ロボットアーム５のｚ軸成分の補正を誤って行なうことがないようにできる。また、ロボットアーム５のｘ軸方向及びｙ軸方向の補正中に、補正動作種別決定部２３により、ｚ軸成分の作業面（例えば、機器６の挿入口７５の挿入面）にかける力を、補正前の動作時より弱く若しくは小さく（具体的には半分程度に）することもできる。又は、力制御を停止するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すこともできる。具体的には、動作データベース１７のフラグの６〜１７ビット目を「０」に補正動作種別決定部２３で設定する。これにより、ｘ軸方向及びｙ軸方向にロボットアーム５を移動させて補正している最中に、ロボットアーム５に力をかけて機器６を傷つけることを防ぐことができる。
【０２０５】  上述のように、人の手１６でロボットアーム５を把持して、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向へ力をかけてロボットアーム５をΔｘ分及びΔｙ分だけｘ軸方向及びｙ軸方向に移動させた場合に、Δｘの値及びΔｙの値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。
【０２０６】  動作補正部２０では、選択された作業ＩＤの動作情報の全てのｘ座標の値からΔｘを減じ、さらに、全てのｙ座標の値から、Δｙを減じて補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、Δｘ分及びΔｙ分を補正した座標でロボットアーム５が動作するように制御部２２へ指示する。これにより、図１９Ｄのような動作に補正される。次に、Δｘ及びΔｙ分だけ減じた動作情報を、動作記憶部１５で動作データベース１７に記憶する。
【０２０７】  次に、図２４Ｂのように、例えば、機器６上を作業中に、機器６に設置された凸部６ａで挿入作業する場合は、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して垂直方向の上向きに移動するように作業面（例えば、機器６の挿入口７５の挿入面）に垂直に力をロボットアーム５にかける。
【０２０８】  補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６でロボットアーム５に、作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向に力をかけて、ロボットアーム５を前記ある閾値以上移動させているので、ステップＳ８７において、補正の種別として「作業面の垂直方向の移動」の種別であると補正動作種別決定部２３で決定する。
【０２０９】  力ハイブリッドインピーダンス制御モード若しくはハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人の手１６の力を力検出部５３で検出してロボットアーム５に人の手１６で力をかけた方向にロボットアーム５をｚ軸方向に移動させて、図２４Ｃのように挿入位置をｚ軸方向に補正することができる。
【０２１０】  なお、この例では、ｚ軸の方向にのみ動作を補正したいので、補正動作種別決定部２３で補正の種別が決定されたタイミングで、補正動作種別決定部２３により、図６の２ビット目を「１」に設定するとともに、それ以外のビットを「０」に設定して、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ｚ軸方向以外の移動ができないように設定することができる。さらに、インピーダンス制御モード時の機械インピーダンス設定値を補正動作種別決定部２３で変更して補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ｚ軸方向の剛性を他の方向の剛性よりも低くして、人の手１６でロボットアーム５をｚ軸方向に動かしやすくし、ｚ軸方向以外の剛性を高くして、人の手１６でロボットアーム５をｚ軸方向以外の方向に動かしにくくするようにすることができる。
【０２１１】  また、ロボットアーム５のｚ軸方向の動作を補正する際に、補正動作種別決定部２３により、ｚ軸成分の作業面（例えば、機器６の挿入口７５の挿入面）にかける力を、補正前の動作時より弱く若しくは小さく（具体的には半分程度に）することもできる。又は、力制御を停止するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すこともできる。具体的には、動作データベース１７のフラグの６〜１７ビット目を「０」に補正動作種別決定部２３で設定する。これにより、ｚ軸方向にロボットアーム５を移動させている最中に、ロボットアーム５に力をかけて機器６を傷つけることを防ぐことができる。
【０２１２】  上述のように、人の手１６でロボットアーム５を把持して、作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向へ力をかけてロボットアーム５をΔｚ分だけｚ軸方向に移動させた場合に、Δｚの値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。
【０２１３】  動作補正部２０では、選択された作業ＩＤの動作情報の全てのｚ座標の値からΔｚを減じて補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、Δｚ分の補正した座標でロボットアーム５が動作するように制御部２２へ指示する。これにより、図２４Ｃのような動作に補正される。次に、Δｚ分減じた動作情報を、動作記憶部１５で動作データベース１７に記憶する。
【０２１４】  図２０Ｂのように、例えば、ロボットアーム５の姿勢を変更させる場合は、図２０Ｄのように、人の手１６でロボットアーム５を直接把持して、変更したい方向にロボットアーム５を移動させる。
【０２１５】  補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６でロボットアーム５を変更したい方向に移動させようと力をかけているので、ステップＳ７９において、補正の種別として「方向（姿勢）の変更」の種別であると補正動作種別決定部２３で決定する。
【０２１６】  ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して人の手１６でロボットアーム５に力をかけた方向にロボットアーム５をφ軸方向に回転させて、図２０Ｅのように挿入方向を補正することができる。
【０２１７】  なお、この例では、φ軸の方向にのみ動作を補正したいので、補正動作種別決定部２３で補正の種別が決定されたタイミングで、補正動作種別決定部２３により、図６の補正パラメータフラグの３ビット目を「１」に設定するとともに、それ以外のビットを「０」に設定して、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。これにより、φ軸方向以外の移動ができないように補正動作種別決定部２３で設定することができる。さらに、インピーダンス制御モード時の機械インピーダンス設定値を補正動作種別決定部２３で変更して補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、φ軸方向の剛性を他の方向の剛性より低くして、人の手１６でロボットアーム５をφ軸方向に動かしやすくし、φ軸方向以外の剛性を高くして、人の手１６でロボットアーム５をφ軸方向以外の方向に動かしにくくするようにすることができる。
【０２１８】  また、ロボットアーム５のφ軸方向の補正中に、補正動作種別決定部２３により、ｚ軸成分の作業面（例えば、機器６の挿入口７５の挿入面）にかける力を、補正前の動作時より弱く若しくは小さく（具体的には半分程度に）することができる。又は、力制御を停止するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すこともできる。具体的には、動作データベース１７のフラグの６〜１７ビット目を「０」に補正動作種別決定部２３で設定する。これにより、φ軸方向に移動させている最中に、ロボットアーム５に力をかけて機器６を傷つけることを防ぐことができる。
【０２１９】  上述のように、人の手１６でロボットアーム５を把持して、作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向へ力をかけてロボットアーム５をΔφ分だけφ軸方向に回転させた場合に、Δφの値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。
【０２２０】  動作補正部２０では、選択された作業ＩＤの動作情報の全てのφ座標の値からΔφを減じて補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、Δφ分の補正した座標でロボットアーム５が動作するように制御部２２へ指示する。これにより、図２０Ｅのような動作に補正される。次に、Δφ分だけ減じた動作情報を、動作記憶部１５で動作データベース１７に記憶する。
【０２２１】  以上により、動作補正部２０は、動作データベース１７の位置と姿勢と時間とにより、ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６でロボットアーム５に力をかけることで、生成された位置を方向別に補正することができるようになる。
【０２２２】  次に、図１８Ｃのように、組立作業時の作業面（例えば、機器６の挿入口７５の挿入面）に対する力を変更する場合は、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して垂直方向に力をロボットアーム５にかける。
【０２２３】  補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向に力をロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させていないので、ステップＳ８６において、補正の種別として「力の補正」の種別であると補正動作種別決定部２３で決定する。
【０２２４】  補正動作種別決定部２３で補正の種別が「力の補正」であると決定したタイミングで、力ハイブリッドインピーダンス制御モードから高剛性位置制御モードで動作するよう補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。補正動作種別決定部２３から制御パラメータ管理部２１への指令時に、高剛性位置制御モードでは、方向別に位置制御時の高剛性を補正動作種別決定部２３で設定することができるため、例えば図４の動作データベース１７の作業ＩＤ「３」でかつ動作ＩＤ「９」の動作のフラグは、０、１、８ビットが「１」に設定されているので、ｚ軸方向は力制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するため、ｚ軸方向のみ高剛性位置制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。
【０２２５】  次に、図１８Ｃに示すように、ロボットアーム５がフレキシブル基板７４の挿入作業のために動作している最中に、人の手１６でロボットアーム５を直接把持して、挿入する力を強め（より強い力）に変更をしたい場合には、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に向かってロボットアーム５に下方向に力をかける。高剛性位置制御モードでは、組立作業時のハイブリッドインピーダンス制御モードのうち、方向別設定された位置制御モードを、さらに高剛性にしたモードで、かつ、位置誤差補償部５６でのゲインを大きく（具体的には、組立作業時の位置制御モードの２倍程度に）することで実現し、人の手１６でロボットアーム５に力をかけると、ロボットアーム５を容易に移動させることができず、人の手１６でロボットアーム５にかけた力を力検出部５３で検出することができる。制御部２２の力検出部５３で検出された力を動作補正部２０に通知する。動作補正部２０に通知された力を、動作記憶部１５で動作データベース１７に記憶することで、強めに（より強い力で）挿入するよう動作を補正することができる。人が補正を終了したい場合は、ロボットアーム５を把持して力をロボットアーム５にかけることを止める。人の手１６でロボットアーム５に力をかけない場合は、図１４のステップＳ７２により、力の全ての成分が前記閾値以下になるので、補正動作種別決定部２３により、補正の種別として「補正なし」であると決定する（図１４のステップＳ８８）。動作補正部２０は、「補正なし」の情報を受けて、高剛性の位置制御モードからハイブリッドインピーダンス制御モードで制御するよう、補正動作種別決定部２３から制御パラメータ管理部２１に指令を出す。これにより、補正後の動作データベース１７で作業を行う。
【０２２６】  以上により、動作補正部２０は、動作データベース１７の力の情報により、ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６が力をかけることで、補正された力で挿入するように補正することができるようになる。
【０２２７】  次に、図２２Ｂのように、ロボットアーム５の移動時の速度を変更する場合は、人の手１６でロボットアーム５を直接把持して、加速したい場合は、挿入のためのロボットアーム５の進行方向と同じ向きに人の手１６でロボットアーム５に力をかける一方、減速したい場合は、挿入のためのロボットアーム５の進行方向に逆らう向きに人の手１６でロボットアーム５に力をかける。その際に、ロボットアーム５の手先位置の速度を変えても良いが、位置は前記ある閾値以上動かさないように人の手１６でロボットアーム５に力をかける。
【０２２８】  補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６でロボットアーム５にかけた力と動作データベース１７の情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向に力をロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させていないので、図１４のステップＳ８５により、補正の種別として、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向の「速度」の種別であると補正動作種別決定部２３で決定する。
【０２２９】  ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５をｘ軸方向及びｙ軸方向に移動させる。動作データベース１７で例えば作業ＩＤと動作ＩＤとで示されたロボットアーム５の位置（ｘ１、ｙ２、ｚ１）から、次の動作ＩＤのロボットアーム５の位置（ｘ２、ｙ２、ｚ２）まで移動するのにかかる時間をｔ１とすると、ロボットアーム５の速度を人の手１６の力で変更した場合（図２２Ｂ参照）には、すなわち、位置（ｘ１、ｙ２、ｚ１）から位置（ｘ２、ｙ２、ｚ２）までに移動するのにかかる時間がｔ１からｔ２に変更された場合には、時間ｔ２の値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０では、選択された作業ＩＤの動作情報について、ｔ１の時間からｔ２の時間に変更して、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１において、補正した時間であるｔ２で動作するように制御パラメータ管理部２１から制御部２２へ指示する。これにより、図２２Ｃのような動作に補正される。次に、時間ｔ２を、動作記憶部１５で動作データベース１７に記憶する。
【０２３０】  以上により、動作補正部２０は、動作データベース１７の位置と姿勢と時間との情報により、力ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６でロボットアーム５に力をかけることで、ロボットアーム５の動作速度を補正することができるようになる。
【０２３１】  図２３に示すように、組立ロボット１に作業をして欲しくない領域ＲＢを、ロボットアーム５を使って設定する場合を例にとって説明する。
【０２３２】  人の手１６で組立ロボット１の上部に配置されているデータ入力ＩＦ２６（例えば操作盤２６Ａの電源ボタン２６ａなど）により電源を入れると、動作補正部２０は、インピーダンス制御モードで動作するよう、制御パラメータ管理部２１へ指令を出す。動作選択部２９にて作業を選択していない状態で、図２３に示すように、人１６Ａの手１６がロボットアーム５（例えばハンド３０など）を直接把持して、作業面（例えば、機器６が載置されている作業台７の上面）に対して平行な方向に移動するようにロボットアーム５を移動させて、作業をして欲しくない領域ＲＢの輪郭に沿って、ロボットアーム５（例えばハンド３０）を移動させる。図２５Ａは、作業面（例えば、機器６が載置されている作業台７の上面）を上方から見た図で、作業をして欲しくない領域ＲＢを斜線の領域とすると、人の手１６がロボットアーム５を移動させて、矢印のように、作業をして欲しくない領域ＲＢの輪郭にロボットアーム５（例えばハンド３０）を沿わせて、移動させる。その際、ロボットアーム５の手先（ハンド３０）の上面の中央先端にマーク６３が付与されており（図２５Ａ及び図２５Ｂ参照）、作業をして欲しくない方向にマーク６３を向けて移動させる。
【０２３３】  補正動作種別決定部２３により、図１４に示した補正種別推定処理を実行して動作データベース１７で動作していないと判定し（ステップＳ７２，Ｓ７３，Ｓ７６）、さらに、人の手１６でロボットアーム５にかけている力が作業面（例えば、機器６が載置されている作業台７の上面）に水平であり、かつ、ある一定時間の水平方向の移動量が、前記ある閾値以上の場合は、ステップＳ７８において、補正の種別として「作業をしてほしくない領域」の種別であると決定する。
【０２３４】  インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５をｘ軸方向及びｙ軸方向に移動させて、図２５Ａのように、位置（ｘ１、ｙ１）、位置（ｘ２、ｙ２）、位置（ｘ３、ｙ３）、位置（ｘ４、ｙ４）の順にロボットアーム５（例えばハンド３０）を移動させる。このとき、これらの位置情報が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０は、その指令を受けて、これらの位置情報が作業不可領域ＲＢの情報として、動作記憶部１５により作業不可領域データベース２８に記憶する。これらの４つの位置が作業不可領域ＲＢの頂点の情報であることは、例えば、ある一定間隔で人が移動させたロボットアーム５の手先位置を取得して、取得した手先位置の座標をつなげて領域を生成し、それを作業不可領域ＲＢとすることができる。さらに、どのような形の領域とするかを決定する機能を追加し、例えば、「矩形」と設定されている場合は、９０度近くの角度で移動方向が変われば、その位置を頂点の情報として記憶し、「ランダム」と設定された場合は、ある一定間隔で人が移動させたロボットアーム５の手先位置を取得して、取得した手先位置の座標をつなげて生成し、それを作業不可領域ＲＢとすることができる。
【０２３５】  なお、この例では、ｘ軸の方向及びｙ軸の方向にのみロボットアーム５の動作を補正したいので、補正動作種別決定部２３で、補正の種別が決定されたタイミングで、図６の補正パラメータフラグの０，１ビット目を「１」に設定するとともに、その他のビットを「０」に設定して、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ロボットアーム５がｘ軸方向及びｙ軸方向以外の軸方向への移動ができないように設定することができる。さらに、インピーダンス制御モード時の機械インピーダンス設定値を変更して補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ｘ軸方向及びｙ軸方向の剛性を低くして、人の手１６でロボットアーム５をｘ軸方向及びｙ軸方向に動かしやすくし、ｘ軸方向及びｙ軸方向以外の軸方向の剛性を高くして、人の手１６でロボットアーム５をｘ軸方向及びｙ軸方向以外の軸方向に動かしにくくするようにできる。
【０２３６】  以上により、動作補正部２０は、人の手１６が力をかけることで、作業をして欲しくない領域の設定を行うことができるようになる。
【０２３７】  表示部１４には、図９に示すように、表示部１４の画面を左右２画面１４ａ，１４ｂに分割して表示し、左側の画面１４ａに、動作データベース１７で記述されたロボットアーム５の組立動作が映像若しくは写真若しくはテキストで表示される。さらに、右側の画面１４ｂには、補正動作種別決定部２３にて推定された補正の種別の情報を映像若しくは写真若しくはテキストで表示する。この図９の例では、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に垂直に力をロボットアーム５にかけて、力のかけ具合を補正するような動作をすると、補正動作種別決定部２３が、補正の種別として「力の補正」の種別であると決定したタイミングで、右側の画面１４ｂに力の補正をしている映像と現在の力の強弱を表示する。
【０２３８】  なお、この例では、映像若しくは写真、テキストとしたが、動作を説明する音声などでも良い。
【０２３９】  以上の動作補正部２０と補正動作種別決定部２３と動作選択部２９と動作記憶部１５と動作データベース１７と制御パラメータ管理部２１の動作ステップ（すなわち、組立ロボット１を駆動開始してから組立作業を開始するまでの間に行う、組立作業及び組立動作の設定処理）について、図１３のフローチャートに基づいて説明する。
【０２４０】  人の手１６でデータ入力ＩＦ２６により、組立ロボット１の電源をオンする（ステップＳ１２１）。
【０２４１】  次いで、動作補正部２０が、インピーダンス制御モードで制御するように制御パラメータ管理部２１へ指令を出す（ステップＳ１２２）。
【０２４２】  次に、作業不可領域ＲＢの補正かどうか、を補正動作種別決定部２３により判定する（ステップＳ１３０）。作業不可領域ＲＢの補正であると補正動作種別決定部２３により判定された場合は、動作補正部２０にて補正を行い（ステップＳ１３３）、その補正の情報を動作記憶部１５により動作データベース１７に記憶する（ステップＳ１３４）。その後、ステップＳ１２３に進む。
【０２４３】  ステップＳ１３０で作業不可領域ＲＢの補正ではない、と補正動作種別決定部２３により判定された場合に、又は、ステップＳ１３４を実行した後の場合に、ステップＳ１２３に進む。ステップＳ１２３では、動作選択部２９により、人が、表示部１４に表示された組立作業の一覧から１つの作業をデータ入力ＩＦ２６を介して選択し、動作データベース１７の進捗情報に、選択された現在の作業を設定する（ステップＳ１２３）。
【０２４４】  次いで、動作補正部２０は、制御パラメータ管理部２１へ力ハイブリッドインピーダンス制御モードで動作するよう指令を出し、人の手１６でロボットアーム５を機器６などの作業面（例えば、機器６の挿入口７５の挿入面）まで誘導し、データ入力ＩＦ２６（例えば、スイッチ２６ｃのスタートボタン）にて、ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードに切り替えて、作業開始の指令を行う（ステップＳ１２４）。
【０２４５】  次いで、人が補正したい方向に力をかけると、補正動作種別決定部２３により補正動作の種別を推定して決定する（ステップＳ１２５）。
【０２４６】  次いで、ステップＳ１２５で、補正の種別として、作業面（例えば、機器６の挿入口７５の挿入面）にかける力の補正の種別であると補正動作種別決定部２３で決定した場合は、作業面（例えば、機器６の挿入口７５の挿入面）に垂直な方向に対して高剛性の位置制御モードで動作するよう、動作補正部２０から制御パラメータ管理部２１へ指令を出す（ステップＳ１２６，Ｓ１２７）。
【０２４７】  次いで、人の手１６でロボットアーム５を把持して、補正したい方向に人の手１６でロボットアーム５に力をかけることで、動作補正部２０が動作情報を補正する（ステップＳ１２８）。
【０２４８】  一方、ステップＳ１２５で、補正の種別として作業面（例えば、機器６の挿入口７５の挿入面）にかける力の種別以外の補正の種別であると決定した場合は、制御モードは力インピーダンス制御モードで変更せず、補正したい方向に人の手１６でロボットアーム５に力をかけることで、動作補正部２０が動作情報を補正する（ステップＳ１２６，Ｓ１２８）。
【０２４９】  次いで、ステップＳ１２８で補正された動作情報は、動作記憶部１５により、動作データベース１７に記憶されて、一連の組立作業及び組立動作の設定処理を終了する（ステップＳ１２９）。
【０２５０】  一方、ステップＳ１２５で、補正動作種別決定部２３により、補正の種別として「補正なし」であると決定した場合は、一連の組立作業及び組立動作の設定処理を終了する（ステップＳ１２６，Ｓ１３１）。
【０２５１】  組立作業及び組立動作の設定処理終了後は、設定された組立作業及び組立動作に基づき、組立ロボット１により組立作業を行う。
【０２５２】  以上の動作ステップＳ１２１〜ステップＳ１２２，ステップＳ１３０，ステップＳ１２３及びステップＳ１２４、ステップＳ１３３〜ステップＳ１３４により、ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御で動作中に、ハイブリッドインピーダンス制御モード若しくは高剛性位置制御にて、組立動作を補正することで、ロボットアーム５による組立作業が実現する。
【０２５３】  また、補正動作種別決定部２３により、複数の動作をボタンなどを使わずに人の手１６でロボットアーム５に力をかけるだけで、自動で切り替えて補正することが可能となる。
【０２５４】  また、制御パラメータ管理部２１と制御部２２とを有することにより、補正動作の種別に応じて、ロボットアーム５の機械インピーダンス値を適宜設定することで、ロボットアーム５の補正方向に応じて、機械インピーダンス値を変更させて制御したり、補正中の力を弱めたり停止することができるので、動作の補正中に、機器６を傷つけることを防ぐことができる。
【０２５５】  なお、前記第１実施形態において、動作補正部２０は、補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６でロボットアーム５にかけた力と動作データベース１７の情報とにより、補正の種別の推定を行った後で、すぐに動作の補正を行ったが、人の手１６で誤ってロボットアーム５に力をかけて、人の意図しない補正の種別を選択してしまう事を防ぐために、補正動作種別決定部２３で推定後、ある一定時間後に補正を開始しても良い。この場合、補正が始まるまでは、人は意図した補正種別を選択するまで、何度でも操作することができる。
【０２５６】  また、前記第１実施形態において、動作選択部２９と動作記憶部１５と動作補正部２０と補正動作種別決定部２３と制御パラメータ管理部２１と制御部２２となどのそれぞれ、又は、そのうちの任意の一部は、それ自体がソフトウェアで構成することができる。よって、例えば、本明細書の前記第１実施形態又は後述する実施形態の制御動作を構成するステップを有するコンピュータプログラムとして、記憶装置（ハードディスク等）などの記録媒体に読み取り可能に記憶させ、そのコンピュータプログラムをコンピュータの一時記憶装置（半導体メモリ等）に読み込んでＣＰＵを用いて実行することにより、前記した各ステップを実行することができる。
【０２５７】（第２実施形態）  本発明の第２実施形態における、ロボットアームの制御装置を備える組立ロボット１の前記ロボットアームの制御装置の基本的な構成は、第１実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
【０２５８】  第２実施形態において、第１実施形態と同様に、図１に示すように、セル生産の工場でテレビ又はＤＶＤレコーダなどの機器６のフレキシブル基板挿入口７５にフレキシブル基板７４を取り付ける場合を例にとって説明する。
【０２５９】  組立ロボット１の構成を図２７に示す。
【０２６０】  制御装置本体部４５と、周辺装置４７と、作業負荷領域データベース２８と、動作記憶部１５と、動作選択部２９と、対象物力検出手段の一例として機能する対象物力検出部７８（図２７に示すように、対象物力検出機構７６と対象物力情報出力部７７とで構成されている。ただし、対象物力検出機構７６は、理解しやすくするため、本来の配置位置であるハンド３０の位置とは別に仮想線で対象物力情報出力部７７の近くに図示している。）以外のロボットアーム５とは、第１実施形態と同様であるので、説明は省略する。
【０２６１】  対象物力検出機構７６は、例えば、６軸の力センサの機構で構成され、ロボットアーム５のハンド３０付近に配置する。対象物力検出機構７６は、図２８Ａに示すように、ロボットアーム５がフレキシブル基板７４を挿入口７５に挿入したり、図２８Ｂに示すように、人が手１６でロボットアーム５を把持しながら操作してロボットアーム５によりフレキシブル基板７４を挿入口７５に挿入するように、人がロボットアーム５に教示をしている際に、図２８Ｃに示すように、フレキシブル基板７４に加わる力を検出する機構である。対象物力情報出力部７７は、対象物力検出機構７６で検出した６軸の力の値を動作補正部２０と補正動作種別決定部２３と情報取得部１００とにそれぞれ出力する。情報取得部１００は、組立作業におけるロボットアーム５の位置を含むロボットアーム５の動作に関する情報と、力検出部５３で検出されたロボットアーム５に作用する人の力に関する情報と、対象物力検出部７８で検出された（対象物力検出機構７６で検出され対象物力情報出力部７７から出力された）フレキシブル基板７４に加わる力に関する情報とをそれぞれ取得可能としている。情報取得部１００で取得した情報は、補正動作種別決定部２３に入力され、情報取得部１００でそれぞれ取得した動作に関する情報と人の力に関する情報とから、ロボットアーム５の動作を補正する補正動作の種別を補正動作種別決定部２３で決定することができる。
【０２６２】  第１実施形態では、力検出部５３で人の加える力と対象物の一例であるフレキシブル基板７４に作用する力の両方を検出したが、本第２実施形態では、対象物の一例であるフレキシブル基板７４に作用する力は対象物力検出機構７６で検出し、人が加える力は力検出部５３でそれぞれ検出する。
【０２６３】  図２９は、動作データベース１７の一例を示す。全ての項目は第１実施形態と同様である。
【０２６４】  作業ＩＤ「４」の作業について詳細に説明する。図３１は、フレキシブル基板７４に加わる力を時系列に現したグラフを示す。
【０２６５】  作業ＩＤ［４］は、ロボットアーム５により、フレキシブル基板７４を挿入口７５に挿入する挿入作業を表す。具体的には、図３０Ａ〜図３０Ｆ（図３０Ｇ〜図３０Ｎは挿入口７５の付近を拡大した図）に示す。
【０２６６】  まず、作業ＩＤ「４」の動作ＩＤ「１」〜動作ＩＤ「７」は、図３０Ａに示すように、フレキシブル基板７４をハンド３０で把持したロボットアーム５が挿入口７５に向かって移動している動作を表す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ａ」の状態である。）。
【０２６７】  次に、作業ＩＤ「４」の動作ＩＤ「８」は、図３０Ｂ及び図３０Ｇ（図３０Ｇは挿入口７５の挿入部分を拡大した図）に示すように、フレキシブル基板７４のコネクタ部７４ｇが挿入口７５に接触した時点の動作を表す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｂ」の状態である。）。
【０２６８】  次に、作業ＩＤ「４」の動作ＩＤ「９」は、図３０Ｃ及び図３０Ｈ（図３０Ｈは挿入口７５の挿入部分を拡大した図）に示すように、挿入口７５の先端部分７５ｈに向かって、フレキシブル基板７４のコネクタ部７４ｇの先端部分７４ｈが接触するまでロボットアーム５が移動している動作を表す。ただし、フレキシブル基板７４のコネクタ部７４ｇは挿入口７５には刺さっていない状態（フレキシブル基板７４のコネクタ部７４ｇの先端部分が挿入口７５内に少しでも入り込んでいない状態）を表す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｃ」の状態である。）。
【０２６９】  次に、作業ＩＤ「４」の動作ＩＤ「１０」は、図３０Ｄ、図３０Ｉ、及び、図３０Ｌ（図３０Ｉ及び図３０Ｌは挿入口７５の挿入部分をそれぞれ拡大した図）の動作に示すように、挿入口７５の先端部分７５ｈとフレキシブル基板７４の先端部分７４ｈが接触している状態の動作を示す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｄ」の状態である。）。
【０２７０】  次に、作業ＩＤ「４」の動作ＩＤ「１１」及び「１２」は、図３０Ｅ、図３０Ｊ、及び、図３０Ｍ（図３０Ｊ及び図３０Ｍは挿入口７５の挿入部分をそれぞれ拡大した図）に示すように、挿入口７５の凹部７５ｉに、フレキシブル基板７４の先端部分７４ｈが刺さって、先端部分７４ｈを凹部７５ｉにさらに差し込むように挿入している最中の動作を示す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｅ」の状態である。）。
【０２７１】  次に、作業ＩＤ「４」の動作ＩＤ「１３」及び「１４」は、図３７Ｆ、図３０Ｋ及び図３０Ｎ（図３０Ｋ及び図３０Ｎは挿入口７５の挿入部分をそれぞれ拡大した図）に示すように、フレキシブル基板７４の挿入口７５への挿入が完了している状態（先端部分７４ｈが凹部７５ｉ内に差し込み完了した状態）を表す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｆ」の状態である。）。
【０２７２】  補正動作種別決定部２３は、第１実施形態と同様に、動作補正部２０にて、人がその手１６でロボットアーム５に力をかけることにより動作の補正を行うことが可能な補正の種別を決定する。以下、４種類の補正の種別がある。
【０２７３】  １つ目の補正の種別は、「位置・姿勢の補正」である。具体的には、機器６のモデルチェンジにより、図３３Ａの挿入口７５の位置又は向きが図３８Ｂの挿入口７５ｊのように変更した場合には、図３３Ｂのように、フレキシブル基板７４が挿入口７５ｊに引っかかって挿入ができない。その場合に、図３３Ｂのように、ロボットアーム５がフレキシブル基板７４の挿入口７５ｊへの挿入作業中に、人の手１６でロボットアーム５の位置又は姿勢の向きを変更するように力をかけると、動作補正部２０によって、図３３Ｃのようにロボットアーム５の位置及び姿勢を変更して、挿入口７５ｊに合わせてロボットアーム５の進行方向を変更することができる。ロボットアーム５の手先の姿勢（ｘ、ｙ、ｚ、φ、θ、ψ）を変更することで実現できる。
【０２７４】  ２つ目の補正の種別は、ロボットアーム５の手先「速度」である。第１実施形態と同様に、図２２Ａのように、フレキシブル基板７４を把持したロボットアーム５で機器６の挿入口７５に向かって移動中に、図２２Ｂのように、ロボットアーム５の進行方向に反する方向に人の手１６でロボットアーム５に力をかけると、動作補正部２０によって、図２２Ｃのように、ロボットアーム５の移動時の速度を減速させることができる。逆に、ロボットアーム５が移動中に、人の手１６がロボットアーム５の進行方向に向かって人の手１６でロボットアーム５に力をかけると、動作補正部２０によって、ロボットアーム５の移動時の速度を加速させることができる。
【０２７５】  ３つ目の補正の種別は、フレキシブル基板７４の挿入時の「力のかけ具合」である。これは、現在動作中（動作データベース１７の進捗情報が「１」）の動作のフラグ（有効性を示すフラグ）において、力のビットが「１」となっている場合に有効である。第１実施形態と同様、図１８Ｂに示すように、ロボットアーム５でフレキシブル基板７４の挿入口７５ｂへの挿入作業中に、図１８Ｃのように、人の手１６でロボットアーム５に上方から下向きに力をかけると、動作補正部２０によって、図１８Ｄのように力のかけ具合を強めに、逆に、人の手１６でロボットアーム５に下方から上向きに力をかけると、力のかけ具合を弱めに補正することができる。
【０２７６】  ４つ目の補正の種別は、「作業をして欲しくない領域」である。第１実施形態と同様に、人１６Ａの手１６で図２３に示すように、ロボットアーム５（例えば、ハンド３０）を把持して、作業をして欲しくない領域ＲＢの輪郭に沿って、ロボットアーム５に力をかけてロボットアーム５（例えば、ハンド３０）を移動させると、動作補正部２０によって、図２３のように、作業をして欲しくない領域ＲＢを設定することができる。
【０２７７】  補正動作種別決定部２３は、前記の４種類の補正の種別のうち、１種類の補正の種別を決定する。具体的には、ボタンなどのデータ入力ＩＦ２６にて４種の補正の種別のうちの１つの補正の種別を選択するか、若しくは、力検出部５３で検出されて情報取得部１００で取得された人の手１６でロボットアーム５にかけた力と補正の種別との関係情報（例えば、力のかかる向きと大きさと補正の種別との関係情報）と、対象物力検出機構７６で検出されて対象物力情報出力部７７を介して情報取得部１００で取得されたフレキシブル基板７４などの対象物にかかる力により、補正動作種別決定部２３で種別を推定する。
【０２７８】  以下、補正の種別の推定方法の具体的な補正種別推定処理について、図３２のフローチャートを使って詳細に説明する。
【０２７９】  組立ロボット１の電源ボタン２６ａを「ＯＮ」にした状態で、人の手１６でロボットアーム５を把持して力をロボットアーム５に加えていない場合は、ロボットアーム５は動かない。人の手１６でロボットアーム５に力を加えている場合は、インピーダンス制御モード（人の手１６の力を検出した方向にインピーダンス制御で移動させるモード）でロボットアーム５を移動させたい方向に移動させることができる。この場合、制御部２２の力検出部５３にて、ロボットアーム５に作用する力を検出し、力検出部５３で検出された力の情報が、情報取得部１００を介して、補正動作種別決定部２３に入力される（ステップＳ１）。
【０２８０】  次いで、ステップＳ２では、力検出部５３で検出しかつ情報取得部１００で取得された力の全ての成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分）が、ある閾値以下であるか否かを補正動作種別決定部２３で判断する。具体的な閾値は、フレキシブル基板７４の剛性により、図１７のようにあらかじめ記憶されており、フレキシブル基板７４のＩＤ（フレキシブル基板ＩＤ）が「１」の場合には、図１７のＩＤ「１」の（ｆｄｘ１、ｆｄｙ１、ｆｄｚ１、ｆｄφ１、ｆｄθ１、ｆｄψ１）とする。力検出部５３で検出しかつ情報取得部１００で取得された力の全ての成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分）が、前記ある閾値以下であると補正動作種別決定部２３で判断した場合は、ロボットアーム５は動かず、補正はせず（ステップＳ３）、補正動作の種別推定方法の補正種別推定処理を終了する。その場合の制御モードは、インピーダンス制御モードである。
【０２８１】  ステップＳ２にて、力検出部５３で検出しかつ情報取得部１００で取得された力のいずれかの成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分のうちのいずれかの成分）が、前記ある閾値（具体的には、フレキシブル基板ＩＤが「１」の場合には、図１７のＩＤ「１」の（ｆｄｘ１、ｆｄｙ１、ｆｄｚ１、ｆｄφ１、ｆｄθ１、ｆｄψ１））を越えると補正動作種別決定部２３で判断した場合は、ステップＳ４に進む。
【０２８２】  ステップＳ４では、さらに、現在の組立ロボット１が動作データベース１７で動作しているかどうか、を情報取得部１００を介して取得した情報を基に補正動作種別決定部２３で判定する。具体的には、動作選択部２９にて作業を選択しておらず、かつ、動作データベース１７の全ての作業ＩＤについて、進捗情報が「０」となっている、と補正動作種別決定部２３で判断する場合（作業を開始していない状態）は、動作データベース１７で動作していないと補正動作種別決定部２３で判定して、ステップＳ６に進む。動作選択部２９にて組立作業を選択して開始しており、かつ、進捗情報が「１」となっていると補正動作種別決定部２３で判断している場合は、動作データベース１７で動作していると補正動作種別決定部２３で判定して、ステップＳ５に進む。
【０２８３】  ステップＳ５では、対象物力検出部７６で、対象物の一例としてのフレキシブル基板７４に加わる力を検出し、対象物力検出部７６で検出された対象物に加わる力の情報が、情報取得部１００を介して補正動作種別決定部２３に入力される。
【０２８４】  ステップＳ９では、対象物力検出部７６で検出されたフレキシブル基板７４に加えられた力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）がある時間（例えば１ｓｅｃ）連続してある「閾値１」（具体的には、フレキシブル基板ＩＤが「１」の場合には、図１７のＩＤ「３」の（ｆｔdoｘ1、ｆｔdoｙ1、ｆｔdoｚ1、ｆｔdoφ1、ｆｔdoθ1、ｆｔdoψ1）、図３１の「閾値１」）以上であるか否か、を補正動作種別決定部２３で判断する。対象物力検出部７６で検出された対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が、前記ある「閾値１」未満であると補正動作種別決定部２３で判断した場合（図３１の「閾値１」未満の場合の（３１ａ）に相当する場合）はステップＳ１１に進む（ただしステップＳ２で判定した力以上であること）。ステップＳ９にて、対象物力検出部７６で検出された対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が前記ある「閾値１」以上である場合（図３１の（３１ｃ）に相当する場合）には、ステップＳ１０に進む。ステップＳ９で、ある時間（例えば１ｓｅｃ）連続してある閾値（「閾値１」）以上であるか否かを判断するのは、一瞬、力が前記閾値以上検出されても、その場合はノイズとし、人が意思を持って力を加えたときは、一瞬ではなく、１秒程度以上、力を加えていると考え、人意思を持って力を加えたときか否かを判断するためである。
【０２８５】  ステップＳ１１では、補正動作種別決定部２３で算出されたロボットアーム５の移動量が、ある閾値（具体的には、フレキシブル基板ＩＤが「１」の場合には、,図１７のＩＤ「２」のｇｘ1、ｇｙ1、ｇｚ1、ｇφ1、ｇθ1、ｇψ1）以上であると補正動作種別決定部２３で判断する場合は、補正の種別として「位置・姿勢の補正」の種別を補正動作種別決定部２３で決定して、補正種別推定処理を終了する（ステップＳ１４）。なお、ロボットアーム５の移動量を補正動作種別決定部２３で算出するとき、具体的には、制御部２２から制御パラメータ管理部２１又は情報取得部１００を介して人の操作前のロボットアーム５の手先位置と操作中の手先位置を補正動作種別決定部２３に入力し、操作中の手先位置から操作前の手先位置を減じた値を移動量として補正動作種別決定部２３で算出することができる。
【０２８６】  ステップＳ１１にて、ロボットアーム５の移動量が前記ある閾値未満であると補正動作種別決定部２３で判定された場合は、補正の種別として、「速度」の種別を決定して、補正種別推定処理を終了する（ステップＳ１５）。
【０２８７】  ステップＳ１０では、対象物力検出部７６でフレキシブル基板７４に加えられた力を検出し、対象物力検出部７６で検出され、かつ対象物力情報出力部７７を介して情報取得部１００で取得されたた対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が、ある時間（例えば１ｓｅｃ）連続して、ある「閾値２」（具体的には、フレキシブル基板ＩＤが「１」の場合には、図１７のＩＤ「４」の（ｆｔdoｘ21、ｆｔdoｙ21、ｆｔdoｚ21、ｆｔdoφ21、ｆｔdoθ21、ｆｔdoψ21）、図３１の「閾値２」）以上であるか否かを補正動作種別決定部２３で判断する。対象物力検出部７６で検出された対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が、前記ある「閾値２」未満であると補正動作種別決定部２３で判断した場合（図３１の閾値２未満の場合の（３１ｃ）に相当の場合）は、ステップＳ１６に進む。対象物力検出部７６で検出された対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が前記ある「閾値２」以上であると補正動作種別決定部２３で判断した場合（図３１の（３１ｄ）に相当の場合）は、補正の種別として「力の補正」の種別であると決定し、補正種別推定処理を終了する（ステップＳ１２）。ステップＳ１０で、ある時間（例えば１ｓｅｃ）連続してある閾値（「閾値２」）以上であるか否かを判断するのは、一瞬、力が前記閾値以上検出されても、その場合はノイズとし、人が意思を持って力を加えたときは、一瞬ではなく、１秒程度以上、力を加えていると考え、人意思を持って力を加えたときか否かを判断するためである。
【０２８８】  ステップＳ１６では、補正動作種別決定部２３で算出されたロボットアーム５の手先の位置の移動量が、ある閾値（具体的には、フレキシブル基板ＩＤが「１」の場合には、図１７のＩＤ「２」のｇｘ1、ｇｙ1、ｇｚ1、ｇφ1、ｇθ1、ｇψ1）以上であると補正動作種別決定部２３で判断する場合は、補正の種別として「位置・姿勢の補正」の種別を補正動作種別決定部２３で決定して、補正種別推定処理を終了する（ステップＳ１８）。
【０２８９】  ステップＳ１６にて、ロボットアーム５の移動量が前記ある閾値未満であると補正動作種別決定部２３で判定された場合は、補正の種別として、「力の補正」の種別を決定して、補正種別推定処理を終了する（ステップＳ１７）。
【０２９０】  また、ステップＳ４において、動作データベース１７で動作していないと補正動作種別決定部２３で判定された場合には、ステップＳ６に進み、ステップＳ６にて、ある一定時間のロボットアーム５の移動量が、ある閾値以上であるか否かを補正動作種別決定部２３で判断する。
【０２９１】  ステップＳ６において、ある一定時間のロボットアーム５の移動量が、前記ある閾値以上であると補正動作種別決定部２３で判断する場合には、補正の種別として「作業をして欲しくない領域」の種別であると決定し（ステップＳ８）、補正種別推定処理を終了する。
【０２９２】  ステップＳ６において、ある一定時間のロボットアーム５の移動量が前記ある閾値未満であると補正動作種別決定部２３で判断する場合は、補正の種別として「補正なし」と決定し、補正種別推定処理を終了する（ステップＳ７）。
【０２９３】以上により、ボタンなどのデータ入力ＩＦ２６を使わずに、補正動作種別決定部２３により、補正の種別を切り替えることができる。
【０２９４】  動作補正部２０は、第１実施形態と同様に動作データベース１７の位置と姿勢と時間とに基づいて動作中に、人の手１６でロボットアーム５に力をかけることで、動作データベース１７の動作情報を補正する機能である。
【０２９５】  以下、動作補正部２０の機能について説明する。
【０２９６】  人の手１６で、組立ロボット１の作業台７に配置されているデータ入力ＩＦ２６（例えば操作盤２６Ａの電源ボタン２６ａなど）により電源を入れると、動作補正部２０は、インピーダンス制御モードで動作するよう、制御パラメータ管理部２１へ指令を出す。
【０２９７】  次に、人の手１６で、動作選択部２９により、動作データベース１７の作業の一覧の中から所望の組立作業を選択して、組立動作開始の指示を行う。動作補正部２０は、動作データベース１７の中から選択された作業ＩＤの動作情報（具体的には、レール可動部８ｂの位置及びロボットアーム５の位置と姿勢と時間と）に基づきレール可動部８ｂ及びロボットアーム５の制御モードを設定する。この例では、図２９の作業ＩＤ「４」が選択されたので、動作データベース１７の動作ＩＤ「１」に対するフラグ（有効性を示すフラグ）のうち、フラグのビットが「１」になっているロボットアーム５の位置及び姿勢のそれぞれに対して、ハイブリッドインピーダンス制御モード（位置制御モードで動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード）が動作補正部２０で設定され、制御パラメータ管理部２１へ指令を出す。動作補正部２０から制御パラメータ管理部２１へ指令を出すと、図３０Ａに示すように、挿入口７５に向かって、フレキシブル基板７５をハンド３０で把持したロボットアーム５が移動する。動作ＩＤ「１」から順次次の動作情報により、制御パラメータ管理部２１へ指令を出す。動作ＩＤ「９」〜「１２」は力ハイブリッドインピーダンス制御モードで動作するように、制御パラメータ管理部２１へ指令を出す。
【０２９８】  力ハイブリッドインピーダンス制御モードの場合は、動作データベース１７の動作ＩＤに対するフラグ（有効性を示すフラグ）のうち、フラグのビットが「１」になっているロボットアーム５の位置及び姿勢のそれぞれに対して、ハイブリッドインピーダンス制御モード（位置制御モードで動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード）が動作補正部２０で設定され、力のフラグ（有効性を示すフラグ）のビットが「１」になっている成分は力制御モードが動作補正部２０で設定される。位置及び姿勢の６成分のうち、ハイブリッドインピーダンス制御モードも力制御モードもいずれも設定されていない成分は、インピーダンス制御モードが動作補正部２０で設定される。
【０２９９】  例えば、図２９の作業ＩＤ「４」の動作ＩＤ「９」の場合は、図３３Ａ、図３０Ｃ、図３０Ｈ（図３０Ｈは挿入部分を拡大した図）に示すように、挿入口７５の先端部分７５ｈに向かって、フレキシブル基板７４の先端部分７４ｈが接触するまで移動している動作を示しており、動作ＩＤが「９」の場合のフラグは０，１，３，４，５，８ビット目のみ「１」であるので、ｘ軸及びｙ軸及び姿勢成分に対しては、ハイブリッドインピーダンス制御モードが動作補正部２０で設定されるとともに、ｚ軸成分に対しては力制御モードが動作補正部２０で設定される。
【０３００】  次に、作業ＩＤ「４」の動作ＩＤ「１０」〜「１２」では、動作ＩＤ「９」と同様の動作モードで動作する。
【０３０１】  次に、作業ＩＤ「４」の動作ＩＤ「１３」「１４」では、動作ＩＤ［１］と同様の動作モードで動作する。
【０３０２】  次に、モデルチェンジなどにより、フレキシブル基板７４又は挿入口７５の仕様変更に伴って、人が状況などを確認して、図３３Ｂに示すように、ロボットアーム５の位置又はロボットアーム５の姿勢を移動させて作業させたい場合を例にとって説明する。
【０３０３】  図３３Ａに示すように、作業ＩＤ「４」の動作ＩＤ「１」〜「８」で動作中に、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して移動するようにロボットアーム５に力をかける。
【０３０４】  補正動作種別決定部２３により、情報取得部１００で取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７に記憶された情報とにより、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、フレキシブル基板７４が接触していない状態で（対象物力検出部７６で検出された力が閾値以下である状態で）、人の手１６で、ロボットアーム５に力をかけて、ロボットアーム５を前記ある閾値以上移動させているので、ステップＳ１４において、補正の種別として「位置・姿勢の補正」の種別であると補正動作種別決定部２３で決定する。
【０３０５】  図２９の作業ＩＤが「４」の場合で動作ＩＤが「１」に示す作業の場合は、位置姿勢の全成分でハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより人の手１６でロボットアーム５にかけられた力を力検出部５３で検出して情報取得部１００で取得された、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５を移動させて、図３３Ｃのように位置及び姿勢を補正することができる。
【０３０６】  上述のように、人の手１６でロボットアーム５を把持して、力をかけてロボットアーム５を（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）分だけ移動させた場合に、（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）の値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。
【０３０７】  動作補正部２０では、選択された作業ＩＤの動作情報の全ての位置及び姿勢成分について、（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）を減じて補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）分を補正した座標でロボットアーム５が動作するように制御部２２へ指示する。これにより、図３３Ｂのような動作に補正される。次に、（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）分だけ減じた動作情報を、動作記憶部１５で動作データベース１７に記憶する。
【０３０８】  以上により、動作補正部２０は、動作データベース１７の位置と姿勢と時間とにより、ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６でロボットアーム５に力をかけることで、生成された位置を方向別に補正することができるようになる。
【０３０９】  図３４Ａ、図３４Ｄ(図３４Ｄは図３４Ａの挿入口７５の挿入部分を拡大した図)に示すように、動作ＩＤ「９」で動作中に、斜めに挿入してしまった場合に、図３４Ｂに示すように、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して移動するようにロボットアーム５に力をかける。
【０３１０】  補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７に記憶された情報とにより、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、フレキシブル基板７４に前記「閾値２」以上の力が加わっている状態で（ステップＳ１０）、人の手１６で、ロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させているので（ステップＳ１６）、ステップＳ１７において、補正の種別として「位置・姿勢の補正」の種別であると補正動作種別決定部２３で決定する。
【０３１１】  図２９の作業ＩＤが「４」の場合で動作ＩＤが「９」に示す作業の場合は、位置姿勢のｚ軸成分以外でハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより人の手１６でロボットアーム５にかけられた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５を移動させて、図３４Ｃのように位置・姿勢を補正することができる。
【０３１２】  次に、図２２Ｂのように、速度を変更する場合は、人の手１６でロボットアーム５を直接把持して、加速したい場合は、ロボットアーム５の進行方向と同じ向きに人の手１６でロボットアーム５に力をかけ、減速したい場合は、ロボットアーム５の進行方向に逆らう向きに人の手１６でロボットアーム５に力をかける。その際に、ロボットアーム５の手先位置の速度を変えても良いが、位置はある閾値以上動かさないように人の手１６でロボットアーム５に力をかける。
【０３１３】  補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６でロボットアーム５にかけた力と動作データベース１７の情報と、対象物にかかる力とにより、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６で力をロボットアーム５にかけて、ロボットアーム５をある閾値以上移動させていないので、図３２のステップＳ１５により、補正の種別として、「速度」の種別であると補正動作種別決定部２３で決定する。
【０３１４】  ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５を移動させる。動作データベース１７で例えば作業ＩＤと動作ＩＤとで示されたロボットアーム５の位置（ｘ１、ｙ２、ｚ１）から、次の動作ＩＤのロボットアーム５の位置（ｘ２、ｙ２、ｚ２）まで移動するのにかかる時間をｔ１とすると、ロボットアーム５の速度を人の手１６の力で変更した場合（図２２Ｂ参照）には、すなわち、位置（ｘ１、ｙ２、ｚ１）から位置（ｘ２、ｙ２、ｚ２）までに移動するのにかかる時間がｔ１からｔ２に変更された場合には、時間ｔ２の値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０では、選択された作業ＩＤの動作情報について、ｔ１の時間からｔ２の時間に変更して、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１において、補正した時間であるｔ２で動作するように制御パラメータ管理部２１から制御部２２へ指示する。これにより、図２２Ｃのような動作に補正される。次に、時間ｔ２を、動作記憶部１５で動作データベース１７に記憶する。
【０３１５】  以上により、動作補正部２０は、動作データベース１７の位置と姿勢と時間との情報により、ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６でロボットアーム５に力をかけることで、ロボットアーム５の動作速度を補正することができるようになる。
【０３１６】  次に、図３５Ｂのように、作業時の作業面（例えば、機器６の挿入口７５の挿入面）に対する力を変更する場合は、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して垂直方向に力をロボットアーム５にかける場合について説明する。この動作は、図３５Ａ〜図３５Ｆ（図３５Ｄ〜図３５Ｆは挿入口７５の付近を拡大した図）に示すが、先の、ロボットアーム５により、フレキシブル基板７４を挿入口７５に挿入する挿入作業を表す図３０Ａ〜図３０Ｆ（図３０Ｇ〜図３０Ｎは挿入口７５の付近を拡大した図）と同様な動作については、説明を省略する。
【０３１７】  補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報と、対象物にかかる力とにより、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、フレキシブル基板７４が挿入口７５に接触しており、かつその力が前記「閾値２」以下であり、人の手１６で力をロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させていないので、ステップＳ１８において、補正の種別として「力の補正」の種別であると補正動作種別決定部２３で決定する。
【０３１８】  補正動作種別決定部２３で補正の種別が「力の補正」であると決定したタイミングで、力ハイブリッドインピーダンス制御モードから高剛性位置制御モードで動作するよう補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。補正動作種別決定部２３から制御パラメータ管理部２１への指令時に、高剛性位置制御モードでは、方向別に位置制御時の高剛性を補正動作種別決定部２３で設定することができるため、例えば図４の動作データベース１７の作業ＩＤ「４」でかつ動作ＩＤ「９」の動作のフラグは、０、１、３，４，５、８ビットが「１」に設定されているので、ｚ軸方向は力制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するため、ｚ軸方向のみ高剛性位置制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。
【０３１９】  次に、図３５Ｂに示すように、ロボットアーム５がフレキシブル基板７４の挿入作業の動作をしている最中に、人の手１６でロボットアーム５を直接把持して、挿入する力を強め（より強い力）に変更をしたい場合には、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に向かってロボットアーム５に下方向に力をかける。高剛性位置制御モードでは、ハイブリッドインピーダンス制御モードのうち、方向別設定された位置制御モードを、さらに高剛性にしたモードで、かつ、位置誤差補償部５６でのゲインを大きく（具体的には、通常の位置制御モードの２倍程度に）することで実現し、人の手１６でロボットアーム５に力をかけると、ロボットアーム５を容易に移動させることができず、人の手１６でロボットアーム５にかけた力を力検出部５３で検出することができる。制御部２２の力検出部５３で検出された力を動作補正部２０に通知する。動作補正部２０に通知された力を、動作記憶部１５で動作データベース１７に記憶することで、強めに（より強い力で）挿入するよう動作を補正することができる。人が補正を終了したい場合は、ロボットアーム５を把持して力をロボットアーム５にかけることを止める。人の手１６でロボットアーム５に力をかけない場合は、図３２のステップＳ２により、力の全ての成分が閾値以下になるので、補正動作種別決定部２３により、補正の種別として「補正なし」であると決定する（図３２のステップＳ３）。動作補正部２０は、「補正なし」の情報を受けて、高剛性の位置制御モードからハイブリッドインピーダンス制御モードで制御するよう、補正動作種別決定部２３から制御パラメータ管理部２１に指令を出す。これにより、補正後の動作データベース１７で作業を行う。
【０３２０】  以上により、動作補正部２０は、動作データベース１７の力の情報により、ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６が力をかけることで、補正された力で挿入作業するように補正することができるようになる。
【０３２１】  なお、この例で力の補正値を取得するために、力制御モードから高剛性位置制御モードに変更したが、第１実施形態とは異なり、人の加える力を検出する力検出部５３と、対象物に加える力を検出する対象物力検出部７６とを分けて配置しているため、制御モードは力制御モードで変更せずに、力検出部５３で人が加えた力を検出することができる。さらに、位置制御モードに変更する場合には剛性を変更しなくても、通常の位置制御モードでも力検出部５３で検出することができる。
【０３２２】  次に、図３６Ｂのように、作業ＩＤ「４」動作ＩＤ「１１」若しくは「１２」で動作中に、作業時の作業面（例えば、機器６の挿入口７５の挿入面）に対する力を変更する場合は、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して垂直方向に力をロボットアーム５にかける場合について説明する。この動作は、図３６Ａ〜図３６Ｉ（図３６Ｄ〜図３６Ｆは挿入口７５の付近を拡大した図、図３６Ｇ〜図３６Ｉは図３６Ｄ〜図３６Ｆの円部分の拡大図）に示すが、先の、ロボットアーム５により、フレキシブル基板７４を挿入口７５に挿入する挿入作業を表す図３０Ａ〜図３０Ｆ（図３０Ｇ〜図３０Ｎは挿入口７５の付近を拡大した図）と同様な動作については、説明を省略する。
【０３２３】  補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報と、対象物の一例であるフレキシブル基板７４にかかる力により、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、フレキシブル基板７４が挿入口７５に接触しており、かつその力が前記「閾値２」以上であり、人の手１６で力をロボットアーム５にかけているので、ステップＳ１２において、補正の種別として「力の補正」の種別であると補正動作種別決定部２３で決定する。ここではロボットアームの移動量に関係なく、「力の補正」のみしか選択できないため、図３６Ｅのようにフレキシブル基板７４の先端部分７４ｈが差し込まれている最中にロボットアームを移動させてフレキシブル基板７４の先端部分７４ｈを傷めることを防ぐことができる。
【０３２４】  補正動作種別決定部２３で補正の種別が「力の補正」であると決定したタイミングで、力ハイブリッドインピーダンス制御モードから高剛性位置制御モードで動作するよう補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。補正動作種別決定部２３から制御パラメータ管理部２１への指令時に、高剛性位置制御モードでは、方向別に位置制御時の高剛性を補正動作種別決定部２３で設定することができるため、例えば図４の動作データベース１７の作業ＩＤ「４」でかつ動作ＩＤ「９」の動作のフラグは、０、１、３，４，５、８ビットが「１」に設定されているので、ｚ軸方向は力制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するため、ｚ軸方向のみ高剛性位置制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。
【０３２５】  次に、図３５Ｂに示すように、ロボットアーム５がフレキシブル基板７４の挿入作業の動作をしている最中に、人の手１６でロボットアーム５を直接把持して、挿入する力を強め（より強い力）に変更をしたい場合には、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に向かってロボットアーム５に下方向に力をかける。高剛性位置制御モードでは、ハイブリッドインピーダンス制御モードのうち、方向別設定された位置制御モードを、さらに高剛性にしたモードで、かつ、位置誤差補償部５６でのゲインを大きく（具体的には、通常の位置制御モードの２倍程度に）することで実現し、人の手１６でロボットアーム５に力をかけると、ロボットアーム５を容易に移動させることができず、人の手１６でロボットアーム５にかけた力を力検出部５３で検出することができる。制御部２２の力検出部５３で検出された力を動作補正部２０に通知する。動作補正部２０に通知された力を、動作記憶部１５で動作データベース１７に記憶することで、強めに（より強い力で）挿入するよう動作を補正することができる。人が補正を終了したい場合は、ロボットアーム５を把持して力をロボットアーム５にかけることを止める。人の手１６でロボットアーム５に力をかけない場合は、図３２のステップＳ２により、力の全ての成分が閾値以下になるので、補正動作種別決定部２３により、補正の種別として「補正なし」であると決定する（図３２のステップＳ３）。動作補正部２０は、「補正なし」の情報を受けて、高剛性の位置制御モードからハイブリッドインピーダンス制御モードで制御するよう、補正動作種別決定部２３から制御パラメータ管理部２１に指令を出す。これにより、補正後の動作データベース１７で作業を行う。
【０３２６】  以上により、動作補正部２０は、動作データベース１７の力の情報により、ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６が力をかけることで、補正された力で挿入作業するように補正することができるようになる。
【０３２７】  なお、この例で力の補正値を取得するために、力制御モードから高剛性位置制御モードに変更したが、第１実施形態とは異なり、人の加える力を検出する力検出部５３と、対象物に加える力を検出する対象物力検出部７６とを分けて配置しているため、制御モードは力制御モードで変更せずに、力検出部５３で人が加えた力を検出することができる。さらに、位置制御モードに変更する場合には剛性を変更しなくても、通常の位置制御モードでも力検出部５３で検出することができる。
【０３２８】  図２３に示すように、組立ロボット１に作業をして欲しくない領域ＲＢを、ロボットアーム５を使って設定する場合を例にとって説明する。
【０３２９】  人の手１６で組立ロボット１の上部に配置されているデータ入力ＩＦ２６（例えば操作盤２６Ａの電源ボタン２６ａなど）により電源を入れると、動作補正部２０は、インピーダンス制御モードで動作するよう、制御パラメータ管理部２１へ指令を出す。動作選択部２９にて作業を選択していない状態で、図２３に示すように、人１６Ａの手１６がロボットアーム５（例えばハンド３０など）を直接把持して、作業面（例えば、機器６が載置されている作業台７の上面）に対して平行な方向に移動するようにロボットアーム５を移動させて、作業をして欲しくない領域ＲＢの輪郭に沿って、ロボットアーム５（例えばハンド３０）を移動させる。図２５Ａは作業面（例えば、機器６が載置されている作業台７の上面）を上方から見た図で、作業をして欲しくない領域ＲＢを斜線の領域とすると、人の手１６がロボットアーム５を移動させて、矢印のように、作業をして欲しくない領域ＲＢの輪郭にロボットアーム５（例えばハンド３０）を沿わせて、移動させる。その際、ロボットアーム５の手先（ハンド３０）の中央先端にマーク６３が付与されており（図２５Ａ及び図２５Ｂ参照）、作業をして欲しくない方向にマーク６３を向けて移動させる。
【０３３０】  補正動作種別決定部２３により、図３２に示した補正種別推定処理を実行して動作データベース１７で動作していないと判定し（ステップＳ４）、さらに、ある一定時間の移動量が、前記ある閾値以上の場合は、ステップＳ８において、補正の種別として「作業をして欲しくない領域」の種別であると決定する。
【０３３１】  インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５を移動させて、図２５Ａのように、位置（ｘ１、ｙ１）、位置（ｘ２、ｙ２）、位置（ｘ３、ｙ３）、位置（ｘ４、ｙ４）の順にロボットアーム５を移動させる。このとき、これらの位置情報が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０は、その指令を受けて、これらの位置情報が作業不可領域ＲＢの情報として、動作記憶部１５により作業不可領域データベース２８に記憶する。これらの４つの位置が作業不可領域ＲＢの頂点の情報であることは、例えば、ある一定間隔で人が移動させたロボットアーム５の手先位置を取得して、取得した手先位置の座標をつなげて領域を生成し、それを作業不可領域ＲＢとすることができる。さらに、どのような形の領域とするかを決定する機能を追加し、例えば、「矩形」と設定されている場合は、９０度近くの角度で移動方向が変われば、その位置を頂点の情報として記憶し、「ランダム」と設定された場合は、ある一定間隔で人が移動させたロボットアーム５の手先位置を取得して、取得した手先位置の座標をつなげて生成し、それを作業不可領域ＲＢとすることができる。
【０３３２】  以上により、動作補正部２０は、人の手１６が力をかけることで、作業をして欲しくない領域の設定を行うことができるようになる。
【０３３３】  さらに、前記様々な実施形態及び変形例のうちの任意の実施形態又は任意の変形例を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【０３３４】  本発明は、例えば工場内で組立を行うロボットなど人とロボットが協調して作業を行う際の組立ロボットのロボットアームの動作の制御を行う、ロボットアームの制御装置及び制御方法、組立ロボット、組立ロボット用ロボットアームの制御プログラム、及び、組立ロボット用ロボットアームの制御用集積電子回路として有用である。【０３３５】  本発明は、添付図面を参照しながら好ましい実施形態に関連して充分に記載されているが、この技術の熟練した人々にとっては種々の変形又は修正は明白である。そのような変形又は修正は、添付した請求の範囲による本発明の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。
【図１】
2011021375.tif 000013
【図２Ａ】
2011021375.tif 000014
【図２Ｂ】
2011021375.tif 000015
【図３】
2011021375.tif 000016
【図４】
2011021375.tif 000017
【図５】
2011021375.tif 000018
【図６】
2011021375.tif 000019
【図７】
2011021375.tif 000020
【図８】
2011021375.tif 000021
【図９】
2011021375.tif 000022
【図１０】
2011021375.tif 000023
【図１１】
2011021375.tif 000024
【図１２Ａ】
2011021375.tif 000025
【図１２Ｂ】
2011021375.tif 000026
【図１２Ｃ】
2011021375.tif 000027
【図１３】
2011021375.tif 000028
【図１４】
2011021375.tif 000029
【図１５】
2011021375.tif 000030
【図１６】
2011021375.tif 000031
【図１７】
2011021375.tif 000032
【図１８Ａ】
2011021375.tif 000033
【図１８Ｂ】
2011021375.tif 000034
【図１８Ｃ】
2011021375.tif 000035
【図１８Ｄ】
2011021375.tif 000036
【図１９Ａ】
2011021375.tif 000037
【図１９Ｂ】
2011021375.tif 000038
【図１９Ｃ】
2011021375.tif 000039
【図１９Ｄ】
2011021375.tif 000040
【図２０Ａ】
2011021375.tif 000041
【図２０Ｂ】
2011021375.tif 000042
【図２０Ｃ】
2011021375.tif 000043
【図２０Ｄ】
2011021375.tif 000044
【図２０Ｅ】
2011021375.tif 000045
【図２１Ａ】
2011021375.tif 000046
【図２１Ｂ】
2011021375.tif 000047
【図２２Ａ】
2011021375.tif 000048
【図２２Ｂ】
2011021375.tif 000049
【図２２Ｃ】
2011021375.tif 000050
【図２３】
2011021375.tif 000051
【図２４Ａ】
2011021375.tif 000052
【図２４Ｂ】
2011021375.tif 000053
【図２４Ｃ】
2011021375.tif 000054
【図２５Ａ】
2011021375.tif 000055
【図２５Ｂ】
2011021375.tif 000056
【図２６】
2011021375.tif 000057
【図２７】
2011021375.tif 000058
【図２８Ａ】
2011021375.tif 000059
【図２８Ｂ】
2011021375.tif 000060
【図２８Ｃ】
2011021375.tif 000061
【図２９】
2011021375.tif 000062
【図３０Ａ】
2011021375.tif 000063
【図３０Ｂ】
2011021375.tif 000064
【図３０Ｃ】
2011021375.tif 000065
【図３０Ｄ】
2011021375.tif 000066
【図３０Ｅ】
2011021375.tif 000067
【図３０Ｆ】
2011021375.tif 000068
【図３０Ｇ】
2011021375.tif 000069
【図３０Ｈ】
2011021375.tif 000070
【図３０Ｉ】
2011021375.tif 000071
【図３０Ｊ】
2011021375.tif 000072
【図３０Ｋ】
2011021375.tif 000073
【図３０Ｌ】
2011021375.tif 000074
【図３０Ｍ】
2011021375.tif 000075
【図３０Ｎ】
2011021375.tif 000076
【図３１】
2011021375.tif 000077
【図３２】
2011021375.tif 000078
【図３３Ａ】
2011021375.tif 000079
【図３３Ｂ】
2011021375.tif 000080
【図３３Ｃ】
2011021375.tif 000081
【図３４Ａ】
2011021375.tif 000082
【図３４Ｂ】
2011021375.tif 000083
【図３４Ｃ】
2011021375.tif 000084
【図３４Ｄ】
2011021375.tif 000085
【図３４Ｅ】
2011021375.tif 000086
【図３４Ｆ】
2011021375.tif 000087
【図３５Ａ】
2011021375.tif 000088
【図３５Ｂ】
2011021375.tif 000089
【図３５Ｃ】
2011021375.tif 000090
【図３５Ｄ】
2011021375.tif 000091
【図３５Ｅ】
2011021375.tif 000092
【図３５Ｆ】
2011021375.tif 000093
【図３６Ａ】
2011021375.tif 000094
【図３６Ｂ】
2011021375.tif 000095
【図３６Ｃ】
2011021375.tif 000096
【図３６Ｄ】
2011021375.tif 000097
【図３６Ｅ】
2011021375.tif 000098
【図３６Ｆ】
2011021375.tif 000099
【図３６Ｇ】
2011021375.tif 000100
【図３６Ｈ】
2011021375.tif 000101
【図３６Ｉ】
2011021375.tif 000102
【手続補正書】
【提出日】平成23年1月6日(2011.1.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば工場内で組立を行うロボットの組立方法を生成、教示するためのロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有する組立ロボット、ロボットアームのプログラム、ロボットアームの制御用集積電子回路に関する。
【背景技術】
【０００２】
近年、工場内ではセル生産が盛んに行われるようになってきた。セル生産では、ネジ締め作業又は部品の勘合作業、装着作業、フレキシブル基板などの挿入作業、研磨作業などのように多種多様な作業を人手中心で行っている。
【０００３】
さらに、携帯電話などの電気製品はモデル数が増大し、加えて、各々の機種において、モデルチェンジが頻繁に起こるため、扱う部品の仕様変更又は作業手順の変更が頻繁に発生する。
【０００４】
これらの作業をロボットにより自動化するためには、多種多様な部品又は作業手順に柔軟に対応する必要がある。
【０００５】
そのためには、部品変更又は作業手順の変更を簡単、短時間に教示ができる必要がある。
【０００６】
ロボット装置の教示方法の一例として、ロボットの手首などに力センサを装着し、力センサの先に装着されたハンドルを教示者が直接把持してロボットを教示点に誘導し、ロボットの位置の教示を行っている（特許文献１を参照）。
【０００７】
さらに、ロボットを直接把持してロボットを教示する際に、教示作業者の意図を理解して教示作業中に力制御の操作感を自動的に変更することを行っている（特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開昭５９−１５７７１５号公報
【特許文献２】特開２００８−１１０４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１においては、全ての教示点を教示者が教示する必要があるため、教示に時間がかかり、非常に面倒であった。さらに、産業用分野にて、教示した動きの一部を修正する場合に、ティーチングペンダントと呼ばれる遠隔装置により、プログラミングにより修正するか、若しくは、全ての動作を一から教示しなければならず、効率が悪かった。
【００１０】
さらに、特許文献２においては、人の直接教示時に、教示作業者の意図を理解し、作業中の操作感を自動的に変更しているが、教示作業者が位置、力、速度などの複数種類の教示パラメータのうち、どのパラメータを操作しようとしているかなどの操作感以外の操作意図の理解は行っていない。そのため、作業教示者がどのパラメータを教示するかを明示的に設定する必要がある。さらに、教示した動きの一部を修正することができず、作業効率が悪かった。
【００１１】
本発明の目的は、このような課題に鑑みてなされたものであり、作業者が簡単で短時間にロボットの教示を行うことが可能な、ロボットアームの制御装置及び制御方法、組立ロボット、ロボットアームの制御プログラム、及び、ロボットアームの制御用集積電子回路を提供することにある。
【課題を解決するための手段】
【００１２】
前記目的を達成するために、本発明は以下のように構成する。
【００１３】
本発明の第１態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御装置であって、
前記ロボットアームに作用する人の力を検出する力検出手段と、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出された前記人の力とをそれぞれ取得する情報取得部と、
前記ロボットアームが前記組立対象物に加える力を検出する対象物力検出手段と、
前記情報取得部でそれぞれ取得した前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とから前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とするロボットアームの制御装置を提供する。
【００１４】
本発明の第１１態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、
前記ロボットアームに作用する人の力を力検出手段で検出し、
前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正することを特徴とするロボットアームの制御方法を提供する。
【００１５】
本発明の第１２態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第１〜９のいずれか１つの態様に記載のロボットアームの制御装置とを備えることを特徴とする組立ロボットを提供する。
【００１６】
本発明の第１３態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定するステップと、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させための組立ロボット用ロボットアームの制御プログラムを提供する。
【００１７】
本発明の第１４態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とする組立ロボット用ロボットアームの制御用集積電子回路を提供する。
【発明の効果】
【００１８】
以上述べたように、本発明のロボットアームの制御装置によれば、補正動作種別決定手段と、力検出手段と、対象物力検出手段と、動作補正手段と、制御手段とを有することにより、前記ロボットアームが加える力及び対象物に加わる力及び前記ロボットアームの位置及び速度を含む組立動作に関する情報を利用して、人の力に応じて、組立動作を簡単に補正することができるロボットアームの制御が可能となる。
【００１９】
また、本発明のロボットアームの制御方法、ロボットアームの制御プログラム、及び、ロボットアームの制御用集積電子回路によれば、補正動作種別決定手段と、動作補正手段と、制御手段とを有することにより、前記ロボットアームが加える力及び対象物に加わる力及び前記ロボットアームの位置及び速度を含む組立動作に関する情報を利用して、力検出手段で検出された人の力に応じて、組立動作を簡単に補正することができるロボットアームの制御が可能となる。
【００２０】
さらに、補正動作種別決定手段を有することにより、複数の動作をボタンなどを使わずに自動で切り替えて補正することが可能となる。
さらに、補正動作種別決定手段を有することにより、操作する人のスキルなどに応じて、一度に複数種別の補正を行うか、１種類の補正を行うかを切り替えることができる。
【００２１】
また、制御パラメータ管理手段と制御部をさらに有することにより、補正動作の種別に応じて、ロボットアームの機械インピーダンス値を設定することで、ロボットアームの補正方向に応じて、機械インピーダンス値を変更させて制御したり、補正中の作業面に対する力を弱めたり停止することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の第１実施形態における組立ロボットを構成するロボットアームの制御装置の構成の概要を示す図であり、
【図２Ａ】図２Ａは、本発明の前記第１実施形態における前記ロボットアームの制御装置においてロボットアームの操作状態を示す図であり、
【図２Ｂ】図２Ｂは、本発明の前記第１実施形態における前記ロボットアームの制御装置においてロボットアームの操作状態を示す図であり、
【図３】図３は、本発明の前記第１実施形態における前記ロボットアームの制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図４】図４は、本発明の前記第１実施形態の前記ロボットアームの制御装置における動作データベースの動作情報の一覧表を説明する図であり、
【図５】図５は、本発明の前記第１実施形態の前記ロボットアームの制御装置における動作データベースのフラグに関する情報を説明する図であり、
【図６】図６は、本発明の前記第１実施形態の前記ロボットアームの制御装置における補正パラメータのフラグに関する情報を説明する図であり、
【図７】図７は、本発明の前記第１実施形態における前記ロボットアームの制御装置の制御部の構成を示すブロック図であり、
【図８】図８は、本発明の前記第１実施形態における前記ロボットアームの制御装置の経路に関する図であり、
【図９】図９は、本発明の前記第１実施形態における周辺装置の表示部を説明する図であり、
【図１０】図１０は、本発明の前記第１実施形態の前記ロボットアームの制御装置における作業不可領域データベース情報の一覧表を説明する図であり、
【図１１】図１１は、本発明の前記第１実施形態における前記ロボットアーム制御装置の経路に関する図であり、
【図１２Ａ】図１２Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置における座標系に関する図であり、
【図１２Ｂ】図１２Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置における座標系に関する図であり、
【図１２Ｃ】図１２Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置における座標系に関する図であり、
【図１３】図１３は、本発明の前記第１実施形態の前記ロボットアーム制御装置における動作補正部と補正動作種別決定部と動作選択部と動作記憶部と動作データベースと制御パラメータ管理部の動作ステップを表すフローチャートであり、
【図１４】図１４は、本発明の前記第１実施形態の前記ロボットアーム制御装置における補正動作種別決定部の動作ステップを表すフローチャートであり、
【図１５】図１５は、本発明の前記第１実施形態の前記ロボットアーム制御装置において人のかける力とその時刻の関係を示す図であり、
【図１６】図１６は、本発明の前記第１実施形態の前記ロボットアーム制御装置における制御部の動作ステップを表すフローチャートであり、
【図１７】図１７は、本発明の前記第１実施形態の前記ロボットアーム制御装置における力と位置の閾値を説明する図であり、
【図１８Ａ】図１８Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１８Ｂ】図１８Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１８Ｃ】図１８Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１８Ｄ】図１８Ｄは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１９Ａ】図１９Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１９Ｂ】図１９Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１９Ｃ】図１９Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図１９Ｄ】図１９Ｄは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２０Ａ】図２０Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２０Ｂ】図２０Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２０Ｃ】図２０Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図２０Ａを上から見た図）であり、
【図２０Ｄ】図２０Ｄは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２０Ｅ】図２０Ｅは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２１Ａ】図２１Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図２１Ｂ】図２１Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図２２Ａ】図２２Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２２Ｂ】図２２Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２２Ｃ】図２２Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２３】図２３は、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２４Ａ】図２４Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２４Ｂ】図２４Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２４Ｃ】図２４Ｃは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２５Ａ】図２５Ａは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２５Ｂ】図２５Ｂは、本発明の前記第１実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を説明するときのハンドの拡大図であり、
【図２６】図２６は、本発明の前記第１実施形態の前記ロボットアーム制御装置における周辺装置のデータ入力ＩＦを説明する図であり、
【図２７】図２７は、本発明の第２実施形態の前記ロボットアーム制御装置における組立ロボットを構成する制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図２８Ａ】図２８Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２８Ｂ】図２８Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２８Ｃ】図２８Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図２９】図２９は、本発明の前記実施形態の前記ロボットアーム制御装置における動作データベースの動作情報の一覧表を説明する図であり、
【図３０Ａ】図３０Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｂ】図３０Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｃ】図３０Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｄ】図３０Ｄは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｅ】図３０Ｅは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｆ】図３０Ｆは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図であり、
【図３０Ｇ】図３０Ｇは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｂの挿入口の挿入部分を拡大した図)であり、
【図３０Ｈ】図３０Ｈは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｃの挿入口の挿入部分を拡大した図)であり、
【図３０Ｉ】図３０Ｉは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｄの挿入口の挿入部分を拡大した図)であり、
【図３０Ｊ】図３０Ｊは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｅの挿入口の挿入部分を拡大した図)であり、
【図３０Ｋ】図３０Ｋは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示す図（図３０Ｆの挿入口の挿入部分を拡大した図)であり、
【図３０Ｌ】図３０Ｌは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示しかつ挿入口の付近を拡大した図（図３０Ｉの円Ｌの拡大図）であり、
【図３０Ｍ】図３０Ｍは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示しかつ挿入口の付近を拡大した図（図３０Ｊの円Ｍの拡大図）であり、
【図３０Ｎ】図３０Ｎは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの動作状態を示しかつ挿入口の付近を拡大した図（図３０Ｋの円Ｎの拡大図）であり、
【図３１】図３１は、本発明の前記実施形態の前記ロボットアーム制御装置における対象物にかける力とその時刻の関係を示す図であり、
【図３２】図３２は、本発明の前記実施形態の前記ロボットアーム制御装置における補正動作種別決定部の動作ステップを表すフローチャートであり、
【図３３Ａ】図３３Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３３Ｂ】図３３Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３３Ｃ】図３３Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３４Ａ】図３４Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３４Ｂ】図３４Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３４Ｃ】図３４Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３４Ｄ】図３４Ｄは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３４Ａの挿入口の挿入部分を拡大した図)であり、
【図３４Ｅ】図３４Ｅは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３４Ｂの挿入口の挿入部分を拡大した図)であり、
【図３４Ｆ】図３４Ｆは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３４Ｃの挿入口の挿入部分を拡大した図)であり、
【図３５Ａ】図３５Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３５Ｂ】図３５Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３５Ｃ】図３５Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３５Ｄ】図３５Ｄは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３５Ａの挿入口の挿入部分を拡大した図)であり、
【図３５Ｅ】図３５Ｅは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３５Ｂの挿入口の挿入部分を拡大した図)であり、
【図３５Ｆ】図３５Ｆは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３５Ｃの挿入口の挿入部分を拡大した図)であり、
【図３６Ａ】図３６Ａは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３６Ｂ】図３６Ｂは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３６Ｃ】図３６Ｃは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図であり、
【図３６Ｄ】図３６Ｄは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ａの挿入口の挿入部分を拡大した図)であり、
【図３６Ｅ】図３６Ｅは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｂの挿入口の挿入部分を拡大した図)であり、
【図３６Ｆ】図３６Ｆは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｃの挿入口の挿入部分を拡大した図)であり、
【図３６Ｇ】図３６Ｇは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｄの円Ｇの拡大図）であり、
【図３６Ｈ】図３６Ｈは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｅの円Ｈの拡大図）であり、
【図３６Ｉ】図３６Ｉは、本発明の前記実施形態の前記ロボットアーム制御装置におけるロボットアームの操作状態を示す図（図３６Ｆの円Ｉの拡大図）である。
【発明を実施するための形態】
【００２３】
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【００２４】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【００２５】
本発明の第１態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御装置であって、
前記ロボットアームに作用する人の力を検出する力検出手段と、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出された前記人の力とをそれぞれ取得する情報取得部と、
前記ロボットアームが前記組立対象物に加える力を検出する対象物力検出手段と、
前記情報取得部でそれぞれ取得した前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とから前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とするロボットアームの制御装置を提供する。
【００２６】
このような構成により、人の力に応じて、ロボットアームの組立方法を補正することができる。
【００２７】
本発明の第２態様によれば、前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢との情報と、前記ロボットアームから組立作業面にかける力情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、前記ロボットアームの作業を行わない領域に関する情報である作業不可領域情報のうちの少なくとも１つの情報を有することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００２８】
このような構成により、前記ロボットアームが行う作業に応じて、それぞれの時間での、位置情報と、前記ロボットアームがかける力情報と、方向に関する情報と、速度情報と、作業をしてほしくない領域に関する情報のうちの少なくとも１つの情報を補正することができる。
【００２９】
本発明の第３態様によれば、前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームから前記作業面にかける力情報を少なくとも有し、
前記動作補正手段は、前記動作に関する情報に基づいて、予め設定された力を前記ロボットアームから前記作業面に作用させて前記動作を行なう力制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記動作を前記ロボットアームで行っている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、補正動作前の前記動作に関する情報のうちの前記設定された力の大きさ又は方向を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３０】
このような構成により、前記動作に関する情報に基づいて、予め設定された力を前記ロボットアームから前記作業面に作用させて前記動作を行なう力制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記動作を前記ロボットアームで行っている最中に、前記力検出手段で検出した前記人の力に応じて、補正動作前の前記動作に関する情報のうちの前記設定された力の大きさ又は方向を補正することができる。
【００３１】
本発明の第４態様によれば、前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢の情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、作業を行わない領域に関する情報である作業不可領域情報とを有し、
前記動作補正手段は、前記動作に関する情報に基づいて、前記ロボットアームの位置を制御する位置制御モードで動作している最中に、前記ロボットアームに対して前記人から前記ロボットアームに加わる力に応じて前記ロボットアームが作動するインピーダンス制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記作業を動作させている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、前記インピーダンス制御での前記動作に関する情報の前記動作を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３２】
このような構成により、前記動作に関する情報に基づいて、前記ロボットアームの位置を制御する位置制御モードで動作している最中に、駆動停止している前記ロボットアームに対して前記人から前記ロボットアームに加わる力に応じて前記ロボットアームが作動するインピーダンス制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記作業を動作させている最中に、前記力検出手段で検出した前記人の力に応じて、前記インピーダンス制御での前記動作に関する情報の前記動作を補正することができる。
【００３３】
本発明の第５態様によれば、前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備えることを特徴とする第１〜４のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３４】
本発明の第６態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、
前記補正動作種別決定手段は、前記対象物検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値以上である場合に、前記補正動作の種別として、作業面の位置と姿勢の移動の種別であると決定し、
さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの前記手先の位置と姿勢を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３５】
本発明の第７態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、
前記補正動作種別決定手段は、前記対象物検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値未満である場合に、前記補正動作の種別として、速度の補正の種別であると決定し、
さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの速度を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３６】
本発明の第８態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置の移動量を検出するとともに、
前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値以下であり、かつ、前記補正動作種別決定部で検出された前記ロボットアームの移動量が、ある閾値以上である場合に、前記補正動作の種別として、位置・姿勢の補正の種別であると決定し、
さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３７】
本発明の第９態様によれば、前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値を越える場合に、前記補正動作の種別として、力の補正の種別であると決定し、
さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【００３８】
本発明の第１０態様によれば、前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備える第１〜９のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３９】
このような構成により、補正動作の種別に関する情報を表示することができる。
【００４０】
本発明の第１１態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、
前記ロボットアームに作用する人の力を力検出手段で検出し、
前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正することを特徴とするロボットアームの制御方法を提供する。
【００４１】
このような構成により、ロボットアームの動作に関する情報に基づき、前記動作の補正種別を決定し、人の力を検出し、前記ロボットアームの作業中に、前記人の力と前記補正種別に応じて、前記動作を提供することができる。
【００４２】
本発明の第１２態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第１〜９のいずれか１つの態様に記載のロボットアームの制御装置とを備えることを特徴とする組立ロボットを提供する。
【００４３】
本発明の第１３態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定するステップと、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させための組立ロボット用ロボットアームの制御プログラムを提供する。
【００４４】
本発明の第１４態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とする組立ロボット用ロボットアームの制御用集積電子回路を提供する。
【００４５】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００４６】
（第１実施形態）
まず、本発明の第１実施形態における、ロボットアームの制御装置を備える組立ロボット１の構成について説明する。
【００４７】
図１に示すように、組立ロボット１の一例として、工場内のセル生産で、テレビ若しくはＤＶＤレコーダ、又は、携帯電話などの機器６のフレキシブル基板挿入口７５に、フレキシブル基板７４を取り付ける組立作業を行う、組立ロボット用ロボットアーム５について説明する。
【００４８】
組立ロボット１のロボットアーム５は、作業台７の壁面７ａに設置され、ロボットアーム５の基端が、壁面７ａに固定されたレール８に、移動可能に支持され、レール８上をロボットアーム５が、レール８沿いの横方向例えば水平方向に、人１６Ａの手１６の力により、又はモータなどにより自動的に、移動可能とする。ロボットアーム５の基端の固定場所は、作業台７の壁面７ａに限られるものではなく、天井などでもよい。
【００４９】
作業台７の側面には、ボタン２６ａなどが配置された操作盤２６Ａなどのデータ入力ＩＦ２６と、作業台７の壁面などに配置された表示手段の一例としての表示部１４とを備えるように構成されている。
【００５０】
レール８は、壁面７ａに固定されたレール固定部８ａと、モータ６５の駆動により正逆回転駆動される車輪（図示せず）を有してレール固定部８ａに対して移動可能なレール可動部８ｂとで構成されている。ロボットアーム５の基端が連結された台部３４が前記レール可動部８ｂに連結されて、レール固定部８ａに対して、ロボットアーム５の台部３４がレール可動部８ｂと共に移動可能に構成されている。又は、このような構成に代えて、ロボットアーム５の基端が連結された台部３４にモータ６５により正逆回転駆動される車輪を設けて、壁面７ａに固定されたレール８に沿って、台部３４が移動するような構成としてもよい。
【００５１】
ロボットアーム５の先端には、フレキシブル基板７４を把持するために開閉可能なハンド３０が取り付けられている。
【００５２】
組立ロボット１は、作業台７の上に固定的に載置された機器６の挿入口７５にフレキシブル基板７４を挿入するロボットであり、前記ロボットアーム５と、ロボットアーム５の動作を制御する制御装置とで構成されている。
【００５３】
組立ロボット１の操作手順の概要を説明する。
【００５４】
まず、図２Ａにおいて、人１６が作業台７の側面に配置されているデータ入力ＩＦ２６（例えば図２６の操作盤２６Ａの電源ボタン２６ａの「ＯＮ」を押すなど）により電源を入れる。
【００５５】
次に、機器６を作業台７の上に設置する。設置の際に、図２Ｂに示すように、ロボットアーム５の先端を移動させて、機器６を作業台７の上に設置しやすいように、ロボットアーム５を人の手１６により移動することができる（機器６を作業台７の上に設置するのに邪魔にならない位置までロボットアーム５を人の手１６により移動することができる）。
【００５６】
次に、作業台７の側面に配置されているデータ入力ＩＦ２６（例えば図２６の操作盤２６Ａの作業スイッチ２６ｃのスタートボタンなど）を人の手１６で押すことにより、組立ロボット１が作動し、後述する動作選択部２９で最適な組立動作を選択して、その選択された動作に基づき、ロボットアーム５による組立作業を開始させる。
【００５７】
なお、データ入力ＩＦ２６の一例としての操作盤２６Ａは、作業台７の側面に固定したが、遠隔操作が可能なリモコンでも良い。
【００５８】
ロボットアーム５による組立作業の際には、ロボットアーム５のハンド３０により、フレキシブル基板７４の基板自体若しくは基板先端のコネクタ部などの所望の箇所を把持させる。その後、ハンド３０でフレキシブル基板７４を把持した状態でロボットアーム５を、人の手１６で又は自動的に移動させ、フレキシブル基板７４のコネクタ部が機器６のフレキシブル基板挿入口７５に対向させ、ロボットアーム５により、フレキシブル基板７４のコネクタ部を挿入口７５内に挿入して、フレキシブル基板７４を機器６に組み付ける。このとき、必要に応じて、人の手１６でロボットアーム５を押すなどしてロボットアーム５の動作を補正などするように制御している。
【００５９】
より具体的には、図１８Ｂに示すように、フレキシブル基板７４又は機器６などのモデルチェンジにより、フレキシブル基板７４を挿入口７５内に挿入する力加減又は位置などが変更になった場合には、人１６が変更の状態を確認し、図１８Ｃに示すように、人の手１６でロボットアーム５を押すなどして力を強めにかけるように補正する。このようにすることで、図１８Ｄに示すように、力加減を強めに挿入することができる。以下、このようなロボットアーム５による組立作業について詳細に説明する。
【００６０】
図３は、組立ロボット１を構成する制御装置の構成要素を詳細に示す図であり、制御装置本体部４５と、動作を生成する動作生成装置１２と、制御対象であるロボットアーム５と、レール８と、周辺装置４７との詳細構成を示す図である。組立ロボット１の前記制御装置は、制御装置本体部４５と、動作生成装置１２と、周辺装置４７とで大略構成されている。
【００６１】
制御装置本体部４５及び動作生成装置１２及び周辺装置４７は、それぞれ、一般的なパーソナルコンピュータにより構成される。
【００６２】
制御装置本体部４５は、動作生成装置１２の動作補正手段の一例としての動作補正部２０と補正動作種別決定手段の一例としての補正動作種別決定部２３と周辺装置４７のデータ入力ＩＦ２６とにそれぞれ接続された制御パラメータ管理手段の一例としての制御パラメータ管理部２１と、制御パラメータ管理部２１と周辺装置４７の入出力ＩＦ２４とに接続されたインピーダンス制御手段の一例としての制御部（インピーダンス制御部）２２とを備えるように構成される。
【００６３】
動作生成装置１２は、動作データベース１７と、作業不可領域データベース２８と、動作補正部２０と、補正動作種別決定部２３と、動作記憶部１５と、動作選択部２９と、情報取得部（情報取得手段の一例）１００とを備えるように構成される。動作記憶部１５は、動作データベース１７と作業不可領域データベース２８と動作補正部２０とに接続されている。動作データベース１７と作業不可領域データベース２８とは、それぞれ、動作記憶部１５と動作補正部２０と動作選択部２９とに接続されている。動作補正部２０は、動作データベース１７と作業不可領域データベース２８と動作記憶部１５と制御装置本体部４５の制御パラメータ管理部２１と補正動作種別決定部２３と周辺装置４７のデータ入力ＩＦ２６とが接続されている。補正動作種別決定部２３は、動作補正部２０と周辺装置４７のデータ入力ＩＦ２６と制御装置本体部４５の制御パラメータ管理部２１とに接続されている。動作選択部２９は、動作データベース１７と作業不可領域データベース２８とデータ入力ＩＦ２６と接続されている。情報取得部１００は、補正動作種別決定部２３と、動作データベース１７と作業不可領域データベース２８と、制御部２２の力検出部（力検出手段の一例）５３と対象物力検出部（対象物力検出手段の一例）７８とに接続されている。よって、情報取得部１００は、組立作業におけるロボットアーム５の位置を含むロボットアーム５の動作に関する情報と、力検出部５３で検出されたロボットアーム５に作用する人の力に関する情報と、対象物力検出部７８からの情報とをそれぞれ取得可能としている。情報取得部１００で取得した情報は、補正動作種別決定部２３に入力され、情報取得部１００でそれぞれ取得した動作に関する情報と人の力に関する情報とから、後述するように、ロボットアーム５の動作を補正する補正動作の種別を補正動作種別決定部２３で決定することができる。
【００６４】
周辺装置４７は、補正動作種別決定部２３と動作補正部２０と制御装置本体部４５の制御パラメータ管理部２１と表示部１４と動作生成装置１２とに接続されたデータ入力ＩＦ２６と、レール可動部８ｂのモータ６５の回転軸に取り付けられてその回転軸の回転角度を検出するエンコーダ６４と各関節部のモータ４３の回転軸に取り付けられてその回転軸の回転角度を検出するエンコーダ４４とハンド駆動用のモータ６２の回転軸に取り付けられてその回転軸の回転角度を検出するエンコーダ６１とからそれぞれの角度情報が入力されるとともに制御部２２に接続された入出力ＩＦ２４と、レール可動部８ｂのモータ６５とロボットアーム５の各関節部のモータ４３とハンド開閉駆動用のモータ６２とにそれぞれ接続されたモータドライバ２５と、補正動作種別決定部２３に接続された表示部１４とを備えるように構成される。
【００６５】
入出力ＩＦ２４は、パーソナルコンピュータのＰＣＩバスなどの拡張スロットに接続された、例えばＤ／Ａボードと、Ａ／Ｄボードと、カウンタボードとなどを備えるように構成されている。
【００６６】
ロボットアーム５及びレール可動部８ｂの動作を制御する動作生成装置１２と、制御装置本体部４５と、周辺装置４７とが、それぞれの動作を実行することにより、ロボットアーム５の各関節部の各関節角度情報であってかつ後述するエンコーダ４４より出力される各関節角度情報が、入出力ＩＦ２４を通じて制御装置本体部４５に取り込まれる。そして、制御装置本体部４５は、取り込まれた各関節角度情報に基づき、ロボットアーム５の各関節部の回転動作での制御指令値を算出する。さらに、レール可動部８ｂのモータ６５のエンコーダ６４より出力されるレール可動部８ｂの位置情報が、入出力ＩＦ２４を通じて制御装置本体部４５に取り込まれる。そして、制御装置本体部４５は、取り込まれた各位置情報に基づき、レール可動部８ｂのモータ６５の制御指令値を算出する。
【００６７】
算出されたロボットアーム５の各関節部のモータ４３の制御指令値は、入出力ＩＦ２４を通じてモータドライバ２５に与えられ、モータドライバ２５から送られた各制御指令値に従って、ロボットアーム５の各関節部のモータ４３がそれぞれ独立して駆動される。
【００６８】
また、算出されたレール可動部８ｂの制御指令値は、入出力ＩＦ２４を通じてモータドライバ２５に与えられ、モータドライバ２５から送られた各制御指令値に従って、レール可動部８ｂのモータ６５が駆動される。
【００６９】
また、モータドライバ２５により駆動制御されるハンド駆動装置の一例としてハンド駆動用のモータ６２と、ハンド駆動用のモータ６２の回転軸の回転位相角を検出するエンコーダ６１とをさらにハンド３０に備えて、例えば、モータ６２の回転軸を正方向に回転させることによりハンド３０を開いて、フレキシブル基板７４をハンド３０で把持可能に位置させる一方、モータ６２の回転軸を逆方向に回転させることによりハンド３０を閉じて、ハンド３０に把持可能な位置に位置させたフレキシブル基板７４をハンド３０で把持するように構成することができる。このような場合、エンコーダ６１で検出されたモータ６２の回転軸の回転角度を基に、制御装置本体部４５の制御部２２のハンド制御部５４（図７に図示）からの制御信号（開閉指令信号）により、モータドライバ２５を介してハンド駆動用のモータ６２の回転を駆動制御して、ハンド駆動用のモータ６２の回転軸を正逆回転させることによりハンド３０を開閉させる。
【００７０】
ロボットアーム５は、６自由度の多リンクマニピュレータであり、ハンド３０と、ハンド３０が取り付けられている手首部３１を先端に有する前腕リンク３２と、前腕リンク３２の基端に先端が回転可能に連結される上腕リンク３３と、上腕リンク３３の基端が回転可能に連結支持される台部３４とを備えている。台部３４は、レール可動部８ｂに連結されている。手首部３１は、第４関節部３８と、第５関節部３９と、第６関節部４０との３つの回転軸を有しており、前腕リンク３２に対するハンド３０の相対的な姿勢を変化させることができる。すなわち、図３において、第４関節部３８は、手首部３１に対するハンド３０の横軸周りの相対的な姿勢を変化させることができる。第６関節部４０は、手首部３１に対するハンド３０の、第４関節部３８の横軸及び第５関節部３９の縦軸とそれぞれ直交する横軸周りの相対的な姿勢を変化させることができる。前腕リンク３２の他端は、上腕リンク３３の先端に対して第３関節部３７周りに、すなわち、第４関節部３８の横軸と平行な横軸周りに回転可能とする。上腕リンク３３の他端は、台部３４に対して第２関節部３６周りに、すなわち、第４関節部３８の横軸と平行な横軸周りに回転可能とする。さらに、台部３４の上側可動部３４ａは、台部３４の下側固定部３４ｂに対して第１関節部３５周りに、すなわち、第５関節部３９の縦軸と平行な縦軸周りに回転可能としている。この結果、ロボットアーム５は、合計６個の軸周りに回転可能として前記６自由度の多リンクマニピュレータを構成している。
【００７１】
各軸の回転部分を構成する各関節部には、回転駆動装置の一例としてのモータ４３と、モータ４３の回転軸の回転位相角（すなわち関節角）を検出するエンコーダ４４とを備えている。モータ４３は、各関節部を構成する一対の部材（例えば、回動側部材と、該回動側部材を支持する支持側部材）のうちの一方の部材に備えられ、かつ後述するモータドライバ２５により駆動制御される（実際には、ロボットアーム５の各関節部の一方の部材の内部に配設されている）。また、エンコーダ４４は、モータ４３の回転軸の回転位相角（すなわち、関節角）を検出するために、一方の部材に備えられる（実際には、ロボットアーム５の各関節部の一方の部材の内部に配設されている）。一方の部材に備えられたモータ４３の回転軸が他方の部材に連結されて、前記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
【００７２】
４６はレール座標系Ｏｄであり、レール８の端の点Ｏｓ（図８参照）からの相対的な位置関係を示す。４１はレール８のレール可動部８ｂに固定された台部３４の台部座標系であり、レール座標系Ｏｄからの相対的な位置関係を示す。手先座標系４２は台部座標系４１からの相対的な位置関係を示す。
【００７３】
レール８の端の点Ｏｓから見たレール座標系４６の原点位置Ｏｄ（ｘ、ｙ）をレール可動部８ｂの位置（レール位置）とする。さらに、台部座標系４１から見た手先座標系４２の原点位置Ｏｅ（ｘ、ｙ、ｚ）をロボットアーム５の手先位置（ハンド３０の先端の位置）とし、台部座標系４１から見た手先座標系４２の姿勢をロール角とピッチ角とヨー角とで表現した（φ、θ、ψ）をロボットアーム５の手先姿勢とし、手先位置及び姿勢ベクトルをベクトルｒ＝［ｘ、ｙ、ｚ、φ、θ、ψ］Ｔと定義する。ロール角、ピッチ角、ヨー角について図１２Ａ〜図１２Ｃを用いて説明する。
【００７４】
まず、絶対座標系３５のＺ軸を回転軸として、座標系を角度φだけ回転させた座標系を考える（図１２Ａ）。このときの座標軸を［Ｘ'、Ｙ'、Ｚ］とする。
【００７５】
次に、この座標系を、Ｙ'を回転軸として角度θだけＺ軸周りに回転させる（図１２Ｂ参照）。このときの座標軸を［Ｘ’’、Ｙ'、Ｚ’’］とする。
【００７６】
最後に、この座標系を、Ｘ’’軸を回転軸として、角度ψだけＸ’’軸周りに回転させる（図１２Ｃ参照）。このときの座標軸を［Ｘ’’、Ｙ’’’、Ｚ’’’］とする。このときの座標系の姿勢を、ロール角度φ、ピッチ角度θ、ヨー角度ψとし、このときの姿勢ベクトルは（φ，θ，ψ）となる。姿勢（φ，θ，ψ）の座標系が、原点位置を手先座標系４２の原点位置Ｏｅ（ｘ，ｙ，ｚ）に平行移動した座標系と、手先座標系４２が一致する場合、手先座標系４２の姿勢ベクトルは（φ，θ，ψ）であるとする。
【００７７】
ロボットアーム５の手先位置と姿勢とをそれぞれ制御する場合には、手先位置及び姿勢ベクトルｒを、後述する目標軌道生成部５５で生成された手先位置と姿勢目標ベクトルｒｄとに追従させることになる。
【００７８】
２６はデータ入力ＩＦ（インターフェース）であり、人（組立作業者）がボタン又はキーボード又はマウス又はマイクなどの入力装置を使用して、組立作業の開始、終了などの指令を組立ロボット１に入力するインターフェースである。
【００７９】
表示部１４は、例えば作業台７に設置されたディスプレイ装置であり、後述するロボットの動作又は補正するパラメータの種別などを表示部１４に表示する。
【００８０】
動作データベース１７は、レール可動部８ｂ及びロボットアーム５の、ある時間における位置及び姿勢など動作（例えば組立動作）に関する情報（動作に関する情報）を記憶して保持している。ここで、動作に関する情報とは、データベースは、前記ロボットアーム５が行う作業（例えば組立作業）に応じた、ロボットアーム５の手先位置姿勢の情報と、ロボットアーム５が機器６に加える力情報と、ロボットアーム５の速度情報と、作業を行わない領域に関する情報である作業不可領域情報とのうちの少なくとも１つの情報を含むものである。
【００８１】
動作データベース１７の詳細について説明する。
【００８２】
動作データベース１７は、例えば、図４に示したレール可動部８ｂ及びロボットアーム５の動作に関する情報で、作業を識別する作業ＩＤ番号と、その作業内の個々の動作を識別する動作ＩＤ番号と、その動作におけるレール可動部８ｂの位置に関する情報と、前記動作におけるロボットアーム５の手先位置と姿勢とに関する情報と、前記その動作におけるロボットアーム５が組立作業面（例えば、機器６のフレキシブル基板挿入口７５の挿入面）にかける力に関する情報と、ロボットアーム５の位置と姿勢と力とのパラメータのうちのいずれの情報が有効か否かを示すフラグ（有効性を示すフラグ）に関する情報と、各動作が作用する時間に関する情報と、後述する動作補正部２０で動作データベース１７の動作情報を補正する際の補正すべきパラメータの種別に関する情報と、現在動作中かどうかを示す進捗情報とを保持するように構成される。
【００８３】
動作データベース１７の挿入作業を識別する作業ＩＤ番号は、複数種類の組立作業（例えば挿入作業）がある場合に、互いに識別するために、それぞれの作業に対して付された作業ＩＤ番号を表す情報である。
【００８４】
動作データベース１７の組立作業内の個々の動作を識別する動作ＩＤ番号は、１つの組立作業が複数の組立動作で構成されている場合に、１つの組立作業内の個々の組立動作を互いに識別するために、それぞれの組立動作に対して付された動作ＩＤ番号を表す情報である。
【００８５】
動作データベース１７のレール可動部８ｂの位置に関する情報は、前述したレール位置の情報を表し、すなわち、レール８の端のＯｓから見たレール座標系４６の原点位置Ｏｄ（ｘ、ｙ）とし、例えば図８に示すように、組立ロボット１がレール固定部８ａ上を左から右に走行して組立動作を行なう場合においては、レール可動部８ｂの第１のレール位置（ｘ１、ｙ１）、第２のレール位置（ｘ２、ｙ２）、第３のレール位置（ｘ３、ｙ３）などを記憶する。
【００８６】
動作データベース１７のレール可動部８ｂの位置に関する情報は、動作データベース１７内に、予め設定しておくか、ロボットアーム５を人の手１６で直接把持して、後述するインピーダンス制御モードにて、ロボットアーム５を移動させて記憶させても良い。
【００８７】
動作データベース１７のロボットアーム５の手先位置と姿勢とに関する情報は、前述したロボットアーム５の手先位置と姿勢とを表し、原点位置Ｏｅと姿勢とから、（ｘ、ｙ、ｚ、φ、θ、ψ）と表す。
【００８８】
動作データベース１７のロボットアーム５の位置及び姿勢・時間の情報は、例えば、図１に示すように、ロボットアーム５を人の手１６で直接把持して、後述するインピーダンス制御モードにて、ロボットアーム５を移動させて、ある一定時間毎（例えば０．２ｍｓｅｃ毎）にロボットアーム５の手先位置と姿勢の情報を制御部２２で取得し（具体的に、制御部２２の説明でも記載しているように、順運動学計算部５８により各関節部のエンコーダ４４で計測された関節角を手先位置及び姿勢に変換してロボットアーム５の手先位置と姿勢の情報を取得し）、時間の情報と共に、動作データベース１７に動作記憶部１５で記憶する。なお、製品出荷時にメーカにてあらかじめ位置及び姿勢・時間の情報を同様の方法で生成し、動作データベース１７に記憶しておいても良い。また、ロボットアーム５を移動させて、（例えば、ロボットアーム５の上方に配置された）カメラなどの画像撮像装置で環境（ロボットアーム５６及び機器６を含む環境）を撮影し、得られた画像データ（例えば、得られた環境情報のうちの機器６の挿入口７５の画像）と、あらかじめ記憶された物体の画像（例えば機器６の挿入口７５の画像）との間でモデルマッチング処理を行い、合致した位置をロボットアーム５の手先位置として動作データベース１７に、具体的には図示していないがデータ入力ＩＦ２６を介して動作記憶部１５で記憶するようにしても良い。  動作データベース１７に記憶されているロボットアーム５がかける力に関する情報は、ロボットアーム５が作業をする際に対象となる物体にかける力の情報を示し、ロボットアーム５のｘ、ｙ、ｚ方向にかける力をそれぞれｆｘ、ｆｙ、ｆｚとし、さらにφ、θ、ψ方向にかける力をfφ、fθ、fψとする。動作データベース１７では、（fｘ、fｙ、fｚ、fφ、fθ、fψ）と表す。例えばfｚ＝５[Ｎ]である場合は、ｚ軸方向に５Ｎの力をかけて作業することを表し、機器６の挿入口７５にフレキシブル基板７４を挿入する組立作業の際に、機器６の挿入口７５の挿入面に対して垂直方向に力をかけて挿入する場合などに使用するパラメータである。
【００８９】
動作データベース１７の、ロボットアーム５の位置と姿勢と力とのパラメータのうちのいずれの情報が有効か否かを示すフラグ（有効性を示すフラグ）に関する情報、すなわち、図４の動作データベース１７のフラグの情報は、各動作ＩＤが示すロボットアーム５の位置と姿勢と力とのうちのいずれの情報が有効かを示す値であり、具体的には、図５で示した３２ビットの数値で表す。図５において、それぞれのビットで位置、姿勢、力のそれぞれの値が有効の場合は「１」とし、無効の場合は「０」とする。例えば、０ビット目は位置のｘ座標の値が有効の場合は「１」とし、無効の場合は「０」とする。１ビット目は位置のｙ座標の値が有効の場合は「１」とし、無効の場合は「０」とする。２ビット目は位置のｚ座標の値が有効の場合は「１」とし、無効の場合は「０」とし、順次、３，４，５ビット目は姿勢のφ、θ、ψの有効性を表す。６ビット目〜１１ビット目は力のそれぞれの成分fｘ、fｙ、fｚ、fφ、fθ、fψが有効か無効かを表す。また、フラグは将来の拡張用に多め（３２ビット）に用意しているため、この例では、１２ビット目から３１ビット目は使用しないので、「０」を入れておくが、１２ビット目のみ、格納できる変数としても良い。図５では、０ビット目から１ビット目が「１」となり、８ビット目が「１」となっているので、動作情報のうち、位置のｘ、ｙ情報と力のｆｚ情報のみが有効であることを示し、動作情報のうち、ｚ、φ、θ、ψ、及び、力のｆｚ以外の値のそれぞれに、どういう値が記憶されていても無効であるとする。
【００９０】
動作データベース１７の各動作が作用する時間に関する情報、すなわち、図４の動作データベース１７の時間は、各動作を組立ロボット１が実行するために必要な時間であり、この動作ＩＤに記憶された動作を、ここで記憶された時間をかけて組立ロボット１が動作することを表す。この時間は、絶対時刻ではなく、前の動作からの相対時間を表す。すなわち、動作ＩＤが示すレール可動部８ｂの位置及びロボットアーム５の位置及び姿勢に、レール可動部８ｂ及びロボットアーム５がそれぞれ移動するまでの時間を表す。
【００９１】
動作データベース１７の、動作補正部２０で動作データベース１７の動作情報を補正する際の補正すべきパラメータの種別に関する情報、すなわち、図４の補正パラメータフラグは、後述する補正動作種別決定部２３で決定した種別に応じて、どのパラメータを補正するかを表す情報である。具体的には、図６に示した３２ビットの数値で表す。図６において、それぞれのビットで位置、姿勢、力のそれぞれの値の補正が可能な場合は「１」とし、補正が不可能な場合は「０」とする。例えば、０ビット目は位置のｘ座標の値の補正が可能な場合は「１」とし、不可能な場合は「０」とする。１ビット目は位置のｙ座標の値の補正が可能な場合は「１」とし、不可能な場合は「０」とする。２ビット目は位置のｚ座標の値の補正が可能な場合は「１」とし、不可能な場合は「０」とする。順次、３，４，５ビット目は姿勢のφ、θ、ψの補正可能性を表す。同様に、６ビット目〜１１ビット目は力の補正可能性を表す。また、フラグは将来の拡張用に多め（３２ビット）に用意しているため、この例では、１２ビット目から３１ビット目は使用しないので、「０」を入れておくが、１２ビット目のみ、格納できる変数としても良い。
【００９２】
動作データベース１７の、現在動作中かどうかを示す進捗情報は、組立ロボット１の現在動作中の動作であるかどうかどうかを示す情報で、動作中の場合は「１」を記録するとともに、動作中でない場合は「０」を記録する。具体的には、人は、データ入力ＩＦ２６を介して作業したい組立作業を選択して、選択された情報がデータ入力ＩＦ２６から動作選択部２９に入力される。選択した作業のうちの一番目の組立動作が組立ロボット１で開始されると、動作選択部２９により、その組立作業を構成する複数の組立動作のうち、現在動作中の組立動作について「１」を動作データベース１７に記憶するとともに、動作していない組立動作について「０」を動作データベース１７に記憶する。なお、動作中か否かの情報は、制御部２２から指令した動作が終了したことの通知を動作補正部２０を介して動作記憶部１５に入力し、動作記憶部１５にて作業方法データベース１７に記憶する。
【００９３】
図４において、動作ＩＤ「１」〜「８」は、図２１Ａに示すように、機器６の挿入口７５まで機器６の上方を、ロボットアーム５のハンド３０がフレキシブル基板７４を把持しながら移動する動作である。動作「９」〜「１６」は、図２１Ｂに示すように、ロボットアーム５を使用して、機器６の挿入口７５にフレキシブル基板７４を挿入する動作である。
【００９４】
図３の動作選択部２９は、動作データベース１７の作業一覧（例えば、図２６のスイッチ２６ｃの中央の下側に表示された「挿入１」及び「挿入２」というような作業表示）から最適な作業を人１６がデータ入力ＩＦ２６を介して選択するとき、選択された作業のうち、現在、動作している動作ＩＤの進捗情報に「１」を設定して動作データベース１７に記憶し、その他の動作については「０」を設定して動作データベース１７に記憶する。
【００９５】
作業不可領域データベース２８は、組立ロボット１で作業（この例ではフレキシブル基板挿入作業）をしない領域に関する情報を記憶しており、具体的な情報については、図１０に示す。図１０において、作業不可領域の位置（ｘ、ｙ）は、人が、組立ロボット１により作業をしてほしくない領域を表す。例えば、図１１の作業可能面Ｒのうち、斜線の領域を作業不可領域ＲＢとした場合は、その領域ＲＢを表すのに必要な座標（この例では、矩形領域の４個の角の座標（ｘｃ１，ｙｃ１）、（ｘｃ２，ｙｃ２）、（ｘｃ３，ｙｃ３）、（ｘｃ４，ｙｃ４））を記憶する。なお、それぞれの座標は、作業を行う作業領域ＲＡの作業経路のうち、レール８の端の座標Ｏｓからの相対座標で表す。これらの作業不可領域ＲＢを表す座標は、後述する動作補正部２０で生成され、作業不可領域データベース２８に記憶される。
【００９６】
補正動作種別決定部２３は、後述する動作補正部２０にて、人がその手１６でロボットアーム５に力をかけることにより動作の補正を行うことが可能な補正の種別を決定する。例えば、図１９Ｃのように、人がその手１６でロボットアーム５に横方向から力をかけると、ロボットアーム５の作業面（例えば、機器６の挿入口７５の挿入面）に対する平行な方向（例えば、作業面が水平方向沿いの場合には水平方向を意味する。以下の説明では、説明を簡単にするため、単に「水平方向」と称する。）の位置を移動することで、作業領域ＲＡを平行移動させることができる。この場合の補正動作の種別は、「作業面の位置の移動」である。図１８Ａに示すようにロボットアーム５で機器６の挿入口７５にフレキシブル基板７４を挿入中に、図１８Ｃに示すように、人がその手１６でロボットアーム５の上方からロボットアーム５（例えばハンド３０）に下向きの力をかけると、後述する動作補正部２０によって、図１９Ｄのように挿入時の力のかけ具合を強めに設定することができる。この場合の補正動作の種別は、「力のかけ具合」である。このように、補正動作種別決定部２３は、人の手１６によるロボットアーム５への力のかけ具合とロボットアーム５の手先位置などから、組立動作の補正の種別を決定することができる。なお、詳細については後述する。
【００９７】
動作補正部２０は、動作データベース１７の位置と姿勢と時間との情報に基づいて組立ロボット１が組立動作中に、人が手１６でロボットアーム５に力をかけることにより、動作データベース１７の組立動作情報を補正する機能を持っている。詳細については、後述する。
【００９８】
動作記憶部１５は、動作補正部２０により補正した動作情報を動作データベース１７若しくは作業不可領域データベース２８に記憶する。
【００９９】
次に、制御パラメータ管理部２１の詳細について説明する。
【０１００】
制御パラメータ管理部２１は、動作補正部２０の動作補正指示に基づいて、ロボットアーム５のインピーダンス制御モードと、ハイブリッドインピーダンス制御モードと、力制御モードと、力ハイブリッドインピーダンス制御モードと、高剛性の位置制御モードとを切り替える設定、及び、それぞれの制御モード時の機械インピーダンス設定値の設定、及び、それぞれの制御モードで制御部２２のインピーダンス計算部５１で出力する手先位置及び姿勢目標補正出力ｒｄΔの設定、及び、制御部２２の目標軌道設定部５５への動作情報の設定を行う。
【０１０１】
さらに、制御パラメータ管理部２１は、動作データベース１７に記憶されているレール可動部８ｂの位置（レール８の端の座標Ｏｓから見たレール座標系４６の原点位置Ｏｄ（ｘ、ｙ））から、作業不可領域データベース２８の作業不可領域ＲＢを除いた作業領域ＲＡでの経路を生成する。また、制御部２２からロボットアーム５の手先位置又は力の情報などの情報を制御パラメータ管理部２１で受けて、制御パラメータ管理部２１から動作補正部２０へそれらの情報の通知を行う。また、データ入力ＩＦ２６によりハンド３０の開閉の指令が入力されると、データ入力ＩＦ２６からの入力情報が制御パラメータ管理部２１を介して制御部２２のハンド制御部５４へ入力されて、制御パラメータ管理部２１からハンド制御部５４へハンド３０の開閉指令を出す。
【０１０２】
位置制御モードは、後述する目標軌道生成部５５の手先位置及び姿勢目標ベクトル指令に基づいて、ロボットアーム５が作動するモードである。
【０１０３】
インピーダンス制御モードは、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモードである。
【０１０４】
ハイブリッドインピーダンス制御モードは、位置制御モードでロボットアーム５が動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード（インピーダンス制御モード）であり、位置制御モードとインピーダンス制御モードを同時に行うモードである。例えば、機器６の挿入口７５にフレキシブル基板７４を挿入する組立作業中に、図１８Ｃのように、人の手１６でロボットアーム５を直接持って、作業領域ＲＡを平行移動するなどの補正を行うモードである。
【０１０５】
力制御モードは、制御部２２へ予め与えられた力で、ロボットアーム５が作業面（例えば、機器６の挿入口７５の挿入面）に対してハンド３０で把持した対象物（例えば、フレキシブル基板７４）を押し付けながら動作する制御モードで、例えば、機器６の挿入口７５に対してロボットアーム５が、ある力をかけてフレキシブル基板７４を挿入口７５に挿入する際に、ロボットアーム５の作業面成分に使用する制御モードである。
【０１０６】
力ハイブリッドインピーダンス制御モードは、６軸の方向別にハイブリッドインピーダンス制御モードかインピーダンス制御モードかを切り替え、さらに、指定した力を作用させて動作する力制御モードで動作させる制御モードである。なお、力制御モードが設定された方向にインピーダンス制御モードを設定することはできない（力制御モードとインピーダンス制御モードは排他的な関係）。
【０１０７】
これらの制御モードは、組立動作の際に、ロボットアーム５の方向及び姿勢別に、それぞれ、以下のように、適切な制御モードを設定して動作させる。
【０１０８】
例えば、組立ロボット１が、図１８Ａのように、機器６の挿入口７５に対して、ハンド３０で把持したフレキシブル基板７４を、作業面の一例である機器６の挿入口７５の挿入面に対して垂直な挿入方向（図１８Ａでは、挿入口７５の挿入面が水平面沿いであるため、水平面対して垂直な挿入方向でかつ下向き）に指定した力をかけて、フレキシブル基板７４を挿入口７５に挿入する場合には、力ハイブリッドインピーダンス制御モードを設定する。具体的には、（ｘ、ｙ、ｚ、φ、θ、ψ）の６軸のそれぞれに、以下の制御モードを設定する。すなわち、（ｘ、ｙ）成分がハイブリッドインピーダンス制御モードで動作し、（φ、θ、ψ）成分がインピーダンス制御モードで動作し、ｚ軸成分が力制御モードで動作する力ハイブリッドインピーダンス制御モードである。このように機器６の挿入口７５の挿入面と平行な方向は、ハイブリッドインピーダンス制御モードとすることで、位置制御モードで動作している最中に、人が操作している際に、ハイブリッドインピーダンス制御モードに切り替えることで、人などからロボットアーム５に加わる力に応じて、ロボットアーム５を移動させることができる。さらに、（φ、θ、ψ）成分をインピーダンス制御モードとすることで、停止している状態で人などからロボットアーム５に加わる力に応じて、ロボットアーム５の姿勢を変更することができるようになる。また、ｚ軸成分を力制御モードに設定することで、指定された力で押し付けながら動作することができるようになる。
【０１０９】
高剛性位置制御モードは、組立作業中の位置制御モードを、さらに高剛性にしたモードで、かつ、後述する位置誤差補償部５６でのゲインを大きくすることで実現し、人の手１６で力をロボットアーム５にかけると、ロボットアーム５を容易に移動できなくすることで、ロボットアーム５の手先位置の変化量により、人の手１６がかけた力を力検出部５３で検出することができる。
【０１１０】
機械インピーダンス設定値の設定パラメータとしては、慣性Ｍ、粘性Ｄ、剛性Ｋがある。機械インピーダンス設定値の各パラメータの設定は、補正値を使って、以下の評価式に基づいて行う。
【０１１１】
【数１】
2011021375.tif 000103
【０１１２】
【数２】
2011021375.tif 000104
【０１１３】
【数３】
2011021375.tif 000105
【０１１４】
前記式（１）〜（３）中のＫＭ、ＫＤ、ＫＫはゲインであり、それぞれ、ある定数値である。
【０１１５】
制御パラメータ管理部２１は、前記式（１）〜（３）に基づいて計算した機械インピーダンスパラメータの慣性Ｍ、粘性Ｄ、剛性Ｋを制御部２２へそれぞれ出力する。
【０１１６】
前記式（１）〜（３）により、例えば、図１９Ｃのように、人が作業面（例えば、挿入口７５に対してフレキシブル基板７５を挿入する挿入作業を行う作業面）の領域を移動させるように補正させたい場合に、ｘ軸及びｙ軸以外の位置成分及び姿勢成分が簡単に動くと、前記補正作業を行うことが困難になる。そこで、ｘ軸及びｙ軸以外の位置成分及び姿勢成分についてのみ、制御パラメータ管理部２１で、上述の補正値を高く（具体的には約１０倍だけ高く）設定することで、粘性Ｄ及び剛性Ｋが大きくなるように設定されることになり、ロボットアーム５の動きに抵抗感又は硬さが生じ、ｘ軸及びｙ軸以外の位置成分及び姿勢成分について動きにくくなる。
【０１１７】
又は、別の方法として、後述するインピーダンス計算部５１から出力される手先位置及び姿勢目標補正出力ｒｄΔの各成分のうち、ｘ軸及びｙ軸以外の値を、制御パラメータ管理部２１で、全て０にする方法がある。これによって、ｘ軸及びｙ軸以外は、人の手１６の力で移動できなくなるため、誤操作を防ぐことができる。
【０１１８】
さらに、動作補正部２０に、ロボットアーム５の手先位置と姿勢と、人のかけた力の情報（ロボットアーム５に作用する人の力に関する情報)とを制御パラメータ管理部２１から通知する必要がある。そのため、制御部２２からロボットアーム５の手先位置及び力の情報を制御パラメータ管理部２１が受けて、動作選択部２９と、動作記憶部１５と、動作補正部２０とへ制御パラメータ管理部２１から通知を行う。また、制御パラメータ管理部２１は、動作補正部２０から入力された、位置と姿勢と時間となどの動作情報を制御部２２へ通知する。
【０１１９】
図７は制御部２２のブロック図を示す。制御部２２は、制御パラメータ管理部２１で設定された制御モードで動作し、さらに制御モードに応じて、慣性Ｍと粘性Ｄと剛性Ｋとの設定値に基づき設定されたロボットアーム５の機械インピーダンス設定値に、ロボットアーム５の機械インピーダンスの値を制御する。さらに、制御部２２は、挿入作業の場合には、指定された力で、挿入口７５の挿入面に対してフレキシブル基板７４を押し付ける制御を行う。さらに、制御部２２は、レール可動部８ｂを制御して、ロボットアーム５をレール固定部８ａ上の指定された位置に移動する制御を行う。
【０１２０】
次に、制御部２２の詳細について、図７により説明する。
【０１２１】
制御部２２は、ロボットアーム５の各関節部のモータ４３の駆動をそれぞれ制御するロボットアーム制御部４９と、レール可動部８ｂのモータ６５の駆動を制御するレール制御部４８とを備えるように構成される。ロボットアーム制御部４９は、位置誤差計算部５０とインピーダンス計算部５１と力検出手段の一例としての力検出部５３とハンド制御部５４と目標軌道生成部５５と位置誤差補償部５６と近似逆運動学計算部５７と順運動学計算部５８とを備えて構成している。位置誤差補償部５６と近似逆運動学計算部５７と順運動学計算部５８とで位置制御系５９を構成している。
【０１２２】
次に、ロボットアーム制御部４９について詳細に説明する。
【０１２３】
ロボットアーム５からは、それぞれの関節部の関節軸のエンコーダ４４により計測された関節角の現在値（関節角度ベクトル）ベクトルｑ＝［ｑ１，ｑ２，ｑ３，ｑ４，ｑ５，ｑ６］Ｔが出力され、入出力ＩＦ２４により制御部２２に取り込まれる。ただし、ｑ１，ｑ２，ｑ３，ｑ４，ｑ５，ｑ６は、それぞれ、第１関節部３５、第２関節部３６、第３関節部３７、第４関節部３８、第５関節部３９、第６関節部４０の関節角度である。
【０１２４】
目標軌道生成部５５は、制御パラメータ管理部２１からの組立動作の入力を受けて、目標とするロボットアーム５の動作を実現するための、手先位置及び姿勢目標ベクトルｒｄと、手先の力ベクトルｆｄと、それぞれの方向別にどのパラメータが有効かを示すフラグ（有効性を示すフラグ）とが出力される。目標とするロボットアーム５の動作は、目的とする組立作業に応じて、動作補正部２０から、制御パラメータ管理部２１を介して、それぞれの時間（ｔ＝０、ｔ＝ｔ１、ｔ＝ｔ２、・・・）でのポイントごとの位置及び姿勢（ｒｄ０、ｒｄ１、ｒｄ２、・・・）の情報と、力（ｆｄ０、ｆｄ１、ｆｄ２、・・・）の情報とが目標軌道生成部５５に与えられる。
【０１２５】
目標軌道生成部５５は、多項式補間を使用し、各ポイント間の軌道と、力とを補間し、手先位置及び姿勢目標ベクトルｒｄ及び力ベクトルｆｄを生成する。
【０１２６】
ハンド制御部５４は、制御パラメータ管理部２１から入力したハンド開閉指令により、ハンド駆動用のモータ６２を駆動してハンド３０を開閉するよう、ロボットアーム５のハンド駆動用のモータ６２へ指令を出す。
【０１２７】
力検出部５３は、力検出手段の一例として機能し、人などとロボットアーム５との接触によってロボットアーム５に加わる外力を検出する。力検出部５３には、モータドライバ４７の電流センサで計測された、ロボットアーム５の各関節部を駆動するモータ４３を流れる電流値ｉ＝［ｉ１，ｉ２，ｉ３，ｉ４，ｉ５，ｉ６］Ｔが入出力ＩＦ２４を介して取り込まれ、また、各関節部の各関節角の現在値ｑが入出力ＩＦ２４を介して取り込まれるとともに、後述する近似逆運動学計算部５７からの関節角度誤差補償出力ｕｑｅが取り込まれる。力検出部５３は、オブザーバーとして機能し、以上の電流値ｉと関節角の現在値ｑと関節角度誤差補償出力ｕｑｅとに基づいて、ロボットアーム５に加わる外力により各関節部に発生するトルクτｅｘｔを算出する。そして、Ｆｅｘｔ＝Ｊｖ（ｑ）−Ｔτｅｘｔ−［０，０，ｍｇ］Ｔによりロボットアーム５の手先における等価手先外力Ｆｅｘｔに換算して等価手先外力Ｆｅｘｔを出力する。ここで、Ｊｖ（ｑ）は、
【０１２８】
【数４】
2011021375.tif 000106
【０１２９】
を満たすヤコビ行列である。ただし、ただし、ｖ＝［ｖｘ、ｖｙ、ｖｚ、ωｘ、ωｙ、ωｚ］Ｔであり、（ｖｘ、ｖｙ、ｖｚ）は手先座標系４２でのロボットアーム５の手先の並進速度、（ωｘ、ωｙ、ωｚ）は手先座標系４２でのロボットアーム５の手先の角速度である。また、ｍはロボットアーム５のハンド３０に把持されたフレキシブル基板７４の重さであり、ｇは重力加速度である。フレキシブル基板７４の重さｍの値は、フレキシブル基板７４をハンド３０で把持する前に、人がデータ入力ＩＦ２６から力検出部５３に入力することもできるが、通常は、フレキシブル基板７４の重さｍは度々変更される値ではないため、予め設定した値とすることもできる。
【０１３０】
インピーダンス計算部５１は、ロボットアーム５に機械インピーダンス設定値への前記ロボットアーム５の機械インピーダンスの値の制御を実現する機能を果たす部分である。
【０１３１】
インピーダンス制御モードが指定された際には、インピーダンス計算部５１から手先位置及び姿勢目標補正出力ｒｄΔを出力する。力ハイブリッドインピーダンス制御モードに切り替えられた際には、フラグ（有効性を示すフラグ）で有効と指定された力成分が存在する場合には、制御パラメータ管理部２１で設定されたインピーダンスパラメータである慣性Ｍと粘性Ｄと剛性Ｋと、関節角の現在値ｑと、力検出部５３が検出した外力Ｆｅｘｔと、目標軌道生成部５５から出力されるｆｄとに基づいて、前記ロボットアーム５の機械インピーダンスの値がロボットアーム５に機械インピーダンス設定値に近づくようにする制御を実現するための手先位置及び姿勢目標補正出力ｒｄΔを、以下の式（４）によりインピーダンス計算部５１で計算し、インピーダンス計算部５１から出力する。
【０１３２】
手先位置及び姿勢目標補正出力ｒｄΔは、目標軌道生成部５５の出力する手先位置及び姿勢目標ベクトルｒｄに位置誤差計算部５０で加算され、手先位置及び姿勢補正目標ベクトルｒｄｍが位置誤差計算部５０で生成される。例えば、ｚ軸方向のみ、力をかけて挿入し、その他の成分は位置制御モードで動くようにするには、手先位置及び姿勢目標補正出力ｒｄΔのｚ成分以外を０に位置誤差計算部５０で設定する。
【０１３３】
【数５】
2011021375.tif 000107
【０１３４】
ただし、
【０１３５】
【数６】
2011021375.tif 000108
【０１３６】
【数７】
2011021375.tif 000109
【０１３７】
【数８】
2011021375.tif 000110
【０１３８】
であり、ｓはラプラス演算子である。
【０１３９】
位置誤差計算部５０は、さらに、手先位置及び姿勢補正目標ベクトルｒｄｍと、後述する順運動学計算部５８により計算される手先位置及び姿勢ベクトルｒとの誤差ｒｅを求め、求められた誤差ｒｅを位置誤差補償部５６に出力する。
【０１４０】
順運動学計算部５８には、ロボットアーム５の各関節部の各関節軸のエンコーダ４４からエンコーダ４４で計測された関節角の現在値ｑである関節角度ベクトルｑが、入出力ＩＦ２４を介して入力される。順運動学計算部５８は、ロボットアーム５の関節角度ベクトルｑから、手先位置及び姿勢ベクトルｒへの変換の幾何学的計算を行う。順運動学計算部５８で計算された手先位置及び姿勢ベクトルｒは、位置誤差計算部５０及びインピーダンス計算部５１及び目標軌道生成部５５に出力される。
【０１４１】
位置誤差補償部５６は、位置誤差計算部５０で求められた誤差ｒｅに基づいて、位置誤差補償出力ｕｒｅを近似逆運動学計算部５７に出力する。
【０１４２】
具体的には、位置誤差補償出力ｕｒｅは、
【０１４３】
【数９】
2011021375.tif 000111
【０１４４】
により計算される。ここで、ＫＰは比例ゲイン行列、ＫＩは積分ゲイン行列、ＫＤは微分ゲイン行列であり、その対角成分が手先位置ベクトルｒｅ = [ｘ、ｙ、ｚ、φ、θ、ψ]Ｔの各成分に対するゲインで構成される対角行列である。
【０１４５】
さらに、位置誤差補償部５６では、高剛性位置制御モードが設定された際に、比例ゲイン行列ＫＰ、積分ゲイン行列ＫＩ、微分ゲイン行列ＫＤをあらかじめ設定された値に大きく設定する。ここで、高剛性とは、通常の位置制御と比較して剛性が高くなることを意味し、具体的には、通常の位置制御モードと比較して大きな値を設定する。例えば、通常の位置制御モード時の２倍程度の値に設定すると、剛性を約２倍まで高くすることができる。
【０１４６】
このようにすることで、高剛性の位置制御を実現することができる。なお、前記ゲインを各成分毎に値を変えることで、例えば、ｚ軸方向のみ高剛性で、その他の方向は通常の位置制御で動作するよう制御することができる。
【０１４７】
近似逆運動学計算部５７は、位置誤差補償部５６から入力される位置誤差補償出力ｕｒｅとロボットアーム５において計測される関節角度ベクトルｑとに基づいて、近似式ｕｏｕｔ＝Ｊｒ（ｑ）−１ｕｉｎにより、逆運動学の近似計算を行う。ただし、Ｊｒ（ｑ）は、
【０１４８】
【数１０】
2011021375.tif 000112
【０１４９】
の関係を満たすヤコビ行列であり、ｕｉｎは近似逆運動学計算部５７への入力であり、ｕｏｕｔは近似逆運動学計算部５７からの出力であり、入力ｕｉｎを関節角度誤差ｑｅとすれば、ｑｅ＝Ｊｒ（ｑ）−１ｒｅのように手先の位置姿勢誤差ｒｅから関節角度誤差ｑｅへの変換式となる。
【０１５０】
従って、位置誤差補償部５６から位置誤差補償出力ｕｒｅが近似逆運動学計算部５７に入力されると、近似逆運動学計算部５７からの出力として、関節角度誤差ｑｅを補償するための関節角度誤差補償出力ｕｑｅが近似逆運動学計算部５７から入出力ＩＦ２４を介してロボットアーム５のモータドライバ２５に出力される。
【０１５１】
関節角度誤差補償出力ｕｑｅは、入出力ＩＦ２４のＤ／Ａボードを介してロボットアーム５のモータドライバ２５に電圧指令値として与えられ、各モータ４３により各関節軸が正逆回転駆動されロボットアーム５が動作する。
【０１５２】
レール制御部４８は、目標軌道生成部５５から入力されたレール可動部８ｂの位置情報に基づき、レール可動部８ｂのモータ６５を駆動制御してレール固定部８ａ上でロボットアーム５をレール可動部８ｂと共に移動させるように制御を行う。具体的には、レール可動部８ｂのモータ６５の正逆回転駆動をレール制御部４８により制御して、ロボットアーム５が連結されたレール可動部８ｂをレール固定部８ａ上で左右方向に移動可能としている。
【０１５３】
以下、ロボットアーム５のロボットアーム制御プログラムの実際の動作ステップについて、図１６のフローチャートに基づいて説明する。
【０１５４】
ロボットアーム５の関節部のそれぞれのエンコーダ４４により計測された関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）が制御装置本体部４５に取り込まれる(ステップＳ５１)。
【０１５５】
次いで、逆運動学計算部５７にて、ロボットアーム５の運動学計算に必要なヤコビ行列Ｊｒ等の計算を行う (ステップＳ５２)。
【０１５６】
次いで、順運動学計算部５８にて、ロボットアーム５からの関節角度データ（関節角度ベクトルｑ）から、ロボットアーム５の現在の手先位置及び姿勢ベクトルｒを計算する（ステップＳ５３）。
【０１５７】
次いで、動作補正部２０から送信された動作情報に基づき、目標軌道計算部５５は、ロボットアーム５の手先位置及び姿勢目標ベクトルｒｄ及び力目標ベクトルｆｄを計算する（ステップＳ５４）。
【０１５８】
次いで、力検出部５３は、モータ４３の駆動電流値ｉと、関節角度データ（関節角度ベクトルｑ）と、関節角度誤差補償出力ｕｑｅとから、ロボットアーム５の手先における等価手先外力Ｆｅｘｔを計算する（ステップＳ５５）。
【０１５９】
次いで、ステップＳ５６では、制御パラメータ管理部２１で設定された制御モードを設定する。高剛性位置制御モードのみの場合には、ステップＳ５７に処理を進める。一方、力ハイブリッドインピーダンス制御モード若しくはインピーダンス制御モード若しくはハイブリッドインピーダンス制御モードの場合には、ステップＳ５８へ処理を進める。
【０１６０】
ステップＳ５７（インピーダンス計算部５１での処理）では、制御パラメータ管理部２１において、高剛性位置制御モードが設定された場合には、インピーダンス計算部５１で、手先位置及び姿勢目標補正出力ｒｄΔを０ベクトルとする。その後、ステップＳ５９に進む。
【０１６１】
制御パラメータ管理部２１において、力ハイブリッドインピーダンス制御モード、若しくはインピーダンス制御モード若しくはハイブリッドインピーダンス制御モードが設定された場合には、制御パラメータ管理部２１において設定された機械インピーダンスパラメータの慣性Ｍと粘性Ｄと剛性Ｋと、関節角度データ（関節角度ベクトルｑ）と、力検出部５３により計算されたロボットアーム５に加わる等価手先外力Ｆｅｘｔとから、手先位置及び姿勢目標補正出力ｒｄΔが、インピーダンス計算部５１により計算される（ステップＳ５８）。
【０１６２】
次いで、位置誤差計算部５０では、手先位置及び姿勢目標ベクトルｒｄと手先位置及び姿勢目標補正出力ｒｄΔの和である手先位置及び姿勢補正目標ベクトルｒｄｍと、現在の手先位置及び姿勢ベクトルｒとの差である手先位置及び姿勢の誤差ｒｅが計算される（ステップＳ５９、ステップＳ６０）。ステップＳ６０では、位置誤差補償部５６の具体例としてはＰＩＤ補償器が考えられる。定数の対角行列である比例、微分、積分の３つのゲインを適切に調整することにより、位置誤差が０に収束するように制御が働く。ステップＳ５９では、そのゲインを、ある値まで大きくすることで、高剛性の位置制御を実現する。
【０１６３】
ステップＳ５９又はステップＳ６０に次いでステップＳ６１では、近似逆運動学計算部５７では、ステップＳ５２で計算したヤコビ行列Ｊｒの逆行列を近似逆運動学計算部５７で乗算することにより、位置誤差補償出力ｕｒｅを、手先位置及び姿勢の誤差に関する値から関節角度の誤差に関する値である関節角度誤差補償出力ｕｑｅに、近似逆運動学計算部５７により変換する。
【０１６４】
ステップＳ６１に次いで、関節角度誤差補償出力ｕｑｅが、近似逆運動学計算部５７から入出力ＩＦ２４を通じ、モータドライバ２５に与えられ、それぞれのモータ４３を流れる電流量を変化させることによりロボットアーム５のそれぞれの関節軸の回転運動が発生する（ステップＳ６２）。
【０１６５】
以上のステップＳ５１〜ステップＳ６２が制御の計算ループとして繰り返し実行されることにより、ロボットアーム５の動作の制御、すなわち、ロボットアーム５の機械インピーダンスの値を、前記適切に設定された設定値に制御する動作を実現することができる。
【０１６６】
次に、補正動作種別決定部２３と動作補正部２０について詳細に説明する。
【０１６７】
補正動作種別決定部２３は、動作補正部２０にて、人の手１６でロボットアーム５に力をかけることで組立動作の補正を行うことが可能な補正の種別を決定する。以下の６種類の補正の種別がある。
【０１６８】
１つ目の補正の種別は、「作業面の位置の移動」である。具体的には、図１９Ａのように動作する動作情報を使って、モデルチェンジにより大きさ又は剛性が変化したフレキシブル基板７４ａを機器６の挿入口７５に挿入するとき、図１９Ｂのようにフレキシブル基板７４ａが挿入口７５ａにひっかかってフレキシブル基板７４ａのコネクタ部を挿入口７５ａ内に挿入できない場合がある。そのような場合に、図１９Ｃのように、ロボットアーム５が位置制御モードで機器６の挿入口７５ａにフレキシブル基板７４ａを挿入している最中に、図１９Ｃのように人の手１６でロボットアーム５に横方向から力をかけると、動作補正部２０によって、図１９Ｄのようにロボットアーム５の作業面（例えば、機器６の挿入口７５の挿入面）に対する水平方向の位置をロボットアーム５が移動することで、ロボットアーム５を機器６の挿入口７５の挿入面に対して平行移動することができる。
【０１６９】
２つ目の補正の種別は、フレキシブル基板７４の挿入時の「力のかけ具合」である。これは、現在動作中（動作データベース１７の進捗情報が「１」）の動作のフラグ（有効性を示すフラグ）において、力のビットが「１」となっている場合に有効である。図１８Ｂに示すように、ロボットアーム５でフレキシブル基板７４ｂの挿入口７５ｂへの挿入作業中に、図１８Ｃのように、人の手１６でロボットアーム５に上方から下向きに力をかけると、動作補正部２０によって、図１８Ｄのように力のかけ具合を強めに、逆に、人の手１６でロボットアーム５に下方から上向きに力をかけると、力のかけ具合を弱めに補正することができる。
【０１７０】
３つ目の補正の種別は、ロボットアーム５の手先「速度」である。図２２Ａのように、フレキシブル基板７４を把持したロボットアーム５が機器６の挿入口７５に向かって移動中に、図２２Ｂのように、ロボットアーム５の進行方向に反する方向に人の手１６でロボットアーム５に力をかけると、動作補正部２０によって、図２２Ｃのように、ロボットアーム５の移動時の速度を減速させることができる。逆に、ロボットアーム５が移動中に、人の手１６がロボットアーム５の進行方向に向かって人の手１６でロボットアーム５に力をかけると、動作補正部２０によって、ロボットアーム５の移動時の速度を加速させることができる。
【０１７１】
４つ目の補正の種別は、「方向（姿勢）の変更」である。図２０Ａ及び図２０Ｃ（図２０Ａを上から見た図）のように動作する動作情報を使って、モデルチェンジにより、図２０Ａの機器６の挿入口７５の向きが図２０Ｂの挿入口７５ｃのように変更された場合には、図２０Ｂのように、フレキシブル基板７４を把持したロボットアーム５を、図２０Ａの機器６の挿入口７５に対する動作と同様な動作で挿入を行うと、フレキシブル基板７４が挿入口７５ｃに引っかかってフレキシブル基板７４を挿入口７５ｃに挿入することができない。その場合に、図２０Ｄのように、ロボットアーム５によるフレキシブル基板７４の挿入作業中に、人の手１６でロボットアーム５（特に、フレキシブル基板７４を把持しているハンド３０）の姿勢の向きを変更するようにロボットアーム５（特にハンド３０又はハンド近傍の部分）に力をかけると、動作補正部２０によって、図２０Ｅのようにロボットアーム５（特に、フレキシブル基板７４を把持しているハンド３０）の姿勢を変更して、挿入口７５ａに合わせてロボットアーム５（特に、ハンド３０）の進行方向を変更することができる。これは、ロボットアーム５の手先の姿勢（φ、θ、ψ）を変更することで実現できる。
【０１７２】
５つ目の補正の種別は、「作業をして欲しくない領域」である。人１６Ａの手１６で図２３に示すように、ロボットアーム５（例えば、ハンド３０）を把持して、作業をして欲しくない領域ＲＢの輪郭に沿って、ロボットアーム５に力をかけてロボットアーム５（例えば、ハンド３０）を移動させると、動作補正部２０によって、図２３のように、作業をして欲しくない領域ＲＢを設定することができる。
【０１７３】
６つ目の補正の種別は、「作業面垂直方向の移動」である。図２４Ａのように、ロボットアーム５で機器６の挿入口７５に対するフレキシブル基板７４の挿入作業中に、図２４Ｂのように人の手１６でロボットアーム５に、上方向の力をかけて、ロボットアーム５を上方向に移動させると、動作補正部２０によって、例えば、図２４Ｃに示すように、機器６の上向きに突出した凸部６ａでのフレキシブル基板７４の挿入作業を行うことができる。
【０１７４】
補正動作種別決定部２３は、前記の６種類の補正の種別のうち、１種類の補正の種別を決定する。具体的には、ボタンなどのデータ入力ＩＦ２６にて６種の補正の種別のうちの１つの補正の種別を選択するか、若しくは、力検出部５３で検出されて情報取得部１００で取得された人の手１６でロボットアーム５にかけた力と、動作データベース１７に記憶されて情報取得部１００で取得されたロボットアーム５にかけた力と、補正の種別との関係情報（例えば、力のかかる向きと大きさと補正の種別との関係情報）とにより、補正動作種別決定部２３で種別を推定する。
【０１７５】
以下、補正の種別の推定方法の具体的な補正種別推定処理について、図１４のフローチャートを使って詳細に説明する。
【０１７６】
組立ロボット１の電源ボタン２６ａを「ＯＮ」にした状態で、人の手１６でロボットアーム５を把持して力をロボットアーム５に加えていない場合は、ロボットアーム５は動かない。人の手１６でロボットアーム５に力を加えている場合は、インピーダンス制御モード（人の手１６の力を検出した方向にインピーダンス制御で移動させるモード）でロボットアーム５を移動させたい方向に移動させることができる。この場合、制御部２２の力検出部５３にて、ロボットアーム５に作用する力を検出し、力検出部５３で検出された力の情報が、情報取得部１００を介して、補正動作種別決定部２３に入力される（ステップＳ７１）。
【０１７７】
次いで、ステップＳ７２では、力検出部５３で検出しかつ情報取得部１００で取得された力の全ての成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分）が、ある閾値（具体的には、図１７のＩＤ「１」の（ｆdｘ、ｆdｙ、ｆdｚ、ｆdφ、ｆdθ、ｆdψ））以下であるか否かを補正動作種別決定部２３で判断する。力検出部５３で検出しかつ情報取得部１００で取得された力の全ての成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分）が、前記ある閾値以下であると補正動作種別決定部２３で判断した場合は、ロボットアーム５は動かず、補正はせず（ステップＳ８８）、補正動作の種別推定方法の補正種別推定処理を終了する。その場合の制御モードは、インピーダンス制御モードである。
【０１７８】
ステップＳ７２にて、力検出部５３で検出しかつ情報取得部１００で取得された力のいずれかの成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分のうちのいずれかの成分）が、前記ある閾値（具体的には、図１７のＩＤ「１」の（ｆdｘ、ｆdｙ、ｆdｚ、ｆdφ、ｆdθ、ｆdψ））を越えると補正動作種別決定部２３で判断した場合は、ステップＳ７３に進む。
【０１７９】
ステップＳ７３では、さらに、現在の組立ロボット１が動作データベース１７で動作しているかどうか、を情報取得部１００を介して取得した情報を基に補正動作種別決定部２３で判定する。具体的には、動作選択部２９にて作業を選択しておらず、かつ、動作データベース１７の全ての作業ＩＤについて、進捗情報が「０」となっている、と補正動作種別決定部２３で判断する場合（作業を開始していない状態）は、動作データベース１７で動作していないと補正動作種別決定部２３で判定して、ステップＳ７６に進む。動作選択部２９にて組立作業を選択して組立を開始しており、かつ、進捗情報が「１」となっていると補正動作種別決定部２３で判断している場合は、動作データベース１７で動作していると補正動作種別決定部２３で判定して、ステップＳ７４に進む。
【０１８０】
ステップＳ７４では、人の手１６でロボットアーム５を把持して、ロボットアーム５の動作を補正したい方向に力を加えるとき、力検出部５３でロボットアーム５に加えられた力を検出し、力検出部５３で検出されかつ情報取得部１００を介して取得した人の手１６からの力（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψ）のそれぞれのある一定時間の変位量を補正動作種別決定部２３で計測し、位置成分（ｆｘ、ｆｙ、ｆｚ）と姿勢成分（ｆφ、ｆθ、ｆψ）のどちらの変位量が大きいかを補正動作種別決定部２３で計測する。具体的には、図１５に示すように、（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψ）それぞれの時系列の力を補正動作種別決定部２３で計測し、ある一定時間（例えばｔｉｍｅ  １）に力がどれくらい変位したか、を補正動作種別決定部２３で計測し、最も変位の大きかった成分を補正動作種別決定部２３で計測する。この例では、fφの変位が最も大きいので、姿勢成分が位置成分より力がかかっていると補正動作種別決定部２３で判断してステップＳ７９へ進む。
【０１８１】
ステップＳ７４にて姿勢の変位量が位置の変位量より大きいと補正動作種別決定部２３で判断する場合には、補正の種別は「方向（姿勢）の変更」の種別であると補正動作種別決定部２３で決定して、補正の種別推定処理を終了する（ステップＳ７９）。その際の制御モードは、補正の種別を決定する前と同様の制御モード（力ハイブリッドインピーダンス制御モード）である。
【０１８２】
一方、ステップＳ７４にて位置の変位量が姿勢の変位量以上であると補正動作種別決定部２３で判断する場合には、さらに、作業面（例えば、機器６の挿入口７５の挿入面）に垂直な方向の力成分（例えば、機器６の挿入口７５が地面（例えば、機器６の載置面）に水平になるように設置された機器６にフレキシブル基板７５のコネクタ部を挿入する場合、又は、組立作業の一部として、地面（例えば、機器６の載置面）に水平になるように設置された機器６の研磨対象面を研磨する研磨作業の場合はｆｚ）が、ある閾値（具体的には、図１７のＩＤ「１」のfdｚ）以上かどうか、を補正動作種別決定部２３で判定する（ステップＳ７５）。
【０１８３】
ステップＳ７５で、作業面（例えば、機器６の挿入口７５の挿入面）に垂直な方向の力成分が前記ある閾値より小さい、と補正動作種別決定部２３で判定された場合は、さらに作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向（作業面沿いの方向）の力成分（例えば作業台７に水平に設定された機器６にフレキシブル基板７４を挿入する場合はｆｘ、ｆｙのいずれか若しくは両方）が、ある閾値（具体的には、図１７のＩＤ「１」のｆｄｘ、ｆｄｙ）以上であるかどうかを補正動作種別決定部２３で判定する（ステップＳ８０）。
【０１８４】
ステップＳ８０にて、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向（作業面沿いの方向）の力成分が前記ある閾値（具体的には、図１７のＩＤ「１」のｆｘ、ｆｙ）未満であると補正動作種別決定部２３で判断する場合は、補正なし（種別なし）と決定して、補正種別推定処理を終了する（ステップＳ８１）。補正なしの場合は補正を中止して作業を行う。
【０１８５】
ステップＳ８０にて、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向（作業面沿いの方向）の力成分が前記ある閾値以上であると補正動作種別決定部２３で判断する場合は、ステップＳ８３に進む。
【０１８６】
ステップＳ８３では、さらに補正動作種別決定部２３で算出された作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向（作業面沿いの方向）のロボットアーム５の移動量が、ある閾値（具体的には、図１７のＩＤ「２」のｇｘ、ｇｙ）以上であると補正動作種別決定部２３で判断する場合は、補正の種別として「作業面の位置の移動」の種別を補正動作種別決定部２３で決定して、補正種別推定処理を終了する（ステップＳ８４）。なお、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向の移動量を補正動作種別決定部２３で算出するとき、具体的には、制御部２２から制御パラメータ管理部２１又は情報取得部１００を介して人の操作前のロボットアーム５の手先位置と操作中の手先位置を補正動作種別決定部２３に入力し、操作中の手先位置から操作前の手先位置を減じた値を移動量として補正動作種別決定部２３で算出することができる。また、作業面に垂直な方向の移動量を補正動作種別決定部２３で算出するとき、具体的には、制御部２２から制御パラメータ管理部２１又は情報取得部１００を介して人の操作前のロボットアーム５の手先位置のｚ成分と操作中の手先位置のｚ成分を補正動作種別決定部２３に入力し、操作中の手先位置のｚ成分から操作前の手先位置のｚ成分を減じた値を移動量として補正動作種別決定部２３で算出することができる。
【０１８７】
ステップＳ８３にて、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向の移動量が前記ある閾値未満であると補正動作種別決定部２３で判定された場合は、補正の種別として、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向の「速度」の種別を決定して、補正種別推定処理を終了する（ステップＳ８５）。
【０１８８】
また、ステップＳ７５で、作業面（例えば、機器６の挿入口７５の挿入面）に垂直な力が前記ある閾値以上であると補正動作種別決定部２３で判定された場合は、さらに、補正動作種別決定部２３で算出された作業面（例えば、機器６の挿入口７５の挿入面）のロボットアーム５の垂直方向の移動量が、ある閾値（具体的には、図１７のＩＤ「２」のｇｚ）より大きいか否かを補正動作種別決定部２３で判断する（ステップＳ８２）。
【０１８９】
ステップＳ８２において、作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向の移動量が、前記ある閾値より大きいと補正動作種別決定部２３で判断する場合には、補正の種別して「作業面垂直方向の移動」の種別を補正動作種別決定部２３で決定して、補正種別推定処理を終了する（ステップＳ８７）。
【０１９０】
また、ステップＳ８２で作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向の移動量が前記ある閾値以下であると補正動作種別決定部２３で判断する場合には、補正の種別として「力の補正」と決定し（ステップＳ８６）、補正種別推定処理を終了する。
【０１９１】
また、ステップＳ７３において、動作データベース１７で動作していないと補正動作種別決定部２３で判定された場合には、ステップＳ７６に進み、ステップＳ７６にて、さらに、人の手１６でロボットアーム５にかけている力が作業面（例えば、機器６の挿入口７５の挿入面）に水平であり、かつ、ある一定時間の水平方向の移動量が、ある閾値（具体的には、図１７のＩＤ「２」のｇｘ、ｇｙ）以上であるか否かを補正動作種別決定部２３で判断する。
【０１９２】
ステップＳ７６において、人の手１６でロボットアーム５にかけている力が作業面（例えば、機器６の挿入口７５の挿入面）に水平であり、かつ、ある一定時間の水平方向の移動量が、前記ある閾値以上であると補正動作種別決定部２３で判断する場合には、補正の種別として「作業をして欲しくない領域」の種別であると決定し（ステップＳ７８）、補正種別推定処理を終了する。ステップＳ７６で、人の手１６でロボットアーム５にかけている力が作業面（例えば、機器６の挿入口７５の挿入面）に対して水平ではない場合（例えば、垂直である場合）、又は、作業面（例えば、機器６の挿入口７５の挿入面）に水平な力であっても水平方向の移動量が前記ある閾値未満であると補正動作種別決定部２３で判断する場合は、補正の種別として「補正なし」と決定し（ステップＳ７７）、補正種別推定処理を終了する。
【０１９３】
以上により、ボタンなどのデータ入力ＩＦ２６を使わずに、補正動作種別決定部２３により、補正の種別を切り替えることができる。
【０１９４】
動作補正部２０は、動作データベース１７の位置と姿勢と時間とに基づいて動作中に、人の手１６でロボットアーム５に力をかけることで、動作データベース１７の動作情報を補正する機能である。
【０１９５】
以下、動作補正部２０の機能について説明する。
【０１９６】
人の手１６で、組立ロボット１の作業台７に配置されているデータ入力ＩＦ２６（例えば操作盤２６Ａの電源ボタン２６ａなど）により電源を入れると、動作補正部２０は、インピーダンス制御モードで動作するよう、制御パラメータ管理部２１へ指令を出す。
【０１９７】
次に、人の手１６で、動作選択部２９により、動作データベース１７の作業の一覧の中から所望の組立作業を選択して、組立動作開始の指示を行う。動作補正部２０は、動作データベース１７の中から選択された作業ＩＤの動作情報（具体的には、レール可動部８ｂの位置及びロボットアーム５の位置と姿勢と時間と）に基づきレール可動部８ｂ及びロボットアーム５の制御モードを設定する。この例では、図４の作業ＩＤ「３」が選択されたので、動作データベース１７の動作ＩＤ「１」に対するフラグ（有効性を示すフラグ）のうち、フラグのビットが「１」になっているロボットアーム５の位置及び姿勢のそれぞれに対して、ハイブリッドインピーダンス制御モード（位置制御モードで動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード）が動作補正部２０で設定され、制御パラメータ管理部２１へ指令を出す。動作補正部２０から制御パラメータ管理部２１へ指令を出すと、図２１Ａに示すように、挿入口７５に向かって、フレキシブル基板７５をハンド３０で把持したロボットアーム５が移動する。動作ＩＤ「１」から順次次の動作情報により、制御パラメータ管理部２１へ指令を出す。動作ＩＤ「９」は力ハイブリッドインピーダンス制御モードで動作するように、制御パラメータ管理部２１へ指令を出す。
【０１９８】
力ハイブリッドインピーダンス制御モードの場合は、動作データベース１７の動作ＩＤに対するフラグ（有効性を示すフラグ）のうち、フラグのビットが「１」になっているロボットアーム５の位置及び姿勢のそれぞれに対して、ハイブリッドインピーダンス制御モード（位置制御モードで動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード）が動作補正部２０で設定され、力のフラグ（有効性を示すフラグ）のビットが「１」になっている成分は力制御モードが動作補正部２０で設定される。位置及び姿勢の６成分のうち、ハイブリッドインピーダンス制御モードも力制御モードもいずれも設定されていない成分は、インピーダンス制御モードが動作補正部２０で設定される。
【０１９９】
例えば、図４の作業ＩＤ「３」の動作ＩＤ「９」の場合は、挿入口７５に対してフレキシブル基板７４を挿入する作業を示しており、動作ＩＤが「９」の場合のフラグは１，２，８ビット目のみ「１」であるので、ｘ軸成分及びｙ軸成分に対しては、ハイブリッドインピーダンス制御モードが動作補正部２０で設定されるとともに、ｚ軸成分に対しては力制御モードが動作補正部２０で設定され、姿勢成分に対してはインピーダンス制御モードが動作補正部２０で設定される。
【０２００】
制御パラメータ管理部２１は、動作補正部２０から指令を受ける。すなわち、力ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードで組立作業をするように動作補正部２０から制御パラメータ管理部２１へ指令を出すと、図２１Ａ〜図２１Ｂに示すように、ロボットアーム５が挿入口７５に向かって移動した後、挿入口７５にフレキシブル基板７４を挿入する作業をロボットアーム５が開始する。
【０２０１】
次に、モデルチェンジなどにより、フレキシブル基板７４又は挿入口７５の仕様変更に伴って、人が状況などを確認して、図１９Ｃに示すように、もう少し横方向にロボットアーム５を平行移動させて作業させたい場合を例にとって説明する。  図１９Ｃに示すように、人の手１６でロボットアーム５を直接つかんで、作業面（例えば、機器６の挿入口７５の挿入面）に対して平行移動するように作業面（例えば、機器６の挿入口７５の挿入面）に平行に力をロボットアーム５にかける。
【０２０２】
補正動作種別決定部２３により、情報取得部１００で取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７に記憶された情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６で、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向に力をロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させているので、ステップＳ８４において、補正の種別として「作業面の位置の移動」の種別であると補正動作種別決定部２３で決定する。
【０２０３】
図４の作業ＩＤが「３」の場合で動作ＩＤが「９」に示す作業の場合は、ｘ軸成分及びｙ軸成分は力ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより人の手１６でロボットアーム５にかけられた力を力検出部５３で検出して人の手１６でロボットアーム５に力をかけた方向にロボットアーム５をｘ軸方向及びｙ軸方向に移動させて、図１９Ｄのようにフレキシブル基板７５の挿入位置を補正することができる。
【０２０４】
なお、この例では、ｘ軸の方向及びｙ軸の方向にのみ動作を補正したいので、補正動作種別決定部２３で補正の種別が決定されたタイミングで、補正動作種別決定部２３により、図６の補正パラメータフラグの０，１ビット目を「１」に設定するとともに、その他のビットを「０」に設定して、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ｘ軸及びｙ軸以外の移動ができないように設定することができる。さらに、インピーダンス制御モード時の機械インピーダンス設定値を補正動作種別決定部２３で変更して補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ロボットアーム５のｘ軸方向及びｙ軸方向の剛性を他の方向の剛性よりも低くして、人の手１６でロボットアーム５をｘ軸方向及びｙ軸方向に動かしやすくし、ｘ軸方向及びｙ軸方向以外の方向の剛性を高くして、人の手１６でロボットアーム５をｘ軸方向及びｙ軸方向以外の方向に動かしにくくするようにすることができる。これにより、ロボットアーム５のｘ軸成分及びｙ軸成分のみを補正したい場合に、ロボットアーム５のｚ軸成分の補正を誤って行なうことがないようにできる。また、ロボットアーム５のｘ軸方向及びｙ軸方向の補正中に、補正動作種別決定部２３により、ｚ軸成分の作業面（例えば、機器６の挿入口７５の挿入面）にかける力を、補正前の動作時より弱く若しくは小さく（具体的には半分程度に）することもできる。又は、力制御を停止するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すこともできる。具体的には、動作データベース１７のフラグの６〜１７ビット目を「０」に補正動作種別決定部２３で設定する。これにより、ｘ軸方向及びｙ軸方向にロボットアーム５を移動させて補正している最中に、ロボットアーム５に力をかけて機器６を傷つけることを防ぐことができる。
【０２０５】
上述のように、人の手１６でロボットアーム５を把持して、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向へ力をかけてロボットアーム５をΔｘ分及びΔｙ分だけｘ軸方向及びｙ軸方向に移動させた場合に、Δｘの値及びΔｙの値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。
【０２０６】
動作補正部２０では、選択された作業ＩＤの動作情報の全てのｘ座標の値からΔｘを減じ、さらに、全てのｙ座標の値から、Δｙを減じて補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、Δｘ分及びΔｙ分を補正した座標でロボットアーム５が動作するように制御部２２へ指示する。これにより、図１９Ｄのような動作に補正される。次に、Δｘ及びΔｙ分だけ減じた動作情報を、動作記憶部１５で動作データベース１７に記憶する。
【０２０７】
次に、図２４Ｂのように、例えば、機器６上を作業中に、機器６に設置された凸部６ａで挿入作業する場合は、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して垂直方向の上向きに移動するように作業面（例えば、機器６の挿入口７５の挿入面）に垂直に力をロボットアーム５にかける。
【０２０８】
補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６でロボットアーム５に、作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向に力をかけて、ロボットアーム５を前記ある閾値以上移動させているので、ステップＳ８７において、補正の種別として「作業面の垂直方向の移動」の種別であると補正動作種別決定部２３で決定する。
【０２０９】
力ハイブリッドインピーダンス制御モード若しくはハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人の手１６の力を力検出部５３で検出してロボットアーム５に人の手１６で力をかけた方向にロボットアーム５をｚ軸方向に移動させて、図２４Ｃのように挿入位置をｚ軸方向に補正することができる。
【０２１０】
なお、この例では、ｚ軸の方向にのみ動作を補正したいので、補正動作種別決定部２３で補正の種別が決定されたタイミングで、補正動作種別決定部２３により、図６の２ビット目を「１」に設定するとともに、それ以外のビットを「０」に設定して、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ｚ軸方向以外の移動ができないように設定することができる。さらに、インピーダンス制御モード時の機械インピーダンス設定値を補正動作種別決定部２３で変更して補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ｚ軸方向の剛性を他の方向の剛性よりも低くして、人の手１６でロボットアーム５をｚ軸方向に動かしやすくし、ｚ軸方向以外の剛性を高くして、人の手１６でロボットアーム５をｚ軸方向以外の方向に動かしにくくするようにすることができる。
【０２１１】
また、ロボットアーム５のｚ軸方向の動作を補正する際に、補正動作種別決定部２３により、ｚ軸成分の作業面（例えば、機器６の挿入口７５の挿入面）にかける力を、補正前の動作時より弱く若しくは小さく（具体的には半分程度に）することもできる。又は、力制御を停止するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すこともできる。具体的には、動作データベース１７のフラグの６〜１７ビット目を「０」に補正動作種別決定部２３で設定する。これにより、ｚ軸方向にロボットアーム５を移動させている最中に、ロボットアーム５に力をかけて機器６を傷つけることを防ぐことができる。
【０２１２】
上述のように、人の手１６でロボットアーム５を把持して、作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向へ力をかけてロボットアーム５をΔｚ分だけｚ軸方向に移動させた場合に、Δｚの値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。
【０２１３】
動作補正部２０では、選択された作業ＩＤの動作情報の全てのｚ座標の値からΔｚを減じて補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、Δｚ分の補正した座標でロボットアーム５が動作するように制御部２２へ指示する。これにより、図２４Ｃのような動作に補正される。次に、Δｚ分減じた動作情報を、動作記憶部１５で動作データベース１７に記憶する。
【０２１４】
図２０Ｂのように、例えば、ロボットアーム５の姿勢を変更させる場合は、図２０Ｄのように、人の手１６でロボットアーム５を直接把持して、変更したい方向にロボットアーム５を移動させる。
【０２１５】
補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６でロボットアーム５を変更したい方向に移動させようと力をかけているので、ステップＳ７９において、補正の種別として「方向（姿勢）の変更」の種別であると補正動作種別決定部２３で決定する。
【０２１６】
ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して人の手１６でロボットアーム５に力をかけた方向にロボットアーム５をφ軸方向に回転させて、図２０Ｅのように挿入方向を補正することができる。
【０２１７】
なお、この例では、φ軸の方向にのみ動作を補正したいので、補正動作種別決定部２３で補正の種別が決定されたタイミングで、補正動作種別決定部２３により、図６の補正パラメータフラグの３ビット目を「１」に設定するとともに、それ以外のビットを「０」に設定して、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。これにより、φ軸方向以外の移動ができないように補正動作種別決定部２３で設定することができる。さらに、インピーダンス制御モード時の機械インピーダンス設定値を補正動作種別決定部２３で変更して補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、φ軸方向の剛性を他の方向の剛性より低くして、人の手１６でロボットアーム５をφ軸方向に動かしやすくし、φ軸方向以外の剛性を高くして、人の手１６でロボットアーム５をφ軸方向以外の方向に動かしにくくするようにすることができる。
【０２１８】
また、ロボットアーム５のφ軸方向の補正中に、補正動作種別決定部２３により、ｚ軸成分の作業面（例えば、機器６の挿入口７５の挿入面）にかける力を、補正前の動作時より弱く若しくは小さく（具体的には半分程度に）することができる。又は、力制御を停止するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すこともできる。具体的には、動作データベース１７のフラグの６〜１７ビット目を「０」に補正動作種別決定部２３で設定する。これにより、φ軸方向に移動させている最中に、ロボットアーム５に力をかけて機器６を傷つけることを防ぐことができる。
【０２１９】
上述のように、人の手１６でロボットアーム５を把持して、作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向へ力をかけてロボットアーム５をΔφ分だけφ軸方向に回転させた場合に、Δφの値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。
【０２２０】
動作補正部２０では、選択された作業ＩＤの動作情報の全てのφ座標の値からΔφを減じて補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、Δφ分の補正した座標でロボットアーム５が動作するように制御部２２へ指示する。これにより、図２０Ｅのような動作に補正される。次に、Δφ分だけ減じた動作情報を、動作記憶部１５で動作データベース１７に記憶する。
【０２２１】
以上により、動作補正部２０は、動作データベース１７の位置と姿勢と時間とにより、ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６でロボットアーム５に力をかけることで、生成された位置を方向別に補正することができるようになる。
【０２２２】
次に、図１８Ｃのように、組立作業時の作業面（例えば、機器６の挿入口７５の挿入面）に対する力を変更する場合は、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して垂直方向に力をロボットアーム５にかける。
【０２２３】
補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）の垂直方向に力をロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させていないので、ステップＳ８６において、補正の種別として「力の補正」の種別であると補正動作種別決定部２３で決定する。
【０２２４】
補正動作種別決定部２３で補正の種別が「力の補正」であると決定したタイミングで、力ハイブリッドインピーダンス制御モードから高剛性位置制御モードで動作するよう補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。補正動作種別決定部２３から制御パラメータ管理部２１への指令時に、高剛性位置制御モードでは、方向別に位置制御時の高剛性を補正動作種別決定部２３で設定することができるため、例えば図４の動作データベース１７の作業ＩＤ「３」でかつ動作ＩＤ「９」の動作のフラグは、０、１、８ビットが「１」に設定されているので、ｚ軸方向は力制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するため、ｚ軸方向のみ高剛性位置制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。
【０２２５】
次に、図１８Ｃに示すように、ロボットアーム５がフレキシブル基板７４の挿入作業のために動作している最中に、人の手１６でロボットアーム５を直接把持して、挿入する力を強め（より強い力）に変更をしたい場合には、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に向かってロボットアーム５に下方向に力をかける。高剛性位置制御モードでは、組立作業時のハイブリッドインピーダンス制御モードのうち、方向別設定された位置制御モードを、さらに高剛性にしたモードで、かつ、位置誤差補償部５６でのゲインを大きく（具体的には、組立作業時の位置制御モードの２倍程度に）することで実現し、人の手１６でロボットアーム５に力をかけると、ロボットアーム５を容易に移動させることができず、人の手１６でロボットアーム５にかけた力を力検出部５３で検出することができる。制御部２２の力検出部５３で検出された力を動作補正部２０に通知する。動作補正部２０に通知された力を、動作記憶部１５で動作データベース１７に記憶することで、強めに（より強い力で）挿入するよう動作を補正することができる。人が補正を終了したい場合は、ロボットアーム５を把持して力をロボットアーム５にかけることを止める。人の手１６でロボットアーム５に力をかけない場合は、図１４のステップＳ７２により、力の全ての成分が前記閾値以下になるので、補正動作種別決定部２３により、補正の種別として「補正なし」であると決定する（図１４のステップＳ８８）。動作補正部２０は、「補正なし」の情報を受けて、高剛性の位置制御モードからハイブリッドインピーダンス制御モードで制御するよう、補正動作種別決定部２３から制御パラメータ管理部２１に指令を出す。これにより、補正後の動作データベース１７で作業を行う。
【０２２６】
以上により、動作補正部２０は、動作データベース１７の力の情報により、ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６が力をかけることで、補正された力で挿入するように補正することができるようになる。
【０２２７】
次に、図２２Ｂのように、ロボットアーム５の移動時の速度を変更する場合は、人の手１６でロボットアーム５を直接把持して、加速したい場合は、挿入のためのロボットアーム５の進行方向と同じ向きに人の手１６でロボットアーム５に力をかける一方、減速したい場合は、挿入のためのロボットアーム５の進行方向に逆らう向きに人の手１６でロボットアーム５に力をかける。その際に、ロボットアーム５の手先位置の速度を変えても良いが、位置は前記ある閾値以上動かさないように人の手１６でロボットアーム５に力をかける。
【０２２８】
補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６でロボットアーム５にかけた力と動作データベース１７の情報とにより、図１４のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向に力をロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させていないので、図１４のステップＳ８５により、補正の種別として、作業面（例えば、機器６の挿入口７５の挿入面）に水平な方向の「速度」の種別であると補正動作種別決定部２３で決定する。
【０２２９】
ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５をｘ軸方向及びｙ軸方向に移動させる。動作データベース１７で例えば作業ＩＤと動作ＩＤとで示されたロボットアーム５の位置（ｘ１、ｙ２、ｚ１）から、次の動作ＩＤのロボットアーム５の位置（ｘ２、ｙ２、ｚ２）まで移動するのにかかる時間をｔ１とすると、ロボットアーム５の速度を人の手１６の力で変更した場合（図２２Ｂ参照）には、すなわち、位置（ｘ１、ｙ２、ｚ１）から位置（ｘ２、ｙ２、ｚ２）までに移動するのにかかる時間がｔ１からｔ２に変更された場合には、時間ｔ２の値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０では、選択された作業ＩＤの動作情報について、ｔ１の時間からｔ２の時間に変更して、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１において、補正した時間であるｔ２で動作するように制御パラメータ管理部２１から制御部２２へ指示する。これにより、図２２Ｃのような動作に補正される。次に、時間ｔ２を、動作記憶部１５で動作データベース１７に記憶する。
【０２３０】
以上により、動作補正部２０は、動作データベース１７の位置と姿勢と時間との情報により、力ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６でロボットアーム５に力をかけることで、ロボットアーム５の動作速度を補正することができるようになる。
【０２３１】
図２３に示すように、組立ロボット１に作業をして欲しくない領域ＲＢを、ロボットアーム５を使って設定する場合を例にとって説明する。
【０２３２】
人の手１６で組立ロボット１の上部に配置されているデータ入力ＩＦ２６（例えば操作盤２６Ａの電源ボタン２６ａなど）により電源を入れると、動作補正部２０は、インピーダンス制御モードで動作するよう、制御パラメータ管理部２１へ指令を出す。動作選択部２９にて作業を選択していない状態で、図２３に示すように、人１６Ａの手１６がロボットアーム５（例えばハンド３０など）を直接把持して、作業面（例えば、機器６が載置されている作業台７の上面）に対して平行な方向に移動するようにロボットアーム５を移動させて、作業をして欲しくない領域ＲＢの輪郭に沿って、ロボットアーム５（例えばハンド３０）を移動させる。図２５Ａは、作業面（例えば、機器６が載置されている作業台７の上面）を上方から見た図で、作業をして欲しくない領域ＲＢを斜線の領域とすると、人の手１６がロボットアーム５を移動させて、矢印のように、作業をして欲しくない領域ＲＢの輪郭にロボットアーム５（例えばハンド３０）を沿わせて、移動させる。その際、ロボットアーム５の手先（ハンド３０）の上面の中央先端にマーク６３が付与されており（図２５Ａ及び図２５Ｂ参照）、作業をして欲しくない方向にマーク６３を向けて移動させる。
【０２３３】
補正動作種別決定部２３により、図１４に示した補正種別推定処理を実行して動作データベース１７で動作していないと判定し（ステップＳ７２，Ｓ７３，Ｓ７６）、さらに、人の手１６でロボットアーム５にかけている力が作業面（例えば、機器６が載置されている作業台７の上面）に水平であり、かつ、ある一定時間の水平方向の移動量が、前記ある閾値以上の場合は、ステップＳ７８において、補正の種別として「作業をしてほしくない領域」の種別であると決定する。
【０２３４】
インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５をｘ軸方向及びｙ軸方向に移動させて、図２５Ａのように、位置（ｘ１、ｙ１）、位置（ｘ２、ｙ２）、位置（ｘ３、ｙ３）、位置（ｘ４、ｙ４）の順にロボットアーム５（例えばハンド３０）を移動させる。このとき、これらの位置情報が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０は、その指令を受けて、これらの位置情報が作業不可領域ＲＢの情報として、動作記憶部１５により作業不可領域データベース２８に記憶する。これらの４つの位置が作業不可領域ＲＢの頂点の情報であることは、例えば、ある一定間隔で人が移動させたロボットアーム５の手先位置を取得して、取得した手先位置の座標をつなげて領域を生成し、それを作業不可領域ＲＢとすることができる。さらに、どのような形の領域とするかを決定する機能を追加し、例えば、「矩形」と設定されている場合は、９０度近くの角度で移動方向が変われば、その位置を頂点の情報として記憶し、「ランダム」と設定された場合は、ある一定間隔で人が移動させたロボットアーム５の手先位置を取得して、取得した手先位置の座標をつなげて生成し、それを作業不可領域ＲＢとすることができる。
【０２３５】
なお、この例では、ｘ軸の方向及びｙ軸の方向にのみロボットアーム５の動作を補正したいので、補正動作種別決定部２３で、補正の種別が決定されたタイミングで、図６の補正パラメータフラグの０，１ビット目を「１」に設定するとともに、その他のビットを「０」に設定して、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ロボットアーム５がｘ軸方向及びｙ軸方向以外の軸方向への移動ができないように設定することができる。さらに、インピーダンス制御モード時の機械インピーダンス設定値を変更して補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出すことで、ｘ軸方向及びｙ軸方向の剛性を低くして、人の手１６でロボットアーム５をｘ軸方向及びｙ軸方向に動かしやすくし、ｘ軸方向及びｙ軸方向以外の軸方向の剛性を高くして、人の手１６でロボットアーム５をｘ軸方向及びｙ軸方向以外の軸方向に動かしにくくするようにできる。
【０２３６】
以上により、動作補正部２０は、人の手１６が力をかけることで、作業をして欲しくない領域の設定を行うことができるようになる。
【０２３７】
表示部１４には、図９に示すように、表示部１４の画面を左右２画面１４ａ，１４ｂに分割して表示し、左側の画面１４ａに、動作データベース１７で記述されたロボットアーム５の組立動作が映像若しくは写真若しくはテキストで表示される。さらに、右側の画面１４ｂには、補正動作種別決定部２３にて推定された補正の種別の情報を映像若しくは写真若しくはテキストで表示する。この図９の例では、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に垂直に力をロボットアーム５にかけて、力のかけ具合を補正するような動作をすると、補正動作種別決定部２３が、補正の種別として「力の補正」の種別であると決定したタイミングで、右側の画面１４ｂに力の補正をしている映像と現在の力の強弱を表示する。
【０２３８】
なお、この例では、映像若しくは写真、テキストとしたが、動作を説明する音声などでも良い。
【０２３９】
以上の動作補正部２０と補正動作種別決定部２３と動作選択部２９と動作記憶部１５と動作データベース１７と制御パラメータ管理部２１の動作ステップ（すなわち、組立ロボット１を駆動開始してから組立作業を開始するまでの間に行う、組立作業及び組立動作の設定処理）について、図１３のフローチャートに基づいて説明する。
【０２４０】
人の手１６でデータ入力ＩＦ２６により、組立ロボット１の電源をオンする（ステップＳ１２１）。
【０２４１】
次いで、動作補正部２０が、インピーダンス制御モードで制御するように制御パラメータ管理部２１へ指令を出す（ステップＳ１２２）。
【０２４２】
次に、作業不可領域ＲＢの補正かどうか、を補正動作種別決定部２３により判定する（ステップＳ１３０）。作業不可領域ＲＢの補正であると補正動作種別決定部２３により判定された場合は、動作補正部２０にて補正を行い（ステップＳ１３３）、その補正の情報を動作記憶部１５により動作データベース１７に記憶する（ステップＳ１３４）。その後、ステップＳ１２３に進む。
【０２４３】
ステップＳ１３０で作業不可領域ＲＢの補正ではない、と補正動作種別決定部２３により判定された場合に、又は、ステップＳ１３４を実行した後の場合に、ステップＳ１２３に進む。ステップＳ１２３では、動作選択部２９により、人が、表示部１４に表示された組立作業の一覧から１つの作業をデータ入力ＩＦ２６を介して選択し、動作データベース１７の進捗情報に、選択された現在の作業を設定する（ステップＳ１２３）。
【０２４４】
次いで、動作補正部２０は、制御パラメータ管理部２１へ力ハイブリッドインピーダンス制御モードで動作するよう指令を出し、人の手１６でロボットアーム５を機器６などの作業面（例えば、機器６の挿入口７５の挿入面）まで誘導し、データ入力ＩＦ２６（例えば、スイッチ２６ｃのスタートボタン）にて、ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードに切り替えて、作業開始の指令を行う（ステップＳ１２４）。
【０２４５】
次いで、人が補正したい方向に力をかけると、補正動作種別決定部２３により補正動作の種別を推定して決定する（ステップＳ１２５）。
【０２４６】
次いで、ステップＳ１２５で、補正の種別として、作業面（例えば、機器６の挿入口７５の挿入面）にかける力の補正の種別であると補正動作種別決定部２３で決定した場合は、作業面（例えば、機器６の挿入口７５の挿入面）に垂直な方向に対して高剛性の位置制御モードで動作するよう、動作補正部２０から制御パラメータ管理部２１へ指令を出す（ステップＳ１２６，Ｓ１２７）。
【０２４７】
次いで、人の手１６でロボットアーム５を把持して、補正したい方向に人の手１６でロボットアーム５に力をかけることで、動作補正部２０が動作情報を補正する（ステップＳ１２８）。
【０２４８】
一方、ステップＳ１２５で、補正の種別として作業面（例えば、機器６の挿入口７５の挿入面）にかける力の種別以外の補正の種別であると決定した場合は、制御モードは力インピーダンス制御モードで変更せず、補正したい方向に人の手１６でロボットアーム５に力をかけることで、動作補正部２０が動作情報を補正する（ステップＳ１２６，Ｓ１２８）。
【０２４９】
次いで、ステップＳ１２８で補正された動作情報は、動作記憶部１５により、動作データベース１７に記憶されて、一連の組立作業及び組立動作の設定処理を終了する（ステップＳ１２９）。
【０２５０】
一方、ステップＳ１２５で、補正動作種別決定部２３により、補正の種別として「補正なし」であると決定した場合は、一連の組立作業及び組立動作の設定処理を終了する（ステップＳ１２６，Ｓ１３１）。
【０２５１】
組立作業及び組立動作の設定処理終了後は、設定された組立作業及び組立動作に基づき、組立ロボット１により組立作業を行う。
【０２５２】
以上の動作ステップＳ１２１〜ステップＳ１２２，ステップＳ１３０，ステップＳ１２３及びステップＳ１２４、ステップＳ１３３〜ステップＳ１３４により、ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御で動作中に、ハイブリッドインピーダンス制御モード若しくは高剛性位置制御にて、組立動作を補正することで、ロボットアーム５による組立作業が実現する。
【０２５３】
また、補正動作種別決定部２３により、複数の動作をボタンなどを使わずに人の手１６でロボットアーム５に力をかけるだけで、自動で切り替えて補正することが可能となる。
【０２５４】
また、制御パラメータ管理部２１と制御部２２とを有することにより、補正動作の種別に応じて、ロボットアーム５の機械インピーダンス値を適宜設定することで、ロボットアーム５の補正方向に応じて、機械インピーダンス値を変更させて制御したり、補正中の力を弱めたり停止することができるので、動作の補正中に、機器６を傷つけることを防ぐことができる。
【０２５５】
なお、前記第１実施形態において、動作補正部２０は、補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６でロボットアーム５にかけた力と動作データベース１７の情報とにより、補正の種別の推定を行った後で、すぐに動作の補正を行ったが、人の手１６で誤ってロボットアーム５に力をかけて、人の意図しない補正の種別を選択してしまう事を防ぐために、補正動作種別決定部２３で推定後、ある一定時間後に補正を開始しても良い。この場合、補正が始まるまでは、人は意図した補正種別を選択するまで、何度でも操作することができる。
【０２５６】
また、前記第１実施形態において、動作選択部２９と動作記憶部１５と動作補正部２０と補正動作種別決定部２３と制御パラメータ管理部２１と制御部２２となどのそれぞれ、又は、そのうちの任意の一部は、それ自体がソフトウェアで構成することができる。よって、例えば、本明細書の前記第１実施形態又は後述する実施形態の制御動作を構成するステップを有するコンピュータプログラムとして、記憶装置（ハードディスク等）などの記録媒体に読み取り可能に記憶させ、そのコンピュータプログラムをコンピュータの一時記憶装置（半導体メモリ等）に読み込んでＣＰＵを用いて実行することにより、前記した各ステップを実行することができる。
【０２５７】
（第２実施形態）
本発明の第２実施形態における、ロボットアームの制御装置を備える組立ロボット１の前記ロボットアームの制御装置の基本的な構成は、第１実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
【０２５８】
第２実施形態において、第１実施形態と同様に、図１に示すように、セル生産の工場でテレビ又はＤＶＤレコーダなどの機器６のフレキシブル基板挿入口７５にフレキシブル基板７４を取り付ける場合を例にとって説明する。
【０２５９】
組立ロボット１の構成を図２７に示す。
【０２６０】
制御装置本体部４５と、周辺装置４７と、作業負荷領域データベース２８と、動作記憶部１５と、動作選択部２９と、対象物力検出手段の一例として機能する対象物力検出部７８（図２７に示すように、対象物力検出機構７６と対象物力情報出力部７７とで構成されている。ただし、対象物力検出機構７６は、理解しやすくするため、本来の配置位置であるハンド３０の位置とは別に仮想線で対象物力情報出力部７７の近くに図示している。）以外のロボットアーム５とは、第１実施形態と同様であるので、説明は省略する。
【０２６１】
対象物力検出機構７６は、例えば、６軸の力センサの機構で構成され、ロボットアーム５のハンド３０付近に配置する。対象物力検出機構７６は、図２８Ａに示すように、ロボットアーム５がフレキシブル基板７４を挿入口７５に挿入したり、図２８Ｂに示すように、人が手１６でロボットアーム５を把持しながら操作してロボットアーム５によりフレキシブル基板７４を挿入口７５に挿入するように、人がロボットアーム５に教示をしている際に、図２８Ｃに示すように、フレキシブル基板７４に加わる力を検出する機構である。対象物力情報出力部７７は、対象物力検出機構７６で検出した６軸の力の値を動作補正部２０と補正動作種別決定部２３と情報取得部１００とにそれぞれ出力する。情報取得部１００は、組立作業におけるロボットアーム５の位置を含むロボットアーム５の動作に関する情報と、力検出部５３で検出されたロボットアーム５に作用する人の力に関する情報と、対象物力検出部７８で検出された（対象物力検出機構７６で検出され対象物力情報出力部７７から出力された）フレキシブル基板７４に加わる力に関する情報とをそれぞれ取得可能としている。情報取得部１００で取得した情報は、補正動作種別決定部２３に入力され、情報取得部１００でそれぞれ取得した動作に関する情報と人の力に関する情報とから、ロボットアーム５の動作を補正する補正動作の種別を補正動作種別決定部２３で決定することができる。
【０２６２】
第１実施形態では、力検出部５３で人の加える力と対象物の一例であるフレキシブル基板７４に作用する力の両方を検出したが、本第２実施形態では、対象物の一例であるフレキシブル基板７４に作用する力は対象物力検出機構７６で検出し、人が加える力は力検出部５３でそれぞれ検出する。
【０２６３】
図２９は、動作データベース１７の一例を示す。全ての項目は第１実施形態と同様である。
【０２６４】
作業ＩＤ「４」の作業について詳細に説明する。図３１は、フレキシブル基板７４に加わる力を時系列に現したグラフを示す。
【０２６５】
作業ＩＤ［４］は、ロボットアーム５により、フレキシブル基板７４を挿入口７５に挿入する挿入作業を表す。具体的には、図３０Ａ〜図３０Ｆ（図３０Ｇ〜図３０Ｎは挿入口７５の付近を拡大した図）に示す。
【０２６６】
まず、作業ＩＤ「４」の動作ＩＤ「１」〜動作ＩＤ「７」は、図３０Ａに示すように、フレキシブル基板７４をハンド３０で把持したロボットアーム５が挿入口７５に向かって移動している動作を表す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ａ」の状態である。）。
【０２６７】
次に、作業ＩＤ「４」の動作ＩＤ「８」は、図３０Ｂ及び図３０Ｇ（図３０Ｇは挿入口７５の挿入部分を拡大した図）に示すように、フレキシブル基板７４のコネクタ部７４ｇが挿入口７５に接触した時点の動作を表す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｂ」の状態である。）。
【０２６８】
次に、作業ＩＤ「４」の動作ＩＤ「９」は、図３０Ｃ及び図３０Ｈ（図３０Ｈは挿入口７５の挿入部分を拡大した図）に示すように、挿入口７５の先端部分７５ｈに向かって、フレキシブル基板７４のコネクタ部７４ｇの先端部分７４ｈが接触するまでロボットアーム５が移動している動作を表す。ただし、フレキシブル基板７４のコネクタ部７４ｇは挿入口７５には刺さっていない状態（フレキシブル基板７４のコネクタ部７４ｇの先端部分が挿入口７５内に少しでも入り込んでいない状態）を表す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｃ」の状態である。）。
【０２６９】
次に、作業ＩＤ「４」の動作ＩＤ「１０」は、図３０Ｄ、図３０Ｉ、及び、図３０Ｌ（図３０Ｉ及び図３０Ｌは挿入口７５の挿入部分をそれぞれ拡大した図）の動作に示すように、挿入口７５の先端部分７５ｈとフレキシブル基板７４の先端部分７４ｈが接触している状態の動作を示す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｄ」の状態である。）。
【０２７０】
次に、作業ＩＤ「４」の動作ＩＤ「１１」及び「１２」は、図３０Ｅ、図３０Ｊ、及び、図３０Ｍ（図３０Ｊ及び図３０Ｍは挿入口７５の挿入部分をそれぞれ拡大した図）に示すように、挿入口７５の凹部７５ｉに、フレキシブル基板７４の先端部分７４ｈが刺さって、先端部分７４ｈを凹部７５ｉにさらに差し込むように挿入している最中の動作を示す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｅ」の状態である。）。
【０２７１】
次に、作業ＩＤ「４」の動作ＩＤ「１３」及び「１４」は、図３７Ｆ、図３０Ｋ及び図３０Ｎ（図３０Ｋ及び図３０Ｎは挿入口７５の挿入部分をそれぞれ拡大した図）に示すように、フレキシブル基板７４の挿入口７５への挿入が完了している状態（先端部分７４ｈが凹部７５ｉ内に差し込み完了した状態）を表す（対象物力検出機構７６で検出されたフレキシブル基板７４に加わる力の値は、図３１の「３１ｆ」の状態である。）。
【０２７２】
補正動作種別決定部２３は、第１実施形態と同様に、動作補正部２０にて、人がその手１６でロボットアーム５に力をかけることにより動作の補正を行うことが可能な補正の種別を決定する。以下、４種類の補正の種別がある。
【０２７３】
１つ目の補正の種別は、「位置・姿勢の補正」である。具体的には、機器６のモデルチェンジにより、図３３Ａの挿入口７５の位置又は向きが図３８Ｂの挿入口７５ｊのように変更した場合には、図３３Ｂのように、フレキシブル基板７４が挿入口７５ｊに引っかかって挿入ができない。その場合に、図３３Ｂのように、ロボットアーム５がフレキシブル基板７４の挿入口７５ｊへの挿入作業中に、人の手１６でロボットアーム５の位置又は姿勢の向きを変更するように力をかけると、動作補正部２０によって、図３３Ｃのようにロボットアーム５の位置及び姿勢を変更して、挿入口７５ｊに合わせてロボットアーム５の進行方向を変更することができる。ロボットアーム５の手先の姿勢（ｘ、ｙ、ｚ、φ、θ、ψ）を変更することで実現できる。
【０２７４】
２つ目の補正の種別は、ロボットアーム５の手先「速度」である。第１実施形態と同様に、図２２Ａのように、フレキシブル基板７４を把持したロボットアーム５で機器６の挿入口７５に向かって移動中に、図２２Ｂのように、ロボットアーム５の進行方向に反する方向に人の手１６でロボットアーム５に力をかけると、動作補正部２０によって、図２２Ｃのように、ロボットアーム５の移動時の速度を減速させることができる。逆に、ロボットアーム５が移動中に、人の手１６がロボットアーム５の進行方向に向かって人の手１６でロボットアーム５に力をかけると、動作補正部２０によって、ロボットアーム５の移動時の速度を加速させることができる。
【０２７５】
３つ目の補正の種別は、フレキシブル基板７４の挿入時の「力のかけ具合」である。これは、現在動作中（動作データベース１７の進捗情報が「１」）の動作のフラグ（有効性を示すフラグ）において、力のビットが「１」となっている場合に有効である。第１実施形態と同様、図１８Ｂに示すように、ロボットアーム５でフレキシブル基板７４の挿入口７５ｂへの挿入作業中に、図１８Ｃのように、人の手１６でロボットアーム５に上方から下向きに力をかけると、動作補正部２０によって、図１８Ｄのように力のかけ具合を強めに、逆に、人の手１６でロボットアーム５に下方から上向きに力をかけると、力のかけ具合を弱めに補正することができる。
【０２７６】
４つ目の補正の種別は、「作業をして欲しくない領域」である。第１実施形態と同様に、人１６Ａの手１６で図２３に示すように、ロボットアーム５（例えば、ハンド３０）を把持して、作業をして欲しくない領域ＲＢの輪郭に沿って、ロボットアーム５に力をかけてロボットアーム５（例えば、ハンド３０）を移動させると、動作補正部２０によって、図２３のように、作業をして欲しくない領域ＲＢを設定することができる。
【０２７７】
補正動作種別決定部２３は、前記の４種類の補正の種別のうち、１種類の補正の種別を決定する。具体的には、ボタンなどのデータ入力ＩＦ２６にて４種の補正の種別のうちの１つの補正の種別を選択するか、若しくは、力検出部５３で検出されて情報取得部１００で取得された人の手１６でロボットアーム５にかけた力と補正の種別との関係情報（例えば、力のかかる向きと大きさと補正の種別との関係情報）と、対象物力検出機構７６で検出されて対象物力情報出力部７７を介して情報取得部１００で取得されたフレキシブル基板７４などの対象物にかかる力により、補正動作種別決定部２３で種別を推定する。
【０２７８】
以下、補正の種別の推定方法の具体的な補正種別推定処理について、図３２のフローチャートを使って詳細に説明する。
【０２７９】
組立ロボット１の電源ボタン２６ａを「ＯＮ」にした状態で、人の手１６でロボットアーム５を把持して力をロボットアーム５に加えていない場合は、ロボットアーム５は動かない。人の手１６でロボットアーム５に力を加えている場合は、インピーダンス制御モード（人の手１６の力を検出した方向にインピーダンス制御で移動させるモード）でロボットアーム５を移動させたい方向に移動させることができる。この場合、制御部２２の力検出部５３にて、ロボットアーム５に作用する力を検出し、力検出部５３で検出された力の情報が、情報取得部１００を介して、補正動作種別決定部２３に入力される（ステップＳ１）。
【０２８０】
次いで、ステップＳ２では、力検出部５３で検出しかつ情報取得部１００で取得された力の全ての成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分）が、ある閾値以下であるか否かを補正動作種別決定部２３で判断する。具体的な閾値は、フレキシブル基板７４の剛性により、図１７のようにあらかじめ記憶されており、フレキシブル基板７４のＩＤ（フレキシブル基板ＩＤ）が「１」の場合には、図１７のＩＤ「１」の（ｆｄｘ１、ｆｄｙ１、ｆｄｚ１、ｆｄφ１、ｆｄθ１、ｆｄψ１）とする。力検出部５３で検出しかつ情報取得部１００で取得された力の全ての成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分）が、前記ある閾値以下であると補正動作種別決定部２３で判断した場合は、ロボットアーム５は動かず、補正はせず（ステップＳ３）、補正動作の種別推定方法の補正種別推定処理を終了する。その場合の制御モードは、インピーダンス制御モードである。
【０２８１】
ステップＳ２にて、力検出部５３で検出しかつ情報取得部１００で取得された力のいずれかの成分（ｆｘ、ｆｙ、ｆｚ、ｆφ、ｆθ、ｆψの６成分のうちのいずれかの成分）が、前記ある閾値（具体的には、フレキシブル基板ＩＤが「１」の場合には、図１７のＩＤ「１」の（ｆｄｘ１、ｆｄｙ１、ｆｄｚ１、ｆｄφ１、ｆｄθ１、ｆｄψ１））を越えると補正動作種別決定部２３で判断した場合は、ステップＳ４に進む。
【０２８２】
ステップＳ４では、さらに、現在の組立ロボット１が動作データベース１７で動作しているかどうか、を情報取得部１００を介して取得した情報を基に補正動作種別決定部２３で判定する。具体的には、動作選択部２９にて作業を選択しておらず、かつ、動作データベース１７の全ての作業ＩＤについて、進捗情報が「０」となっている、と補正動作種別決定部２３で判断する場合（作業を開始していない状態）は、動作データベース１７で動作していないと補正動作種別決定部２３で判定して、ステップＳ６に進む。動作選択部２９にて組立作業を選択して開始しており、かつ、進捗情報が「１」となっていると補正動作種別決定部２３で判断している場合は、動作データベース１７で動作していると補正動作種別決定部２３で判定して、ステップＳ５に進む。
【０２８３】
ステップＳ５では、対象物力検出部７６で、対象物の一例としてのフレキシブル基板７４に加わる力を検出し、対象物力検出部７６で検出された対象物に加わる力の情報が、情報取得部１００を介して補正動作種別決定部２３に入力される。
【０２８４】
ステップＳ９では、対象物力検出部７６で検出されたフレキシブル基板７４に加えられた力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）がある時間（例えば１ｓｅｃ）連続してある「閾値１」（具体的には、フレキシブル基板ＩＤが「１」の場合には、図１７のＩＤ「３」の（ｆｔdoｘ1、ｆｔdoｙ1、ｆｔdoｚ1、ｆｔdoφ1、ｆｔdoθ1、ｆｔdoψ1）、図３１の「閾値１」）以上であるか否か、を補正動作種別決定部２３で判断する。対象物力検出部７６で検出された対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が、前記ある「閾値１」未満であると補正動作種別決定部２３で判断した場合（図３１の「閾値１」未満の場合の（３１ａ）に相当する場合）はステップＳ１１に進む（ただしステップＳ２で判定した力以上であること）。ステップＳ９にて、対象物力検出部７６で検出された対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が前記ある「閾値１」以上である場合（図３１の（３１ｃ）に相当する場合）には、ステップＳ１０に進む。ステップＳ９で、ある時間（例えば１ｓｅｃ）連続してある閾値（「閾値１」）以上であるか否かを判断するのは、一瞬、力が前記閾値以上検出されても、その場合はノイズとし、人が意思を持って力を加えたときは、一瞬ではなく、１秒程度以上、力を加えていると考え、人意思を持って力を加えたときか否かを判断するためである。
【０２８５】
ステップＳ１１では、補正動作種別決定部２３で算出されたロボットアーム５の移動量が、ある閾値（具体的には、フレキシブル基板ＩＤが「１」の場合には、,
図１７のＩＤ「２」のｇｘ1、ｇｙ1、ｇｚ1、ｇφ1、ｇθ1、ｇψ1）以上であると補正動作種別決定部２３で判断する場合は、補正の種別として「位置・姿勢の補正」の種別を補正動作種別決定部２３で決定して、補正種別推定処理を終了する（ステップＳ１４）。なお、ロボットアーム５の移動量を補正動作種別決定部２３で算出するとき、具体的には、制御部２２から制御パラメータ管理部２１又は情報取得部１００を介して人の操作前のロボットアーム５の手先位置と操作中の手先位置を補正動作種別決定部２３に入力し、操作中の手先位置から操作前の手先位置を減じた値を移動量として補正動作種別決定部２３で算出することができる。
【０２８６】
ステップＳ１１にて、ロボットアーム５の移動量が前記ある閾値未満であると補正動作種別決定部２３で判定された場合は、補正の種別として、「速度」の種別を決定して、補正種別推定処理を終了する（ステップＳ１５）。
【０２８７】
ステップＳ１０では、対象物力検出部７６でフレキシブル基板７４に加えられた力を検出し、対象物力検出部７６で検出され、かつ対象物力情報出力部７７を介して情報取得部１００で取得されたた対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が、ある時間（例えば１ｓｅｃ）連続して、ある「閾値２」（具体的には、フレキシブル基板ＩＤが「１」の場合には、図１７のＩＤ「４」の（ｆｔdoｘ21、ｆｔdoｙ21、ｆｔdoｚ21、ｆｔdoφ21、ｆｔdoθ21、ｆｔdoψ21）、図３１の「閾値２」）以上であるか否かを補正動作種別決定部２３で判断する。対象物力検出部７６で検出された対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が、前記ある「閾値２」未満であると補正動作種別決定部２３で判断した場合（図３１の閾値２未満の場合の（３１ｃ）に相当の場合）は、ステップＳ１６に進む。対象物力検出部７６で検出された対象物に加わる力（ｆｔｘ、ｆｔｙ、ｆｔｚ、ｆｔφ、ｆｔθ、ｆｔψ）が前記ある「閾値２」以上であると補正動作種別決定部２３で判断した場合（図３１の（３１ｄ）に相当の場合）は、補正の種別として「力の補正」の種別であると決定し、補正種別推定処理を終了する（ステップＳ１２）。ステップＳ１０で、ある時間（例えば１ｓｅｃ）連続してある閾値（「閾値２」）以上であるか否かを判断するのは、一瞬、力が前記閾値以上検出されても、その場合はノイズとし、人が意思を持って力を加えたときは、一瞬ではなく、１秒程度以上、力を加えていると考え、人意思を持って力を加えたときか否かを判断するためである。
【０２８８】
ステップＳ１６では、補正動作種別決定部２３で算出されたロボットアーム５の手先の位置の移動量が、ある閾値（具体的には、フレキシブル基板ＩＤが「１」の場合には、図１７のＩＤ「２」のｇｘ1、ｇｙ1、ｇｚ1、ｇφ1、ｇθ1、ｇψ1）以上であると補正動作種別決定部２３で判断する場合は、補正の種別として「位置・姿勢の補正」の種別を補正動作種別決定部２３で決定して、補正種別推定処理を終了する（ステップＳ１８）。
【０２８９】
ステップＳ１６にて、ロボットアーム５の移動量が前記ある閾値未満であると補正動作種別決定部２３で判定された場合は、補正の種別として、「力の補正」の種別を決定して、補正種別推定処理を終了する（ステップＳ１７）。
【０２９０】
また、ステップＳ４において、動作データベース１７で動作していないと補正動作種別決定部２３で判定された場合には、ステップＳ６に進み、ステップＳ６にて、ある一定時間のロボットアーム５の移動量が、ある閾値以上であるか否かを補正動作種別決定部２３で判断する。
【０２９１】
ステップＳ６において、ある一定時間のロボットアーム５の移動量が、前記ある閾値以上であると補正動作種別決定部２３で判断する場合には、補正の種別として「作業をして欲しくない領域」の種別であると決定し（ステップＳ８）、補正種別推定処理を終了する。
【０２９２】
ステップＳ６において、ある一定時間のロボットアーム５の移動量が前記ある閾値未満であると補正動作種別決定部２３で判断する場合は、補正の種別として「補正なし」と決定し、補正種別推定処理を終了する（ステップＳ７）。
【０２９３】
以上により、ボタンなどのデータ入力ＩＦ２６を使わずに、補正動作種別決定部２３により、補正の種別を切り替えることができる。
【０２９４】
動作補正部２０は、第１実施形態と同様に動作データベース１７の位置と姿勢と時間とに基づいて動作中に、人の手１６でロボットアーム５に力をかけることで、動作データベース１７の動作情報を補正する機能である。
【０２９５】
以下、動作補正部２０の機能について説明する。
【０２９６】
人の手１６で、組立ロボット１の作業台７に配置されているデータ入力ＩＦ２６（例えば操作盤２６Ａの電源ボタン２６ａなど）により電源を入れると、動作補正部２０は、インピーダンス制御モードで動作するよう、制御パラメータ管理部２１へ指令を出す。
【０２９７】
次に、人の手１６で、動作選択部２９により、動作データベース１７の作業の一覧の中から所望の組立作業を選択して、組立動作開始の指示を行う。動作補正部２０は、動作データベース１７の中から選択された作業ＩＤの動作情報（具体的には、レール可動部８ｂの位置及びロボットアーム５の位置と姿勢と時間と）に基づきレール可動部８ｂ及びロボットアーム５の制御モードを設定する。この例では、図２９の作業ＩＤ「４」が選択されたので、動作データベース１７の動作ＩＤ「１」に対するフラグ（有効性を示すフラグ）のうち、フラグのビットが「１」になっているロボットアーム５の位置及び姿勢のそれぞれに対して、ハイブリッドインピーダンス制御モード（位置制御モードで動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード）が動作補正部２０で設定され、制御パラメータ管理部２１へ指令を出す。動作補正部２０から制御パラメータ管理部２１へ指令を出すと、図３０Ａに示すように、挿入口７５に向かって、フレキシブル基板７５をハンド３０で把持したロボットアーム５が移動する。動作ＩＤ「１」から順次次の動作情報により、制御パラメータ管理部２１へ指令を出す。動作ＩＤ「９」〜「１２」は力ハイブリッドインピーダンス制御モードで動作するように、制御パラメータ管理部２１へ指令を出す。
【０２９８】
力ハイブリッドインピーダンス制御モードの場合は、動作データベース１７の動作ＩＤに対するフラグ（有効性を示すフラグ）のうち、フラグのビットが「１」になっているロボットアーム５の位置及び姿勢のそれぞれに対して、ハイブリッドインピーダンス制御モード（位置制御モードで動作している最中に、人などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモード）が動作補正部２０で設定され、力のフラグ（有効性を示すフラグ）のビットが「１」になっている成分は力制御モードが動作補正部２０で設定される。位置及び姿勢の６成分のうち、ハイブリッドインピーダンス制御モードも力制御モードもいずれも設定されていない成分は、インピーダンス制御モードが動作補正部２０で設定される。
【０２９９】
例えば、図２９の作業ＩＤ「４」の動作ＩＤ「９」の場合は、図３３Ａ、図３０Ｃ、図３０Ｈ（図３０Ｈは挿入部分を拡大した図）に示すように、挿入口７５の先端部分７５ｈに向かって、フレキシブル基板７４の先端部分７４ｈが接触するまで移動している動作を示しており、動作ＩＤが「９」の場合のフラグは０，１，３，４，５，８ビット目のみ「１」であるので、ｘ軸及びｙ軸及び姿勢成分に対しては、ハイブリッドインピーダンス制御モードが動作補正部２０で設定されるとともに、ｚ軸成分に対しては力制御モードが動作補正部２０で設定される。
【０３００】
次に、作業ＩＤ「４」の動作ＩＤ「１０」〜「１２」では、動作ＩＤ「９」と同様の動作モードで動作する。
【０３０１】
次に、作業ＩＤ「４」の動作ＩＤ「１３」「１４」では、動作ＩＤ［１］と同様の動作モードで動作する。
【０３０２】
次に、モデルチェンジなどにより、フレキシブル基板７４又は挿入口７５の仕様変更に伴って、人が状況などを確認して、図３３Ｂに示すように、ロボットアーム５の位置又はロボットアーム５の姿勢を移動させて作業させたい場合を例にとって説明する。
【０３０３】
図３３Ａに示すように、作業ＩＤ「４」の動作ＩＤ「１」〜「８」で動作中に、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して移動するようにロボットアーム５に力をかける。
【０３０４】
補正動作種別決定部２３により、情報取得部１００で取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７に記憶された情報とにより、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、フレキシブル基板７４が接触していない状態で（対象物力検出部７６で検出された力が閾値以下である状態で）、人の手１６で、ロボットアーム５に力をかけて、ロボットアーム５を前記ある閾値以上移動させているので、ステップＳ１４において、補正の種別として「位置・姿勢の補正」の種別であると補正動作種別決定部２３で決定する。
【０３０５】
図２９の作業ＩＤが「４」の場合で動作ＩＤが「１」に示す作業の場合は、位置姿勢の全成分でハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより人の手１６でロボットアーム５にかけられた力を力検出部５３で検出して情報取得部１００で取得された、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５を移動させて、図３３Ｃのように位置及び姿勢を補正することができる。
【０３０６】
上述のように、人の手１６でロボットアーム５を把持して、力をかけてロボットアーム５を（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）分だけ移動させた場合に、（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）の値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。
【０３０７】
動作補正部２０では、選択された作業ＩＤの動作情報の全ての位置及び姿勢成分について、（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）を減じて補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）分を補正した座標でロボットアーム５が動作するように制御部２２へ指示する。これにより、図３３Ｂのような動作に補正される。次に、（Δｘ、Δｙ、Δｚ、Δφ、Δθ、Δψ）分だけ減じた動作情報を、動作記憶部１５で動作データベース１７に記憶する。
【０３０８】
以上により、動作補正部２０は、動作データベース１７の位置と姿勢と時間とにより、ハイブリッドインピーダンス制御モード若しくは力ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６でロボットアーム５に力をかけることで、生成された位置を方向別に補正することができるようになる。
【０３０９】
図３４Ａ、図３４Ｄ(図３４Ｄは図３４Ａの挿入口７５の挿入部分を拡大した図)に示すように、動作ＩＤ「９」で動作中に、斜めに挿入してしまった場合に、図３４Ｂに示すように、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して移動するようにロボットアーム５に力をかける。
【０３１０】
補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７に記憶された情報とにより、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、フレキシブル基板７４に前記「閾値２」以上の力が加わっている状態で（ステップＳ１０）、人の手１６で、ロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させているので（ステップＳ１６）、ステップＳ１７において、補正の種別として「位置・姿勢の補正」の種別であると補正動作種別決定部２３で決定する。
【０３１１】
図２９の作業ＩＤが「４」の場合で動作ＩＤが「９」に示す作業の場合は、位置姿勢のｚ軸成分以外でハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより人の手１６でロボットアーム５にかけられた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５を移動させて、図３４Ｃのように位置・姿勢を補正することができる。
【０３１２】
次に、図２２Ｂのように、速度を変更する場合は、人の手１６でロボットアーム５を直接把持して、加速したい場合は、ロボットアーム５の進行方向と同じ向きに人の手１６でロボットアーム５に力をかけ、減速したい場合は、ロボットアーム５の進行方向に逆らう向きに人の手１６でロボットアーム５に力をかける。その際に、ロボットアーム５の手先位置の速度を変えても良いが、位置はある閾値以上動かさないように人の手１６でロボットアーム５に力をかける。
【０３１３】
補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６でロボットアーム５にかけた力と動作データベース１７の情報と、対象物にかかる力とにより、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、人の手１６で力をロボットアーム５にかけて、ロボットアーム５をある閾値以上移動させていないので、図３２のステップＳ１５により、補正の種別として、「速度」の種別であると補正動作種別決定部２３で決定する。
【０３１４】
ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５を移動させる。動作データベース１７で例えば作業ＩＤと動作ＩＤとで示されたロボットアーム５の位置（ｘ１、ｙ２、ｚ１）から、次の動作ＩＤのロボットアーム５の位置（ｘ２、ｙ２、ｚ２）まで移動するのにかかる時間をｔ１とすると、ロボットアーム５の速度を人の手１６の力で変更した場合（図２２Ｂ参照）には、すなわち、位置（ｘ１、ｙ２、ｚ１）から位置（ｘ２、ｙ２、ｚ２）までに移動するのにかかる時間がｔ１からｔ２に変更された場合には、時間ｔ２の値が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０では、選択された作業ＩＤの動作情報について、ｔ１の時間からｔ２の時間に変更して、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１において、補正した時間であるｔ２で動作するように制御パラメータ管理部２１から制御部２２へ指示する。これにより、図２２Ｃのような動作に補正される。次に、時間ｔ２を、動作記憶部１５で動作データベース１７に記憶する。
【０３１５】
以上により、動作補正部２０は、動作データベース１７の位置と姿勢と時間との情報により、ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６でロボットアーム５に力をかけることで、ロボットアーム５の動作速度を補正することができるようになる。
【０３１６】
次に、図３５Ｂのように、作業時の作業面（例えば、機器６の挿入口７５の挿入面）に対する力を変更する場合は、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して垂直方向に力をロボットアーム５にかける場合について説明する。この動作は、図３５Ａ〜図３５Ｆ（図３５Ｄ〜図３５Ｆは挿入口７５の付近を拡大した図）に示すが、先の、ロボットアーム５により、フレキシブル基板７４を挿入口７５に挿入する挿入作業を表す図３０Ａ〜図３０Ｆ（図３０Ｇ〜図３０Ｎは挿入口７５の付近を拡大した図）と同様な動作については、説明を省略する。
【０３１７】
補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報と、対象物にかかる力とにより、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、フレキシブル基板７４が挿入口７５に接触しており、かつその力が前記「閾値２」以下であり、人の手１６で力をロボットアーム５にかけて、ロボットアーム５を前記ある閾値以上移動させていないので、ステップＳ１８において、補正の種別として「力の補正」の種別であると補正動作種別決定部２３で決定する。
【０３１８】
補正動作種別決定部２３で補正の種別が「力の補正」であると決定したタイミングで、力ハイブリッドインピーダンス制御モードから高剛性位置制御モードで動作するよう補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。補正動作種別決定部２３から制御パラメータ管理部２１への指令時に、高剛性位置制御モードでは、方向別に位置制御時の高剛性を補正動作種別決定部２３で設定することができるため、例えば図４の動作データベース１７の作業ＩＤ「４」でかつ動作ＩＤ「９」の動作のフラグは、０、１、３，４，５、８ビットが「１」に設定されているので、ｚ軸方向は力制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するため、ｚ軸方向のみ高剛性位置制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。
【０３１９】
次に、図３５Ｂに示すように、ロボットアーム５がフレキシブル基板７４の挿入作業の動作をしている最中に、人の手１６でロボットアーム５を直接把持して、挿入する力を強め（より強い力）に変更をしたい場合には、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に向かってロボットアーム５に下方向に力をかける。高剛性位置制御モードでは、ハイブリッドインピーダンス制御モードのうち、方向別設定された位置制御モードを、さらに高剛性にしたモードで、かつ、位置誤差補償部５６でのゲインを大きく（具体的には、通常の位置制御モードの２倍程度に）することで実現し、人の手１６でロボットアーム５に力をかけると、ロボットアーム５を容易に移動させることができず、人の手１６でロボットアーム５にかけた力を力検出部５３で検出することができる。制御部２２の力検出部５３で検出された力を動作補正部２０に通知する。動作補正部２０に通知された力を、動作記憶部１５で動作データベース１７に記憶することで、強めに（より強い力で）挿入するよう動作を補正することができる。人が補正を終了したい場合は、ロボットアーム５を把持して力をロボットアーム５にかけることを止める。人の手１６でロボットアーム５に力をかけない場合は、図３２のステップＳ２により、力の全ての成分が閾値以下になるので、補正動作種別決定部２３により、補正の種別として「補正なし」であると決定する（図３２のステップＳ３）。動作補正部２０は、「補正なし」の情報を受けて、高剛性の位置制御モードからハイブリッドインピーダンス制御モードで制御するよう、補正動作種別決定部２３から制御パラメータ管理部２１に指令を出す。これにより、補正後の動作データベース１７で作業を行う。
【０３２０】
以上により、動作補正部２０は、動作データベース１７の力の情報により、ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６が力をかけることで、補正された力で挿入作業するように補正することができるようになる。
【０３２１】
なお、この例で力の補正値を取得するために、力制御モードから高剛性位置制御モードに変更したが、第１実施形態とは異なり、人の加える力を検出する力検出部５３と、対象物に加える力を検出する対象物力検出部７６とを分けて配置しているため、制御モードは力制御モードで変更せずに、力検出部５３で人が加えた力を検出することができる。さらに、位置制御モードに変更する場合には剛性を変更しなくても、通常の位置制御モードでも力検出部５３で検出することができる。
【０３２２】
次に、図３６Ｂのように、作業ＩＤ「４」動作ＩＤ「１１」若しくは「１２」で動作中に、作業時の作業面（例えば、機器６の挿入口７５の挿入面）に対する力を変更する場合は、人の手１６でロボットアーム５を直接把持して、作業面（例えば、機器６の挿入口７５の挿入面）に対して垂直方向に力をロボットアーム５にかける場合について説明する。この動作は、図３６Ａ〜図３６Ｉ（図３６Ｄ〜図３６Ｆは挿入口７５の付近を拡大した図、図３６Ｇ〜図３６Ｉは図３６Ｄ〜図３６Ｆの円部分の拡大図）に示すが、先の、ロボットアーム５により、フレキシブル基板７４を挿入口７５に挿入する挿入作業を表す図３０Ａ〜図３０Ｆ（図３０Ｇ〜図３０Ｎは挿入口７５の付近を拡大した図）と同様な動作については、説明を省略する。
【０３２３】
補正動作種別決定部２３により、情報取得部１００でそれぞれ取得された、人の手１６がロボットアーム５にかけた力と動作データベース１７の情報と、対象物の一例であるフレキシブル基板７４にかかる力により、図３２のフローチャートに示した補正種別推定処理で補正の種別を推定して決定する。ここでは、フレキシブル基板７４が挿入口７５に接触しており、かつその力が前記「閾値２」以上であり、人の手１６で力をロボットアーム５にかけているので、ステップＳ１２において、補正の種別として「力の補正」の種別であると補正動作種別決定部２３で決定する。ここではロボットアームの移動量に関係なく、「力の補正」のみしか選択できないため、図３６Ｅのようにフレキシブル基板７４の先端部分７４ｈが差し込まれている最中にロボットアームを移動させてフレキシブル基板７４の先端部分７４ｈを傷めることを防ぐことができる。
【０３２４】
補正動作種別決定部２３で補正の種別が「力の補正」であると決定したタイミングで、力ハイブリッドインピーダンス制御モードから高剛性位置制御モードで動作するよう補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。補正動作種別決定部２３から制御パラメータ管理部２１への指令時に、高剛性位置制御モードでは、方向別に位置制御時の高剛性を補正動作種別決定部２３で設定することができるため、例えば図４の動作データベース１７の作業ＩＤ「４」でかつ動作ＩＤ「９」の動作のフラグは、０、１、３，４，５、８ビットが「１」に設定されているので、ｚ軸方向は力制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するため、ｚ軸方向のみ高剛性位置制御モードで動作し、その他の方向はハイブリッドインピーダンス制御モードで動作するよう、補正動作種別決定部２３から制御パラメータ管理部２１へ指令を出す。
【０３２５】
次に、図３５Ｂに示すように、ロボットアーム５がフレキシブル基板７４の挿入作業の動作をしている最中に、人の手１６でロボットアーム５を直接把持して、挿入する力を強め（より強い力）に変更をしたい場合には、人の手１６で作業面（例えば、機器６の挿入口７５の挿入面）に向かってロボットアーム５に下方向に力をかける。高剛性位置制御モードでは、ハイブリッドインピーダンス制御モードのうち、方向別設定された位置制御モードを、さらに高剛性にしたモードで、かつ、位置誤差補償部５６でのゲインを大きく（具体的には、通常の位置制御モードの２倍程度に）することで実現し、人の手１６でロボットアーム５に力をかけると、ロボットアーム５を容易に移動させることができず、人の手１６でロボットアーム５にかけた力を力検出部５３で検出することができる。制御部２２の力検出部５３で検出された力を動作補正部２０に通知する。動作補正部２０に通知された力を、動作記憶部１５で動作データベース１７に記憶することで、強めに（より強い力で）挿入するよう動作を補正することができる。人が補正を終了したい場合は、ロボットアーム５を把持して力をロボットアーム５にかけることを止める。人の手１６でロボットアーム５に力をかけない場合は、図３２のステップＳ２により、力の全ての成分が閾値以下になるので、補正動作種別決定部２３により、補正の種別として「補正なし」であると決定する（図３２のステップＳ３）。動作補正部２０は、「補正なし」の情報を受けて、高剛性の位置制御モードからハイブリッドインピーダンス制御モードで制御するよう、補正動作種別決定部２３から制御パラメータ管理部２１に指令を出す。これにより、補正後の動作データベース１７で作業を行う。
【０３２６】
以上により、動作補正部２０は、動作データベース１７の力の情報により、ハイブリッドインピーダンス制御モードで動作している状態で、人の手１６が力をかけることで、補正された力で挿入作業するように補正することができるようになる。
【０３２７】
なお、この例で力の補正値を取得するために、力制御モードから高剛性位置制御モードに変更したが、第１実施形態とは異なり、人の加える力を検出する力検出部５３と、対象物に加える力を検出する対象物力検出部７６とを分けて配置しているため、制御モードは力制御モードで変更せずに、力検出部５３で人が加えた力を検出することができる。さらに、位置制御モードに変更する場合には剛性を変更しなくても、通常の位置制御モードでも力検出部５３で検出することができる。
【０３２８】
図２３に示すように、組立ロボット１に作業をして欲しくない領域ＲＢを、ロボットアーム５を使って設定する場合を例にとって説明する。
【０３２９】
人の手１６で組立ロボット１の上部に配置されているデータ入力ＩＦ２６（例えば操作盤２６Ａの電源ボタン２６ａなど）により電源を入れると、動作補正部２０は、インピーダンス制御モードで動作するよう、制御パラメータ管理部２１へ指令を出す。動作選択部２９にて作業を選択していない状態で、図２３に示すように、人１６Ａの手１６がロボットアーム５（例えばハンド３０など）を直接把持して、作業面（例えば、機器６が載置されている作業台７の上面）に対して平行な方向に移動するようにロボットアーム５を移動させて、作業をして欲しくない領域ＲＢの輪郭に沿って、ロボットアーム５（例えばハンド３０）を移動させる。図２５Ａは作業面（例えば、機器６が載置されている作業台７の上面）を上方から見た図で、作業をして欲しくない領域ＲＢを斜線の領域とすると、人の手１６がロボットアーム５を移動させて、矢印のように、作業をして欲しくない領域ＲＢの輪郭にロボットアーム５（例えばハンド３０）を沿わせて、移動させる。その際、ロボットアーム５の手先（ハンド３０）の中央先端にマーク６３が付与されており（図２５Ａ及び図２５Ｂ参照）、作業をして欲しくない方向にマーク６３を向けて移動させる。
【０３３０】
補正動作種別決定部２３により、図３２に示した補正種別推定処理を実行して動作データベース１７で動作していないと判定し（ステップＳ４）、さらに、ある一定時間の移動量が、前記ある閾値以上の場合は、ステップＳ８において、補正の種別として「作業をして欲しくない領域」の種別であると決定する。
【０３３１】
インピーダンス制御モードにより、人の手１６でロボットアーム５にかけた力を力検出部５３で検出して、人の手１６でロボットアーム５に力をかけた方向に、ロボットアーム５を移動させて、図２５Ａのように、位置（ｘ１、ｙ１）、位置（ｘ２、ｙ２）、位置（ｘ３、ｙ３）、位置（ｘ４、ｙ４）の順にロボットアーム５を移動させる。このとき、これらの位置情報が、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０は、その指令を受けて、これらの位置情報が作業不可領域ＲＢの情報として、動作記憶部１５により作業不可領域データベース２８に記憶する。これらの４つの位置が作業不可領域ＲＢの頂点の情報であることは、例えば、ある一定間隔で人が移動させたロボットアーム５の手先位置を取得して、取得した手先位置の座標をつなげて領域を生成し、それを作業不可領域ＲＢとすることができる。さらに、どのような形の領域とするかを決定する機能を追加し、例えば、「矩形」と設定されている場合は、９０度近くの角度で移動方向が変われば、その位置を頂点の情報として記憶し、「ランダム」と設定された場合は、ある一定間隔で人が移動させたロボットアーム５の手先位置を取得して、取得した手先位置の座標をつなげて生成し、それを作業不可領域ＲＢとすることができる。
【０３３２】
以上により、動作補正部２０は、人の手１６が力をかけることで、作業をして欲しくない領域の設定を行うことができるようになる。
【０３３３】
さらに、前記様々な実施形態及び変形例のうちの任意の実施形態又は任意の変形例を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【０３３４】
本発明は、例えば工場内で組立を行うロボットなど人とロボットが協調して作業を行う際の組立ロボットのロボットアームの動作の制御を行う、ロボットアームの制御装置及び制御方法、組立ロボット、組立ロボット用ロボットアームの制御プログラム、及び、組立ロボット用ロボットアームの制御用集積電子回路として有用である。
【０３３５】
本発明は、添付図面を参照しながら好ましい実施形態に関連して充分に記載されているが、この技術の熟練した人々にとっては種々の変形又は修正は明白である。そのような変形又は修正は、添付した請求の範囲による本発明の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御装置であって、
前記ロボットアームに作用する人の力を検出する力検出手段と、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出された前記人の力とをそれぞれ取得する情報取得部と、
前記ロボットアームが前記組立対象物に加える力を検出する対象物力検出手段と、
前記情報取得部でそれぞれ取得した前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とから前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段  とを備えるロボットアームの制御装置。
【請求項２】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢との情報と、前記ロボットアームから組立作業面にかける力情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、前記ロボットアームの作業を行わない領域に関する情報である作業不可領域情報のうちの少なくとも１つの情報を有する請求項１に記載のロボットアームの制御装置。
【請求項３】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームから前記作業面にかける力情報を少なくとも有し、前記動作補正手段は、前記動作に関する情報に基づいて、予め設定された力を前記ロボットアームから前記作業面に作用させて前記動作を行なう力制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記動作を前記ロボットアームで行っている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、補正動作前の前記動作に関する情報のうちの前記設定された力の大きさ又は方向を補正する請求項１に記載のロボットアームの制御装置。
【請求項４】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢の情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、作業を行わない領域に関する情報である作業不可領域情報とを有し、
前記動作補正手段は、前記動作に関する情報に基づいて、前記ロボットアームの位置を制御する位置制御モードで動作している最中に、前記ロボットアームに対して前記人から前記ロボットアームに加わる力に応じて前記ロボットアームが作動するインピーダンス制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記作業を動作させている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、前記インピーダンス制御での前記動作に関する情報の前記動作を補正する請求項１に記載のロボットアームの制御装置。
【請求項５】
前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備えることを特徴とする請求項１〜４のいずれか１つに記載のロボットアームの制御装置。
【請求項６】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、
前記補正動作種別決定手段は、前記対象物検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値以上である場合に、前記補正動作の種別として、作業面の位置と姿勢の移動の種別であると決定し、
さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの前記手先の位置と姿勢を補正する請求項１に記載のロボットアームの制御装置。
【請求項７】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、
前記補正動作種別決定手段は、前記対象物検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値未満である場合に、前記補正動作の種別として、速度の補正の種別であると決定し、
さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの速度を補正する請求項１に記載のロボットアームの制御装置。
【請求項８】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置の移動量を検出するとともに、
前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値以下であり、かつ、前記補正動作種別決定部で検出された前記ロボットアームの移動量が、ある閾値以上である場合に、前記補正動作の種別として、位置・姿勢の補正の種別であると決定し、
さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正する請求項１に記載のロボットアームの制御装置。
【請求項９】
前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値を越える場合に、前記補正動作の種別として、力の補正の種別であると決定し、
さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正する請求項１に記載のロボットアームの制御装置。
【請求項１０】
前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備える請求項１〜４,６〜８のいずれか１つに記載のロボットアームの制御装置。
【請求項１１】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、
前記ロボットアームに作用する人の力を力検出手段で検出し、
前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正するロボットアームの制御方法。
【請求項１２】
前記ロボットアームと、
前記ロボットアームを制御する請求項１〜４，６〜９のいずれか１つに記載のロボットアームの制御装置とを備える組立ロボット。
【請求項１３】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定するステップと、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させための組立ロボット用ロボットアームの制御プログラム。
【請求項１４】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備える組立ロボット用ロボットアームの制御用集積電子回路。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2011021375.tif 000113
【図２Ａ】
2011021375.tif 000114
【図２Ｂ】
2011021375.tif 000115
【図３】
2011021375.tif 000116
【図４】
2011021375.tif 000117
【図５】
2011021375.tif 000118
【図６】
2011021375.tif 000119
【図７】
2011021375.tif 000120
【図８】
2011021375.tif 000121
【図９】
2011021375.tif 000122
【図１０】
2011021375.tif 000123
【図１１】
2011021375.tif 000124
【図１２Ａ】
2011021375.tif 000125
【図１２Ｂ】
2011021375.tif 000126
【図１２Ｃ】
2011021375.tif 000127
【図１３】
2011021375.tif 000128
【図１４】
2011021375.tif 000129
【図１５】
2011021375.tif 000130
【図１６】
2011021375.tif 000131
【図１７】
2011021375.tif 000132
【図１８Ａ】
2011021375.tif 000133
【図１８Ｂ】
2011021375.tif 000134
【図１８Ｃ】
2011021375.tif 000135
【図１８Ｄ】
2011021375.tif 000136
【図１９Ａ】
2011021375.tif 000137
【図１９Ｂ】
2011021375.tif 000138
【図１９Ｃ】
2011021375.tif 000139
【図１９Ｄ】
2011021375.tif 000140
【図２０Ａ】
2011021375.tif 000141
【図２０Ｂ】
2011021375.tif 000142
【図２０Ｃ】
2011021375.tif 000143
【図２０Ｄ】
2011021375.tif 000144
【図２０Ｅ】
2011021375.tif 000145
【図２１Ａ】
2011021375.tif 000146
【図２１Ｂ】
2011021375.tif 000147
【図２２Ａ】
2011021375.tif 000148
【図２２Ｂ】
2011021375.tif 000149
【図２２Ｃ】
2011021375.tif 000150
【図２３】
2011021375.tif 000151
【図２４Ａ】
2011021375.tif 000152
【図２４Ｂ】
2011021375.tif 000153
【図２４Ｃ】
2011021375.tif 000154
【図２５Ａ】
2011021375.tif 000155
【図２５Ｂ】
2011021375.tif 000156
【図２６】
2011021375.tif 000157
【図２７】
2011021375.tif 000158
【図２８Ａ】
2011021375.tif 000159
【図２８Ｂ】
2011021375.tif 000160
【図２８Ｃ】
2011021375.tif 000161
【図２９】
2011021375.tif 000162
【図３０Ａ】
2011021375.tif 000163
【図３０Ｂ】
2011021375.tif 000164
【図３０Ｃ】
2011021375.tif 000165
【図３０Ｄ】
2011021375.tif 000166
【図３０Ｅ】
2011021375.tif 000167
【図３０Ｆ】
2011021375.tif 000168
【図３０Ｇ】
2011021375.tif 000169
【図３０Ｈ】
2011021375.tif 000170
【図３０Ｉ】
2011021375.tif 000171
【図３０Ｊ】
2011021375.tif 000172
【図３０Ｋ】
2011021375.tif 000173
【図３０Ｌ】
2011021375.tif 000174
【図３０Ｍ】
2011021375.tif 000175
【図３０Ｎ】
2011021375.tif 000176
【図３１】
2011021375.tif 000177
【図３２】
2011021375.tif 000178
【図３３Ａ】
2011021375.tif 000179
【図３３Ｂ】
2011021375.tif 000180
【図３３Ｃ】
2011021375.tif 000181
【図３４Ａ】
2011021375.tif 000182
【図３４Ｂ】
2011021375.tif 000183
【図３４Ｃ】
2011021375.tif 000184
【図３４Ｄ】
2011021375.tif 000185
【図３４Ｅ】
2011021375.tif 000186
【図３４Ｆ】
2011021375.tif 000187
【図３５Ａ】
2011021375.tif 000188
【図３５Ｂ】
2011021375.tif 000189
【図３５Ｃ】
2011021375.tif 000190
【図３５Ｄ】
2011021375.tif 000191
【図３５Ｅ】
2011021375.tif 000192
【図３５Ｆ】
2011021375.tif 000193
【図３６Ａ】
2011021375.tif 000194
【図３６Ｂ】
2011021375.tif 000195
【図３６Ｃ】
2011021375.tif 000196
【図３６Ｄ】
2011021375.tif 000197
【図３６Ｅ】
2011021375.tif 000198
【図３６Ｆ】
2011021375.tif 000199
【図３６Ｇ】
2011021375.tif 000200
【図３６Ｈ】
2011021375.tif 000201
【図３６Ｉ】
2011021375.tif 000202
【手続補正書】
【提出日】平成23年4月11日(2011.4.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御装置であって、
前記ロボットアームに作用する人の力を検出する力検出手段と、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出された前記人の力とをそれぞれ取得する情報取得部と、
前記ロボットアームが前記組立対象物に加える力を検出する対象物力検出手段と、
前記情報取得部でそれぞれ取得した前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とから前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段  とを備えるロボットアームの制御装置。
【請求項２】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢との情報と、前記ロボットアームから組立作業面にかける力情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、前記ロボットアームの作業を行わない領域に関する情報である作業不可領域情報のうちの少なくとも１つの情報を有する請求項１に記載のロボットアームの制御装置。
【請求項３】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームから前記作業面にかける力情報を少なくとも有し、前記動作補正手段は、前記動作に関する情報に基づいて、予め設定された力を前記ロボットアームから前記作業面に作用させて前記動作を行なう力制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記動作を前記ロボットアームで行っている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、補正動作前の前記動作に関する情報のうちの前記設定された力の大きさ又は方向を補正する請求項１に記載のロボットアームの制御装置。
【請求項４】
前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢の情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、作業を行わない領域に関する情報である作業不可領域情報とを有し、
前記動作補正手段は、前記動作に関する情報に基づいて、前記ロボットアームの位置を制御する位置制御モードで動作している最中に、前記ロボットアームに対して前記人から前記ロボットアームに加わる力に応じて前記ロボットアームが作動するハイブリッドインピーダンス制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記作業を動作させている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、前記インピーダンス制御での前記ロボットアームの前記動作を補正する請求項１に記載のロボットアームの制御装置。
【請求項５】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、
前記補正動作種別決定手段は、前記対象物力検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値以上である場合に、前記補正動作の種別として、作業面の位置と姿勢の移動の種別であると決定し、
さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの前記手先の位置と姿勢を補正する請求項１に記載のロボットアームの制御装置。
【請求項６】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、
前記補正動作種別決定手段は、前記対象物力検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値未満である場合に、前記補正動作の種別として、速度の補正の種別であると決定し、
さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの速度を補正する請求項１に記載のロボットアームの制御装置。
【請求項７】
前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置の移動量を検出するとともに、
前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、力の成分用のある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、力用の別のある閾値以下であり、かつ、前記補正動作種別決定部で検出された前記ロボットアームの前記手先の位置の前記移動量が、移動量用のある閾値以上である場合に、前記補正動作の種別として、位置・姿勢の補正の種別であると決定し、
さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正する請求項１に記載のロボットアームの制御装置。
【請求項８】
前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値を越える場合に、前記補正動作の種別として、力の補正の種別であると決定し、
さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの力の大きさを補正する請求項１に記載のロボットアームの制御装置。
【請求項９】
前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備える請求項１〜８のいずれか１つに記載のロボットアームの制御装置。
【請求項１０】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、
前記ロボットアームに作用する人の力を力検出手段で検出し、
前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正するロボットアームの制御方法。
【請求項１１】
前記ロボットアームと、
前記ロボットアームを制御する請求項１〜９のいずれか１つに記載のロボットアームの制御装置とを備える組立ロボット。
【請求項１２】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定するステップと、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させるための組立ロボット用ロボットアームの制御プログラム。
【請求項１３】
組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備える組立ロボット用ロボットアームの制御用集積電子回路。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
本発明の第１０態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、
前記ロボットアームに作用する人の力を力検出手段で検出し、
前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正することを特徴とするロボットアームの制御方法を提供する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
本発明の第１１態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第１〜９のいずれか１つの態様に記載のロボットアームの制御装置とを備えることを特徴とする組立ロボットを提供する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
本発明の第１２態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定するステップと、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させるための組立ロボット用ロボットアームの制御プログラムを提供する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
本発明の第１３態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とする組立ロボット用ロボットアームの制御用集積電子回路を提供する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
本発明の第４態様によれば、前記動作に関する情報は、前記ロボットアームが行う前記組立作業に応じた、前記ロボットアームの前記位置と姿勢の情報と、前記ロボットアームの方向に関する情報と、前記ロボットアームの速度情報と、作業を行わない領域に関する情報である作業不可領域情報とを有し、
前記動作補正手段は、前記動作に関する情報に基づいて、前記ロボットアームの位置を制御する位置制御モードで動作している最中に、前記ロボットアームに対して前記人から前記ロボットアームに加わる力に応じて前記ロボットアームが作動するハイブリッドインピーダンス制御モードを前記ロボットアームが移動可能なｘｙｚ軸方向のそれぞれの軸別に設定して前記作業を動作させている最中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力に応じて、前記インピーダンス制御での前記ロボットアームの前記動作を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】削除
【補正の内容】
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
本発明の第５態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、
前記補正動作種別決定手段は、前記対象物力検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値以上である場合に、前記補正動作の種別として、作業面の位置と姿勢の移動の種別であると決定し、
さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの前記手先の位置と姿勢を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
本発明の第６態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置と姿勢の移動量を検出するとともに、
前記補正動作種別決定手段は、前記対象物力検出手段で検出しかつ前記情報取得部で取得した前記対象物に加わる力が第１の閾値未満であり、かつ前記補正動作種別決定手段により検出された前記ロボットアームの前記手先の位置と姿勢の移動量が第３閾値未満である場合に、前記補正動作の種別として、速度の補正の種別であると決定し、
さらに、前記動作補正手段は、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの速度を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
本発明の第７態様によれば、前記補正動作種別決定手段は、前記ロボットアームの前記手先の位置の移動量を検出するとともに、
前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、力の成分用のある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、力用の別のある閾値以下であり、かつ、前記補正動作種別決定部で検出された前記ロボットアームの前記手先の位置の前記移動量が、移動量用のある閾値以上である場合に、前記補正動作の種別として、位置・姿勢の補正の種別であると決定し、
さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの位置及び姿勢を補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
本発明の第８態様によれば、前記補正動作種別決定部は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力の成分が、ある時間、ある閾値を越えており、かつ、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力が、ある時間、別のある閾値を越える場合に、前記補正動作の種別として、力の補正の種別であると決定し、
さらに、前記動作補正手段は、前記対象物力検出部で前記対象物に加えられた力が検出されかつ前記情報取得部を介して取得した前記対象物に加えられた力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームの力の大きさを補正することを特徴とする第１の態様に記載のロボットアームの制御装置を提供する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
本発明の第９態様によれば、前記補正動作種別決定手段で決定した前記補正動作の種別に基づき、前記補正動作の種別に関する情報を表示する表示手段をさらに備える第１〜８のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
本発明の第１０態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行うロボットアームの制御方法であって、
前記ロボットアームに作用する人の力を力検出手段で検出し、
前記ロボットアームが前記組立対象物に加える力を対象物力検出手段で検出し、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と前記力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する前記人の力に関する情報と前記対象物力検出手段で検出した前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定し、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正することを特徴とするロボットアームの制御方法を提供する。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
本発明の第１１態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第１〜９のいずれか１つの態様に記載のロボットアームの制御装置とを備えることを特徴とする組立ロボットを提供する。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
本発明の第１２態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御プログラムであって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を補正動作種別決定手段で決定するステップと、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を動作補正手段で補正する動作補正ステップとをコンピュータに実行させるための組立ロボット用ロボットアームの制御プログラムを提供する。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
本発明の第１３態様によれば、組立作業用ロボットアームの動作を制御して、前記ロボットアームで把持した組立対象物を被対象物に対して組立てる組立作業を行う組立ロボット用ロボットアームの制御用集積電子回路であって、
前記組立作業における前記ロボットアームの位置を含む前記動作に関する情報と力検出手段で検出しかつ情報取得部で取得した前記ロボットアームに作用する人の力に関する情報と対象物力検出手段で検出しかつ前記ロボットアームが前記対象物に加える力とを用いて、前記動作を補正する補正動作の種別を決定する補正動作種別決定手段と、
予め定められた前記ロボットアームの前記組立作業中に、前記力検出手段で検出しかつ前記情報取得部で取得した前記人の力と前記補正動作種別決定手段で決定された前記補正動作の種別とに応じて、前記ロボットアームを制御して前記動作を補正する動作補正手段とを備えることを特徴とする組立ロボット用ロボットアームの制御用集積電子回路を提供する。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０１２９
【補正方法】変更
【補正の内容】
【０１２９】
を満たすヤコビ行列である。ただし、ｖ＝［ｖｘ、ｖｙ、ｖｚ、ωｘ、ωｙ、ωｚ］Ｔであり、（ｖｘ、ｖｙ、ｖｚ）は手先座標系４２でのロボットアーム５の手先の並進速度、（ωｘ、ωｙ、ωｚ）は手先座標系４２でのロボットアーム５の手先の角速度である。また、ｍはロボットアーム５のハンド３０に把持されたフレキシブル基板７４の重さであり、ｇは重力加速度である。フレキシブル基板７４の重さｍの値は、フレキシブル基板７４をハンド３０で把持する前に、人がデータ入力ＩＦ２６から力検出部５３に入力することもできるが、通常は、フレキシブル基板７４の重さｍは度々変更される値ではないため、予め設定した値とすることもできる。
【国際調査報告】
2011021375.tif 000203
2011021375.tif 000204
2011021375.tif 000205
2011021375.tif 000206