(57)【特許請求の範囲】
【請求項１】
ロボットアームの動作を制御するロボットアームの制御装置であって、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を取得する第１情報取得部と、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを取得する第２情報取得部と、
前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を決定する順位決定部と、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する動作生成部とを備え、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、
前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、
前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置。
【請求項２】
前記知覚情報は前記第２情報取得部で取得し、
前記ばらつき度合とは、前記ロボットアームの位置もしくは姿勢の教示情報、又は、前記第２情報取得部で取得した、前記力情報もしくは前記対象物の位置情報もしくは前記音情報の知覚情報について、それぞれの方向別に時系列における変動の度合である、請求項１に記載のロボットアームの制御装置。
【請求項３】
前記知覚情報は前記第２情報取得部で取得し、
前記第１情報取得部で取得した前記教示情報と前記第２情報取得部で取得した前記知覚情報とのばらつきの度合に関する情報である、時系列における、ばらつき度合を算出するばらつき度合算出部をさらに備え、
前記ばらつき度合算出部で算出した前記ばらつき度合を、前記ばらつき情報として前記第２情報取得部で取得する、請求項１又は２に記載のロボットアームの制御装置。
【請求項４】
前記知覚情報は前記第２情報取得部で取得し、
前記第２情報取得部で取得される情報のうち、前記人が前記ロボットアームを操作する際に、前記操作を完了するために必要な最低限の情報のみを、力もしくは対象物の位置もしくは音量として、提示する知覚情報提示部をさらに備え、
前記第２情報取得部で取得される情報のうち、前記知覚情報は前記知覚情報提示部で提示された知覚情報と同じ種類の情報である請求項１又は２に記載のロボットアームの制御装置。
【請求項５】
前記知覚情報は前記第２情報取得部で取得し、
前記順位決定部は、前記複数の教示情報のうち、より少ない前記知覚情報を使用している教示情報ほど、高い順位として決定する請求項１又は２に記載のロボットアームの制御装置。
【請求項６】
前記順位決定部は、前記複数の教示情報のうち、より短い反応時間情報に基づく教示情報ほど、高い順位として決定する請求項１又は２に記載のロボットアームの制御装置。
【請求項７】
前記知覚情報は前記第２情報取得部で取得し、
それぞれの知覚情報毎に反応時間を合算して、総反応時間情報を算出する反応時間算出部をさらに備え、
前記順位決定部は、前記複数の教示情報のうち、前記反応時間算出部で算出された総反応時間情報がより大きい教示情報ほど、高い順位として決定する請求項１又は２に記載のロボットアームの制御装置。
【請求項８】
前記順位決定部は、前記複数の教示情報のうち、より前記ばらつき度合が小さい教示情報ほど、高い順位として決定する請求項１又は２に記載のロボットアームの制御装置。
【請求項９】
前記動作生成部で生成された前記動作情報で正常に前記ロボットアームが動作しているかどうかを判断する判断部をさらに備え、
前記動作情報で正常に動作していないと前記判断部で判断した場合は、前記動作生成部は、前記教示情報とは異なる教示情報に基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する、請求項１又は２に記載のロボットアームの制御装置。
【請求項１０】
前記動作生成部は、前記複数の教示情報のうち、最も高い順位の教示情報に基づいて、前記ロボットアームの前記動作の情報である動作情報を生成し、
前記動作情報で正常に動作していないと前記判断部で判断した場合は、前記動作生成部は、次に順位の高い教示情報に基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する、請求項９に記載のロボットアームの制御装置。
【請求項１１】
前記動作生成部は、前記順位に基づいて修正すべき動作情報を決定し、
前記動作情報に基づいて、前記動作を制御するための情報である制御則情報を抽出する制御則抽出部と、
前記動作情報で正常に動作していないと前記判断部で判断した場合は、前記制御則を、次に順位の高い制御則と組み換える順位組換部とをさらに備え、
前記動作生成部は、前記順位組換部で組み換えた前記制御則で、前記動作情報を修正して前記動作情報を生成する、請求項９に記載のロボットアームの制御装置。
【請求項１２】
前記順位決定部は、反応時間情報とばらつき情報とにそれぞれ重み付けして、前記複数の教示情報の順位を決定する、請求項９に記載のロボットアームの制御装置。
【請求項１３】
前記動作情報を複数に分割した区間のそれぞれの終了時点である区間目標値を複数設定する区間目標値設定部をさらに備え、
前記順位決定部は、前記区間目標値設定部で設定した前記それぞれの区間目標値までの区間の前記教示情報の前記順位を決定し、
前記動作生成部は、前記区間毎に最も高い順位の前記教示情報を基に動作情報を生成する請求項１又は２に記載のロボットアームの制御装置。
【請求項１４】
前記ロボットアームと、
前記ロボットアームを制御する請求項１〜１３のいずれか１つに記載のロボットアームの制御装置を有するロボット。
【請求項１５】
ロボットアームの動作を制御するロボットアームの制御方法であって、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を第１情報取得部で取得し、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを第２情報取得部で取得し、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を順位決定部で決定し、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を動作生成部で生成し、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御する、ロボットアームの制御方法。
【請求項１６】
ロボットアームの動作を制御するロボットアームの制御プログラムであって、
コンピュータに、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を第１情報取得部で取得するステップと、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを第２情報取得部で取得するステップと、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を順位決定部で決定するステップと、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を動作生成部で生成するステップと、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるための、ロボットアームの制御プログラム。
【請求項１７】
ロボットアームの動作を制御するロボットアームの集積電子回路であって、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を取得する第１情報取得部と、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを取得する第２情報取得部と、
前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を決定する順位決定部と、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する動作生成部とを備え、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、
前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、
前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御するロボットアームの集積電子回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作情報を生成、教示するためのロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、並びに、集積電子回路に関する。
【背景技術】
【０００２】
近年、介護ロボット又は家事支援ロボットなどの家庭用ロボットが盛んに開発されるようになってきた。家庭ロボットは、産業用ロボットと異なり、家庭内のロボットの素人が操作するため、動作を簡単に教示できる必要がある。さらに、ロボットが作業する際の動作環境は、家庭に応じて様々であるため、多種多様な家庭環境に柔軟に対応する必要がある。【０００３】
また、製造現場では多品種少量生産のためモデルチェンジが頻繁に起こる。そのため、多くの工場ではセル生産方式を導入し、人手により作業を行っている。特にフレキシブル基板の挿入作業などのように柔軟物を取り扱う作業は、作業自体が複雑であり、ロボットによる自動化が難しい。将来的に少子高齢化が進み労働人口減少に伴って、現在、人手中心で行っている工場などの作業労働や家庭内の家事及び介護作業をロボットによって支援する意義は大きい。そこで、人手作業を支援するロボットを実現するために、ロボットの素人でも簡単に操作ができ、さらに多種多様に変動する環境においても柔軟にロボットが動作する必要がある。【０００４】
ロボットの動作を教示する方式としては、主に産業用途ではティーチングペンダント又はプログラミングを使った教示方式がある。しかしながら、これらの方式は、家庭内のロボットの素人が操作することは難しい。さらに、環境変動に対応するために、例えばフレキシブル基板の挿入などのように接触力をフィードバックしながら動作する作業の教示が難しい。一方、ロボットアームを直接把持して操作する直接教示方式がある（特許文献１を参照）。この方式は動かしたい方向にロボットアームを誘導するだけで直感的にロボットの動作を生成することができ、直感操作の観点で、大変有効な方式である。【０００５】
一方、多種多様な環境でロボットを動作させるために、基本型となるワークの教示データを作成しておいて、環境に変動があった場合に基本型ワークに対する拡大、縮小、又は、組み合わせ（編集）に対して教示データを作成する方式がある（特許文献２を参照）。また、動作軌跡を力センサからのフィードバック信号により修正しながら、ロボットアームを動作させるセンサーフィードバック方式がある（特許文献３を参照）。この方式はロボットにてバリ取りを行う場合などで、力センサの計測値を観測することでバリの発生状況を観察して、バリの状況に応じてロボットの動作を修正することができる。さらに、人がロボットアームを直接把持して人が作業時に行っているセンサーフィードバック則を抽出する方式がある（非特許文献１を参照）。特許文献３及び非特許文献１ともに対象となる環境の状況をセンシングし、フィードバックしながら動作するため、環境変動に柔軟に対応することが可能である。【０００６】
また、人の熟練技能を評価する方式がある（特許文献４を参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開昭５９−１５７７１５号公報
【特許文献２】特開平０６−３３７７１１号公報
【特許文献３】特開平０６−０２３６８２号公報
【特許文献４】特開２００３−２８１２８７号公報
【非特許文献】
【０００８】
【非特許文献１】田中健太著「人間の直接教示動作の統計的性質に基づいた折り紙ロボットの目標軌道とセンサーフィードバック則生成法」  日本ロボット学会  Ｖｏｌ．２７  Ｎｏ．６（Ｐ．６８５−Ｐ．６９５）  ２００９年７月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１においては、ロボットの素人でも簡単に操作ができる反面、例えば工場でのフレキシブル基板挿入作業などのように、動作中に環境が変動する作業には適応できない。特許文献２は、基本型ワークに対する拡大、縮小、又は、組み合わせで対応可能な環境変動には対応できるものの、例えば工場でのフレキシブル基板挿入作業などのように、動作中に環境が変動する作業には適応できない。特許文献３は、動作中に環境が変動する作業に適応可能だが、ティーチングペンダント又はプログラミングを使った教示方式であるため、フレキシブル基板などのように定式化が難しい環境変動に対応するプログラミングが難しい。プログラミングが可能な作業であっても、プログラミング方式では、ロボットの素人には操作が難しい。非特許文献１は、直感操作により人のセンサーフィードバック則を抽出して動作させるため、簡単に操作ができ、且つ、動作中に環境が変動する作業には適応できる。しかしながら、人は環境からのフィードバックをしながら、同じ作業を何度も繰り返し訓練することで熟練してくる。熟練してくると、これまでの訓練経験から予測が働き、環境からのフィードバックがなくてもその作業ができるようになる。例えば、フレキシブル基板を挿入する場合に、フレキシブル基板がコネクタなどの挿入口にどのように接触しているかを目又は力で認知して、挿入方向又は力加減を変更して作業を行っている。しかしながら、熟練してくると、力を感じなくても作業ができるようになってくる。そのため、人がセンサーフィードバックを行っていないため、非特許文献１の方式ではセンサーフィードバックの抽出が困難である。【００１０】
非熟練者は、人がフレキシブル基板に力を加えながら、どれぐらい曲がるかを手に感じながら教示をするのに対し、熟練者は、どれぐらいの力を加えればフレキシブル基板が曲がるかを、経験により予測できるようになる。熟練するに従って、フレキシブル基板が曲がる際の力を人の手に感じる前に、ロボットアームを移動させるようになる。【００１１】
ここで、フレキシブル基板の挿入作業についてダイレクトティーチングを用いて、直接教示をした際に、フレキシブル基板に加わる力をプロットしたグラフを図３４Ａ及び図３４Ｂに示す。フレキシブル基板に加わる力は、対象物力検出部により検出する。人は教示時にフレキシブル基板に加わる力を把持しているロボットアームを介して手に感じ、手に感じた力に応じてロボットアームを移動させて挿入作業を行っている（センサーフィードバック）。図３４Ａは非熟練者のデータで、人が力を感じて操作をしているときのグラフである。図３４Ｂは熟練者のデータであり、一部の区間において人が力を感じずに予測を働かせて操作をしているときのグラフである。また、図３４Ｃ、図３４Ｄ、図３４Ｅはロボットアームを使って、フレキシブル基板の挿入をしている時の状況を示す。【００１２】
図３４Ａの（３）及び図３４Ｂの（５）はフレキシブル基板挿入作業において、挿入完了時に挿入口の奥の面に当たっている箇所を示す（図３４Ｄの状態）。図３４Ａの（４）は、人が図３４Ａの（３）の力を感じて、力を緩めている箇所である（図３４Ｅの状態）。一般的に、人間は感覚刺激を受けてから行動を起こすまでの反応時間は２００ミリ秒かかることが知られている（工業調査会発行  バーチャルリアリティ学  舘すすむ監修  佐藤誠監修  廣瀬通孝監修  日本バーチャルリアリティ学会編  Ｐ．９７を参照）。【００１３】
この例では、図３４Ａの（３）の感覚刺激を受けて、図３４Ａの（４）の行動を起こすまでの反応時間は、図３４Ａの（１）に示すように２０６ミリ秒である。一方、図３４Ｂの（６）は同様に力を緩めている箇所であるが、図３４Ｂの（５）から図３４Ｂの（６）までの反応時間（２）が８４ミリ秒と短い。一般的に反応時間は２００ミリ秒かかることから、図３４Ｂの（６）は人が図３４Ｂの（５）の力を感じる前に行動を起こしている箇所である。【００１４】
さらに、特許文献４では、熟練者の技能を評価し、データベース化しているが、データベース化した熟練者の技能を使って、ロボットアームの動作の生成を行っていない。ロボットアームを使って、人の技能動作を自動で実行させるためには、環境変動をセンシングし、その環境変動に対してどのように動作するかをフィードバック則として抽出する必要がある。さらに、ロボットアームの可動範囲及び制御性能、並びに、配置するセンサーなども考慮して動作を生成する必要がある。【００１５】
以上のことから、人は熟練してくると、センサーフィードバックで動作せずに、予測を働かせて動作させていることがあるため、直接教示で人の教示データを取得して、非特許文献１に示すように人のフィードバック則を抽出することができない。すなわち、非特許文献１の方式では、フィードバック則が抽出できないため、動作中に周辺環境に変動があったときは対応ができず、環境変動に柔軟な動作生成とはなっていない。【００１６】
従って、本発明の目的は、このような課題に鑑みてなされたものであり、人が簡単にロボットアームの動作を教示することができ、且つ、環境変動に柔軟な動作生成が可能なロボットアームの制御装置及び制御方法、ロボット、制御プログラム、並びに、集積電子回路を提供することにある。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、本発明は以下のように構成する。【００１８】
本発明の１つの態様によれば、ロボットアームの動作を制御するロボットアームの制御装置であって、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を取得する第１情報取得部と、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを取得する第２情報取得部と、
前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を決定する順位決定部と、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する動作生成部とを備え、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、
前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、
前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置を提供する。【００１９】
この概括的かつ特定の態様は、システム、方法、集積電子回路、コンピュータプログラム、プログラムを記録したコンピュータ読み取り可能な記録媒体、並びに、制御装置、システム、方法、集積電子回路、コンピュータプログラム、及び、プログラムを記録したコンピュータ読み取り可能な記録媒体の任意の組み合わせにより実現してもよい。
【発明の効果】
【００２０】
本発明のロボットアームの制御装置及び制御方法、ロボット、及び、ロボットアームの制御プログラム、並びに、集積電子回路によれば、人が簡単にロボットアームの動作を教示することができ、且つ、環境変動に柔軟な動作生成が可能となる。
【図面の簡単な説明】
【００２１】
本発明のこれらと他の目的と特徴は、添付された図面についての実施形態に関連した次の記述から明らかになる。この図面においては、
【図１】図１は、本発明の第１実施形態におけるロボットの構成の概要を示す図であり、
【図２】図２は、本発明の第１実施形態における周辺装置のデータ入力ＩＦを説明する図であり、
【図３Ａ】図３Ａは、本発明の第１実施形態におけるフレキシブル基板挿入時の教示動作を説明する図であり、
【図３Ｂ】図３Ｂは、本発明の第１実施形態におけるフレキシブル基板挿入時の教示動作を説明する図であり、
【図３Ｃ】図３Ｃは、本発明の第１実施形態におけるフレキシブル基板挿入時の教示動作を説明する図であり、
【図３Ｄ】図３Ｄは、本発明の第１実施形態におけるフレキシブル基板挿入時の教示動作を説明する図であり、
【図３Ｅ】図３Ｅは、図３Ａのフレキシブル基板付近の平面図であり、
【図３Ｆ】図３Ｆは、図３Ｂのフレキシブル基板付近の平面図であり、
【図３Ｇ】図３Ｇは、図３Ｃのフレキシブル基板付近の平面図であり、
【図３Ｈ】図３Ｈは、図３Ｄのフレキシブル基板付近の平面図であり、
【図４】図４は、本発明の第１実施形態におけるロボットの詳細構成を示すブロック図であり、
【図５Ａ】図５Ａは、本発明の第１実施形態における座標系に関する図であり、
【図５Ｂ】図５Ｂは、本発明の第１実施形態における座標系に関する図であり、
【図５Ｃ】図５Ｃは、本発明の第１実施形態における座標系に関する図であり、
【図６】図６は、本発明の第１実施形態における制御装置の制御部の構成を示すブロック図であり、
【図７Ａ】図７Ａは、本発明の第１実施形態におけるフレキシブル基板挿入時の教示動作を説明する図であり、
【図７Ｂ】図７Ｂは、本発明の第１実施形態におけるフレキシブル基板挿入時の教示動作を説明する図であり、
【図７Ｃ】図７Ｃは、本発明の第１実施形態におけるフレキシブル基板挿入時の教示動作を説明する図であり、
【図７Ｄ】図７Ｄは、本発明の第１実施形態におけるフレキシブル基板挿入時の教示動作を説明する図であり、
【図８】図８は、本発明の第１実施形態における人の教示時のロボットの動作を説明する図であり、
【図９】図９は、本発明の第１実施形態における制御部のフローチャートであり、
【図１０】図１０は、本発明の第１実施形態における教示情報データベースの教示情報の一覧表を説明する図であり、
【図１１Ａ】図１１Ａは、本発明の第１実施形態における環境情報データベースの環境情報の一覧表を説明する図であり、
【図１１Ｂ】図１１Ｂは、本発明の第１実施形態における環境情報データベースの環境種別フラグを説明する図であり、
【図１２】図１２は、本発明の第１実施形態における動作生成部の構成を示す図であり、
【図１３】図１３は、本発明の第１実施形態における動作生成部と制御部の構成を示す図であり、
【図１４】図１４は、本発明の第１実施形態における動作生成部のフローチャートであり、
【図１５】図１５は、本発明の第１実施形態における動作生成部のフローチャートであり、
【図１６】図１６は、本発明の第１実施形態における人の教示時の位置と力の関係を示すグラフであり、
【図１７Ａ】図１７Ａは、本発明の第１実施形態における人の教示時の位置と力の関係を示すグラフであり、
【図１７Ｂ】図１７Ｂは、本発明の第１実施形態における人の教示時の位置と力の関係を示すグラフであり、
【図１８Ａ】図１８Ａは、本発明の第１実施形態における人の教示時の位置と力の関係を示すグラフであり、
【図１８Ｂ】図１８Ｂは、本発明の第１実施形態における人の教示時の位置と力の関係を示すグラフであり、
【図１８Ｃ】図１８Ｃは、本発明の第１実施形態における人の教示時の位置と力の関係を示すグラフであり、
【図１８Ｄ】図１８Ｄは、本発明の第１実施形態における人の教示時の位置と力の関係を示すグラフであり、
【図１９】図１９は、本発明の第１実施形態における動作生成部と制御部と対象物力検出部の構成を示す図であり、
【図２０Ａ】図２０Ａは、本発明の第１実施形態におけるフレキシブル基板挿入時の動作を説明する図であり、
【図２０Ｂ】図２０Ｂは、本発明の第１実施形態におけるフレキシブル基板挿入時の動作を説明する図であり、
【図２０Ｃ】図２０Ｃは、本発明の第１実施形態におけるフレキシブル基板挿入時の動作を説明する図であり、
【図２０Ｄ】図２０Ｄは、本発明の第１実施形態におけるフレキシブル基板挿入時の動作を説明する図であり、
【図２０Ｅ】図２０Ｅは、図２０Ａのフレキシブル基板付近の平面図であり、
【図２０Ｆ】図２０Ｆは、図２０Ｂのフレキシブル基板付近の平面図であり、
【図２０Ｇ】図２０Ｇは、図２０Ｃのフレキシブル基板付近の平面図であり、
【図２０Ｈ】図２０Ｈは、図２０Ｄのフレキシブル基板付近の平面図であり、
【図２１】図２１は、本発明の第２実施形態におけるロボットシステムの詳細構成を示すブロック図であり、
【図２２】図２２は、本発明の第２実施形態における教示情報データベースの教示情報の一覧表を説明する図であり、
【図２３】図２３は、本発明の第２実施形態における人の教示時の位置と力の関係を示すグラフであり、
【図２４Ａ】図２４Ａは、本発明の第２実施形態における人の教示時のロボットの動作を説明する図であり、
【図２４Ｂ】図２４Ｂは、本発明の第２実施形態における人の教示時のロボットの動作を説明する図であり、
【図２５】図２５は、本発明の第２実施形態における動作生成部のフローチャートであり、
【図２６】図２６は、本発明の第２実施形態における動作生成部のフローチャートであり、
【図２７Ａ】図２７Ａは、本発明の第２実施形態における人の教示時の位置と力と対象物位置と音量の関係を示すグラフであり、
【図２７Ｂ】図２７Ｂは、本発明の第２実施形態における人の教示時の位置と力と対象物位置と音量の関係を示すグラフであり、
【図２８Ａ】図２８Ａは、本発明の第２実施形態における人の教示時の位置と力と対象物位置と音量の関係を示すグラフであり、
【図２８Ｂ】図２８Ｂは、本発明の第２実施形態における人の教示時の位置と力と対象物位置と音量の関係を示すグラフであり、
【図２９】図２９は、本発明の第２実施形態におけるフレキシブル基板挿入時の動作を説明する図であり、
【図３０Ａ】図３０Ａは、本発明の第２実施形態における人の教示時の位置と力と対象物位置と音量の関係を示すグラフであり、
【図３０Ｂ】図３０Ｂは、本発明の第２実施形態における人の教示時の位置と力と対象物位置と音量の関係を示すグラフであり、
【図３１】図３１は、本発明の第２実施形態におけるばらつき度合検出部で差出したばらつき度合と反応時間検出部で検出した反応時間と順位決定部で決定した順位を示す図であり、
【図３２Ａ】図３２Ａは、本発明の第２実施形態における人の教示時の位置と力と対象物位置と音量の関係を示すグラフであり、
【図３２Ｂ】図３２Ｂは、本発明の第２実施形態における人の教示時の位置と力と対象物位置と音量の関係を示すグラフであり、
【図３３】図３３は、本発明の第２実施形態における動作生成部と制御部と対象物力検出部の構成を示す図であり、
【図３４Ａ】図３４Ａは、従来における人の教示時の力に関するグラフであり、
【図３４Ｂ】図３４Ｂは、従来における人の教示時の力に関するグラフであり、
【図３４Ｃ】図３４Ｃは、従来における人の教示時のロボットの動作を説明する図であり、
【図３４Ｄ】図３４Ｄは、従来における人の教示時のロボットの動作を説明する図であり、
【図３４Ｅ】図３４Ｅは、従来における人の教示時のロボットの動作を説明する図であり、
【図３５Ａ】図３５Ａは、本発明の第１実施形態におけるフレキシブル基板を説明する図であり、
【図３５Ｂ】図３５Ｂは、本発明の第１実施形態におけるフレキシブル基板を説明する図である。
【発明を実施するための形態】
【００２２】
本発明の記述を続ける前に、添付図面において同じ部品については同じ参照符号を付している。
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【００２３】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【００２４】
本発明の第１態様によれば、ロボットアームの動作を制御するロボットアームの制御装置であって、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を取得する第１情報取得部と、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを取得する第２情報取得部と、
前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を決定する順位決定部と、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する動作生成部とを備え、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、
前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、
前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御するロボットアームの制御装置を提供する。
【００２５】
本構成によって、教示情報に順位を決定するとき、例えば、最も熟練度の高い教示情報から動作情報を生成することができる。また、人が簡単にロボットアームの動作を教示することができ、且つ、環境変動に柔軟な動作生成が可能となる。
本発明の第２態様によれば、前記知覚情報は前記情報取得部で取得し、
前記ばらつき度合とは、前記ロボットアームの位置もしくは姿勢の教示情報、又は、前記第２情報取得部で取得した、前記力情報もしくは前記対象物の位置情報もしくは前記音情報の知覚情報について、それぞれの方向別に時系列における変動の度合である、第１の態様に記載のロボットアームの制御装置を提供する。
前記態様によれば、人が教示したときのロボットアームの位置もしくは姿勢、力情報、対象物の位置情報もしくは対象物が接触するときの音情報の変動度合いであるばらつき度合を取得して教示情報に順位を決定するとき、例えば、最も熟練度の高い教示情報から動作情報を生成することができる。また、人が簡単にロボットアームの動作を教示することができ、且つ、環境変動に柔軟な動作生成が可能となる。
【００２６】
本発明の第３態様によれば、前記知覚情報は前記第２情報取得部で取得し、
前記第１情報取得部で取得した前記教示情報と前記第２情報取得部で取得した前記知覚情報とのばらつきの度合に関する情報である、時系列における、ばらつき度合を算出するばらつき度合算出部をさらに備え、
前記ばらつき度合算出部で算出した前記ばらつき度合を、前記ばらつき情報として前記第２情報取得部で取得する、第１又は２の態様に記載のロボットアームの制御装置を提供する。
前記態様によれば、人が教示したときのロボットアームの位置もしくは姿勢、力情報、対象物の位置情報もしくは対象物が接触するときの音情報の変動度合いであるばらつき度合を算出して教示情報に順位を決定するとき、例えば、最も熟練度の高い教示情報から動作情報を生成することができる。また、人が簡単にロボットアームの動作を教示することができ、且つ、環境変動に柔軟な動作生成が可能となる。
【００２７】
本発明の第４態様によれば、前記知覚情報は前記第２情報取得部で取得し、
前記第２情報取得部で取得される情報のうち、前記人が前記ロボットアームを操作する際に、前記操作を完了するために必要な最低限の情報のみを、力もしくは対象物の位置もしくは音量として、提示する知覚情報提示部をさらに備え、
前記第２情報取得部で取得される情報のうち、前記知覚情報は前記知覚情報提示部で提示された知覚情報と同じ種類の情報である第１〜３のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００２８】
本構成によって、前記人に提示する情報を制限することができる。
【００２９】
本発明の第５態様によれば、前記知覚情報は前記第２情報取得部で取得し、
前記順位決定部は、前記複数の教示情報のうち、より少ない前記知覚情報を使用している教示情報ほど、高い順位として決定する第１〜４のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３０】
本構成によって、前記人が教示した前記教示情報の順位を決定することができる。
【００３１】
本発明の第６態様によれば、前記順位決定部は、前記複数の教示情報のうち、より短い反応時間情報に基づく教示情報ほど、高い順位として決定する第１〜４のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３２】
本構成によって、前記人が教示した前記教示情報の順位を決定することができる。
【００３３】
本発明の第７態様によれば、前記知覚情報は前記第２情報取得部で取得し、
それぞれの知覚情報毎に反応時間を合算して、総反応時間情報を算出する反応時間算出部をさらに備え、
前記順位決定部は、前記複数の教示情報のうち、前記反応時間算出部で算出された総反応時間情報がより大きい教示情報ほど、高い順位として決定する第１〜４のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３４】
本構成によって、前記人が教示した前記教示情報の順位を決定することができる。
【００３５】
本発明の第８態様によれば、前記順位決定部は、前記複数の教示情報のうち、より前記ばらつき度合が小さい教示情報ほど、高い順位として決定する第１〜４のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３６】
本構成によって、前記人が教示した前記教示情報の順位を決定することができる。
【００３７】
本発明の第９態様によれば、前記動作生成部で生成された前記動作情報で正常に前記ロボットアームが動作しているかどうかを判断する判断部をさらに備え、
前記動作情報で正常に動作していないと前記判断部で判断した場合は、前記動作生成部は、前記教示情報とは異なる教示情報に基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する、第１〜８のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００３８】
本発明の第１０態様によれば、前記動作生成部は、前記複数の教示情報のうち、最も高い順位の教示情報に基づいて、前記ロボットアームの前記動作の情報である動作情報を生成し、
前記動作情報で正常に動作していないと前記判断部で判断した場合は、前記動作生成部は、次に順位の高い教示情報に基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する、第９の態様に記載のロボットアームの制御装置を提供する。
【００３９】
本構成によって、環境変動に適応可能なロボットアームの動作情報を生成することができる。
【００４０】
本発明の第１１態様によれば、前記動作生成部は、前記順位に基づいて修正すべき動作情報を決定し、
前記動作情報に基づいて、前記動作を制御するための情報である制御則情報を抽出する制御則抽出部と、
前記動作情報で正常に動作していないと前記判断部で判断した場合は、前記制御則を、次に順位の高い制御則と組み換える順位組換部とをさらに備え、
前記動作生成部は、前記順位組換部で組み換えた前記制御則で、前記動作情報を修正して前記動作情報を生成する、第９の態様に記載のロボットアームの制御装置を提供する。
【００４１】
本構成によって、環境変動に適応可能なロボットアームの動作情報を生成することができる。
【００４２】
本発明の第１２態様によれば、前記順位決定部は、反応時間情報とばらつき情報とにそれぞれ重み付けして、前記複数の教示情報の順位を決定する、第９の態様に記載のロボットアームの制御装置を提供する。
【００４３】
本構成によって、環境変動に適応可能なロボットアームの動作情報を生成することができる。
【００４４】
本発明の第１３態様によれば、前記動作情報を複数に分割した区間のそれぞれの終了時点である区間目標値を複数設定する区間目標値設定部をさらに備え、
前記順位決定部は、前記区間目標値設定部で設定した前記それぞれの区間目標値までの区間の前記教示情報の前記順位を決定し、
前記動作生成部は、前記区間毎に最も高い順位の前記教示情報を基に動作情報を生成する第１〜１２のいずれか１つの態様に記載のロボットアームの制御装置を提供する。
【００４５】
本構成によって、環境変動に適応可能なロボットアームの動作情報を生成することができる。
【００４６】
本発明の第１４態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第１〜１３のいずれか１つの態様に記載のロボットアームの制御装置を有するロボットを提供する。
本構成によって、教示情報に順位を決定するとき、例えば、最も熟練度の高い教示情報から動作情報を生成することができる。
【００４７】
本発明の第１５態様によれば、ロボットアームの動作を制御するロボットアームの制御方法であって、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を第１情報取得部で取得し、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを第２情報取得部で取得し、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を順位決定部で決定し、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を動作生成部で生成し、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御する、ロボットアームの制御方法を提供する。
【００４８】
本構成によって、教示情報に順位を決定するとき、例えば、最も熟練度の高い教示情報から動作情報を生成することができる。また、人が簡単にロボットアームの動作を教示することができ、且つ、環境変動に柔軟な動作生成が可能となる。
【００４９】
本発明の第１６態様によれば、ロボットアームの動作を制御するロボットアームの制御プログラムであって、
コンピュータに、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を第１情報取得部で取得するステップと、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを第２情報取得部で取得するステップと、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を順位決定部で決定するステップと、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を動作生成部で生成するステップと、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるための、ロボットアームの制御プログラムを提供する。
【００５０】
本構成によって、教示情報に順位を決定するとき、例えば、最も熟練度の高い教示情報から動作情報を生成することができる。また、人が簡単にロボットアームの動作を教示することができ、且つ、環境変動に柔軟な動作生成が可能となる。
【００５１】
本発明の第１７態様によれば、ロボットアームの動作を制御するロボットアームの集積電子回路であって、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を取得する第１情報取得部と、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを取得する第２情報取得部と、
前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を決定する順位決定部と、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を生成する動作生成部とを備え、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、
前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、
前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御するロボットアームの集積電子回路を提供する。
【００５２】
本構成によって、教示情報に順位を決定するとき、例えば、最も熟練度の高い教示情報から動作情報を生成することができる。また、人が簡単にロボットアームの動作を教示することができ、且つ、環境変動に柔軟な動作生成が可能となる。
【００５３】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００５４】
（第１実施形態）
まず、本発明の第１実施形態におけるロボットシステム（ロボット）１の構成について説明する。
【００５５】
図１に示すように、工場内のセル生産で、テレビ、ＤＶＤレコーダ、又は、携帯電話のなどの機器６用のプリント基板のコネクタの挿入口７５に、フレキシブル基板７４の端部を挿入して取り付ける場合を例にとって説明する。ここで、コネクタはロボットアーム５で行う作業（例えば挿入作業）対象の対象物の一例であり、フレキシブル基板７４はロボットアーム５で把持される部品の一例である。
【００５６】
ロボットシステム１のロボットアーム５は、作業台７の壁面７ａに設置され、ロボットアーム５の基端が、壁面７ａに固定されたレール８に、移動可能に支持され、レール８上をロボットアーム５がレール８沿いの横方向例えば水平方向に、人１６の力により、移動可能とする。
【００５７】
作業台７の側面には、ボタン２６ａなどが配置された操作盤２６などのデータ入力ＩＦ２６を備える。
【００５８】
ロボットアーム５の先端には、フレキシブル基板７４を把持するハンド３０が取り付けられている。
【００５９】
作業台７の側面には、カメラなどの画像撮像装置２７が配置され、フレキシブル基板７４及び挿入口７５を撮像する。
【００６０】
作業台７の側面には、マイクなどの集音装置２８が配置され、挿入口７５の付近の音量を計測する。
【００６１】
ロボットシステム１は、機器６の挿入口７５にフレキシブル基板７４を挿入する作業を行うロボットである。
【００６２】
まず、ロボットシステム１の操作手順の概要を説明する。ロボットシステム１の構成については、後で詳述する。
【００６３】
人１６が、作業台７の側面に配置されているデータ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の電源ボタン２６ａの「ＯＮ」を押すなど）により電源を入れる。
【００６４】
次に、作業台７の側面に配置されているデータ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の教示スイッチ２６ｂの教示スタートボタンなど）を人１６の手１６ａで押すことにより、ロボットシステム１が作動する。すると、後述する動作切替部２３により教示モードが設定され、人１６が加えた力に基づいてロボットアーム５が移動することで、ロボットアーム５の動作を教示する。具体的には、図３Ａ〜図３Ｄに示すように、人１６が手１６ａでロボットアーム５を把持しながら操作して、ロボットアーム５によりフレキシブル基板７４を挿入口７５に挿入するように、人１６がロボットアーム５に教示する。
【００６５】
教示した教示情報及び周辺環境に関する情報は、後述する動作生成部１３を介して、教示情報データベース１７Ａ及び環境情報(知覚情報)データベース１８に記憶される。また、教示情報及び周辺環境に関する情報を教示情報取得部（第１情報取得部）９８と情報取得部（第２情報取得部）９７とで取得する際に、人１６が教示作業に不慣れな時点の情報と教示作業に慣れて熟練した時点の情報となどのように、経時的に複数の情報を教示情報取得部９８で取得する（例えば、非熟練時の情報と熟練時の情報など）。
【００６６】
次に、不慣れなときの情報と教示作業に慣れて熟練したときの情報とを使って、後述する動作生成部１３でロボットアーム５の動作情報を生成する。人１６が作業台７の側面に配置されているデータ入力ＩＦ２６（例えば図２の操作盤２６の作業スイッチ２６ｃのスタートボタンなど）を人１６の手１６ａで押すことにより、ロボットシステム１が作動し、動作生成部１３で生成された動作を開始させる。
【００６７】
次に、第１実施形態のロボットシステム１の詳細を説明する。図４はロボットアーム５と、ロボットアーム５の制御装置３と、ロボットアーム５の動作を生成する（動作情報を生成する）動作生成装置２と、周辺装置４７との詳細構成図である。
【００６８】
《ロボットアーム５》
第１実施形態のロボットアーム５は、一例として、６自由度の多リンクマニピュレータで構成される多関節ロボットアームとする。ロボットアーム５は、ハンド３０と、ハンド３０が取り付けられている手首部３１を先端３２ａに有する前腕リンク３２と、前腕リンク３２の基端３２ｂに回転可能に先端３３ａが連結される上腕リンク３３と、上腕リンク３３の基端３３ｂが回転可能に連結支持される台部３４とを備えている。台部３４は、移動可能なレール８に連結されているが、一定位置に固定されていても良い。手首部３１は、第４関節部３８と、第５関節部３９と、第６関節部４０との３つの回転軸を有しており、前腕リンク３２に対するハンド３０の相対的な姿勢（向き）を変化できる。すなわち、図４において、第４関節部３８は、手首部３１に対するハンド３０の横軸（ψ）周りの相対的な姿勢を変化できる。第５関節部３９は、手首部３１に対するハンド３０の、第４関節部３８の横軸とは直交する縦軸（Φ）周りの相対的な姿勢を変化させることができる。第６関節部４０は、手首部３１に対するハンド３０の、第４関節部３８の横軸（ψ）及び第５関節部３９の縦軸（φ）とそれぞれ直交する横軸（θ）周りの相対的な姿勢を変化できる。前腕リンク３２の他端は、上腕リンク３３の先端に対して第３関節部３７周りに、すなわち、第４関節部３８の横軸と平行な横軸周りに回転可能とする。上腕リンク３３の他端は、台部３４に対して第２関節部３６周りに、すなわち、第４関節部３８の横軸と平行な横軸周りに回転可能とする。さらに、台部３４の上側可動部３４ａは、台部３４の下側固定部３４ｂに対して第１関節部３５周りに、すなわち、第５関節部３９の縦軸と平行な縦軸周りに回転可能としている。
【００６９】
この結果、ロボットアーム５は、合計６個の軸周りに回転可能として前記６自由度の多リンクマニピュレータを構成している。
【００７０】
各軸の回転部分を構成する各関節部（具体的には第１関節部３５〜第６関節部４０）には、モータ４３のような回転駆動装置と、モータ４３の回転軸の回転位相角（すなわち関節角）を検出するエンコーダ４４を備えている。
【００７１】
第１実施形態のモータ４３は、ロボットアーム５の各関節部の内部に配設されている。モータ４３は、各関節部を構成する２つのリンク部材のうちの一方のリンク部材に備えられ、後述するモータドライバ２５により駆動制御される。
【００７２】
各関節部の一つのリンク部材の関節部に備えられたモータ４３の回転軸が、他のリンク部材に連結されて、前記回転軸を正逆回転させることにより、前記他のリンク部材を前記一つのリンク部材に対して第１関節部３５〜第６関節部４０のそれぞれの各軸周りに回転可能とする。
【００７３】
４１は台部３４の下側固定部３４ｂに対して相対的な位置関係が固定された絶対座標系であり、４２はハンド３０に対して相対的な位置関係が固定された手先座標系である。絶対座標系４１から見た手先座標系４２の原点位置Ｏｅ（ｘ，ｙ，ｚ）をロボットアーム５の手先位置（ハンド３０の位置）とし、絶対座標系４１から見た手先座標系４２の姿勢をロール角とピッチ角とヨー角とで表現した（φ，θ，ψ）をロボットアーム５の手先姿勢とし、手先位置及び姿勢ベクトルをベクトルｒ＝［ｘ，ｙ，ｚ，φ，θ，ψ］Ｔと定義する。
【００７４】
図５Ａ〜図５Ｃは、本発明の第１実施形態におけるロボットアーム５の座標系を示す。
【００７５】
第１実施形態では、絶対座標系３５のＺ軸を回転軸として、座標系を角度φだけ回転させた座標系を考える（図５Ａ参照）。このときの座標軸を［Ｘ’，Ｙ’，Ｚ］とする。
【００７６】
次に、この座標系を、Ｙ'を回転軸として角度θだけ回転させる（図５Ｂ参照）。このときの座標軸を［Ｘ’’，Ｙ’，Ｚ’’］とする。
【００７７】
最後に、この座標系を、Ｘ’’を回転軸として角度ψだけ回転させる（図５Ｃ参照）。このときの座標系の姿勢をロール角度φ、ピッチ角度θ、ヨー角度ψとし、このときの姿勢ベクトルは（φ，θ，ψ）となる。姿勢（φ，θ，ψ）の座標系が原点位置を手先座標系４２の原点位置Ｏｅ（ｘ，ｙ，ｚ）に平行移動した座標系と、手先座標系４２が一致する場合、手先座標系４２の姿勢ベクトルは（φ，θ，ψ）であるとする。
【００７８】
ロボットアーム５の手先位置及び姿勢を制御する場合には、手先位置及び姿勢ベクトルｒを後述する目標軌道生成部５５で生成された手先位置及び姿勢目標ベクトルｒｄに追従させることになる。
【００７９】
ロボットアーム５は、後述する動作生成装置２と、ロボットアーム５の制御装置３と、周辺装置４７とを備えたロボット制御装置９９により、次のように動作制御される。
【００８０】
ロボットアーム５の各関節部の、エンコーダ４４より出力される各関節角度情報が、入出力ＩＦ２４のカウンタボードを通じて制御装置３に取り込まれる。取り込まれた各関節角度情報に基づき、制御装置３によって各関節部の回転動作での制御指令値が算出される。制御装置３で算出された各制御指令値は、入出力ＩＦ２４のＤ／Ａボードを通じて、ロボットアーム５の各関節部を駆動制御するためのモータドライバ２５に与えられる。モータドライバ２５から送られた前記各制御指令値に従って、ロボットアーム５の各関節部のモータ４３が駆動される。
【００８１】
制御装置３及び動作生成装置２及び周辺装置４７は、一例として、それぞれ一般的なパーソナルコンピュータにより構成される。
【００８２】
《周辺装置４７》
周辺装置４７は、データ入力ＩＦ（インターフェース）２６と、入出力ＩＦ（インターフェース）２４と、モータドライバ２５とを有する。
【００８３】
入出力ＩＦ２４は、パーソナルコンピュータのＰＣＩバスなどの拡張スロットに接続された、例えばＤ／ＡボードとＡ／Ｄボードとカウンタボードとなどを有する。入出力ＩＦ２４は、ロボットアーム５の各関節部のエンコーダ４４より出力される各関節角度情報を取得し、制御装置３の制御部２２に入力する。一方、入出力ＩＦ２４は、制御部２２から制御信号などの制御情報が入力されるとともに、モータドライバ２５に制御指令値などの制御情報を出力する。モータドライバ２５は、ロボットアーム５の各関節部のモータ４３に対し制御指令値などの制御情報を出力する。
【００８４】
データ入力ＩＦ（インターフェース）２６は、人４がキーボード、マウス、又は、マイクなどの外部入力装置２６ｄ、又は、ボタン２６ａ，２６ｂ，２６ｃを使用して、電源のオン及びオフ、教示開始及び停止、並びに、作業開始及び停止の指令をするためのインターフェースである。また、データ入力ＩＦ２６は、図１に示す操作盤２６のボタン２６ａなどの入力装置を使用して、人４から指令を受けるようにしてもよい。ボタン２６ａは、例えばトグルスイッチとして１つのボタンで開始及び終了をそれぞれ入力可能としてもよいし、開始ボタンと終了ボタンと別々に設けてもよい。
【００８５】
《制御装置３》
制御装置３は、対象物力検出部７７と、対象物位置検出部７８と、音量検出部７９と、制御部２２とを有する。
【００８６】
−対象物力検出部７７−
対象物力検出部７７は、人１６がロボットアーム５を操作して、ロボットアーム５の動作を変更させたときに、力センサ７７Ａなどの力測定装置で測定された測定値を基に、制御部２２のタイマー６０（図６参照）を利用して、ある一定時間毎（例えば、４ｍｓｅｃ毎）に対象物に加わる力を検出する。ここで、対象物力検出部７７で検出された力の符号を反転した力が、ロボットアーム５を介して、物理的に人の手１６ａに伝わり、その力を人１６が感じて、ロボットアーム５の動作を変更させる。
【００８７】
対象物に加わる力は、例えば、ロボットアーム５のハンド３０の付近に配置された６軸の力センサ７７Ａで直接的に測定される。より具体的には、図３Ａに示すように、ロボットアーム５が、ハンド３０で把持したフレキシブル基板７４を、対象物の一例としてのコネクタの挿入口７５に挿入する際に、図３Ｂに示すように、フレキシブル基板７４と挿入口７５とが接触したときのフレキシブル基板７４に加わる力を６軸の力センサ７７Ａで測定し、測定値が６軸の力センサ７７Ａから対象物力検出部７７に入力されて、タイマー６０を利用して、ある一定時間毎（例えば、４ｍｓｅｃ毎）に対象物に加わる力を検出する。対象物力検出部７７は、６軸の力センサ７７Ａでの測定値を基に対象物力検出部７７で検出した６軸の力の値を、制御部２２を介して、動作生成部１３に出力する。
【００８８】
−画像撮像装置２７−
画像撮像装置２７は、人１６がロボットアーム５を操作して、ロボットアーム５の動作を変更させたときに、対象物及びその周辺の画像を撮像する装置の一例である。画像撮像装置２７は、例えばカメラなどの撮像装置であり、ロボットアーム５の周辺に配置する。図３Ａに示すように、ロボットアーム５がフレキシブル基板７４を挿入口７５に挿入する際に、カメラによりフレキシブル基板７４などの対象物を撮像する。
【００８９】
対象物位置検出部７８は、画像撮像装置２７で撮像した画像と、あらかじめ記録された対象物の画像との間で、モデルマッチング処理を行い、対象物の位置を、制御部２２のタイマー６０（図６参照）を利用して、ある一定時間毎（例えば、４ｍｓｅｃ毎）に算出する。対象物の位置情報は、フレキシブル基板７４の先端から挿入口７５までの距離を示し、図７Ａ〜図７Ｄに示す「Ｌ」の位置を示す。対象物位置検出部７８で算出した対象物の位置情報は、対象物位置検出部７８から制御部２２を介して動作生成部１３に出力する。人１６は、対象物位置検出部７８で検出された対象物の位置情報を目で確認し、位置情報に応じて、ロボットアーム５の動作を変更させる。
【００９０】
−集音装置２８−
集音装置２８は、人１６がロボットアーム５を操作して、ロボットアーム５の動作を変更させたときの周辺環境の音に関する情報を取得する装置の一例である。集音装置２８は、例えばマイクなどの集音装置であり、ロボットアーム５の周辺（例えば、作業対象物の付近、具体的には、挿入口７５の付近）に配置する。音量検出部７９は、作業中の音をマイクなどで集音し、フレキシブル基板７４が挿入口７５に衝突する際の音について、あらかじめ記録された衝突音とのマッチング処理を行い、マッチした衝突音の音量に関する情報を、制御部２２のタイマー６０（図６参照）を利用して、ある一定時間毎（例えば、４ｍｓｅｃ毎）に音量検出部７９で検出する。音量検出部７９で検出した音量に関する情報は、音量検出部７９から制御部２２を介して動作生成部１３に出力する。人１６は、音量検出部７９で検出された、挿入口７５に衝突する際の音量に応じて、ロボットアーム５の動作を変更させる。
【００９１】
−制御部２２−
制御部２２と動作生成部１３との間では、ロボットアーム５の手先位置又は力の情報と制御モードが入出力される。制御モードは、（ｉ）位置制御モード、（ｉｉ）インピーダンス制御モード、（ｉｉｉ）力制御モードの３つの制御方法のモードうち、いずれか１つの制御方法のモードである。
【００９２】
−制御モードの切替動作−
各制御モードについて説明する。
【００９３】
（ｉ）位置制御モード
位置制御モードは、後述する目標軌道生成部５５の手先位置と姿勢と時間とに関する情報に基づいて、ロボットアーム５が制御部２２で作動するモードである。この位置制御モードは、人４がロボットアーム５に力を加えてもロボットアーム５は移動しないように、ロボットアーム５の動作を制御部２２で制御するモードである。
【００９４】
（ｉｉ）インピーダンス制御モード
インピーダンス制御モードは、人１６などからロボットアーム５に加わる力（具体的には、力検出部５３で検出された力）に応じて、ロボットアーム５が作動するようにロボットアーム５の動作を制御部２２で制御するモードである。例えば、図８に示すように、人１６の手１６ａでロボットアーム５を直接持ち、ロボットアーム５の手先の位置姿勢を教示する場合に用いるモードである。
【００９５】
（ｉｉｉ）力制御モード
力制御モードは、後述する目標軌道生成部５５の力と時間とに関する情報に基づいて、ロボットアーム５を用いて対象物を押し付けながら動作するように制御部２２でロボットアーム５の動作を制御するモードである。
【００９６】
これらの制御モードは、ロボットアーム５の動作の際に、ロボットアーム５の方向及び姿勢別にそれぞれ適切な制御モードを動作生成部１３で設定して動作させる。
【００９７】
インピーダンス制御モードでロボットアーム５が動作中に、機械インピーダンス設定値又はインピーダンス計算部５１で出力する手先位置及び姿勢目標補正出力ｒｄ△の設定を変更する。
【００９８】
機械インピーダンス設定値の設定パラメータとしては、慣性Ｍと粘性Ｄと剛性Ｋとがある。機械インピーダンス設定値の各パラメータの設定は、補正値を使って、以下の評価式に基づいて行う。
Ｍ  ＝  ＫＭ×（補正値）  ・・・・式（１）
Ｄ  ＝  ＫＤ×（補正値）  ・・・・式（２）
Ｋ  ＝  ＫＫ×（補正値）  ・・・・式（３）
前記式（１）〜（３）中のＫＭ、ＫＤ、ＫＫはそれぞれゲインであり、それぞれある定数値である。
【００９９】
あらかじめ、前記式（１）〜（３）に基づき計算した機械インピーダンス設定値の慣性Ｍと粘性Ｄと剛性Ｋを決定しておいても良いし、動作生成部１３から慣性Ｍと粘性Ｄと剛性Ｋを決定して制御部２２へ出力しても良い。
【０１００】
次に、制御部２２の詳細について、図６を用いて説明する。図６は、第１実施形態のロボット制御装置９９の制御部２２の詳細を示す。
【０１０１】
制御部２２は、目標軌道生成部５５と、力検出部５３と、インピーダンス計算部５１と、位置制御部５９と、位置誤差計算部８０とを有する。位置制御部５９は、位置誤差補償部５６と、近似逆運動学計算部５７と、順運動学計算部５８とを有する。力検出部５３は、図６では制御部２２の一部として図示しているが、制御部２２とは別の構成としてもよい。
【０１０２】
制御部２２は、入出力ＩＦ２４を介してロボットアーム５との制御信号などの信号のやり取りを行うが、図６では、制御部２２とロボットアーム５とのデータ信号のやり取りとして簡略化した図とする。
【０１０３】
ロボットアーム５に設けた各関節軸のエンコーダ４４により計測された関節角の現在値（関節角度ベクトル）ベクトルｑ＝［ｑ１，ｑ２，ｑ３，ｑ４，ｑ５，ｑ６］Ｔが出力され、入出力ＩＦ２４により制御部２２に取り込まれる。ここで、ｑ１，ｑ２，ｑ３，ｑ４，ｑ５，ｑ６は、それぞれ、第１関節部３５、第２関節部３６、第３関節部３７、第４関節部３８、第５関節部３９、第６関節部４０の関節角度である。
【０１０４】
目標軌道生成部５５は、動作生成部１３から入力された動作情報（具体的には、ロボットアーム５の手先位置と、姿勢と、時間と、力との情報）とそれぞれの方向別での制御モードに基づいて、ロボットアーム５の目標とする手先位置及び姿勢目標ベクトルｒｄと力目標ベクトルｆｄを生成し、位置誤差計算部８０に出力する。
【０１０５】
具体的には、目標とするロボットアーム５の動作は、目的とする作業に応じて動作指令部２７からそれぞれの時間（ｔ＝０、ｔ＝ｔ１、ｔ＝ｔ２、・・・）でのポイント毎の位置及び姿勢（ｒｄ０、ｒｄ１、ｒｄ２、・・・）と、力（ｆｄ０、ｆｄ１、ｆｄ２、・・・）とが与えられている。
【０１０６】
目標軌道生成部５５は、多項式補間を使用し、前記各ポイント間の軌道を補間し、手先位置及び姿勢目標ベクトルｒｄと力目標ベクトルｆｄとを生成する。
【０１０７】
力検出部５３は、人１６等の対象物とロボットアーム５との接触によってロボットアーム５に加わる外力Ｆｅｘｔを検出する。ただし、手先に重量ｍの物体を把持して作業している場合は、検出したＦｅｘｔからｍｇをあらかじめ減じておく。ここで、ｇは重力加速度である。把持物体の質量ｍの値は、物体を把持する前に人１６が外部入力装置２６ｄからデータ入力ＩＦ２６を介して力検出部５３に入力できる。また、作業対象物の識別番号、質量、形状、寸法、及び、色などの物品情報を物品データベースに格納しておき、物品認識装置が、作業物品に備えられたタグなどの識別情報を読み取り、読取った情報を基に、対応する物品の質量を物品データベースから取得することも可能である。
【０１０８】
力検出部５３は、モータドライバ２５の電流センサで計測された、ロボットアーム５の各関節部を駆動するモータ４３をそれぞれ流れる電流値ｉ＝［ｉ１，ｉ２，ｉ３，ｉ４，ｉ５，ｉ６］Ｔを、入出力ＩＦ２４を介して取得する。また、力検出部５３には、各エンコーダ４４で計測された関節角の現在値ｑが入出力ＩＦ２４を介して取り込まれるとともに、後述する近似逆運動学計算部５７からの関節角度誤差補償出力ｕｑｅが取り込まれる。力検出部５３は、オブザーバーとして機能し、前記電流値ｉ、関節角の現在値ｑ及び、関節角度誤差補償出力ｕｑｅに基づいて、ロボットアーム５に加わる外力により各関節部に発生するトルクτｅｘｔを算出する。
【０１０９】
そして、力検出部５３は、式Ｆｅｘｔ＝Ｊｖ（ｑ）−Ｔτｅｘｔ−［０，０，ｍｇ］Ｔによりロボットアーム５の手先における等価手先外力Ｆｅｘｔに換算して、この等価手先外力Ｆｅｘｔをインピーダンス計算部５１に出力する。ここで、Ｊｖ（ｑ）は、
【０１１０】
【数１】
0005512048.tif 000002
を満たすヤコビ行列である。ただし、ｖ＝［ｖｘ，ｖｙ，ｖｚ，ωｘ，ωｙ，ωｚ］Ｔであり、（ｖｘ，ｖｙ，ｖｚ）は手先座標系４２でのロボットアーム５の手先の並進速度であり、（ωｘ，ωｙ，ωｚ）は手先座標系４２でのロボットアーム５の手先の角速度である。また、ｍはハンド３０で把持している把持物体の質量であり、ｇは把持物体の重力加速度である。また、ロボットアーム５のハンド３０による物体の把持を実際に行い、そのときの力検出部５３の等価手先外力Ｆｅｘｔの推定結果に基づいて把持物体の質量ｍの値を算出する事も可能である。ハンド３０に物体を把持しない場合はｍ＝０として算出する。
【０１１１】
インピーダンス計算部５１は、動作生成部１３から制御モードの設定信号及び機械インピーダンス設定値を受け取り、機械インピーダンス設定値にロボットアーム５の機械インピーダンス値を制御する。動作生成部１３から（ｉ）位置制御モードの設定信号をインピーダンス計算部５１で受け取った場合は、インピーダンス計算部５１は、機械インピーダンス値として“０”を出力する。
【０１１２】
動作生成部１３から（ｉｉ）インピーダンス制御モードの設定信号をインピーダンス計算部５１で受け取った場合、動作生成部１３で設定された機械インピーダンス設定値である慣性Ｍと粘性Ｄと剛性Ｋと、エンコーダ４４で計測した関節角の現在値ｑと、力検出部５３で検出した外力Ｆｅｘｔとに基づいて、インピーダンス計算部５１は、ロボットアーム５が機械インピーダンス設定値の制御を実現するための手先の位置姿勢目標補正出力ｒｄΔを式（５）により計算する。
【０１１３】
インピーダンス計算部５１は、式（５）により計算して求められた手先の位置姿勢目標補正出力ｒｄΔを位置誤差計算部８０に出力する。
【０１１４】
後述する動作生成部１３から（ｉｉｉ）力制御モードの設定信号を受け取った場合には、動作生成部１３で設定された機械インピーダンス設定値である慣性Ｍと粘性Ｄと剛性Ｋと、エンコーダ４４で計測した関節角の現在値ｑと、力検出部５３で検出した外力Ｆｅｘｔと、目標軌道生成部５５から出力される力ｆｄとに基づいて、インピーダンス計算部５１は、ロボットアーム５が機械インピーダンス設定値の制御を実現するための手先の位置姿勢目標補正出力ｒｄΔを以下の式（９）により計算する。
【０１１５】
インピーダンス計算部５１は、式（９）により計算して求められた手先の位置姿勢目標補正出力ｒｄΔを位置誤差計算部８０に出力する。
【０１１６】
位置誤差計算部８０は、インピーダンス計算部５１から出力された手先の位置姿勢目標補正出力ｒｄΔと、目標軌道生成部５５から出力された手先の位置姿勢目標ベクトルｒｄとを加算し、手先の位置姿勢補正目標ベクトルｒｄｍを生成する。
【０１１７】
【数２】
0005512048.tif 000003
ただし、
【０１１８】
【数３】
0005512048.tif 000004
【０１１９】
【数４】
0005512048.tif 000005
【０１２０】
【数５】
0005512048.tif 000006
であり、ｓはラプラス演算子である。
【０１２１】
【数６】
0005512048.tif 000007
ただし、Ｍ，Ｄ，Ｋは式（６）、式（７）、式（８）により算出する。
【０１２２】
位置誤差計算部８０は、手先位置及び姿勢補正目標ベクトルｒｄｍと、後述する順運動学計算部５８により計算される手先位置及び姿勢ベクトルｒとの誤差ｒｅを求め、誤差ｒｅを位置誤差補償部５６に出力する。
【０１２３】
順運動学計算部５８は、ロボットアーム５の各関節軸のエンコーダ４４から計測された関節角の現在値ｑである関節角度ベクトルｑが、入出力ＩＦ２４を介して入力される。順運動学計算部５８は、ロボットアーム５の関節角度ベクトルｑから、手先位置及び姿勢ベクトルｒへの変換の幾何学的計算を行う。順運動学計算部５８で計算された手先位置及び姿勢ベクトルｒは、位置誤差計算部８０及びインピーダンス計算部５１及び目標軌道生成部５５に出力される。
【０１２４】
位置誤差補償部５６は、位置誤差計算部８０で求められた誤差ｒｅに基づいて、位置誤差補償出力ｕｒｅを近似逆運動学計算部５７に出力する。
【０１２５】
近似逆運動学計算部５７は、位置誤差補償部５６から入力される位置誤差補償出力ｕｒｅとロボットアーム５において計測される関節角度ベクトルｑとに基づいて、近似式ｕｏｕｔ＝Ｊｒ（ｑ）−１ｕｉｎにより、逆運動学の近似計算を行う。ただし、Ｊｒ（ｑ）は、
【０１２６】
【数７】
0005512048.tif 000008
の関係を満たすヤコビ行列であり、ｕｉｎは近似逆運動学計算部５７への入力であり、ｕｏｕｔは近似逆運動学計算部５７からの出力であり、入力ｕｉｎを関節角度誤差ｑｅとすれば、ｑｅ＝Ｊｒ（ｑ）−１ｒｅのように手先の位置姿勢誤差ｒｅから関節角度誤差ｑｅへの変換式となる。
【０１２７】
従って、位置誤差補償部５６から位置誤差補償出力ｕｒｅが近似逆運動学計算部５７に入力されると、近似逆運動学計算部５７からの出力として、関節角度誤差ｑｅを補償するための関節角度誤差補償出力ｕｑｅが近似逆運動学計算部５７から入出力ＩＦ２４を介してロボットアーム５のモータドライバ２５に出力される。
【０１２８】
関節角度誤差補償出力ｕｑｅは、入出力ＩＦ２４のＤ／Ａボードを介してロボットアーム５のモータドライバ２５に電圧指令値として与えられ、各モータ４３により各関節軸が正逆回転駆動されロボットアーム５が動作する。
【０１２９】
タイマー６０は、制御部２２内に配置され、ある一定時間（例えば、４ｍｓｅｃ毎）の経過後に各手段（各部）を実行させる。具体的には、制御部２２の各手段（各部）及び制御部２２に情報が入力される対象物力検出部７７と対象物位置検出部７８と音量検出部７９とを一定時間毎に実行させる。
【０１３０】
以上のように構成される制御部２２に関して、ロボットアーム５のインピーダンス制御動作の原理について説明する。
【０１３１】
インピーダンス制御動作の基本は、位置誤差補償部５６による手先の位置姿勢誤差ｒｅのフィードバック制御（位置制御）であり、図６の点線で囲まれた部分が位置制御部（位置制御系）５９になっている。位置誤差補償部５６として、例えば、ＰＩＤ補償器を使用すれば、手先位置及び姿勢誤差ｒｅが０に収束するように位置制御部５９による制御が働き、目標とするロボットアーム５のインピーダンス制御動作を実現できる。
【０１３２】
（ｉｉ）インピーダンス制御モード及び（ｉｉｉ）力制御モードの場合、位置誤差計算部８０は、インピーダンス計算部５１からの手先の位置及び姿勢目標補正出力ｒｄΔを加算し、位置制御部５９に対して手先位置及び姿勢の目標値の補正を行う。このため、位置制御部５９は、手先位置及び姿勢の目標値が本来の値より微妙にずれることになり、結果的に、ロボットアーム５の機械インピーダンスの値を、前記適切に設定された機械インピーダンス設定値に制御でき、位置制御部５９の位置制御動作を補正できる。
【０１３３】
第１実施形態の制御部２２の動作ステップについて説明する。図９は、第１実施形態の制御部２２の動作フローチャートである。
【０１３４】
ロボットアーム５の関節部３５〜４０の各エンコーダ４４により計測された関節角度ベクトルｑが、入出力ＩＦ２４を介して、制御部２２に取り込まれる（ステップＳ５１）。
【０１３５】
次に、制御部２２に取り込まれた関節角度ベクトルｑに基づいて、近似運動学計算部５７は、ロボットアーム５の運動学計算に必要なヤコビ行列Ｊｒ等の計算を行う（ステップＳ５２）。ここでは、制御動作始動時のため、位置誤差補償部５６から入力される位置誤差補償出力ｕｒｅは、“０”値として計算する。
【０１３６】
次に、順運動学計算部５８は、ロボットアーム５の各エンコーダ４４から計測された関節角度ベクトルｑから、ロボットアーム５の現在の手先位置及び姿勢ベクトルｒを計算して、位置誤差計算部８０と目標軌道生成部５５とインピーダンス計算部５１とに出力する（ステップＳ５３）。
【０１３７】
次に、動作生成部１３から入力された動作情報に基づき、目標軌道計算部５５は、ロボットアーム５の手先の位置及び姿勢目標ベクトルｒｄを計算し、インピーダンス制御モード時は、ロボットアーム５の手先位置を、目標とする手先位置及び姿勢目標ベクトルｒｄとして位置誤差計算部８０に出力し、力制御モードの時は、力目標ベクトルｆｄを出力する（ステップＳ５４）。
【０１３８】
次に、力検出部５３は、モータ４３の駆動電流値ｉと、関節角度ベクトルｑと、関節角度誤差補償出力ｕｑｅとに基づいて、ロボットアーム５の手先における等価手先外力Ｆｅｘｔを計算してインピーダンス計算部５１に出力する（ステップＳ５５）。
【０１３９】
次に、動作生成部１３からインピーダンス計算部５１に入力された制御モードの切り替えを、インピーダンス計算部５１で実行する（ステップＳ５６）。
【０１４０】
ステップ５６において、制御モードのそれぞれの成分において、（ｉ）位置制御モードの場合はステップ５７に進み、（ｉｉ）インピーダンス制御モード又は（ｉｉｉ）力制御モードの場合は、ステップ５８に進む。
【０１４１】
ステップＳ５７において、動作生成部１３により（ｉ）位置制御モードが設定された場合、インピーダンス計算部５１は、手先位置及び姿勢目標補正出力ｒｄΔを０ベクトルとする。その後、ステップＳ６１に進む。
【０１４２】
ステップＳ５８において、動作生成部１３により、（ｉｉ）インピーダンス制御モード若しくは（ｉｉｉ）力制御モードが設定された場合、インピーダンス計算部５１は、動作生成部１３において設定された機械インピーダンス設定値の慣性Ｍと粘性Ｄと剛性Ｋと、関節角度ベクトルｑと、力検出部５３により計算されたロボットアーム５に加わる等価手先外力Ｆｅｘｔとから、手先位置及び姿勢目標補正出力ｒｄΔが、インピーダンス計算部５１により計算される。その後、ステップＳ６０に進む。
【０１４３】
ステップＳ６０において、手先位置及び姿勢目標ベクトルｒｄと手先位置及び姿勢目標補正出力ｒｄΔとの和である手先位置及び姿勢補正目標ベクトルｒｄｍと、現在の手先位置及び姿勢ベクトルｒとの差である、手先位置及び姿勢の誤差ｒｅを位置誤差計算部８０で計算する。さらに、位置誤差補償部５６は、位置誤差計算部８０で計算された誤差ｒｅに基づいて、位置誤差補償出力ｕｒｅを近似逆運動学計算部５７に出力する。位置誤差補償部５６の具体例としては、ＰＩＤ補償器が考えられる。定数の対角行列である比例、微分、積分の３つのゲインを調整することにより、位置誤差ｒｅが０に収束するように位置誤差補償部５６の制御が働く。その後、ステップＳ６１に進む。
【０１４４】
ステップＳ６１において、近似逆運動学計算部５７は、ステップＳ２で計算したヤコビ行列Ｊｒの逆行列を、ステップＳ６０で得られた位置誤差補償出力ｕｒｅに乗算することにより、位置誤差補償出力ｕｒｅを、手先位置及び姿勢の誤差に関する値から関節角度の誤差に関する値である関節角度誤差補償出力ｕｑｅに計算する。
【０１４５】
ステップＳ６２において、ステップＳ６１で計算された関節角度誤差補償出力ｕｑｅが、近似逆運動学計算部５７から入出力ＩＦ２４を通じ、モータドライバ２５に与えられる。モータドライバ２５は、関節角度誤差補償出力ｕｑｅに基づき、ロボットアーム５の関節部のそれぞれのモータ４３を流れる電流量を変化させる。この電流量の変化により、ロボットアーム５のそれぞれの関節部のモータ駆動を行い、ロボットアーム５の動作を行う。
【０１４６】
以上のステップＳ５１からステップＳ６２が制御の計算ループとして制御部２２で繰り返し実行されることにより、制御部２２によるロボットアーム５の動作の制御、すなわち、ロボットアーム５の機械インピーダンスの値を所定の設定値に制御する動作を実現することができる。
【０１４７】
《動作生成装置２》
動作生成装置２は、教示情報データベース１７Ａと、環境情報データベース１８と、動作生成部１３と、順位決定部１１と、制御則抽出部２０と、データベース入出力部１０と、ばらつき度合算出部１２と、反応時間算出部１５と、動作切替部２３とにより構成される。データベース入出力部１０と教示情報データベース１７Ａとで、人１６がロボットアーム５を操作して動作の教示を行うときの、時系列の複数の教示情報を取得する教示情報取得部の一例９８が構成される。環境情報データベース１８とデータベース入出力部１０とで、少なくとも反応時間情報とばらつき情報と（場合によっては、さらに、知覚情報）を取得する情報取得部９７の一例を構成している。ここで、反応時間情報は、ロボットアーム５で行う作業対象の対象物にロボットアーム５から加えられる力情報と、ロボットアーム５で行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を人１６が受けてから、人１６がロボットアーム５の操作をするまでの時間情報である。ばらつき情報は、時系列における教示情報もしくは時系列における知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報である。
【０１４８】
それぞれについて、下記に詳細を説明する。
【０１４９】
−教示情報データベース１７Ａ−
教示情報データベース１７Ａは、所定の時間におけるロボットアーム５の手先位置及び姿勢から構成されるロボットアーム５の動作を教示した情報（以下、教示情報と称す。）を格納する。教示情報は、人１６がロボットアーム５を操作して後述する動作生成部１３で生成し、動作生成部１３からデータベース入出力部１０により教示情報データベース１７Ａに入力されて、教示情報データベース１７Ａに記憶される。図１０は、教示情報データベース１７Ａのデータである教示情報を示す。
【０１５０】
（１）図１０の「作業ＩＤ」の欄は、作業を識別する作業ＩＤ番号を示す。
【０１５１】
（２）「動作ＩＤ」の欄は、作業を実行するためのロボットアーム５の個々の動作を識別する動作ＩＤ番号を示す。
【０１５２】
（３）「位置姿勢」の欄は、動作におけるロボットアーム５の手先位置及び姿勢に関する情報を示す。なお、第１実施形態はメートル（ｍ）単位系で示す。
【０１５３】
（４）「時間」の欄は、ロボットアーム５の各動作を実行するための時間に関する情報を示す。なお、第１実施形態では秒（ｓｅｃ）単位で示す。
【０１５４】
（５）「ユーザＩＤ」の欄は、作業を教示した人を識別するためのユーザＩＤを示す。
【０１５５】
（６）「日時」の欄は、後述する動作生成部１３にて教示情報を記憶する時点の日時を示す。
【０１５６】
（７）「熟練度」の欄は、後述する順位決定部１１で算出した熟練度を示す。
【０１５７】
−環境情報データベース１８−
環境情報データベース１８は、人１６がロボットアーム５を操作して、ロボットアーム５の動作を変更させるために使用したロボットアーム５の周辺環境に関する情報であって人１６が知覚する情報（以下、環境情報(知覚情報)と称す。）を格納する。環境情報は、後述する動作生成部１３で教示情報を生成する際に、教示情報と対にして動作生成部１３で生成され、動作生成部１３からデータベース入出力部１０により環境情報データベース１８に入力され、環境情報データベース１８に記憶される。具体的には、人１６がロボットアーム５を操作して教示情報を生成する際に、対象となる物体（ロボットアーム５で行う作業対象の対象物）にロボットアーム５から加える力の情報と、対象物位置検出部７８で検出した対象物の位置情報と、音量検出部７９で検出した音量情報(音情報)とのいずれか１つ以上の環境情報(知覚情報)を環境情報データベース１８に記憶する。
【０１５８】
図１１Ａは、環境情報データベース１８のデータである環境情報を示す。
【０１５９】
（１）図１１Ａの「環境ＩＤ」の欄は、環境を識別する環境ＩＤ番号を示す。
【０１６０】
（２）「作業ＩＤ」の欄は、環境ＩＤに該当する環境情報を取得したときの作業を示し、教示情報データベース１７Ａの「作業ＩＤ」を示す。
【０１６１】
（３）「動作ＩＤ」の欄は、環境ＩＤに該当する環境情報を取得したときの動作を示し、教示情報データベース１７Ａの「動作ＩＤ」を示す。
【０１６２】
（４）「力」の欄は、対象物力検出部７７で検出された力に関する情報（力の情報）を示し、力のｘ、ｙ、ｚ、φ、θ、ψ方向の成分を（ｆｘ，ｆｙ，ｆｚ，ｆφ，ｆθ，ｆψ）と表す。
【０１６３】
（５）「対象物位置」の欄は、対象物位置検出部７８で検出した対象物の位置を示す。
【０１６４】
（６）「音量」の欄は、音量検出部７９で検出した音量を示す。
【０１６５】
（７）「環境種別フラグ」の欄は、環境情報の力及び対象物位置及び音量のパラメータのうちのいずれの情報が有効か否かを示すフラグに関する情報を示す。具体的には、図１１Ｂで示した３２ビットの数値で表す。図１１Ｂにおいて、各ビットで、各パラメータの値がそれぞれ有効の場合は「１」とし、無効の場合は「０」とする。第１実施形態では０ビット目から５ビット目は力の情報、６ビット目は、対象物位置の情報、７ビット目は音量の情報を示す。例えば、０ビット目において、力のｘ座標の値が有効の場合は「１」とし、無効の場合は「０」とする。また、１ビット目において、力のｙ座標の値が有効の場合は「１」とし、無効の場合は「０」とする。また、２ビット目において、力のｚ座標の値が有効の場合は「１」とし、無効の場合は「０」とする。以後、順次、３，４，５ビット目は力のφ、θ、ψの有効性を表す。すなわち、有効の場合は「１」とし、無効の場合は「０」とする。さらに、６ビット目においては、対象物位置の情報が有効か無効かを示す（すなわち、有効の場合は「１」とし、無効の場合は「０」とする）。７ビット目においては、音量の情報が有効か無効かを示す（すなわち、有効の場合は「１」とし、無効の場合は「０」とする）。
【０１６６】
また、フラグに関する情報は、将来の拡張用に多め（３２ビット）に用意しているため、この例では８ビット目から３１ビット目は使用しないので、「０」を入れておくが、７ビットのみ格納記憶できる変数としても良い。
【０１６７】
−データベース入出力部１０−
データベース入出力部１０は、各データベース群（教示情報データベース１７Ａ、環境情報データベース１８）と、順位決定部１１と、動作生成部１３と、ばらつき度合算出部１２と、反応時間算出部１５と、制御則抽出部２０とのデータの入出力を行う。
【０１６８】
−動作切替部２３−
動作切替部２３は、ロボットアーム５に対して、操作盤２６などのデータ入力ＩＦ２６からの入力情報に基づき、（ｉ）教示モード、（ｉｉ）再生モード、（ｉｉｉ）待機モード、の３つのモードの切り替えを行い、切替えたモード情報を動作生成部１３へ出力する。
【０１６９】
（ｉ）教示モードは、例えば図８に示すようにロボットアーム５を人１６が操作して人１６がロボットアーム５の動作情報を生成するモードである。
【０１７０】
（ｉｉ）再生モードは動作生成部１３で生成した動作情報に基づき、ロボットアーム５が自動で再生するモードである。
【０１７１】
（ｉｉｉ）待機モードは、ロボットアーム５の電源がＯＮとなっており、教示モードと再生モードとが設定されていないときのモードである。
【０１７２】
モードの切り替えは、操作盤２６などのデータ入力ＩＦ２６により動作切替部２３に入力する。
【０１７３】
具体的には、データ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の電源ボタン２６ａの「ＯＮ」を押すなど）により電源を入れた直後は、待機モードに動作切替部２３で設定する。
【０１７４】
次に、人１６が教示を開始する際には、データ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の教示スタートボタン２６ｂを押すなど）により、教示モードを動作切替部２３で設定する。人１６が教示を終了した際には、データ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の教示ストップボタン２６ｂを押すなど）により、待機モードを動作切替部２３で設定する。
【０１７５】
次に、ロボットアーム５が教示した動作を自動で再生させる場合には、人１６がデータ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の作業スタートボタン２６ｃを押すなど）により、再生モードを動作切替部２３で設定する。再生を中断する場合又は作業が終了した場合には、人１６がデータ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の作業ストップボタン２６ｃを押すなど）により待機モードを動作切替部２３で設定する。
【０１７６】
−ばらつき度合算出部１２−
ばらつき度合算出部１２は、データベース入出力部１０で入力された教示情報と環境情報とのばらつきの度合に関する情報である、時系列における、ばらつき度合を算出し、算出したばらつき度合を動作生成部１３へ出力する。ここで、ばらつき度合とは、ロボットアーム５の位置もしくは姿勢の教示情報、又は、力もしくはロボットアーム５で行う作業対象の対象物の位置もしくは音量の環境情報(知覚情報)のそれぞれの方向別に時系列における変動(変位）の度合いを意味する。具体的には、例えば、ばらつき度合算出部１２は、教示情報（ロボットアーム５の位置もしくは姿勢）について、それぞれの方向別に変位を求める。ばらつき度合算出部１２で求めた変位の絶対値が第１の閾値（教示情報変位検出用閾値）以上である箇所を、ばらつき度合算出部１２でカウントする（ここでは、そのカウントした値をｂ１とする）。さらに、ばらつき度合算出部１２で求めた変位の絶対値が第１の閾値以上である変位について、その変位の絶対値の合計をばらつき度合算出部１２で算出する（ここでは、その算出した値をｈ１とする）。
【０１７７】
次に、環境情報（知覚情報であって、具体的には、力もしくは対象物位置もしくは音量）のそれぞれについて変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の絶対値が第２の閾値（環境情報(知覚情報)変位検出用閾値）以上である箇所をばらつき度合算出部１２でカウントする（ここでは、そのカウントした値をｂ２とする）。さらに、ばらつき度合算出部１２で求めた変位の絶対値が第２の閾値以上である変位について、その変位の絶対値の合計をばらつき度合算出部１２で算出する（ここでは、その算出した値をｈ２とする）。ばらつき度合Ｂは（ｃ１×ｂ１＋ｃ２×ｂ２＋ｃ３×ｈ１＋ｃ４×ｈ２）によりばらつき度合算出部１２で算出する。ただし、ｃ１、ｃ２、ｃ３、ｃ４は定数であり、あらかじめ決定しておいてばらつき度合算出部１２の内部記憶部に記憶しておいても良いし、データ入力ＩＦ２６を使って、ばらつき度合算出部１２に後から入力しても良い。なお、各閾値及び定数の具体的な数値については後述する。
【０１７８】
ばらつき度合は、人１６が教示作業に不慣れな時点の情報と教示作業に慣れて熟練した時点の情報となどのように、経時的に複数の情報に対してばらつき度合算出部１２で算出する。
【０１７９】
また、第１の閾値と第２の閾値とは、ばらつき度合算出部１２にあらかじめ設定しておいても良いし、データ入力ＩＦ２６によりばらつき度合算出部１２に入力することも可能である。また、第１の閾値と第２の閾値とは、方向別又は情報の種別に応じて、異なる値に設定することも可能である。さらに、第１の閾値と第２の閾値とは絶対値とする。
【０１８０】
−反応時間算出部１５−
反応時間算出１５は、人１６がロボットアーム５を操作してロボットアーム５の動作情報を生成する際に、ロボットアーム５の周辺の環境情報を人１６が受けてから人１６が行動を起こすまでの反応時間を算出する。反応時間算出１５が算出した反応時間は、反応時間算出１から動作生成部１３へ出力する。
【０１８１】
反応時間算出部１５は、教示情報データベース１７Ａに記憶されている教示情報とその教示情報と対で記憶されている環境情報とに基づいて、反応時間を算出する。具体的には、環境情報の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の符号が同じであり且つ絶対値が第１の閾値以上である時点を、人１６が感覚刺激を受けた時点ｔ１（単位はｍｓｅｃ。以降、この時点ｔ１を情報変化点と定義する。）としてばらつき度合算出部１２で検出する。なお、具体的な算出例については後述する。
【０１８２】
さらに、時点ｔ１以降において、人１６が行動を起こした時点ｔ２（単位はｍｓｅｃである。以降、この時点ｔ２を行動変化点と定義する。）は、情報変化点から以降の環境情報もしくは教示情報について変位をばらつき度合算出部１２で求め、最初に求めた変位の符号が同じであり且つ絶対値が第２の閾値以上の時点をばらつき度合算出部１２で検出する。反応時間Ｔは、（行動変化点−情報変化点）、すなわち、（ｔ２−ｔ１）（単位はｍｓｅｃ）により反応時間算出部１５で算出する。
【０１８３】
また、人１６が感覚刺激を受けた時点ｔ１を算出する別の方法として、教示情報と環境情報とにより反応時間算出部１５で算出する方法がある。具体的には、環境情報の変位と教示情報の変位とをそれぞればらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の絶対値が、ある第１の閾値以上の時点を人１６が感覚刺激を受けた時点ｔ１としてばらつき度合算出部１２で検出する。なお、具体的な算出例については後述する。
【０１８４】
時点ｔ２がばらつき度合算出部１２で検出できなかった場合、すなわち、情報変化点から以降の環境情報もしくは教示情報について変位をばらつき度合算出部１２で求め、最初に求めた変位の符号が同じであり且つ絶対値が第２の閾値以上の時点ｔ２がばらつき度合算出部１２で検出できなかった場合には、反応時間を−１と反応時間算出部１５で設定する。
【０１８５】
反応時間は、教示作業に不慣れな時点の情報と教示作業に慣れて熟練した時点の情報となどのように、経時的に複数の情報に対して反応時間算出部１５で算出する。
【０１８６】
また、第１の閾値と第２の閾値とは、反応時間算出部１５で、あらかじめ設定しておいても良いし、データ入力ＩＦ２６により反応時間算出部１５に入力することも可能である。また、第１の閾値と第２の閾値とは、方向別又は情報の種別に応じて、異なる値に反応時間算出部１５で設定することも可能である。
【０１８７】
−順位決定部１１−
順位決定部１１は、後述する動作生成部１３で生成されデータベース入出力部１０を介して教示情報データベース１７Ａに記憶された不慣れな時点の情報と、教示作業に慣れて熟練した時点の情報となどのように、経時的に複数の教示情報について、より熟練している順に、それぞれの教示情報の順位を決定する。順位決定部１１で決定した順位は、順位決定部１１から動作生成部１３へ出力する。
【０１８８】
順位決定部１１で順位を決定するとき、まず、複数の教示情報及び環境情報のそれぞれについて、ばらつき度合をばらつき度合算出部１２で算出する。例えば、２つの教示情報及び環境情報から算出したばらつき度合をＢ１、Ｂ２とする。次に、複数の教示情報と環境情報とのそれぞれについて反応時間算出部１５で反応時間を算出し、それぞれの環境情報毎に反応時間を合算して、総反応時間Ｔを反応時間算出部１５で算出する。ただし、反応時間が−１の場合は、反応時間算出部１５で合算しない。この例では２つの教示情報と環境情報とから算出した総反応時間をＴ１、Ｔ２とする。また、環境情報データベース１８の環境情報の力と対象物の位置と音量とに関する情報のうち、いくつの情報を使っているか使用環境情報数Ｅとして反応時間算出部１５でカウントする。この例では、２つの教示情報と環境情報とから算出した使用環境情報数をＥ１、Ｅ２とする。次に、ばらつき度合Ｂと、総反応時間Ｔと使用環境情報数Ｅとにより、それぞれの教示情報の熟練度を反応時間算出部１５で算出する。熟練度Ｐ＝１／（ａＥ＋ｂＢ＋ｃＴ）で反応時間算出部１５により算出する。反応時間算出部１５で算出した熟練度Ｐは、反応時間算出部１５により、教示情報と対応させて、データベース入出力部１０を介して、教示情報データベース１７Ａに記憶する。なお、熟練度Ｐを算出するための式では、使用している環境情報数（Ｅ）とばらつき度合（Ｂ）と反応時間（Ｔ）とを合算した値が大きいほど、熟練度Ｐが小さくなることを示す。すなわち、多くの周辺環境に関する情報を使い、また、教示結果である教示情報と環境情報とのばらつきが大きく、さらに、人１６が感覚刺激を受けてから実際に行動を起こすまでの時間である反応時間が大きいほど、その作業に人１６が熟練していないと決定し、熟練度Ｐを小さくする。ある作業に人１６が熟練してくると、必要最小限の環境情報だけを使いながら教示を行えるようになり、さらに教示結果のばらつきが少なく、また、人１６の感覚刺激に対する反応時間が小さくなることから、この式により、熟練度Ｐが大きくなるように算出できることとなる。
【０１８９】
ただし、ａ、ｂ、ｃは定数であり、反応時間算出部１５において、あらかじめ決定しておいても良いし、データ入力ＩＦ２６を使って、後から反応時間算出部１５に入力しても良い。順位決定部１１が、反応時間算出部１５で算出した熟練度Ｐの大きい順に、複数の教示情報の順位を決定する。さらに、後述する動作生成部１３の順位組換部６４は、定数ａ、ｂ、ｃを作業またはその作業の一部に応じて決定することで、環境情報数（Ｅ）とばらつき度合（Ｂ）と反応時間（Ｔ）とに重み付けすること（すなわち、定数を重みとすること）ができて、順位を組み替えることが可能である。例えば、リサイクル工場での部品の解体作業の場合には、汚れ又は破損状態など部品の変動が大きい。そのため、熟練者であっても非熟練者であっても、教示情報又は環境情報のばらつきが大きくなる。しかしながら、解体作業に慣れている熟練者は、感覚刺激に対する反応時間が小さくなることから、ばらつき度合（Ｂ）の重みｂを小さく設定するか、もしくは、重みｂを「０」とし、反応時間（Ｔ）の重みｃを大きくしておくことで、反応時間の大小が熟練度Ｐの値に大きく影響するように反応時間算出部１５で算出することが可能となる。また、一般的には、人１６は、力覚、聴覚、視覚の順で反応時間が短くなると言われている。フレキシブル基板７４を挿入するときに、コネクタの挿入口７５まで移動する場合には、主に視覚を使い、コネクタ挿入口７５から挿入を完了させる時に使う力覚を使う。反応時間（Ｔ）の重みｃは、主に視覚を使う区間は小さく設定し、力覚を使う区間は大きく設定することで、使う感覚刺激に対する反応時間の差を吸収することが可能となる。  
【０１９０】
なお、ここでは、反応時間算出部１５において、ばらつき度合Ｂと、総反応時間Ｔと、使用環境情報数Ｅとにより熟練度Ｐを反応時間算出部１５で算出したが、取得した複数の教示情報について、例えば大人と子供とが作業した場合又はロボットのプロと素人とが作業した場合など、熟練度Ｐを反応時間算出部１５で算出しなくても順位決定部１１で順位を決定できる場合は、この方法によらず、順位決定部１１で順位を決定しても良い。
【０１９１】
−制御則抽出部２０−
制御則抽出部２０は、データベース入出力部１０で入力された教示情報と環境情報とから、ロボットアーム５が自動で動作するための制御則（センサーフィードバック則）の情報を抽出する。具体的には、反応時間算出部１５で説明したように、それぞれの教示情報と環境情報とから、情報変化点と、情報変化点以降の行動変化点とを反応時間算出部１５で算出し、行動変化点以降の時間から次の情報変化点までの区間において、行動変化点が検出された情報を近似曲線で制御則抽出部２０で近似する。次の情報変化点が検出されないと反応時間算出部１５で判断した場合は、行動変化点が検出された情報の終わりの時点まで、近似曲線で制御則抽出部２０で近似する。
【０１９２】
また、近似曲線は、例えば最小二乗法を用いて制御則抽出部２０で算出する。また、情報変化点から行動変化点までの時間（反応時間）が第１の閾値（反応時間検出用閾値）以下であると制御則抽出部２０で判断した場合は、人１６がセンサーフィードバックを行わずに予測して行動を起こしていると制御則抽出部２０で判断して、センサーフィードバックの抽出は行わない。なお、ここでは近似曲線としたが、近似せずに、行動変化点を検出した情報をそのまま、制御則抽出部２０で使用しても良い。
【０１９３】
−動作生成部１３−
図１２は動作生成部１３の詳細なブロック図を示す。動作生成部１３は、教示部６１と再生部６２とを有して、教示情報を生成し記憶させるとともに、記憶した教示情報を基に動作情報を再生してロボットアーム５を動作させる。再生部６２は、再生制御部６３と順位組換部６４と判断部６５とを有している。動作切替部２３により教示モードに設定された場合、人１６の教示操作に基づいて、動作生成部１３の教示部６１は、教示情報と環境情報とを生成し、生成した教示情報と環境情報とを、データベース入出力部１０を介して、教示情報データベース１７Ａと環境情報データベース１８とに記憶する。
【０１９４】
具体的には、動作切替部２３により教示モードが設定された場合には、インピーダンス制御で動作するように、教示部６１は制御部２２に指令を出す。次に、人１６がロボットアーム５を移動させて、教示部６１は、制御部２２のタイマー６０を利用して、ある一定時間毎（例えば４ｍｓｅｃ毎）にロボットアーム５の手先位置及び姿勢の情報を制御部２２より取得し、データベース入出力部１０により、前記取得した手先位置及び姿勢の情報と時間情報と対応させて、教示した日時と共に、教示情報データベース１７Ａに記憶する。
【０１９５】
さらに、教示部６１は、人１６が教示をしているときの周辺の環境に関する情報である環境情報（知覚情報であって、具体的には、力もしくは対象物の位置もしくは音量情報のいずれか１つ以上の情報）を、対象物力検出部７７及び対象物位置検出部７８及び音量検出部７９により、教示情報と対にして制御部２２より取得し、データベース入出力部１０により、前記取得した環境情報と時間情報とを対応付けて、環境情報データベース１８に記憶する。
【０１９６】
これらの情報は、動作切替部２３で「教示モード」が設定されたタイミングで、教示部６１から教示情報データベース１７Ａ及び環境情報データベース１８への記憶を開始し、「教示モード」から「待機モード」に変更された時点で、教示部６１から教示情報データベース１７Ａ及び環境情報データベース１８への記憶を停止する。また、動作生成部１３の教示部６１は、教示作業に不慣れな時点の情報と、教示作業に慣れて熟練した時点の情報となどのように、経時的に複数の情報を生成して教示情報データベース１７Ａ及び環境情報データベース１８に記憶する。
【０１９７】
動作切替部２３により再生モードが設定された場合に、動作生成部１３の再生部６２は、データベース入出力部１０を介して入力された教示情報と環境情報と、制御則抽出部２０で抽出した制御則と、順位決定部１１で決定した順位とに基づき、ロボットアーム５の動作情報を生成し、制御部２２へ出力する。
【０１９８】
具体的には下記で説明する。
【０１９９】
まず、再生部６２の再生制御部６３は、教示作業に不慣れな時点の情報と教示作業に慣れて熟練した時点の情報となどのように、経時的に取得した複数の情報から、制御則抽出部２０により、センサーフィードバック則を抽出するよう、制御則抽出部２０に指令を出す。
【０２００】
次に、再生部６２の再生制御部６３は、ばらつき度合算出部１２に、ばらつき度合を算出するよう指令を出す。
【０２０１】
次に、再生部６２の再生制御部６３は、反応時間算出部１５に、反応時間を算出するよう指令を出す。
【０２０２】
次に、再生部６２の再生制御部６３は、順位決定部１１に、ばらつき度合算出部１２で算出したばらつき度合と反応時間算出部１５で算出した反応時間とから、順位決定部１１により、より熟練している順にもそれぞれの教示情報の順位を決定する指令を出す。
【０２０３】
次に、再生部６２の再生制御部６３は、制御則抽出部２０で抽出したセンサーフィードバック則で動作を修正し、目標とする位置及び姿勢情報である手先位置及び姿勢目標ベクトルｒｄと目標とする力情報である力目標ベクトルｆｄとそれぞれの方向別に位置制御モードで動作させるか、もしくは、力制御で動作させるかのモードに関する情報とを、制御部２２へ出力する。
【０２０４】
制御則抽出部２０で抽出したセンサーフィードバック則で動作を修正する方法は、順位決定部１１により決定した、最も順位の高い教示情報（すなわち、最も熟練した人の教示情報）を、目標とする位置及び姿勢情報に再生制御部６３で設定し、設定した位置及び姿勢情報に基づいて位置制御モードで動作するように再生制御部６３から制御部２２へ出力する。
【０２０５】
次に、再生部６２の順位組換部６４は、図１３に示すように、ロボットアーム５が最も順位の高い教示情報（図１３では、第１位の教示情報）により動作中に、情報変化点がばらつき度合算出部１２で検出された場合には、順位の高い教示情報及び環境情報から抽出されたフィードバック則を適用し（図１３では、第１位の教示情報フィードバック則）、うまく動作していない(動作情報で正常にロボットアーム５が動作していない)と判断部６５で判断された場合には、順位の低い教示情報及び環境情報から抽出されたフィードバック則（図１３では、第２位の教示情報フィードバック則）に組み替えて適用させて、位置姿勢もしくは力に関する情報を修正する。うまく動作している(動作情報で正常にロボットアーム５が動作している)と判断部６５で判断された場合には、順位組換部６４は、順位の低い教示情報及び環境情報から抽出されたフィードバック則（図１３では、第２位の教示情報フィードバック則）の適用を行わない。
【０２０６】
再生制御部６３は、順位組換部６４で切り替えたフィードバック則で修正した目標軌道について、手先位置及び姿勢目標ベクトルｒｄと目標とする力情報である力目標ベクトルｆｄとそれぞれの方向別に位置制御モードで動作させるか、もしくは、力制御で動作させるかのモードに関する情報とを、制御部２２へ出力する。具体的には、位置制御の場合には「０」を、力制御の場合には「１」を再生制御部６３で設定し、位置及び姿勢方向それぞれについて再生制御部６３で設定する。
【０２０７】
なお、教示モードにて教示する際に、人１６がロボットアーム５の手先の位置姿勢及び時間の情報を連続的に作成しているが、これに限られるものではなく、それぞれの位置姿勢及び時間の情報を、人１６がキーボード、マウス、又は、マイクなどの外部入力装置２６ｄを使用して個別に入力しても良い。
【０２０８】
次に、人１６がロボットアーム５を操作してロボットアーム５の動作を教示し、ロボットアーム５が自動で動作を再生する手順について、図１４及び図１５のフローチャートを使って説明する。
【０２０９】
ここでは、レコーダ、テレビ、又は、携帯電話などで使用されているフレキシブル基板７４の挿入作業を例に説明する。
【０２１０】
まず、環境情報としてフレキシブル基板７４に加わる力加減を使って、フレキシブル基板７４の挿入作業を例に説明する。  
【０２１１】
ステップＳ１００において、教示を開始する際には、人１６は、データ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の教示スタートボタン２６ｂを押す）により、教示開始の命令を動作切替部２３へ入力する。動作切替部２３へ入力された動作モード（この例では教示モード）は、動作切替部２３で設定され、動作切替部２３から動作生成部１３に出力される。
【０２１２】
次いで、ステップＳ１０１において、動作生成部１３の教示部６１は、動作切替部２３からの入力（この例では教示モード）を受けて、制御部２２へ、インピーダンスで制御するように指令を出す。制御部２２は、人１６が加えた力でロボットアーム５を動作できるように、インピーダンス制御モードに切り替える。
【０２１３】
図３Ａ〜図３Ｄ（図３Ｅ〜図３Ｈは、図３Ａ〜図３Ｄを上から下に見た図）は、人１６が手１６ａでロボットアーム５を操作し、教示している手順を示す。人１６は、図３Ａ→図３Ｂ→図３Ｃ→図３Ｄの順にロボットアーム５を操作して教示を行う。
【０２１４】
次いで、ステップＳ１０２において、図３Ａ〜図３Ｄに示すように、力の情報の管理を位置姿勢と対にして管理する。すなわち、人１６が操作しているときのロボットアーム５の手先の位置姿勢及び時間の情報と、フレキシブル基板７４が挿入口７５に接触したときに対象物力検出部７７で検出した力とを、タイマー６０を利用して、ある一定時間毎（例えば４ｍｓｅｃ毎）に、動作生成部１３の教示部６１で生成し、データベース入出力１０を介して、動作情報データベース１７及び環境情報データベース１８に記憶する。
【０２１５】
教示が終了すると、ステップＳ１０３において、人１６はデータ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の教示ストップボタン２６ｂを押す）により、教示終了の命令を入力する。入力された動作モード（この例では待機モード）は、動作切替部２３で設定され、動作生成部１３に出力される。
【０２１６】
次いで、ステップＳ１０４において、動作生成部１３は、動作切替部２３からの入力（この例では待機教示モード）を受けて、制御部２２へ位置制御モード（同じ位置で停止する）で制御するように指令を出す。さらに、動作生成部１３での動作情報の生成を終了する。
【０２１７】
次いで、ステップＳ１０５において、制御部２２は、ロボットアーム５を停止するように、位置制御モードに切り替える。  
【０２１８】
図１６の（Ａ）と（Ｂ）は動作生成部１３で生成した位置と力との時系列データのうち、フレキシブル基板７４の挿入の方向のみをプロットしたグラフである。以降、図１６の（Ａ）の動作を動作パターンＣとし、図１６の（Ｂ）の動作を動作パターンＤとする。
【０２１９】
図１６の（Ａ）の動作パターンＣは、ロボットアーム５を操作して教示したフレキシブル基板７４の挿入作業について、作業に不慣れな時点の情報を示す。図１６の（Ｂ）と図１６の（Ａ）とは同様の作業だが、図１６の（Ｂ）の動作パターンＤは、教示作業に慣れて熟練した時点の情報を示す。図１６の（Ａ）と図１６の（Ｂ）は同一の人１６に対して経時的に取得しても良いし、熟練度が違う異なる人物で取得しても良い。
【０２２０】
図１６の（Ａ）及び（Ｂ）について、図３Ａ〜図３Ｄの手順で教示をしている際のフレキシブル基板７４と挿入口７５の状態をそれぞれのグラフに対応付けて図示する。
【０２２１】
図３Ｅは、フレキシブル基板７４を挿入口７５に向かって移動している状態を示す。この状態は、図１６の（Ａ）の（１）と図１６の（Ｂ）の（５）に相当する。図１６の（Ａ）の（１）はフレキシブル基板７４の挿入作業に十分慣れていないため、熟練した情報である図１６の（Ｂ）の（５）に比べて、位置情報が変動している。
【０２２２】
図３Ｆは、フレキシブル基板７４を挿入口７５に挿入するため、フレキシブル基板７４が挿入口７５に接触した瞬間を示す。この状態は、図１６の（Ａ）の（２）と図１６の（Ｂ）の（６）に相当する。力の情報を比較すると、図１６の（Ａ）の（１）はフレキシブル基板７４の挿入作業に十分慣れていないため、熟練した情報である図１６の（Ｂ）の（６）に比べて、フレキシブル基板７４が挿入口７５に接触するときにフレキシブル基板７４を挿入口７５に強く押し当てている。非熟練者は強く押し当てることで接触したことを認知しているが、熟練者は強く押し当てなくても、これまでの経験から接触していることを認知することができる。
【０２２３】
図３Ｇは、フレキシブル基板７４を挿入口７５に挿入している状態を示す。図１６の（Ａ）の（３）と図１６の（Ｂ）の（７）に相当する。フレキシブル基板７４を挿入口７５に挿入している最中は、フレキシブル基板７４を挿入口７５に接触させながら挿入しているため、接触力が大きくなり（図１６の（Ａ）の（３）及び図１６の（Ｂ）の（７）では、力の符号がマイナスであるため、下方向に下がってプロットされている）、さらに位置情報は挿入方向に移動している。図１６の（Ａ）の（３）は、図１６の（Ｂ）の（７）に比べて、位置及び力とも変動がある。これはフレキシブル基板７４の柔軟性を、挿入口付近で試行錯誤しながら挿入していることを表している。しかしながら、図１６の（Ｂ）の（７）では、これまでの経験から加える力及びそれに伴う移動量などが予測でき、必要最小限の操作により挿入ができていることを表している。
【０２２４】
図３Ｈは、フレキシブル基板７４の先端がコネクタの挿入口７５の奥に接触した状態を表す。この状態は、図１６の（Ａ）の（４）と図１６の（Ｂ）の（８）に相当する。図１６の（Ａ）の（４）は、図１６の（Ｂ）の（８）に比べて、コネクタの挿入口７５の奥に強く押し当てている。これは、非熟練者は強く押し当てることで接触したことを認知しているが、熟練者は強く押し当てなくてもこれまでの経験から強く接触しなくても奥まで挿入できる。
【０２２５】
次に、図１６の（Ａ）及び図１６の（Ｂ）の教示情報及び環境情報に基づいて、ロボットアーム５が自動で動作するための動作生成の手順について図１５を用いて説明する。
【０２２６】
ロボットによる自動再生を開始する際には、ステップＳ１５０において、人１６は、データ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の作業スタートボタン２６ｃを押す）により、作業開始の命令を動作切替部２３へ入力する。動作生成部１３は、動作切替部２３からの入力（この例では再生モード）を受けて、動作生成部１３の再生部６２は、動作の再生を開始する。
【０２２７】
次に、ステップＳ１５１において、再生部６２の再生制御部６３は、教示時に取得した図１６の（Ａ）と図１６の（Ｂ）の２つの教示情報及び環境情報について、ばらつき度合算出部１２によりばらつき度合を算出する。
【０２２８】
この例では、図１６の（Ａ）及び図１６の（Ｂ）に示した挿入方向のみの位置と力との情報により、ばらつき度合をばらつき度合算出部１２で算出するよう指令をばらつき度合算出部１２に出す。ばらつき度合算出部１２における挿入方向の位置の第１の閾値（教示情報変位検出用閾値）を０．５（ｍｍ）、挿入方向の力の第２の閾値（環境情報(知覚情報)変位検出用閾値）を０．５（Ｎ）とする。挿入方向の位置の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の絶対値が第１の閾値以上である箇所をばらつき度合算出部１２でカウントする（ここでは、そのカウントした値をｂ１１とする）。図１６の（Ａ）に対して、第１の閾値以上の箇所を図１７Ａの（１）〜（６）に示す。ここでは、ばらつき度合算出部１２で６箇所検出されたため、ｂ１１＝６となる。
次に、ばらつき度合算出部１２で求めた変位の絶対値が第１の閾値以上である変位について、その変位の絶対値の合計をばらつき度合算出部１２で算出する（ここでは、その算出した値をｈ１１とする）。図１７Ａの（１）〜（６）のそれぞれの変位は、０．５１、０．５１、０．５０、０．５０、０．５３、０．５４であるため、それらの値の合計をばらつき度合算出部１２で算出すると、ｈ１１＝３．０９となる。
【０２２９】
次に、挿入方向の力の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の絶対値が第２の閾値以上である箇所をばらつき度合算出部１２でカウントする（ここでは、そのカウントした値をｂ１２とする）。図１６の（Ａ）に対して、第１の閾値以上の箇所を図１７Ａの（７）〜（１０）に示す。ここでは、ばらつき度合算出部１２で４箇所検出されたため、ｂ１２＝４となる。
【０２３０】
次に、ばらつき度合算出部１２で求めた変位の絶対値が第２の閾値以上である変位について、その変位の絶対値の合計をばらつき度合算出部１２で算出する（ここでは、その算出した値をｈ１２とする）。
【０２３１】
図１７Ａの（７）〜（１０）のそれぞれの変位は、０．７、０．５３、１．３、０．６０であるため、それらの値の合計をばらつき度合算出部１２で算出すると、ｈ１２＝３．１３となる。ばらつき度合Ｂ１は（ｃ１×ｂ１１＋ｃ２×ｂ１２＋ｃ３×ｈ１１＋ｃ４×ｈ１２）の式により、Ｂ１＝１６．２２となる。ただし、この例では、ｃ１、ｃ２、ｃ３、ｃ４を全て１．０の定数とする。
【０２３２】
図１６の（Ｂ）でも同様に、挿入方向の位置の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の絶対値が第１の閾値以上である箇所をばらつき度合算出部１２でカウントする（ここでは、そのカウントした値をｂ２１とする）。図１６の（Ｂ）に対して、第１の閾値以上の箇所を図１７Ｂの（１１）〜（１２）に示す。ここでは、ばらつき度合算出部１２で２箇所検出されたため、ｂ２１＝２となる。
【０２３３】
次に、ばらつき度合算出部１２で求めた変位の絶対値が第１の閾値以上である変位について、その変位の絶対値の合計をばらつき度合算出部１２で算出する（ここでは、その算出した値をｈ２１とする）。
【０２３４】
図１７Ｂの（１１）〜（１２）のそれぞれの変位は、０．５１、０．５３であるため、それらの値の合計をばらつき度合算出部１２で算出すると、ｈ２１＝１．０４となる。
【０２３５】
次に、挿入方向の力の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の絶対値が第２の閾値以上である箇所をばらつき度合算出部１２でカウントする（ここでは、そのカウントした値をｂ２２とする）。図１６の（Ｂ）に対して、第１の閾値以上の箇所を図１７Ｂの（１３）〜（１６）に示す。ここでは、ばらつき度合算出部１２で４箇所検出されたため、ｂ２２＝４となる。
【０２３６】
次に、ばらつき度合算出部１２で求めた変位の絶対値が第２の閾値以上である変位について、その変位の絶対値の合計をばらつき度合算出部１２で算出する（ここでは、その算出した値をｈ２２とする）。
【０２３７】
図１７Ｂの（１３）〜（１６）のそれぞれの変位は、０．５１、０．５２、０．５５、０．６０であるため、それらの値の合計をばらつき度合算出部１２で算出すると、ｈ２２＝２．１８となる。ばらつき度合Ｂ２は（ｂ２１＋ｂ２２＋ｈ２１＋ｈ２２）の式により、Ｂ２＝９．２２となる。
【０２３８】
次に、ステップＳ１５２において、再生部６２の再生制御部６３は、教示時に取得した図１６の（Ａ）と図１６の（Ｂ）の２つの教示情報及び環境情報を用いて、反応時間算出部１５により、反応時間を算出するように、反応時間算出部１５に指令を出す。この例では、図１６の（Ａ）及び図１６の（Ｂ）に示した挿入方向のみの位置と力との情報により、反応時間を反応時間算出部１５で算出する。反応時間算出部１５の第１の閾値を０．５（Ｎ）とし、第２の閾値を０．２（Ｎ）とする。
【０２３９】
具体的には、挿入方向の力の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の符号が同じであり且つ絶対値が第１の閾値以上である時点を、人１６が感覚刺激を受けた時点ｔ１（単位はｍｓｅｃ。以降、この時点ｔ１を情報変化点と定義する。）として、３０１３ｍｓｅｃとしてばらつき度合算出部１２で検出する。図１８Ａの（１）は検出した時点ｔ１を示す。次に、時点ｔ１以降において、人１６が行動を起こした時点ｔ２（単位はｍｓｅｃ。以降行動変化点と定義する）は、情報変化点から以降の挿入方向の力の変位をばらつき度合算出部１２で求め、変位の符号が同じであり且つ絶対値が第２の閾値以上の時点をばらつき度合算出部１２で検出する。具体的には、時点ｔ２＝３３６３ｍｓｅｃをばらつき度合算出部１２で検出し、図１８Ａの（２）は、ばらつき度合算出部１２で検出した時点ｔ２を示す。反応時間Ｔ１は（ｔ２−ｔ１）（単位はｍｓｅｃ）により反応時間算出部１５で算出し、この例ではＴ１＝３５０ｍｓｅｃとなる。同様に、図１８Ａの（３）を人１６が感覚刺激を受けた時点ｔ３としてばらつき度合算出部１２で検出し、図１８Ａの（４）を人１６が行動を起こした時点ｔ４としてばらつき度合算出部１２で検出し、反応時間Ｔ２は（ｔ４−ｔ３）で反応時間算出部１５で計算し、この例ではＴ２＝３２０ｍｓｅｃとなる。また、図１８Ｂも同様に、図１８Ｂの（５）を人１６が感覚刺激を受けた時点ｔ５としてばらつき度合算出部１２で検出し、図１８Ｂの（６）を人１６が行動を起こした時点ｔ６としてばらつき度合算出部１２で検出し、反応時間Ｔ３は（ｔ６−ｔ５）で計算し、この例ではＴ３＝２３０ｍｓｅｃとなる。さらに、図１８Ｂの（７）を人１６が感覚刺激を受けた時点ｔ７としてばらつき度合算出部１２で検出し、図１８Ｂの（８）を人１６が行動を起こした時点ｔ８としてばらつき度合算出部１２で検出し、反応時間Ｔ４は（ｔ８−ｔ７）で反応時間算出部１５で計算し、この例ではＴ４＝１０５ｍｓｅｃとなる。
【０２４０】
次に、ステップＳ１５３において、再生部６２の再生制御部６３は、順位決定部１１で図１６の（Ａ）と図１６の（Ｂ）でどちらがより熟練度合の高い動作であるかの順位を決定するよう指令を順位決定部１１に出す。
【０２４１】
順位決定部１１は、環境情報データベース１８の環境情報の力と対象物の位置と音量に関する情報のうち、いくつの情報を使っているか使用環境情報数Ｅとしてカウントする。この例では、図１６の（Ａ）も図１６の（Ｂ）も力のみを使用して教示しているため、図１６の（Ａ）の使用環境情報数Ｅ１＝１、図１６の（Ｂ）の使用環境情報数Ｅ２＝１となる。また、図１８Ａに示すように、反応時間算出部１５で算出した反応時間Ｔ１、Ｔ２から、総反応時間ＴＴを算出する。この例では、Ｔ１＝３５０ｍｓｅｃ、Ｔ２＝３２０ｍｓｅｃとなるため、全ての反応時間を合算して、総反応時間ＴＴ１＝６７０ｍｓｅｃとなる。図１８Ｂも同様に、反応時間Ｔ３＝２３０ｍｓｅｃ、Ｔ４＝１０５ｍｓｅｃであるため、総反応時間ＴＴ２＝３３５ｍｓｅｃとなる。
【０２４２】
また、ばらつき度合算出部１２で算出したばらつき度合は、それぞれ、Ｂ１＝１６．２２、Ｂ２＝９．２２として算出される。図１６の（Ａ）及び図１６の（Ｂ）それぞれの熟練度はＰ＝１／（ａＥ＋ｂＢ＋ｃＴ）で算出されるため、Ｐ１＝（ａＥ１＋ｂＢ１＋ｃＴＴ１）となり（ただし、ａ、ｂ、ｃは定数であり、この例ではａ＝１００、ｂ＝１０、ｃ＝１とする）、Ｐ１＝０．００１０７となる。同様に図１６の（Ｂ）の熟練度Ｐ２＝０．００１７３となる。算出した熟練度Ｐは、データベース入出部１０を介して、教示情報データベース１７Ａに記憶する。値が大きい方がより熟練度の高い動作として決定するため、図１６の（Ｂ）、図１６の（Ａ）の順で熟練度合の高い動作として順位決定部１１で決定する。
【０２４３】
次に、ステップＳ１５４において、再生部６２の再生制御部６３は、制御則抽出部２０により、センサーフィードバック則を抽出するよう指令を制御則抽出部２０に出す。制御則抽出部２０で抽出したセンサーフィードバック則は、制御則抽出部２０から動作生成部１３へ出力する。この例では、図１６の（Ａ）及び図１６の（Ｂ）の教示情報及び環境情報からフィードバック則を制御則抽出部２０で抽出する。フィードバック則は、ステップＳ１５２のばらつき度合算出部１２で検出した情報変化点と行動変化点に基づいて制御則抽出部２０で抽出する。
【０２４４】
具体的には、図１８Ａにおいて、挿入方向の力の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の符号が同じであり且つ絶対値が第１の閾値以上である時点を、人１６が感覚刺激を受けた時点ｔ１（図１８Ａの（１）、情報変化点）としてばらつき度合算出部１２で検出する。次に、時点ｔ１以降において、人１６が行動を起こした時点ｔ２（行動変化点）は、情報変化点から以降の挿入方向の力の変位をばらつき度合算出部１２で求め、変位の符号が同じであり且つ絶対値が第２の閾値以上の時点をばらつき度合算出部１２で検出する。具体的には図１８Ａの（２）のｔ２をばらつき度合算出部１２で検出する。続いて、時点ｔ２以降の情報変化点と行動変化点とを同様の方法でばらつき度合算出部１２で検出する。ばらつき度合算出部１２で検出した情報変化点と行動変化点とは、図１８Ａに示すように情報変化点ｔ３、行動変化点ｔ４としてばらつき度合算出部１２で検出される。
【０２４５】
１つ目のフィードバック則ＳＢ１１は、行動変化点ｔ２が検出された時点から次の情報変化点ｔ３の時点までの力の情報を、制御則抽出部２０により、近似曲線で近似する。近似曲線は例えば最小二乗法を用いて算出する。２つ目のフィードバック則ＳＢ１２は、行動変化点ｔ４が検出された時点から次の情報変化点までで制御則抽出部２０により抽出するが、この例では行動変化点ｔ４以降の情報変化点は検出されないため、行動変化点ｔ４から力の情報が終わるまでの時点までを、制御則抽出部２０により、近似曲線で近似する。算出したフィードバック則ＳＢ１１及びＳＢ１２を図１８Ｃに示す。
【０２４６】
次に、図１８Ｂについても同様にフィードバック則を制御則抽出部２０で抽出する。１つ目のフィードバック則ＳＢ２１は、情報変化点ｔ５以降に行動変化点ｔ６が検出された時点から次の情報変化点ｔ７の時点までの力の情報を、制御則抽出部２０により、近似曲線で近似する。近似曲線は例えば最小二乗法を用いて算出する。２つ目のフィードバック則ＳＢ２２は、情報変化点ｔ７以降の行動変化点ｔ８を検出して、制御則抽出部２０により、抽出するが、情報変化点ｔ７から行動変化点ｔ８までの反応時間Ｔ４＝１０５ｍｓｅｃが第３の閾値（センサーフィードバック抽出用閾値）（この例では２００ｍｓｅｃ）以下であるため、人１６がセンサーフィードバックを行わず、予測で教示したと制御則抽出部２０で判断し、第２のセンサーフィードバックの抽出は制御則抽出部２０で行わない。制御則抽出部２０で算出したフィードバック則ＳＢ２１を図１８Ｄに示す。
【０２４７】
次に、ステップＳ１５５において、動作生成部１３の再生部６２は、制御則抽出部２０で抽出したセンサーフィードバック則と、順位決定部１１で決定した順位に基づき、ロボットアーム５の動作を再生する。
【０２４８】
図１９は動作生成部１３で生成した動作の実行順序を示す。
【０２４９】
まず、再生部６２の順位組換部６４は、最も順位の高い教示情報（すなわち、熟練度の高い教示情報）を、目標とする位置及び姿勢情報に設定する（図１９の（１））。この例では、順位決定部１１で、図１６の（Ｂ）の動作パターンＤの教示情報の順位が高いため、動作パターンＤの挿入方向の位置に加えて、動作パターンＤの位置及び姿勢の情報を、目標として順位組換部６４で設定する。この例では、目標の情報が位置情報であるため、位置及び姿勢方向の全ての方向について位置制御モードで動作するように図１６の（Ｂ）の動作パターンＤの位置及び姿勢情報とともに、順位組換部６４から制御部２２へ出力する。制御部２２では、図１６の（Ｂ）を含む位置及び姿勢情報にて位置制御モードで動作するように制御する。
【０２５０】
この例では、図２０Ａに示すようにフレキシブル基板７４が挿入口７５に向かって、位置制御モードで挿入を開始する。よりばらつき度合の少ない図１６の（Ｂ）の位置を使ってロボットアーム５を動作させるため、図１６の（Ａ）の図３Ｅに対応する区間（１）に比べて、図１６の（Ｂ）の図３Ｅに対応する区間（５）について、位置の変動が少ないため、フレキシブル基板７４が挿入口７５まで安定して移動することが可能となる。動作中は、ロボットアーム５の位置及び姿勢の情報を制御部２２を介して、動作生成部１３の再生部６２へ入力する（図１９の（５））。加えて、対象物（この例ではフレキシブル基板７４）に加わる力を対象物力検出部７８で計測して、対象物力検出部７８から動作生成部１３の再生部６２に入力する（図１９の（６））。
【０２５１】
次に、図２０Ｂのように、フレキシブル基板７４が挿入口７５に接触する。順位組換部６４は、この時点で抽出されたセンサーフィードバック則が存在している場合は、その適用を行う。順位組換部６４で適用するセンサーフィードバック則は、順位決定部１１で決定した、最も順位の高い順の教示情報から取得したセンサーフィードバック則を動作生成部１３で適用する。このとき、うまく動作しないと判断部６５で判断された場合には、次の順位の教示情報から取得したセンサーフィードバック則を動作生成部１３で適用する。これは、要するに、熟練度の高い方のフィードバック則を用いて、うまく動作しないと判断部６５で判断した場合、次に熟練度の高いフィードバック則を用いることを意味している。一方、うまく動作していると判断部６５で判断された場合には、順位組換部６４は、順位の低い教示情報及び環境情報から抽出されたフィードバック則の適用を行わない。この例では、まず、より熟練した動作である図１８Ｂの行動変化点ｔ６以降から抽出したセンサーフィードバック則ＳＢ２１を適用し（図１９の（２））、うまく動作しないと判断部６５で判断した場合は、非熟練動作である図１８Ａの行動変化点ｔ４以降から抽出したフィードバック則ＳＢ１１（図１９の（３））を動作生成部１３で適用することになる。
【０２５２】
具体的には、対象物力検出部７８で検出した力が、図１８Ｂの時点ｔ５を検出したときの力の変位以上になった時点（図１８Ｂの（５））をばらつき度合算出部１２で検出し、その時点以降の行動変化点ｔ６からセンサーフィードバック則ＳＢ２１として制御則抽出部２０で近似した力を、目標値として、制御則抽出部２０から制御部２２へ出力する。この場合は、力を目標値とするため、制御モードは力制御モードで制御するように動作生成部１３から制御部２２へ出力する。
【０２５３】
このように、最も熟練度の高い教示情報から抽出したセンサーフィードバック則を順位組換部６４で適用することで、フレキシブル基板７４が挿入口７５に接触する力を最小限にし、さらに挿入時の位置及び力の変動が少ない、安定した動作情報を生成することが可能となる（図２０Ｃ）。また、対象物力検出部７８で検出したフレキシブル基板７４に加わる力を制御部２２にフィードバックすることで、フレキシブル基板７４の柔軟性に適応した動作生成が可能となる。
【０２５４】
一方、フレキシブル基板７４がモデルチェンジにより、図３５Ａに示したように、教示したときのフレキシブル基板７４より硬いフレキシブル基板７４Ｃに変更になった場合での再生について説明する。
【０２５５】
この例では、フレキシブル基板７４Ｃの幅と長さは教示時と同じとする。再生部６２により、図２０Ａに示す挿入口７５までは、図１９の（１）に示すように、熟練度の高い教示情報を目標として動作する。
【０２５６】
次に、再生部６２により、センサーフィードバック則ＳＢ２１を適用して力制御モードで動作する。しかしながら、図１８Ｂの時点ｔ６から時点ｔ７までの力の近似曲線を目標として、フレキシブル基板７４Ｃが硬くなっているため、時点ｔ６から時点ｔ７までの力では弱く、挿入動作が途中で停止する。挿入動作が途中で停止した場合には、再生部６２により、次の順位の教示情報から抽出したセンサーフィードバック則を適用する。なお、動作生成部１３の判断部６５において、挿入完了の成功の有無の判断を行う。具体的には、挿入完了した時点で、手前に戻す動作を行うと同時にロボットアーム５の手先位置を制御部２２で取得する。挿入が完了していない場合には、手前に戻す動作をしても挿入状態に変化はないため、取得した手先位置に変動がない。しかしながら、挿入が完了していない場合には、手前に戻すと、フレキシブル基板７４が手前に移動するため、取得した手先位置に変動がある。取得した手先位置に変動がある場合はうまく挿入ができていないと判断部６５で判断する。また、動作途中の成功の有無の判断を判断部６５で行うときは、位置もしくは力の指令値でロボットアーム５を動作させた場合に、その指令値通りにロボットアーム５が動作しない場合は失敗と判断部６５で判断する。具体的には、位置指令値で動作させている場合に障害物などに当たりその位置に移動できなかった場合、又は、力指令値で動作させているがワークに接触せずに力指令値どおりに力を加えることができない場合は、失敗と判断部６５で判断する。
【０２５７】
この例では、センサーフィードバック則ＳＢ１１を適用する（図１９の（３））。このセンサーフィードバック則ＳＢ１１はフレキシブル基板７４に対して、強めに力を加えて動作する。これは、人１６が教示時に強めに力を加えて操作することで、接触したことを認知して作業をしているためである。
【０２５８】
センサーフィードバック則ＳＢ１１を適用することで、センサーフィードバック則ＳＢ２１よりは強めに力を加えて挿入作業をすることから、図２０Ｃに示すように、うまく挿入作業ができる。
【０２５９】
次に、図２０Ｄに示すようにフレキシブル基板７４の挿入が完了する動作について説明する。順位組換部６４は、図２０Ｄに示すように、フレキシブル基板７４がコネクタの奥に接触した時点で抽出したセンサーフィードバック則が存在している場合は、その適用を行う。適用するセンサーフィードバック則は、順位決定部１１で決定した、最も順位の高い順の教示情報から取得したセンサーフィードバック則を順位組換部６４で適用し、うまく動作しないと判断部６５で判断した場合には、次の順位の教示情報から取得したセンサーフィードバック則を順位組換部６４で適用する。
【０２６０】
この例では、より熟練した動作である図１８Ｂの情報変化点ｔ７以降で抽出したセンサーフィードバック則を順位組換部６４で適用するが、この例では、Ｔ４＝１０５ｍｓｅｃが第３の閾値（この例では２００ｍｓｅｃ）以下であるため、人１６がセンサーフィードバックを行わず、予測で教示したと制御則抽出部２０で判断し、センサーフィードバックの抽出は行っていない。
【０２６１】
そこで、対象物力検出部７８で検出した力が、図１８Ｂの時点ｔ７を検出したときの力の変位以上になった時点（図１８Ｂの（７））をばらつき度合算出部１２で検出し、センサーフィードバックが存在していないため、ｔ７の時点以降は、図１８Ｂの挿入方向の位置を含む位置及び姿勢情報で位置制御モードにて動作するように、再生制御部６３から制御部２２へ出力する（図１９の（７））。
【０２６２】
この例では、フレキシブル基板７４が挿入口７５の奥まで接触した時点でフレキシブル基板７４を少し手前に戻す動作となる。人１６は、より熟練してくるとセンサーフィードバックを行わず、予測を働かせて動作させているが、その軌道は変動が少ないため、安定して動作する。
【０２６３】
一方、フレキシブル基板７４がモデルチェンジにより、図３５Ｂに示したように、教示した時のフレキシブル基板７４より柔らかいフレキシブル基板７４Ｄに変更になった場合を説明する。
【０２６４】
この例では、図２０Ｄに示すように、センサーフィードバックが存在していないため、ｔ７の時点以降は、図１８Ｂの挿入方向の位置を含む位置及び姿勢情報で位置制御モードにて動作する。しかしながら、フレキシブル基板７４Ｄが柔らかくなっているため、コネクタの奥まで届いた段階でフレキシブル基板７４Ｄがたわみ、図１９の（６）で位置を戻してもたわみが戻るだけで、奥まで当たった接触力が弱まらない。
【０２６５】
これにより、挿入完了時にフレキシブル基板７４Ｄに余分な負荷がかかり、フレキシブル基板７４Ｄを傷める。そこで、挿入動作が途中で停止した場合には、次の順位の教示情報から抽出したセンサーフィードバック則を順位組換部６４で適用する。この例では、センサーフィードバック則ＳＢ１２を順位組換部６４で適用する（図１９の（４））。
【０２６６】
このセンサーフィードバック則ＳＢ１２は、フレキシブル基板７４に対して、強めに力を検出した場合には力を緩めるような力制御を行う。このセンサーフィードバック則ＳＢ１２により、フレキシブル基板７４Ｄのたわみが戻り、さらに奥に当たる接触力が弱まるまで力制御を行うため、フレキシブル基板７４Ｄに負荷をかけずに動作をすることが可能となる。
【０２６７】
なお、この例では、熟練者と非熟練者との２つの教示情報を使って説明したが、３人以上の練度の異なる教示者の教示情報の場合にも同様に、順位決定部１１で複数の教示情報の順位を決定し、最も順位の高い教示情報に基づき、高い順位から低い順位の順番にフィードバックを動作生成部１３で適用していくことになる。
【０２６８】
第１実施形態によれば、作業に不慣れな時点の教示情報と、教示作業に慣れて熟練した時点の情報とを組み合わせて動作を動作生成部１３で生成することで、環境変動に柔軟な動作生成が可能となる。さらに、人１６が直接ロボットアーム５を操作して教示できるため、人１６にロボットの知識がなくても、人１６は直感的に操作ができる。よって、人１６が簡単にロボットアーム５の動作を教示することができる。
【０２６９】
（第２実施形態）
本発明の第２実施形態について、第１実施形態の場合と同様に、図２１に示すように、ロボットシステム１を使ってフレキシブル基板７４をコネクタの挿入口７５に挿入する作業を例に説明する。
【０２７０】
本発明の第２実施形態における、ロボットアーム５の制御装置３及びロボットアーム５及び周辺装置４７の基本的な構成は、第１実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ、以下、詳細に説明する。
【０２７１】
図２１は、ロボットアーム５と、ロボットアーム５の制御装置３と、ロボットアーム５の動作情報を生成する動作生成装置２と、周辺装置４７との詳細構成図である。
【０２７２】
動作生成装置２の環境情報データベース１８と、データベース入出力部１０と、制御則抽出部２０とは、第１実施形態の場合と同様であるので説明は省略する。
【０２７３】
動作生成装置２において、異なる部分について以下に、詳細に説明する。
【０２７４】
−教示情報データベース１７Ｂ−
教示情報データベース１７Ｂは、所定の時間におけるロボットアーム５の手先位置及び姿勢から構成されるロボットアーム５の動作を教示した情報（以下、教示情報と称す）と後述する区間目標値設定部９で設定された区間目標値の情報を格納する。
【０２７５】
教示情報は、人１６がロボットアーム５を操作して後述する動作生成部１３で生成し、データベース入出力部１０により入力され、教示情報データベース１７Ｂに記憶される。
【０２７６】
図２２は、教示情報データベース１７Ｂのデータである教示情報を示す。「作業ＩＤ」、「動作ＩＤ」、「位置姿勢」、「時間」、「ユーザＩＤ」、「日時」の欄は、第１実施形態の教示情報データベース１７Ａと同様であるので、説明を省略する。「区間目標値の有無」に関する情報は、後述する区間目標値設定部９で設定されたかどうかを示す。区間目標値として設定された時間である場合には、「１」を設定し、区間目標値として設定されていない場合には、「０」を設定する。「熟練度」は、後述する順位決定部１１で算出された区間目標値毎の熟練度を記憶する。
【０２７７】
−区間目標値設定部９−
区間目標値設定部９は、データベース入出力部１０により教示情報と環境情報とを入力して、作業を構成する一連の時系列の教示情報のうち、その作業を複数に分割した区間のそれぞれの終了時点である区間目標値を設定する。
区間目標値設定部９で設定した区間目標値に関する情報は、区間目標値設定部９により、データベース入出力部１０を介して、教示情報とともに教示情報データベース１７Ｂに記憶する。
【０２７８】
具体的には、図２３の（Ｂ）〜（Ｆ）に示すフレキシブル基板７４の挿入作業において、１つ目の区間目標値（１）は、フレキシブル基板７４が挿入口７５に接触した時点ｔ１で出力される。２つ目の区間目標値（２）は、フレキシブル基板７４の先端がコネクタの挿入口７５の奥に接触した時点ｔ２で出力される。３つ目の区間目標値（３）は、フレキシブル基板７４がコネクタの挿入口７５の奥に接触して力を緩めた時点ｔ３で出力され、挿入が完了した時点を表す。
【０２７９】
各区間目標値は、第１実施形態の反応時間算出部１５で説明したように、情報変化点ｔを環境情報の変位から区間目標値設定部９で算出し、この情報変化点ｔを区間目標値として区間目標値設定部９で設定する。
【０２８０】
なお、この例では、環境情報から情報変化点を区間目標値設定部９で算出したが、人１６がデータ入力ＩＦ２６（例えば図２の操作盤２６などボタンなど）により設定したい時点を区間目標値として区間目標値設定部９に指定しても良い。
【０２８１】
−環境情報提示部１４−
環境情報（知覚情報）提示部１４は、人１６がロボットアーム５を操作して、ロボットアーム５の動作を変更させるために使用した情報である環境情報を人に提示する際に、人１６が作業を実行するために必要な環境情報の力と対象物の位置と音量とに関する情報のうち、作業を行うのに必要な環境情報のみを、力もしくは対象物の位置もしくは音量として、提示する。図２４Ａは、力と対象物の位置と音量との全ての情報を使って教示している状況を示す。図２４Ｂは、力のみを使って教示している状況を示す。なお、具体的な環境情報データベース１８は、第１実施形態の図１１Ａと同様であるので、説明を省略する。
【０２８２】
人１６が直接ロボットアーム５を操作する例では、人１６に目隠し又は耳栓などを装着することで、提示する情報を変更することが可能である。さらに、力に関しては、第１実施形態の制御部２２で説明したインピーダンス制御時の機械インピーダンス設定値を変更することで、ロボットアーム５の操作時の操作感をより重たくなるように変更することで、フレキシブル基板に接触したときの力を人１６に伝達しにくくする。
【０２８３】
また、操作するロボットアームと動作するロボットアームを分離したマスタースレーブ装置の場合には、スレーブでの映像又は音量、力をマスターに伝達しないようにすることで提示する情報を限定することができる。
【０２８４】
以上の方法により、人１６がフレキシブル基板７４の挿入の教示時に、教示が完了するのに必要な環境情報を環境情報提示部１４で限定する。限定した種別の環境情報のみの情報を検出するのに必要な、各検出部（対象物力検出部７７と対象物位置検出部７８と音量検出部７９）のみ環境情報を取得する。なお、環境情報提示部１４で提示する情報は、教示全体に対して同じ種別の情報を提示するようにしても良いし、区間目標値設定部９で設定した区間目標値の区間毎に、環境情報提示部１４で提示する情報を変えても良い。
【０２８５】
−ばらつき度合算出部１２−
ばらつき度合算出部１２は、区間目標値設定部９で設定し、データベース入出力部１０から入力された区間目標値までの区間毎にデータベース入出力部１０で入力された教示情報と環境情報のばらつきの度合に関する情報であるばらつき度合を算出する。区間目標値設定部９で、図２３に示す時点ｔ１、ｔ２、ｔ３の区間目標値として設定した場合には、教示開始点から時点ｔ１までの区間（区間１）と、時点ｔ１から時点ｔ２までの区間（区間２）と、時点ｔ２から時点ｔ３までの区間（区間３）とのそれぞれの区間について、ばらつき度合をばらつき度合算出部１２で算出し、区間目標値の情報（時点ｔ１、ｔ２、ｔ３など）とともにばらつき度合算出部１２から動作生成部１３へ出力する。各区間のばらつき度合は、第１実施形態のばらつき度合算出部１２と同様の方法で算出する。
【０２８６】
−反応時間算出部１５−
反応時間算出部１５は、区間目標値設定部９で設定し、データベース入出力部１０から入力された区間目標値までの区間毎に、人１６がロボットアーム５を操作してロボットアーム５の動作情報を生成する際に、ロボットアーム５の周辺の環境情報を受けてから行動を起こすまでの反応時間を算出する。区間目標値設定部９で、図２３に示す時点ｔ１、ｔ２、ｔ３の区間目標値として設定した場合には、教示開始点から時点ｔ１までの区間（区間１）と、時点ｔ１から時点ｔ２までの区間（区間２）と、時点ｔ２から時点ｔ３までの区間（区間３）とのそれぞれの区間について、反応時間を反応時間算出部１５で算出する。反応時間算出部１５で算出した反応時間は、区間目標値の情報（時点ｔ１、ｔ２、ｔ３など）とともに、反応時間算出部１５から動作生成部１３へ出力する。各区間の反応時間は、第１実施形態の反応時間算出部１５と同様の方法で算出する。
【０２８７】
−順位決定部１１−
順位決定部１１は、後述する動作生成部１３で生成されデータベース入出力部１０を介して教示情報データベース１７Ｂに記憶された不慣れな時点の情報と教示作業に慣れて熟練した時点の情報となどのように、経時的に複数の教示情報について、区間目標値設定部９で設定した区間目標値までの区間毎に、より熟練している順に各区間毎の教示情報の順位を決定する。順位決定部１１で決定した順位は、区間目標値の情報（時点ｔ１、ｔ２、ｔ３など）とともに、順位決定部１１から動作生成部１３へ出力する。ばらつき度合算出部１２により各区間毎に算出したばらつき度合と、反応時間算出部１５により各区間毎に算出した反応時間と、各区間毎に、環境情報データベース１８の環境情報の力と対象物の位置と音量とに関する情報のうち、いくつの情報を使っているか使用環境情報数を、ばらつき度合算出部１２でカウントする。反応時間とばらつき度合と使用環境情報数とにより、第１実施形態の順位決定部１１と同様の方法で、熟練度Ｐを反応時間算出部１５で算出し、順位決定部１１で順位を決定する。反応時間算出部１５で算出した熟練度Ｐは、反応時間算出部１５により、教示情報の各区間目標値と対応させて、データベース入出力部１０を介して、教示情報データベース１７Ｂに記憶する。各区間毎に順位決定部１１で決定した順位は、区間目標値の情報（時点ｔ１、ｔ２、ｔ３など）とともに、順位決定部１１から動作生成部１３へ出力する。
【０２８８】
−動作切替部２３−
動作切替部２３により教示モードに設定された場合、教示部６１は、環境情報提示部１４で設定された情報のみを人１６に提示するよう環境情報提示部１４へ指令を出す。さらに、環境情報提示部１４で設定された情報のみを検出するように、制御部２２を介して、対象物力検出部７７と対象物位置検出部７８と音量検出部７９に指令を出す。次に、教示部６１は、第１実施形態と同様にインピーダンス制御で動作するように制御部２２へ指令を出す。次に、教示部６１は第１実施形態と同様に、ある一定時間毎にロボットアーム５の手先位置及び姿勢の情報を制御部２２から取得し、時間と共に、データベース入出力部１０により、教示情報データベース１７Ｂに記憶する。さらに、人１６が教示をしているときの周辺の環境に関する情報である環境情報（力もしくは対象物の位置もしくは音量情報のいずれか１つ以上の情報）のうち、環境情報提示部１４で設定された情報のみ取得し、教示情報と対にしてデータベース入出力部１０により環境情報データベース１８に記憶する。なお、教示を開始する時点及び終了する時点については、第１実施形態と同様であるので、説明を省略する。
【０２８９】
動作切替部２３で再生モードが設定された場合には、再生部６３は、区間目標値設定部９で設定された区間目標値までの区間毎に動作情報を生成して、制御部２２へ出力する。区間目標値の各区間毎の動作の生成方法については、第１実施形態と同様であるため、説明を省略する。各区間毎に生成した動作のつなぎ目は動作が不連続になるため、多項式補間を使用し、つなぎ目の部分のみ軌道を目標軌道生成部５５で補間する。
【０２９０】
次に、人１６がロボットアーム５を操作してロボットアーム５の動作を教示し、ロボットアーム５が自動で動作を再生する手順について、図２５のフローチャートを使って説明する。
【０２９１】
ここでは、第１実施例と同様、レコーダ、テレビ、又は、携帯電話などで使用されているフレキシブル基板７４の挿入作業を例に説明する。
【０２９２】
教示を開始する手順については、図２６のフローチャートの手順で動作する。
【０２９３】
まず、ステップＳ１１０において、第１実施形態のステップＳ１００と同様の方法により、教示モードに切り替える。
【０２９４】
次に、ステップＳ１１１において、動作生成部１３の教示部６１は、環境情報提示部１４により提示する環境情報を設定するよう指令を環境情報提示部１４に出す。図２４Ａは力と対象物の位置と音量の全ての情報を使うことでフレキシブル基板７４の挿入作業が教示できる例を示し、図２４Ｂは力のみを使って教示している例を示す。図２４Ａと図２４Ｂはフレキシブル基板挿入の経験の違いから、図２４Ａは多くの情報を頼りに教示を行っているが、その作業に慣れてくると図２４Ｂに示すように必要最小限の情報のみを使って教示ができるようになる。図２４Ａでは力と対象物の位置と音量との全ての情報を使って教示しているために、力と対象物の位置と音量との全てを検出するように、教示部６１は、各検出部（対象物力検出部７７と対象物位置検出部７８と音量検出部７９）に指令を出す。
【０２９５】
次に、ステップＳ１１２において、教示部６１は、制御部２２により、人が加えた力でロボットアーム５を動作できるようインピーダンス制御モードに切り替えるように指令を制御部２２に出す。
【０２９６】
図３Ａ〜図３Ｄ（図３Ｅ〜図３Ｈは上から見た図）は、人１６がロボットアーム５を操作し、教示している手順を示す。人１６は、図３Ａ→図３Ｂ→図３Ｃ→図３Ｄの順にロボットアーム５を操作して教示を行う。
【０２９７】
図２４Ａに示す状況は、力と対象物の位置と音量との全ての情報を使って教示している。この場合、ステップＳ１１３において、動作生成部１３の教示部６１は、タイマー６０を使って、一定時間毎（例えば、４ｍｓｅｃ毎）に、制御部２２から、人１６が操作しているときのロボットアーム５の手先の位置姿勢と取得し、加えて、対象物力検出部７８により、フレキシブル基板が挿入口７５に接触した時の力を検出するよう指令を制御部２２及び対象物力検出部７８に出す。対象物位置検出部７８は、対象物の位置情報を検出する。音量検出部７９は、音量情報を検出する。教示部６１は、タイマー６０を使って、ある一定時間毎（例えば４ｍｓｅｃ毎）に前記検出した手先の位置姿勢と、時間情報と、力情報と、対象物の位置情報と、音量とを対応付けて生成し、データベース入出力１０を介して、動作情報データベース１７及び環境情報データベース１８に記憶する。
【０２９８】
教示が終了すると、ステップＳ１１４において、第１実施形態のステップＳ１０３と同様の方法により、待機モードに切り替え、さらに、ステップＳ１１５において、動作情報の生成を終了する。
【０２９９】
ステップＳ１１６において、制御部２２は、ロボットアーム５を停止するように、位置制御モードに切り替える。
【０３００】
図２７Ａと図２７Ｂは、動作生成部１３で生成した情報を示す。以降では、図２７Ａの動作を動作パターンＡとし、図２７Ｂの動作を動作パターンＢとする。図２７Ａは、ロボットアーム５の位置及び力の時系列データと、対象物の位置と音量とに関する情報のうち、挿入の方向のみをプロットした図である。図２７Ｂは、ロボットアーム５の位置及び力の時系列データのうち、挿入の方向のみをプロットした図である。
【０３０１】
次に、図２７Ａ及び図２７Ｂの教示情報及び環境情報に基づいて、ロボットアーム５が自動で動作するための動作生成の手順について図２５を用いて説明する。
【０３０２】
まず、ステップＳ２００において、ロボット１による自動再生を開始する際には、第１実施形態と同様に、人１６はデータ入力ＩＦ２６から動作切替部２３への入力（例えば図２の操作盤２６の作業スタートボタン２６ｃを押す）により、作業開始の命令を動作生成部１３に入力する。動作生成部１３は、動作切替部２３からの入力（この例では再生モード）を受けて、動作生成部１３の再生部６２は、動作の再生を開始する。
【０３０３】
次に、ステップＳ２０１において、再生部６２の再生制御部６３は、区間目標値設定部９により、教示時に取得した図２７Ａと図２７Ｂのそれぞれの環境情報に基づいて区間目標値を設定するよう指令を区間目標値設定部９に出す。区間目標値設定部９で設定した区間目標値に関する情報は、データベース入出力部１０を介して、教示情報とともに教示情報データベース１７Ｂに記憶する。各区間目標値は、第１実施形態の反応時間算出１５で説明したように、環境情報に基づいて情報変化点ｔを区間目標値設定部９で検出し、区間目標値設定部９で検出した情報変化点ｔを区間目標値として区間目標値設定部９で設定する。
【０３０４】
以下、区間目標値設定部９の具体例について説明する。
【０３０５】
図２８Ａと図２８Ｂは、図２７Ａと図２７Ｂと同様のグラフである。
【０３０６】
図２８Ａの（１）〜（３）は、図２８Ａの力の情報に基づいて、第１実施形態の反応時間算出部１５で説明した方法により検出した情報変化点を示す。
【０３０７】
同様に、図２８Ｂの（７）〜（９）は、図２８Ｂの力の情報に基づいて、第１実施形態の反応時間算出部１５で説明した方法により検出した情報変化点を示す。
【０３０８】
図２８Ａの（４）と（５）は、図２８Ａの対象物の位置の情報より検出した情報変化点である。対象物の位置の場合も力の場合と同様に、対象物の位置の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の符号が同じであり且つ絶対値が第１の閾値（情報変化点検出用閾値）以上（この例では０．５ｍｍ）である時点を情報変化点として区間目標値設定部９で検出する。
【０３０９】
図２８Ａの（６）と（７）は、図２８Ａの音量の情報より検出した情報変化点である。音量の場合も力の場合と同様に、音量情報の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の符号が同じであり且つ絶対値が第１の閾値以上（この例では５ｄＢ）である時点を情報変化点として区間目標値設定部９で検出する。図２８Ａのように、複数の環境情報で検出された情報変化点を全て区間目標値として区間目標値設定部９で設定する。
【０３１０】
図２８Ａの動作パターンＡでは、（１））と（４）と（６）は同じ時点を情報変化点と検出しており、（２）と（５）と（７）は同じ時点を情報変化点と検出しているので、それぞれで検出した時点ｔ１、ｔ２を区間目標値設定部９で区間目標値とする。（３）については、力情報のみから検出されている時点ｔ３を区間目標値として区間目標値設定部９で設定する。
【０３１１】
図２８Ｂの動作パターンＢについては、力情報から検出された時点ｔ４、ｔ５、ｔ６を区間目標値として区間目標値設定部９で設定する。区間目標値設定部９で設定した区間目標値を、図２９の（Ａ）〜（Ｅ）のフレキシブル基板７４の挿入状況とともに図２９に示す。
【０３１２】
区間目標値設定部９で設定した区間目標値は、それぞれの教示情報とともに、データベース入出力部１０により教示情報データベース１７Ｂに記憶する。
【０３１３】
次に、ステップＳ２０２において、再生部６２の再生制御部６３は、ばらつき度合算出部１２により、区間目標値設定部９で設定した区間目標値までの区間毎に、ばらつき度合を算出する。ばらつき度合算出部１２で算出したばらつき度合は、ばらつき度合算出部１２から動作生成部１３へ出力する。
【０３１４】
この例では、図２８Ａと図２８Ｂに示した挿入方向の教示情報及び環境情報により、区間目標値設定部９で設定した時点ｔ１〜時点ｔ６毎に、ばらつき度合をばらつき度合算出部１２で算出するよう指令を再生制御部６３から、ばらつき度合算出部１２に出す。
【０３１５】
図２８Ａの教示開始時点〜時点ｔ１までの区間（１）について、ばらつき度合をばらつき度合算出部１２で算出する。
【０３１６】
算出方法は第１実施形態と同様の方法で算出する。ばらつき度合算出部１２における挿入方向の位置の第１の閾値を０．５（ｍｍ）、挿入方向の力の第２の閾値を０．５（Ｎ）、挿入方向の対象物の位置の第４の閾値(位置変位検出用閾値）を０．５（ｍｍ）、挿入方向の音量の第５の閾値(音量変位検出用閾値）を３（ｄＢ）とする。
【０３１７】
教示開始時点〜時点ｔ１未満までの区間（１）において、挿入方向のロボットアーム５の位置の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の絶対値が第１の閾値以上である箇所を区間目標値設定部９でカウントする（ここでは、カウントした値をｂ１１１とする）。図３０Ａに、第１の閾値以上の箇所を（１）〜（６）に示す。ここでは、区間目標値設定部９で６箇所検出されたため、ｂ１１１＝６となる。次に、ばらつき度合算出部１２で求めた変位の絶対値が第１の閾値以上である変位について、その変位の絶対値の合計を区間目標値設定部９で算出する（ここでは、その算出した値をｈ１１１とする）。（１）〜（６）のそれぞれの変位は、０．５１、０．５１、０．５０、０．５０、０．５３、０．５４であるため、それらの値の合計を区間目標値設定部９で算出すると、ｈ１１１＝３．０９となる。
【０３１８】
次に、挿入方向の力の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の絶対値が第２の閾値以上である箇所をばらつき度合算出部１２でカウントする（ここでは、そのカウントした値をｂ１２１とする）。さらに、ばらつき度合算出部１２で求めた変位の絶対値が第２の閾値以上である箇所の変位の絶対値の合計をばらつき度合算出部１２で算出する（ここでは、その算出した値をｈ１２１とする）。教示開始時点〜時点ｔ１未満までの区間（１）において、図３０Ａに示すように第２の閾値以上である箇所はない。このため、ｂ１２１＝０、ｈ１２１＝０となる。
【０３１９】
次に、挿入方向の対象物の位置の変位を区間目標値設定部９で求め、区間目標値設定部９で求めた変位の絶対値が第３の閾値以上である箇所を区間目標値設定部９でカウントする（ここでは、そのカウントした値をｂ１３１とする）。教示開始時点〜時点ｔ１未満までの区間（１）において、図３０Ａに示すように、第３の閾値以上である箇所を（１１）〜（１４）に示す。ここでは、区間目標値設定部９で４箇所検出されたため、ｂ１３１＝６となる。次に、区間目標値設定部９で求めた変位の絶対値が第３の閾値以上である変位について、その変位の絶対値の合計を区間目標値設定部９で算出する（ここでは、その算出した値をｈ１３１とする）。（１１）〜（１４）のそれぞれの変位は、０．５１、０．５１、０．５０、０．５０であるため、それらの値の合計を区間目標値設定部９で算出すると、ｈ１３１＝２．０２となる。
【０３２０】
次に、挿入方向の音量の変位を区間目標値設定部９で求め、区間目標値設定部９で求めた変位の絶対値が第４の閾値以上である箇所を区間目標値設定部９でカウントする（ここでは、そのカウントした値をｂ１４１とする）。さらに、区間目標値設定部９で求めた変位の絶対値が第４の閾値以上である箇所の変位の絶対値の合計を区間目標値設定部９で算出する（ここでは、その算出した値をｈ１４１とする）。教示開始時点〜時点ｔ１未満までの区間（１）において、図３０Ａに示すように第４の閾値以上である箇所はない。このため、ｂ１４１＝０、ｈ１４１＝０となる。
【０３２１】
次に、教示開始時点〜時点ｔ１未満までの区間（１）のばらつき度合Ｂ１１は（ｃ１×ｂ１１１＋ｃ２×ｂ１２１＋ｃ３×ｂ１３１＋ｃ４×ｂ１４１＋ｃ５×ｈ１１１＋ｃ６×ｈ１２１＋ｃ７×ｈ１３１＋ｃ８×ｈ１４１）の式により、ばらつき度合算出部１２で算出して、Ｂ１１＝９．８９２となる。ただし、この例では、定数ｃ１、ｃ２、ｃ５、ｃ６を１．０、ｃ３、ｃ４、ｃ７、ｃ８は０．１とする。
【０３２２】
時点ｔ１以上時点ｔ２未満の区間（２）についても、同様の方法でばらつき度合Ｂ１２をばらつき度合算出部１２で算出する。Ｂ１２＝２．０、時点ｔ２以上時点ｔ３未満の区間（３）のばらつき度合はＢ１３＝１．９１となり、時点ｔ３以上教示終了時点までの区間（４）のばらつき度合はＢ１４＝１．７となる。
【０３２３】
次に、図３０Ｂの教示開始時点〜時点ｔ４までの区間（５）についてばらつき度合をばらつき度合算出部１２で算出する。
【０３２４】
算出方法は第１実施形態と同様の方法で算出する。ばらつき度合算出部１２における挿入方向の位置の第１の閾値を０．５（ｍｍ）とし、挿入方向の力の第２の閾値を０．５（Ｎ）とする。
【０３２５】
教示開始時点〜時点ｔ４未満までの区間（５）において、挿入方向の位置の変位を区間目標値設定部９で求め、区間目標値設定部９で求めた変位の絶対値が第１の閾値以上である箇所を区間目標値設定部９でカウントする（ここでは、そのカウントした値をｂ２１１とする）。図３０Ａに、第１の閾値以上の箇所を（１９）と（２０）に示す。ここでは、区間目標値設定部９で２箇所検出されたため、ｂ２１１＝２となる。次に、区間目標値設定部９で求めた変位の絶対値が第１の閾値以上である変位について、その変位の絶対値の合計を区間目標値設定部９で算出する（ここでは、その算出した値をｈ２１１とする）。（１９）と（２０）のそれぞれの変位は、０．５１、０．５０であるため、それらの値の合計を区間目標値設定部９で算出すると、ｈ２１１＝１．０１となる。
【０３２６】
次に、挿入方向の力の変位を区間目標値設定部９で求め、区間目標値設定部９で求めた変位の絶対値が第２の閾値以上である箇所を区間目標値設定部９でカウントする（ここでは、そのカウントした値をｂ２２１とする）。さらに、区間目標値設定部９で求めた変位の絶対値が第２の閾値以上である箇所の変位の絶対値の合計を区間目標値設定部９で算出する（ここでは、その算出した値をｈ２２１とする）。教示開始時点〜時点ｔ４未満までの区間（５）において、図３０Ａに示すように第２の閾値以上である箇所はない。このため、ｂ２２１＝０、ｈ２２１＝０となる。
【０３２７】
次に、教示開始時点〜時点ｔ４未満までの区間（５）のばらつき度合Ｂ２１は（ｃ１×ｂ２１１＋ｃ２×ｂ２２１＋ｃ５×ｈ２１１＋ｃ６×ｈ２２１）の式により、ばらつき度合算出部１２で算出して、Ｂ２１＝３．０１となる。ただし、この例では、定数ｃ１、ｃ２、ｃ５、ｃ６を１．０とする。
【０３２８】
時点ｔ４以上時点ｔ５未満の区間（６）についても同様の方法でばらつき度合Ｂ２２をばらつき度合算出部１２で算出し、Ｂ２２＝３．５となる。時点ｔ５以上時点ｔ６未満の区間（７）のばらつき度合はＢ２３＝１．６となり、時点ｔ３以上教示終了時点までの区間（４）のばらつき度合はＢ２４＝１．５となる。以上により算出したばらつき度合をそれぞれの区間毎に図３１に示す。
【０３２９】
次に、ステップＳ２０３において、再生部６２の再生制御部６３は、反応時間算出部１５により、区間目標値設定部９で設定した区間目標値までの区間毎に反応時間を算出するよう指令を反応時間算出部１５に出す。算出した反応時間は動作生成部１３へ出力する。
【０３３０】
この例では図２８Ａと図２８Ｂに示した挿入方向の教示情報及び環境情報により、区間目標値設定部９で設定したｔ１〜ｔ６毎に反応時間を算出する。
【０３３１】
反応時間は、それぞれの環境情報毎に第１実施形態と同様に、情報変化点と行動変化点とをばらつき度合算出部１２で求め、行動変化点の時刻から情報変化点の時刻を減じた値としても良いし、各環境情報の中で最も反応時間の短い環境情報のみで反応時間算出部１５で算出しても良い。一般的には、人は、力覚、聴覚、視覚の順で反応時間が短くなると言われている。第２実施形態では、最も反応時間の短い力の情報のみから区間目標値までの区間毎の反応時間を反応時間算出部１５で算出する例を説明する。
【０３３２】
次に、教示時に取得した図３２Ａと図３２Ｂの２つの教示情報及び環境情報を用いて、反応時間算出部１５より反応時間を反応時間算出部１５で算出する。図３２Ａ及び図３２Ｂに示した挿入方向のみの位置と力との情報により、反応時間を反応時間算出部１５で算出する。ここでは、一例として、反応時間算出部１５の第１の閾値を０．５（Ｎ）とし、第２の閾値を０．２（Ｎ）とする。
【０３３３】
具体的には、第１実施形態と同様に、挿入方向の力の変位を区間目標値設定部９で求め、区間目標値設定部９で求めた変位の符号が同じであり且つ絶対値が第１の閾値以上である時点を情報変化点として区間目標値設定部９で検出し、次に、情報変化点以降において、人１６が行動を起こした時点である行動変化点を区間目標値設定部９で検出する。
【０３３４】
図３２Ａの（１）と（３）が区間目標値設定部９で検出した情報変化点で、それに対応して（２）と（４）が行動変化点である。図中の反応時間Ｔ１（３５０ｍｓｅｃ）、Ｔ２（２８０ｍｓｅｃ）が検出した反応時間である。
【０３３５】
次に、検出した反応時間が、区間目標値までのそれぞれの区間（この例では（１）〜（４）の区間）のどの区間で検出したかを反応時間算出部１５で調べる。区間（１）は反応時間を検出しなかったので、この区間での反応時間は、反応時間算出部１５で−１とする。区間（２）では反応時間Ｔ１を反応時間算出部１５で検出し、区間（３）では反応時間Ｔ２を反応時間算出部１５で検出し、区間（４）では反応時間を反応時間算出部１５で検出しなかったため、反応時間算出部１５で−１とする。
【０３３６】
同様に、図３２Ｂにおいても反応時間を反応時間算出部１５で検出する。図３２Ｂでは、反応時間Ｔ３（４１０ｍｓｅｃ）、Ｔ４（８０ｍｓｅｃ）を反応時間算出部１５で検出する。次に、反応時間算出部１５で検出した反応時間が、区間目標値までのそれぞれの区間（この例では（５）〜（８）の区間）のどの区間で検出したかを反応時間算出部１５で調べる。
【０３３７】
区間（５）は反応時間を反応時間算出部１５で検出しなかったので、この区間での反応時間は、反応時間算出部１５で−１とする。区間（６）では反応時間Ｔ３を反応時間算出部１５で検出し、区間（７）では反応時間Ｔ４を反応時間算出部１５で検出し、区間（８）では反応時間を反応時間算出部１５で検出しなかったため、反応時間算出部１５で−１とする。以上により算出した反応時間をそれぞれの区間毎に図３１に示す。
【０３３８】
次に、ステップＳ２０４において、再生部６２の再生制御部６３は、順位決定部１１で、図２８Ａと図２８Ｂの各区間毎でどちらがより熟練度合の高い動作であるかの順位を決定するよう指令を順位決定部１１に出す。
【０３３９】
環境情報データベース１８の環境情報の力と対象物の位置と音量とに関する情報のうち、いくつの情報を使っているか使用環境情報数Ｅとして、各区間毎に反応時間算出部１５でカウントする。
【０３４０】
この例では、図２８Ａはいずれの区間も力と対象物の位置と力と音を使用しているので、使用環境情報数Ｅ１＝３となる。
【０３４１】
図２８Ｂはいずれの区間も力のみを使用しているので、使用環境情報数Ｅ２＝１となる。以上により算出した使用環境情報数をそれぞれの区間毎に図３１に示す。
【０３４２】
次に、各区間毎に反応時間算出部１５で算出した反応時間が複数ある場合は、全ての反応時間を反応時間算出部１５で合算して、区間毎の総反応時間を反応時間算出部１５で算出する。この例では、各区間で反応時間が複数存在しないので、合算はしない。
【０３４３】
それぞれの区間毎の熟練度合は、第１実施形態と同様に、熟練度はＰ＝１／（ａＥ＋ｂＢ＋ｃＴ）で順位決定部１１により算出する。ただし、ａ、ｂ、ｃは定数であり、この例ではａ＝１、ｂ＝１００、ｃ＝１とする。なお、各定数はあらかじめ決定しておく。
【０３４４】
また、Ｅは各区間毎で求めた使用環境情報数であり、Ｂは各区間毎で求めたばらつき度合であり、Ｔは各区間毎の総反応時間である。また、反応時間が−１の場合、反応時間を０として順位決定部１１で計算する。順位決定部１１で算出した各区間毎の熟練度を図３１に示す。
【０３４５】
各区間毎に、値が大きい方がより熟練度の高い動作として順位決定部１１で決定する。図３１に示すように、区間（１）は図３０Ｂが最も高い順位の動作であり、区間（２）は図３０Ａが最も高い順位の動作であり、区間（３）は図３０Ｂが最も高い順位の動作であり、区間（４）は図３０Ｂが最も高い順位の動作となる。
【０３４６】
次に、ステップＳ２０５において、再生部６２の再生制御部６３は、制御則抽出部２０により、センサーフィードバック則を抽出するよう指令を制御則抽出部２０に出す。
【０３４７】
センサーフィードバック則は、それぞれの環境情報毎に第１実施形態と同様に、情報変化点と行動変化点を求めて制御則抽出部２０で算出しても良いし、各環境情報の中で最も反応時間の短い環境情報のみで制御則抽出部２０で算出しても良い。
一般的には、人は、力覚、聴覚、視覚の順で反応時間が短くなると言われている。この第２実施形態では、最も反応時間の短い力の情報のみからセンサーフィードバック則を制御則抽出部２０で抽出する例を説明する。
【０３４８】
フィードバック則は、第１実施形態と同様、ステップＳ２０３のばらつき度合算出部１２で検出した情報変化点と行動変化点に基づいて、制御則抽出部２０で抽出する。
【０３４９】
具体的には、図３２Ａにおいて、挿入方向の力の変位をばらつき度合算出部１２で求め、ばらつき度合算出部１２で求めた変位の符号が同じであり且つ絶対値が第１の閾値以上である時点を人１６が感覚刺激を受けた情報変化点（１）をばらつき度合算出部１２で検出する。
【０３５０】
次に、時点ｔ１以降において、人１６が行動を起こした行動変化点（２）は、情報変化点（１）から以降の挿入方向の力の変位をばらつき度合算出部１２で求め、変位の符号が同じであり且つ絶対値が第２の閾値以上の時点をばらつき度合算出部１２で検出する。
【０３５１】
続いて、（２）以降の情報変化点と行動変化点を同様の方法でばらつき度合算出部１２で検出する。ばらつき度合算出部１２で検出した情報変化点と行動変化点は、図３２Ａに示すように情報変化点（３）、行動変化点（４）としてばらつき度合算出部１２で検出される。１つ目のフィードバック則ＳＢ１１は、行動変化点（２）が検出された時点から次の情報変化点（３）の時点までの力の情報を制御則抽出部２０により近似曲線で近似する。近似曲線は例えば最小二乗法を用いて算出する。２つ目のフィードバック則ＳＢ１２は、行動変化点（４）が検出された時点から次の情報変化点までで制御則抽出部２０により抽出するが、この例では行動変化点（４）以降の情報変化点はばらつき度合算出部１２で検出されないため、行動変化点（４）から力の情報が終わるまでの時点までを制御則抽出部２０により近似曲線で近似する。
【０３５２】
同様に、図３２Ｂにおいて、フィードバック則を制御則抽出部２０で抽出する。１つ目のフィードバック則ＳＢ２１は、行動変化点（６）が検出された時点から次の情報変化点（７）の時点までの力の情報を制御則抽出部２０により近似曲線で近似する。近似曲線は例えば最小二乗法を用いて算出する。２つ目のフィードバック則ＳＢ２２は、情報変化点（７）以降の行動変化点（８）を検出して制御則抽出部２０で抽出するが、情報変化点（７）から行動変化点（８）までの反応時間Ｔ４＝８０ｍｓｅｃが第３の閾値（この例では２００ｍｓｅｃ）以下であるため、人１６がセンサーフィードバックを行わず、予測で教示したと制御則抽出部２０で判断し、第２のセンサーフィードバックの抽出は行わない。
【０３５３】
次に、ステップＳ２０６において、動作生成部１３の再生部６２は、制御則抽出部２０で抽出したセンサーフィードバック則と、順位決定部１１で決定した順位とに基づき、区間目標値までの区間毎にロボットアーム５の動作を再生する。
【０３５４】
この例では、力の情報を使ってフィードバック則を制御則抽出部２０で抽出しているので、力のフィードバック則を使って説明する。
【０３５５】
図３３は動作生成部１３で生成した動作の実行順序を示す。
【０３５６】
各区間毎に、第１実施形態と同様の方法で動作を動作生成部１３で生成する。
【０３５７】
区間（１）では、力のセンサーフィードバック則を抽出していないため、順位決定部１１で決定した順位のうち、最も順位の高い教示情報を、目標の位置及び姿勢情報に動作生成部１３で設定する。この例では、区間（１）においては、動作パターンＢの順位が高いため、目標軌道として、図２８Ｂの動作パターンＢの位置及び姿勢情報を動作生成部１３で設定して（図３３の（１））、位置制御モードで動作するように動作生成部１３から制御部２２へ出力する。この例では、図２９の（Ａ）に示すようにフレキシブル基板７４が挿入口７５に向かって、位置制御モードで挿入を開始する。よりばらつき度合の少ない動作パターンＢの位置及び姿勢情報を使ってロボットアーム５を動作させるため、図２８Ａの動作パターンＡの区間（１）の位置及び姿勢情報に比べて、位置の変動が少なく、フレキシブル基板７４を挿入口７５まで安定して移動することが可能となる。
【０３５８】
ロボットアーム５の動作中は、第１実施形態と同様、ロボットアーム５の位置及び姿勢の情報を、制御部２２を介して、動作生成部１３へ入力する（図３３の（１０））。加えて、対象物（この例では、フレキシブル基板７４）に加わる力を対象物力検出部７８で計測して、対象物力検出部７８から動作生成部１３に入力する（図３３の（９））。
【０３５９】
次に、図２９の（Ｂ）のように、フレキシブル基板７４が挿入口７５に接触する。接触した時点から区間（２）となる。
【０３６０】
区間（２）では、最も順位の高い教示情報が図２８Ａの動作パターンＡの教示情報であるため、制御モード（この例では位置制御モード）は動作生成部１３で変更せず、位置及び姿勢情報を動作パターンＢの目標軌道から動作パターンＡの目標軌道で動作するように動作生成部１３から制御部２２へ出力する（図３３の（２））。
【０３６１】
次いで、ステップＳ２０７において、動作パターンＢの目標軌道から動作パターンＡの目標軌道に切り替える際には、急に動作が切り替わらないよう目標軌道生成部５５により多項式補間などで補間する。
【０３６２】
次に、順位組換部６４は、フレキシブル基板７４が挿入口７５に接触した時点で制御則抽出部２０で抽出されたセンサーフィードバック則が存在している場合は、その適用を行う。順位組換部６４で適用するセンサーフィードバック則は、区間（２）中の順位決定部１１で決定した、最も順位の高い順の教示情報から取得したセンサーフィードバック則を順位組換部６４で適用し、うまく動作しないと判断部６５で判断された場合には次の順位の教示情報から取得したセンサーフィードバック則を順位組換部６４で適用する。うまく動作していると判断部６５で判断された場合には、順位組換部６４は、順位の低い教示情報及び環境情報から制御則抽出部２０で抽出されたフィードバック則の適用を行わない。
【０３６３】
この例では、より熟練した動作である図３２Ａの行動変化点（２）以降から制御則抽出部２０で抽出したセンサーフィードバック則ＳＢ１１を順位組換部６４で適用し（図３３の（３））、うまく動作しないと判断部６５で判断した場合は、非熟練動作である図３２Ｂの行動変化点（６）以降から制御則抽出部２０で抽出したフィードバック則ＳＢ２１（図３３の（４））を、第１実施形態と同様の方法で、順位組換部６４から制御部２２へ出力する。なお、うまく挿入できているかどうかの判断部６５での判断は、第１実施形態と同様の方法で行う。
【０３６４】
次に、図２９の（Ｄ）のように、フレキシブル基板７４がコネクタ７５の奥に接触する。接触した時点から区間（３）となる。
【０３６５】
区間（３）では、最も順位の高い教示情報が図２８Ｂの教示情報であるため、制御モード（この例では位置制御モード）は動作生成部１３で変更せず、位置及び姿勢情報を、図２８Ａの目標軌道から図２８Ｂの目標軌道で動作するように動作生成部１３から制御部２２へ出力する（図３３の（５））。
【０３６６】
図２８Ａの目標軌道から図２８Ｂの目標軌道に切り替える際には、急に動作が切り替わらないよう目標軌道生成部５５で多項式補間などで補間する。
【０３６７】
次に、フレキシブル基板７４がコネクタの挿入口７５の奥に接触した時点で制御則抽出部２０で抽出されたセンサーフィードバック則が存在している場合は、その適用を順位組換部６４で行う。順位組換部６４で適用するセンサーフィードバック則は、区間（３）中の順位決定部１１で決定した、最も順位の高い順の教示情報から取得したセンサーフィードバック則を順位組換部６４で適用し、うまく動作しないと判断部６５で判断された場合には、次の順位の教示情報から取得したセンサーフィードバック則を順位組換部６４で適用する。
【０３６８】
この例では、より熟練した動作である図３２Ｂの情報変化点（７）で制御則抽出部２０で抽出したセンサーフィードバック則を順位組換部６４で適用するが、この例ではＴ４＝８０ｍｓｅｃが第３の閾値（この例では２００ｍｓｅｃ）以下であるため、人１６がセンサーフィードバックを行わず、予測で教示したと制御則抽出部２０で判断し、センサーフィードバックの抽出は制御則抽出部２０で行っていない。
【０３６９】
そこで、行動変化点である図３２Ｂ（８）時点以降は、図３２Ｂの挿入方向の位置を含む位置及び姿勢情報で位置制御モードにて動作するように、動作生成部１３から制御部２２へ出力する（図３３の（６））。この例では、フレキシブル基板７４がコネクタの挿入口７５の奥まで接触した時点で少し手前に戻す動作となる。人１６は、より熟練してくるとセンサーフィードバックを行わず、予測を働かせて動作させているが、その軌道は変動の少ないため、安定して動作する。
【０３７０】
次に、第１実施形態と同様に、フレキシブル基板７４のモデルチェンジなどにより、うまく動作しないと判断部６５で判断された場合には、次の順位の教示情報から制御則抽出部２０で抽出したセンサーフィードバック則を順位組換部６４で適用する。この例では、センサーフィードバック則ＳＢ１２を順位組換部６４で適用する（図３３の（７））。このセンサーフィードバック則ＳＢ１２は、フレキシブル基板７４に対して、強めに力を検出した場合には、力を緩めるような力制御を行う。
【０３７１】
最後に、区間（４）については、センサーフィードバック則を抽出していない区間であるため、最も順位の高い教示情報が、図２８Ｂの教示情報を制御モードで動作させる（図３３の（８））。
【０３７２】
以上により、区間目標値で設定した各区間毎に目標軌道を切り替えながら動作を再生することで、環境変動に柔軟な動作を実現することが可能となる。
【０３７３】
なお、教示モードが設定された時に、制御部２２ではインピーダンス制御で動作させることにより、人１６が加えた力に基づいてロボットアーム５を移動させたが、ロボットアーム５をサーボオフとしてロボットアーム５を操作して移動させても良い。
【０３７４】
さらに、作業全体について、順位決定部１１で決定した順位又は熟練度Ｐを例えば作業台７に設置された表示部に提示しても良い。これにより、操作した人１６が自分の熟練度又は順位を確認することができるようになる。
【０３７５】
また、区間目標値設定部９で設定した区間目標値までの区間毎に熟練度Ｐを表示することで、作業の一部についての熟練度を確認することが可能となる。
【０３７６】
また、教示した人毎に算出した熟練度を記憶する記憶部を備えることで、次に人が教示操作を行い際に、直前の熟練度合に応じて、制御部２２の機械インピーダンス設定値を変更しても良い。具体的には、非熟練者に対しては粘性Ｄ及び剛性Ｋが大きくなるように設定することで、ロボットアーム５の動きに抵抗感又は硬さが生じ動きにくくなる。逆に、熟練者に対しては、粘性Ｄ及び剛性Ｋが小さくなるように設定することで、ロボットアーム５の動きに抵抗感又は硬さが生じにくくなり動きやすくなる。
【０３７７】
以上により、熟練度合に応じてロボットアーム５の操作感を変えることで、非熟練者に対しては安全に操作をすることができるようになり、熟練者に対しては、機敏に操作をすることができるようになる。加えて、区間目標値設定部９で設定した区間目標値までの区間の熟練度に応じて、機械インピーダンス設定値を変えることも可能である。
【０３７８】
第２実施形態によれば、区間目標値までの区間毎に作業に不慣れな時点の教示情報と、教示作業に慣れて熟練した時点の情報とを組み合わせて動作を動作生成部１３で生成することで、環境変動に柔軟な動作生成が可能となる。さらに、人１６が直接ロボットアーム５を操作して教示できるため、ロボットの知識がなくても、人１６は直感的に操作ができる。よって、人１６が簡単にロボットアーム５の動作を教示することができる。
【０３７９】
なお、本発明を第１〜第２実施形態及び変形例に基づいて説明してきたが、本発明は、前記の第１〜第２実施形態及び変形例に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
前記各制御装置の一部又は全部は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭ又はハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各部は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０３８０】
例えば、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、前記実施形態又は変形例における制御装置を構成する要素の一部又は全部を実現するソフトウェアは、以下のようなプログラムである。
【０３８１】
つまり、このプログラムは、ロボットアームの動作を制御するロボットアームの制御プログラムであって、
コンピュータに、
人が前記ロボットアームを操作して動作の教示を行うときの、時系列の複数の教示情報を第１情報取得部で取得するステップと、
前記ロボットアームの教示時における、（ｉ）反応時間情報と（ｉｉ）ばらつき情報とを第２情報取得部で取得するステップと、
前記時系列の教示情報は、前記ロボットアームの位置、姿勢、及び、速度の少なくとも１つ以上で構成され、前記反応時間情報は、前記ロボットアームで行う作業対象の対象物に前記ロボットアームから加えられる力情報と、前記ロボットアームで行う作業対象の対象物の位置情報と、周辺環境の音情報とのうち、少なくとも１つの情報である知覚情報を前記人が受けてから、前記人が前記ロボットアームの操作をするまでの時間情報であり、前記ばらつき情報は、時系列における前記教示情報もしくは時系列における前記知覚情報のいずれか１つ以上の情報との時系列におけるばらつき度合に関する情報であり、前記第２情報取得部で取得した前記反応時間情報と前記ばらつき情報とに基づいて、前記第１情報取得部で取得した前記複数の教示情報の順位を順位決定部で決定するステップと、
前記複数の教示情報と前記順位とに基づいて、前記ロボットアームの前記動作の情報である動作情報を動作生成部で生成するステップと、
前記動作生成部で生成された動作情報に基づいて、前記ロボットアームの前記動作を制御するステップとを実行させるための、ロボットアームの制御プログラムである。
【０３８２】
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスク、磁気ディスク、又は、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
なお、上記様々な実施形態又は変型例のうちの任意の実施形態又は変型例を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【０３８３】
本発明は、家庭用ロボットなど環境変動に適応しながら作業を行う際のロボットアームの動作の制御を行なうロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、並びに、集積電子回路として有用である。また、家庭用ロボットに限らず、産業用ロボット、又は、生産設備等における可動機構のロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、並びに、集積電子回路としても適用が可能である。
本発明は、添付図面を参照しながら実施形態に関連して充分に記載されているが、この技術の熟練した人々にとっては種々の変形又は修正は明白である。そのような変形又は修正は、添付した請求の範囲による本発明の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。
【図１】
0005512048.tif 000009
【図２】
0005512048.tif 000010
【図３Ａ】
0005512048.tif 000011
【図３Ｂ】
0005512048.tif 000012
【図３Ｃ】
0005512048.tif 000013
【図３Ｄ】
0005512048.tif 000014
【図３Ｅ】
0005512048.tif 000015
【図３Ｆ】
0005512048.tif 000016
【図３Ｇ】
0005512048.tif 000017
【図３Ｈ】
0005512048.tif 000018
【図４】
0005512048.tif 000019
【図５Ａ】
0005512048.tif 000020
【図５Ｂ】
0005512048.tif 000021
【図５Ｃ】
0005512048.tif 000022
【図６】
0005512048.tif 000023
【図７Ａ】
0005512048.tif 000024
【図７Ｂ】
0005512048.tif 000025
【図７Ｃ】
0005512048.tif 000026
【図７Ｄ】
0005512048.tif 000027
【図８】
0005512048.tif 000028
【図９】
0005512048.tif 000029
【図１０】
0005512048.tif 000030
【図１１Ａ】
0005512048.tif 000031
【図１１Ｂ】
0005512048.tif 000032
【図１２】
0005512048.tif 000033
【図１３】
0005512048.tif 000034
【図１４】
0005512048.tif 000035
【図１５】
0005512048.tif 000036
【図１６】
0005512048.tif 000037
【図１７Ａ】
0005512048.tif 000038
【図１７Ｂ】
0005512048.tif 000039
【図１８Ａ】
0005512048.tif 000040
【図１８Ｂ】
0005512048.tif 000041
【図１８Ｃ】
0005512048.tif 000042
【図１８Ｄ】
0005512048.tif 000043
【図１９】
0005512048.tif 000044
【図２０Ａ】
0005512048.tif 000045
【図２０Ｂ】
0005512048.tif 000046
【図２０Ｃ】
0005512048.tif 000047
【図２０Ｄ】
0005512048.tif 000048
【図２０Ｅ】
0005512048.tif 000049
【図２０Ｆ】
0005512048.tif 000050
【図２０Ｇ】
0005512048.tif 000051
【図２０Ｈ】
0005512048.tif 000052
【図２１】
0005512048.tif 000053
【図２２】
0005512048.tif 000054
【図２３】
0005512048.tif 000055
【図２４Ａ】
0005512048.tif 000056
【図２４Ｂ】
0005512048.tif 000057
【図２５】
0005512048.tif 000058
【図２６】
0005512048.tif 000059
【図２７Ａ】
0005512048.tif 000060
【図２７Ｂ】
0005512048.tif 000061
【図２８Ａ】
0005512048.tif 000062
【図２８Ｂ】
0005512048.tif 000063
【図２９】
0005512048.tif 000064
【図３０Ａ】
0005512048.tif 000065
【図３０Ｂ】
0005512048.tif 000066
【図３１】
0005512048.tif 000067
【図３２Ａ】
0005512048.tif 000068
【図３２Ｂ】
0005512048.tif 000069
【図３３】
0005512048.tif 000070
【図３４Ａ】
0005512048.tif 000071
【図３４Ｂ】
0005512048.tif 000072
【図３４Ｃ】
0005512048.tif 000073
【図３４Ｄ】
0005512048.tif 000074
【図３４Ｅ】
0005512048.tif 000075
【図３５Ａ】
0005512048.tif 000076
【図３５Ｂ】
0005512048.tif 000077