(57)【要約】【課題】ロボットアームが動作する環境に適応し、さらに、作業者が簡単で短時間にロボットの教示を行うことが可能なロボット制御を実現できる、ロボットアームの制御装置及び方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路を提供する。【解決手段】ロボットアーム（５）の制御装置（７０）であって、ロボットアームの動作に関する情報が記憶された動作情報データベース（１７）と、人（４）の力を検出する力検出部（５３）と、人の力に応じて、動作情報データベースの動作情報を補正する動作補正部（２０）を備えている。【選択図】図１
2010137357.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御装置であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら制御する力制御部と、
前記動作情報の補正の有無を設定する補正方法設定部と、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを切り替える制御パラメータ管理部と、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を取得する情報取得部と、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を補正する動作補正部とを備え、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの制御装置。
【請求項２】
前記情報取得部で取得した前記動作情報は、前記ロボットアームの前記動作を生成するための幾何学的な動作のテンプレート情報を含み、
前記ロボットアームが動作する環境に関する環境情報を取得する環境情報取得部と、
前記環境情報に基づいて、前記動作情報に含まれた前記動作のテンプレート情報から、前記ロボットアームの前記動作情報を生成する動作情報展開部とを備え、
さらに、前記情報取得部は、前記動作情報展開部で展開された前記動作情報で前記位置制御部で制御されながら前記ロボットアームが移動している途中に、前記情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて、前記動作の前記テンプレート情報を補正し、さらに前記動作補正部で補正された前記テンプレート情報を前記動作情報展開部で生成された前記動作情報に基づいて、前記ロボットアームの前記動作を制御する請求項１に記載のロボットアームの制御装置。
【請求項３】
前記動作補正部による前記動作情報の補正の方法を設定する補正方法設定部をさらに備えて、
前記補正方法設定部により設定された補正の方法に従って、前記動作補正部により前記動作情報を補正する請求項１に記載のロボットアームの制御装置。
【請求項４】
前記補正方法設定部は、前記動作情報を補正すると設定して、前記動作補正部にて補正した後に、前記動作情報を補正しないと設定した場合に、補正した動作で動作するか、若しくは、前記補正する前の動作に戻すかの補正の方法を設定し、前記動作補正部が補正方法設定部で設定された前記補正の方法を参照して、前記動作情報を補正すると設定して、前記動作補正部にて補正した後に、前記動作情報を補正しないと設定した場合に、補正した動作で動作するか、若しくは、前記補正する前の動作に戻すかを切り替え、
前記動作補正部により補正された前記動作情報に基づいて、前記ロボットアームの前記動作を制御して前記動作補正部にて補正した後に、前記動作情報を補正しないと設定したとき、前記補正方法設定部で設定された前記補正の方法により切り替えられた動作で前記ロボットアームの前記動作を制御する請求項３に記載のロボットアームの制御装置。
【請求項５】
前記補正方法設定部は、前記動作補正部にて補正した後の動作を、補正する前の動作に上書きして動作するか、挿入して動作するかの補正の方法を設定し、前記動作補正部が補正方法設定部で設定された前記補正の方法を参照して、前記動作補正部にて補正した後の動作を、補正する前の動作に上書きして動作するか、挿入して動作するかを切り替え、
前記動作補正部により補正された前記動作情報に基づいて、前記ロボットアームの前記動作を制御して前記動作補正部にて補正した後に、前記補正方法設定部で設定された前記補正の方法により切り替えられた動作で前記ロボットアームの前記動作を制御する請求項３に記載のロボットアームの制御装置。
【請求項６】
前記補正方法設定部で前記補正の方法において、前記動作補正部にて補正した後の動作を上書きして動作するよう設定されている場合に、
前記動作補正部は、補正後の前記動作情報を補正前の前記動作情報に挿入する際に、補正前と補正後の動作のつなぎ目部分において、補正後の動作のつなぎ目部分を、前記つなぎ目部分以外の部分よりも、より低速もしくは停止するように動作を補正する請求項５に記載のロボットアームの制御装置。
【請求項７】
前記補正方法設定部は、前記ロボットアームを人が直接把持して前記ロボットアームを操作して補正した動作に切り替える際に、切り替え前の前記動作の速度よりも低速な動作を行うか否かの補正の方法を設定し、
前記動作補正部が補正方法設定部で設定された前記補正の方法を参照して、前記ロボットアームを人が直接把持して前記ロボットアームを操作した際に、前記ロボットアームの前記速度を操作前より低速にするか否かを切り替え、
前記動作補正部により補正された前記動作情報に基づいて、前記ロボットアームの前記動作を制御するとき、前記ロボットアームを人が直接把持して前記ロボットアームを操作した際に、前記補正方法設定部で設定された前記補正の方法により切り替えられた動作で前記ロボットアームの前記動作を制御する請求項３に記載のロボットアームの制御装置。
【請求項８】
補正するパラメータの種別を取得する補正パラメータ種別取得部をさらに備え、前記補正するパラメータの種別とは、前記動作情報を補正するときに、前記動作情報の前記力に関する情報の種別を方向別に決定するものであり、
前記動作補正部が前記動作情報データベースの前記動作情報を補正するとき、前記補正パラメータ取得部で取得された前記補正するパラメータの種別を参照し、前記動作補正部は、前記補正するパラメータの種別により決定された前記補正パラメータのみを補正する請求項１に記載のロボットアームの制御装置。
【請求項９】
補正するパラメータの種別を取得する補正パラメータ種別取得部をさらに備え、前記補正するパラメータの種別とは、前記動作情報を補正するときに、前記動作情報の前記動作のテンプレート情報を構成する個々のパラメータの種別を決定するものであり、
前記動作補正部が前記動作情報データベースの前記動作情報を補正するとき、前記補正パラメータ取得部で取得された前記補正するパラメータの種別を参照し、前記動作補正部は、前記補正するパラメータの種別により決定された前記補正パラメータのみを補正する請求項２に記載のロボットアームの制御装置。
【請求項１０】
前記動作情報と前記補正パラメータの前記種別とを関連付けて作成する情報生成部をさらに備える請求項８又は９に記載のロボットアームの制御装置。
【請求項１１】
前記動作補正部による動作補正時に、前記補正パラメータを表示する表示部を有する請求項８又は９に記載のロボットアームの制御装置。
【請求項１２】
前記動作補正部で補正した動作を記憶する動作記憶部をさらに備えて、
前記動作記憶部の記憶開始時間は、前記補正を開始してからある時間を経過した後から開始する請求項１に記載のロボットアームの制御装置。
【請求項１３】
前記ロボットアームの周辺に存在している他の周辺機器と、前記周辺機器に関する情報である周辺機器情報を取得する周辺機器情報取得部と、前記動作補正部は、前記動作情報を補正する際に、前記周辺機器を制御する請求項１に記載のロボットアームの制御装置。
【請求項１４】
前記ロボットアームに加えられた前記人の力を検出する力検出部をさらに備えて、前記情報取得部は、前記力検出部で検出された前記人の力に応じて前記補正動作情報を取得する請求項１に記載のロボットアームの制御装置。
【請求項１５】
前記ロボットアームに加えられた前記人の力を検出する力検出部をさらに備えて、
前記補正方法設定部は、前記動作補正部にて補正した後に、前記力検出部により検出された前記人の力が閾値より小さくなった場合に、前記補正した動作で動作するか、若しくは、前記補正する前の動作に戻すかの補正の方法を設定し、前記動作補正部が前記補正方法設定部で設定された前記補正の方法を参照して、前記動作補正部にて補正した後に、前記力検出部により検出された前記人の力が閾値より小さくなった場合に、前記補正した動作で動作するか、若しくは、前記補正する前の動作に戻すかを切り替え、
前記動作補正部により補正された前記動作情報に基づいて、前記ロボットアームの前記動作を制御して前記動作補正部にて補正した後に、前記力検出部により検出された前記人の力が閾値より小さくなったとき、前記補正方法設定部で設定された前記補正の方法により切り替えられた動作で前記ロボットアームの前記動作を制御する請求項３に記載のロボットアームの制御装置。
【請求項１６】
前記ロボットアームに加えられた前記人の力を検出する力検出部をさらに備えて、
前記動作補正部は、前記補正パラメータの前記種別に応じて、前記力検出部により検出された前記人の力に応じて、前記ロボットアームの動作を拘束するように前記動作情報データベースの前記動作情報を補正する請求項８又は９に記載のロボットアームの制御装置。
【請求項１７】
前記動作補正部で補正した動作を記憶する動作記憶部をさらに備え、
前記動作記憶部の前記記憶開始時間は、前記力検出部により検出された前記人の力がある閾値以上になった場合に開始する請求項１４に記載のロボットアームの制御装置。
【請求項１８】
前記動作情報取得部は複数の前記動作情報を取得し、
前記動作情報取得部で取得した前記複数の動作情報の中から、前記力検出部で検出された前記人の力に応じて、動作情報を選択する動作選択部をさらに備えて、
前記動作補正部は、前記動作選択部により選択された前記動作情報を補正する請求項１４に記載のロボットアームの制御装置。
【請求項１９】
前記補正方法設定部は、前記動作情報を補正するか補正しないかの切り替えを、前記力検出部で検出された人の力に応じて決定する請求項１４に記載のロボットアームの制御装置。
【請求項２０】
前記ロボットアームと、
前記ロボットアームを制御する請求項１、３、４〜９、１７〜１９のいずれか１つに記載のロボットアームの制御装置を有するロボット。
【請求項２１】
ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御方法であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得しくした前記動作情報の力で対象物を押し付けながら力制御部で制御し、
前記動作情報の補正の有無を補正方法設定部で設定し、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを制御パラメータ管理部で切り替え、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を情報取得部で取得し、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を動作補正部で補正し、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの制御方法。
【請求項２２】
ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御プログラムであって、
コンピュータに、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら力制御部で制御し、
前記動作情報の補正の有無を補正方法設定部で設定し、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを制御パラメータ管理部で切り替え、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を情報取得部で取得し、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を動作補正部で補正し、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うステップを実行させるための、ロボットアームの制御プログラム。
【請求項２３】
ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの集積電子回路であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら制御する力制御部と、
前記動作情報の補正の有無を設定する補正方法設定部と、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを切り替える制御パラメータ管理部と、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を取得する情報取得部と、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を補正する動作補正部とを備え、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの集積電子回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作を生成、教示するためのロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームのプログラム、ロボットアーム制御用集積電子回路に関する。
【背景技術】
【０００２】
近年、介護ロボット又は家事支援ロボットなどの家庭用ロボットが盛んに開発されるようになってきた。家庭ロボットは産業用ロボットと異なり、家庭の素人が操作するため、簡単に動作を教示できる必要がある。さらに、ロボットが作業する際の動作環境も、家庭に応じてさまざまであるため、家庭環境に柔軟に対応する必要がある。
【０００３】
ロボット装置の教示方法の一例として、ロボットの手首などに力センサを装着し、力センサの先に装着されたハンドルを教示者が直接把持してロボットを教示点に誘導し、ロボットの位置の教示を行っている（特許文献１、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭５９−１５７７１５号公報
【特許文献２】特開平７−８４６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１においては、全ての教示点を教示者が教示する必要があるため、教示に時間がかかり、非常に面倒であった。さらに、産業用分野にて、教示した動きの一部を修正する場合に、ティーチングペンダントと呼ばれる遠隔装置により、プログラミングにより修正するか、若しくは、全ての動作を一から教示しなければならず、効率が悪かった。
【０００６】
特に、家庭用ロボットでは、できるだけ教示する時間を短くする必要がある。さらに、ティーチングペンダンドなどの遠隔装置でのプログラミングの併用は、操作ステップが増大し、プログラミング言語の習得が必要となり、家庭の素人には困難である。
【０００７】
また、特許文献２で記載しているように、産業ロボットでは、ロボットの動作を教示する教示作業とロボットが実際に作業する本作業とは明確に分けて行っている。しかし、家庭において、教示した作業を実行する場合に、教示を行った環境とは異なる環境に変動することが頻繁に起こるため、教示作業をそのまま実行しても、環境変動によりロボットが停止したり、誤って作業をしてしまうことがある。これらの環境変動の全てを事前に想定して教示しておくことは、困難である。これらの課題は、家庭用に限らず、産業用においても環境の変動が頻繁に起こる環境では同様である。
【０００８】
本発明の目的は、このような課題に鑑みてなされたものであり、ロボットアームが動作する環境に適応し、さらに、作業者が簡単で短時間にロボットの教示を行うことが可能なロボット制御を実現できる、ロボットアームの制御装置及び方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路を提供することにある。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明は以下のように構成する。
【００１０】
本発明の第１態様によれば、ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御装置であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら制御する力制御部と、
前記動作情報の補正の有無を設定する補正方法設定部と、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを切り替える制御パラメータ管理部と、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を取得する情報取得部と、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を補正する動作補正部とを備え、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの制御装置を提供する。
本発明の第２０態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第１、３、４〜９、１７〜１９のいずれか１つの態様第記載のロボットアームの制御装置を有するロボットを提供する。
本発明の第２１態様によれば、ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御方法であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得しくした前記動作情報の力で対象物を押し付けながら力制御部で制御し、
前記動作情報の補正の有無を補正方法設定部で設定し、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを制御パラメータ管理部で切り替え、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を情報取得部で取得し、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を動作補正部で補正し、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの制御方法を提供する。
本発明の第２２態様によれば、ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御プログラムであって、
コンピュータに、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら力制御部で制御し、
前記動作情報の補正の有無を補正方法設定部で設定し、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを制御パラメータ管理部で切り替え、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を情報取得部で取得し、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を動作補正部で補正し、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うステップを実行させるための、ロボットアームの制御プログラムを提供する。
本発明の第２３態様によれば、ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの集積電子回路であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら制御する力制御部と、
前記動作情報の補正の有無を設定する補正方法設定部と、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを切り替える制御パラメータ管理部と、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を取得する情報取得部と、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を補正する動作補正部とを備え、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの集積電子回路を提供する。
【発明の効果】
【００１１】
以上述べたように、本発明のロボットアームの制御装置及びロボットアームの制御装置を有するロボットによれば、動作情報データベースと力検出部と動作補正部とを有することにより、動作情報で記述されたロボットアームの動作を、人の力に応じて、簡単に動作を補正することができるロボットアームの制御が可能となる。
【００１２】
さらに、前記ロボットアームの制御装置に、さらに、動作のテンプレート情報と環境情報と補正パラメータ情報などを備えることにより、ロボットアームの動作を簡単に生成することができ、加えて、補正パラメータで指定されたパラメータのみを補正することができる。
【００１３】
また、本発明のロボットアームの制御方法及びロボットアームの制御プログラム及びロボットアーム制御用集積電子回路によれば、動作情報で記述されたロボットの動作を、人の力に応じて、簡単に動作を補正することができるロボット制御が可能となる。
【図面の簡単な説明】
【００１４】
本発明のこれらと他の目的と特徴は、添付された図面についての好ましい実施形態に関連した次の記述から明らかになる。この図面においては、
【図１】図１は、本発明の第１実施形態におけるロボットシステムを構成するロボットアームの制御装置と制御対象であるロボットアームの構成の概要を示す図であり、
【図２Ａ】図２Ａは、本発明の第１実施形態におけるロボットシステムを構成するロボットアームの制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図２Ｂ】図２Ｂは、本発明の第１実施形態の変形例におけるロボットシステムを構成するロボットアームの制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図３】図３は、第１実施形態におけるロボットアームの制御装置の動作情報データベースの動作情報の一覧表を説明する図であり、
【図４】図４は、第１実施形態におけるロボットアームの制御装置の動作情報データベースのフラグの情報を説明する図であり、
【図５】図５は、第１実施形態におけるロボットアームの制御装置の動作情報データベースの補正パラメータフラグの情報を説明する図であり、
【図６】図６は、第１実施形態におけるロボットアームの制御装置の動作選択部で記憶される情報の一覧表を説明する図であり、
【図７】図７は、本発明の第１実施形態におけるロボットアームの制御装置の動作状態と人による操作状態を説明するための説明図であり、
【図８】図８は、（ａ）〜（ｃ）はそれぞれ本発明の第１実施形態におけるロボットアームの制御装置の動作状態と操作状態と動作状態とを説明するための説明図であり、
【図９】図９は、本発明の第１実施形態におけるロボットシステムの周辺装置の表示部を説明する図であり、
【図１０】図１０は、第１実施形態において、人の加える力とその時刻の関係を示すグラフであり、
【図１１】図１１は、本発明の第１実施形態におけるロボットアームの制御装置の動作補正部と動作選択部と補正方法設定部と動作記憶部と動作情報データベースと制御パラメータ管理部との動作ステップを表すフローチャートであり、
【図１２】図１２は、本発明の第１実施形態におけるロボットアームの制御装置の制御部の構成を示すブロック図であり、
【図１３】図１３は、本発明の第１実施形態におけるロボットアームの制御装置の制御部などの動作ステップを表すフローチャートであり、
【図１４Ａ】図１４Ａは、本発明の第２実施形態におけるロボットアームの制御装置の操作状態を示す図であり、
【図１４Ｂ】図１４Ｂは、本発明の第２実施形態におけるロボットアームの制御装置の操作状態を示す図であり、
【図１５】図１５は、本発明の第２実施形態におけるロボットアームの制御装置の動作情報データベースのフラグなどの情報を説明する図であり、
【図１６】図１６は、本発明の第２実施形態におけるロボットアームの制御装置の動作情報データベースのフラグの情報を説明する図であり、
【図１７】図１７は、本発明の第２実施形態におけるロボットアームの制御装置の動作情報データベースの補正パラメータフラグの情報を説明する図であり、
【図１８】図１８は、本発明の第２実施形態におけるロボットアームの制御装置の動作テンプレート情報でのロボットアームの手先の動作を説明する図であり、
【図１９】図１９は、本発明の第２実施形態におけるロボットアームの制御装置の動作補正部と動作選択部と補正方法設定部と動作記憶部と動作情報データベースと制御パラメータ管理部との動作ステップを表すフローチャートであり、
【図２０】図２０は、本発明の第２実施形態におけるロボットアームの制御装置の制御部の構成を示すブロック図であり、
【図２１】図２１は、本発明の第２実施形態におけるロボットアームの制御装置の制御部などの動作ステップを表すフローチャートであり、
【図２２】図２２は、（ａ）〜（ｆ）は、それぞれ、本発明の第３実施形態における、ロボットアームの制御装置によるロボットアームの制御動作状態及び人による操作状態を示す説明図であり、
【図２３】図２３は、本発明の第３実施形態におけるロボットシステムを構成するロボットアームの制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図２４】図２４は、動作情報データベースの動作情報の一覧表形式の説明図であり、
【図２５Ａ】図２５Ａは、本発明の第３実施形態において、動作テンプレート情報の一覧表を説明する図であり、
【図２５Ｂ】図２５Ｂは、図２５Ａの表の動作テンプレートＩＤが「１」でかつ種別が１の場合に関する動作テンプレートの中心座標と半径を示す表形式の図であり、
【図２５Ｃ】図２５Ｃは、図２５Ａの表の動作テンプレートＩＤが「２」でかつ種別が２の場合に関する動作テンプレートの中心座標と半径を示す表形式の図であり、
【図２５Ｄ】図２５Ｄは、図２５Ａの表の動作テンプレートＩＤが「３」でかつ種別が３の場合に関する動作テンプレートの座標１〜座標４を示す表形式の図であり、
【図２５Ｅ】図２５Ｅは、図２５Ｄの動作テンプレート情報であって、ロボットアームの手先がジグザグに移動して鍋の中をかき混ぜる動作を説明する図であり、
【図２５Ｆ】図２５Ｆは、図２５Ｂの動作テンプレート情報であって、ロボットアームの手先が円を描くように移動して鍋の中をかき混ぜる動作を説明する図であり、
【図２５Ｇ】図２５Ｇは、図２５Ｃの動作テンプレート情報であって、ロボットアームの手先が放射線状に移動して鍋の中をかき混ぜる動作を説明する図であり、
【図２６Ａ】図２６Ａは、本発明の第３実施形態において、動作テンプレート情報でのロボットアームの手先での、鍋をかき混ぜる動作を説明する図であり、
【図２６Ｂ】図２６Ｂは、本発明の第３実施形態において、動作テンプレート情報でのロボットアームの手先での、鍋をかき混ぜる動作を説明する図であり、
【図２６Ｃ】図２６Ｃは、本発明の第３実施形態において、動作テンプレート情報でのロボットアームの手先での、鍋をかき混ぜる動作を説明する図であり、
【図２７】図２７は、本発明の第３実施形態における、動作情報データベースのフラグの情報を説明する図であり、
【図２８Ａ】図２８Ａは、本発明の第３実施形態における、環境情報データベースの環境情報の一覧表を説明する図であり、
【図２８Ｂ】図２８Ｂは、本発明の第３実施形態における、環境情報データベースの環境情報を表形式で説明する説明図であり、
【図２８Ｃ】図２８Ｃは、本発明の第３実施形態における、環境情報データベースの環境情報の表形式で説明する説明図であり、
【図２８Ｄ】図２８Ｄは、本発明の第３実施形態における、環境情報データベースの環境情報の表形式で説明する説明図であり、
【図２８Ｅ】図２８Ｅは、本発明の第３実施形態における、環境情報データベースの環境情報の物体に関する情報を説明する説明図であり、
【図２８Ｆ】図２８Ｆは、本発明の第３実施形態における、環境情報データベースの環境情報の円に関する情報を説明する説明図であり、
【図２８Ｇ】図２８Ｇは、本発明の第３実施形態における、環境情報データベースの環境情報の直方体に関する情報を説明する説明図であり、
【図２９】図２９は、本発明の第３実施形態における、補正パラメータデータベースの補正パラメータの一覧表を説明する図であり、
【図３０】図３０は、本発明の第３実施形態における、補正パラメータのフラグに関する情報を説明する図であり、
【図３１Ａ】図３１Ａは、本発明の第３実施形態におけるロボットアームの制御装置によるロボットアームの制御動作状態及び人による操作状態を示す説明図であり、
【図３１Ｂ】図３１Ｂは、本発明の第３実施形態におけるロボットアームの制御装置によるロボットアームの制御動作状態を示す説明図であり、
【図３１Ｃ】図３１Ｃは、本発明の第３実施形態におけるロボットアームの制御装置によるロボットアームの制御動作状態を示す説明図であり、
【図３１Ｄ】図３１Ｄは、本発明の第３実施形態におけるロボットアームの制御装置によるロボットアームの制御動作状態を説明する平面図であり、
【図３２】図３２は、本発明の第３実施形態におけるロボットアームの制御装置の動作補正部と情報生成部と動作選択部と補正方法設定部と動作記憶部と動作情報データベースと環境情報データベースと補正パラメータデータベースと制御パラメータ管理部との動作ステップを表すフローチャートであり、
【図３３】図３３は、（ａ）〜（ｇ）は、それぞれ、本発明の第４実施形態におけるロボットアームの制御装置によるロボットアームの制御動作状態及び人による操作状態を示す説明図であり、
【図３４】図３４は、本発明の第４実施形態におけるロボットアームの制御装置の動作情報データベースの動作情報の一覧表を説明する図であり、
【図３５Ａ】図３５Ａは、本発明の第４実施形態におけるロボットアームの制御装置の動作状態を示す説明図であり、
【図３５Ｂ】図３５Ｂは、本発明の第４実施形態におけるロボットアームの制御装置の動作状態を示す平面図であり、
【図３５Ｃ】図３５Ｃは、本発明の第４実施形態におけるロボットアームの制御装置の動作状態を示す平面図であり、
【図３５Ｄ】図３５Ｄは、本発明の第４実施形態におけるロボットアームの制御装置の動作状態を示す平面図であり、
【図３５Ｅ】図３５Ｅは、本発明の第４実施形態におけるロボットアームの制御装置の動作状態を示す平面図であり、
【図３６】図３６は、本発明の第５実施形態におけるロボットシステムを構成するロボットアームの制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図３７】図３７は、本発明の第５実施形態におけるロボットシステムの動作情報データベースの動作情報と調理機器情報データベースの調理機器情報の一覧表を説明する図であり、
【図３８Ａ】図３８Ａは、本発明の第６実施形態において、人の加える力とその時間との関係を示す図であり、
【図３８Ｂ】図３８Ｂは、本発明の第６実施形態において、人の加える力とその時間との関係を示す図であり、
【図３９】図３９は、本発明の第６実施形態において、補正方法設定部で設定される情報の一覧表を説明する図であり、
【図４０】図４０は、本発明の第７実施形態におけるロボットシステムを構成するロボットアームの制御装置と制御対象であるロボットアームの構成の概要を示す図であり、
【図４１】図４１は、本発明の第７実施形態におけるロボットシステムを構成するロボットアームの制御装置と制御対象であるロボットアームの詳細構成を示す図であり、
【図４２】図４２は、動作情報データベースの動作情報の一覧表形式の説明図であり、
【図４３Ａ】図４３Ａは、本発明の第７実施形態における、環境情報データベースの環境情報の一覧表を説明する図であり、
【図４３Ｂ】図４３Ｂは、本発明の第７実施形態における、環境情報データベースの環境情報の一覧表を説明する図であり、
【図４３Ｃ】図４３Ｃは、本発明の第７実施形態における、図４３Ｂの環境情報データベースの環境情報で表される物体を示す図であり、
【図４３Ｄ】図４３Ｄは、本発明の第７実施形態における、環境情報データベースの環境情報の一覧表を説明する図であり、
【図４３Ｅ】図４３Ｅは、本発明の第７実施形態における、図４３Ｄの環境情報データベースの環境情報で表される物体を示す図であり、
【図４３Ｆ】図４３Ｆは、本発明の第７実施形態における、環境情報データベースの環境情報の一覧表を説明する図であり、
【図４３Ｇ】図４３Ｇは、本発明の第７実施形態における、図４３Ｆの環境情報データベースの環境情報で表される円を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【００１６】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【００１７】
本発明の第１態様によれば、ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御装置であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら制御する力制御部と、
前記動作情報の補正の有無を設定する補正方法設定部と、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを切り替える制御パラメータ管理部と、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を取得する情報取得部と、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を補正する動作補正部とを備え、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの制御装置を提供する。
【００１８】
このような構成により、人の力に応じて、位置、力の情報を補正することができる。
【００１９】
本発明の第２態様によれば、前記情報取得部で取得した前記動作情報は、前記ロボットアームの前記動作を生成するための幾何学的な動作のテンプレート情報を含み、
前記ロボットアームが動作する環境に関する環境情報を取得する環境情報取得部と、
前記環境情報に基づいて、前記動作情報に含まれた前記動作のテンプレート情報から、前記ロボットアームの前記動作情報を生成する動作情報展開部とを備え、
さらに、前記情報取得部は、前記動作情報展開部で展開された前記動作情報で前記位置制御部で制御されながら前記ロボットアームが移動している途中に、前記情報取得部で取得したそれぞれの時間での前記補正動作情報に応じて、前記動作の前記テンプレート情報を補正し、さらに前記動作補正部で補正された前記テンプレート情報を前記動作情報展開部で生成された前記動作情報に基づいて、前記ロボットアームの前記動作を制御する第１の態様に記載のロボットアームの制御装置を提供する。
【００２０】
このような構成により、環境情報に基づいて、前記動作情報を補正し、さらに、前記人の力に応じて、前記動作情報データベースの前記動作情報を補正することができる。
【００２１】
本発明の第３態様によれば、前記動作補正部による前記動作情報の補正の方法を設定する補正方法設定部をさらに備えて、
前記補正方法設定部により設定された補正の方法に従って、前記動作補正部により前記動作情報を補正する第１の態様に記載のロボットアームの制御装置を提供する。
【００２２】
このような構成により、動作方法について設定できる。
【００２３】
本発明の第４態様によれば、前記補正方法設定部は、前記動作情報を補正すると設定して、前記動作補正部にて補正した後に、前記動作情報を補正しないと設定した場合に、補正した動作で動作するか、若しくは、前記補正する前の動作に戻すかの補正の方法を設定し、前記動作補正部が補正方法設定部で設定された前記補正の方法を参照して、前記動作情報を補正すると設定して、前記動作補正部にて補正した後に、前記動作情報を補正しないと設定した場合に、補正した動作で動作するか、若しくは、前記補正する前の動作に戻すかを切り替え、
前記動作補正部により補正された前記動作情報に基づいて、前記ロボットアームの前記動作を制御して前記動作補正部にて補正した後に、前記動作情報を補正しないと設定したとき、前記補正方法設定部で設定された前記補正の方法により切り替えられた動作で前記ロボットアームの前記動作を制御する第３の態様に記載のロボットアームの制御装置を提供する。
【００２４】
このような構成により、前記動作情報を補正すると設定して、前記動作補正部にて補正した後に、前記動作情報を補正しないと設定した場合に、補正した動作で動作するか、若しくは、前記人の力を加える前の動作に戻すかを切り替えることができる。
【００２５】
本発明の第５態様によれば、前記補正方法設定部は、前記動作補正部にて補正した後の動作を、補正する前の動作に上書きして動作するか、挿入して動作するかの補正の方法を設定し、前記動作補正部が補正方法設定部で設定された前記補正の方法を参照して、前記動作補正部にて補正した後の動作を、補正する前の動作に上書きして動作するか、挿入して動作するかを切り替え、
前記動作補正部により補正された前記動作情報に基づいて、前記ロボットアームの前記動作を制御して前記動作補正部にて補正した後に、前記補正方法設定部で設定された前記補正の方法により切り替えられた動作で前記ロボットアームの前記動作を制御する第３の態様に記載のロボットアームの制御装置を提供する。
【００２６】
このような構成により、前記補正方法設定部は、前記動作補正部にて補正した後の動作を、補正する前の動作に上書きして動作するか、挿入して動作するかを切り替えることができる。
【００２７】
本発明の第６態様によれば、前記補正方法設定部で前記補正の方法において、前記動作補正部にて補正した後の動作を上書きして動作するよう設定されている場合に、
前記動作補正部は、補正後の前記動作情報を補正前の前記動作情報に挿入する際に、補正前と補正後の動作のつなぎ目部分において、補正後の動作のつなぎ目部分を、前記つなぎ目部分以外の部分よりも、より低速もしくは停止するように動作を補正する第５の態様に記載のロボットアームの制御装置を提供する。
【００２８】
本発明の第７態様によれば、前記補正方法設定部は、前記ロボットアームを人が直接把持して前記ロボットアームを操作して補正した動作に切り替える際に、切り替え前の前記動作の速度よりも低速な動作を行うか否かの補正の方法を設定し、
前記動作補正部が補正方法設定部で設定された前記補正の方法を参照して、前記ロボットアームを人が直接把持して前記ロボットアームを操作した際に、前記ロボットアームの前記速度を操作前より低速にするか否かを切り替え、
前記動作補正部により補正された前記動作情報に基づいて、前記ロボットアームの前記動作を制御するとき、前記ロボットアームを人が直接把持して前記ロボットアームを操作した際に、前記補正方法設定部で設定された前記補正の方法により切り替えられた動作で前記ロボットアームの前記動作を制御する第３の態様に記載のロボットアームの制御装置を提供する。
【００２９】
このような構成により、前記補正方法設定部は、前記人の力に応じて、前記動作情報の動作の速度を変更するか変更しないかを切り替えることができる。
【００３０】
本発明の第８態様によれば、補正するパラメータの種別を取得する補正パラメータ種別取得部をさらに備え、前記補正するパラメータの種別とは、前記動作情報を補正するときに、前記動作情報の前記力に関する情報の種別を方向別に決定するものであり、
前記動作補正部が前記動作情報データベースの前記動作情報を補正するとき、前記補正パラメータ取得部で取得された前記補正するパラメータの種別を参照し、前記動作補正部は、前記補正するパラメータの種別により決定された前記補正パラメータのみを補正する第１の態様に記載のロボットアームの制御装置を提供する。
【００３１】
本発明の第９態様によれば、補正するパラメータの種別を取得する補正パラメータ種別取得部をさらに備え、前記補正するパラメータの種別とは、前記動作情報を補正するときに、前記動作情報の前記動作のテンプレート情報を構成する個々のパラメータの種別を決定するものであり、
前記動作補正部が前記動作情報データベースの前記動作情報を補正するとき、前記補正パラメータ取得部で取得された前記補正するパラメータの種別を参照し、前記動作補正部は、前記補正するパラメータの種別により決定された前記補正パラメータのみを補正する第２の態様に記載のロボットアームの制御装置を提供する。
【００３２】
本発明の第１０態様によれば、前記動作情報と前記補正パラメータの前記種別とを関連付けて作成する情報生成部をさらに備える第８又は９の態様に記載のロボットアームの制御装置を提供する。
【００３３】
このような構成により、前記動作情報と前記補正パラメータの前記種別とを関連付けて作成することができる。
【００３４】
本発明の第１１態様によれば、前記動作補正部による動作補正時に、前記補正パラメータを表示する表示部を有する第８又は９の態様に記載のロボットアームの制御装置を提供する。
【００３５】
このような構成により、前記補正パラメータを表示することができる。
【００３６】
本発明の第１２態様によれば、前記動作補正部で補正した動作を記憶する動作記憶部をさらに備えて、
前記動作記憶部の記憶開始時間は、前記補正を開始してからある時間を経過した後から開始する第１の態様に記載のロボットアームの制御装置を提供する。
【００３７】
このような構成により、前記動作記憶部の記憶開始時間は、補正を開始してからある時間を経過した後から開始することができる。
【００３８】
本発明の第１３態様によれば、前記ロボットアームの周辺に存在している他の周辺機器と、前記周辺機器に関する情報である周辺機器情報を取得する周辺機器情報取得部と、前記動作補正部は、前記動作情報を補正する際に、前記周辺機器を制御する第１の態様に記載のロボットアームの制御装置を提供する。
【００３９】
このような構成により、前記動作情報の補正中に、周辺機器を制御することができる。
【００４０】
本発明の第１４態様によれば、前記ロボットアームに加えられた前記人の力を検出する力検出部をさらに備えて、前記情報取得部は、前記力検出部で検出された前記人の力に応じて前記補正動作情報を取得する第１の態様に記載のロボットアームの制御装置を提供する。
本発明の第１５態様によれば、前記ロボットアームに加えられた前記人の力を検出する力検出部をさらに備えて、
前記補正方法設定部は、前記動作補正部にて補正した後に、前記力検出部により検出された前記人の力が閾値より小さくなった場合に、前記補正した動作で動作するか、若しくは、前記補正する前の動作に戻すかの補正の方法を設定し、前記動作補正部が前記補正方法設定部で設定された前記補正の方法を参照して、前記動作補正部にて補正した後に、前記力検出部により検出された前記人の力が閾値より小さくなった場合に、前記補正した動作で動作するか、若しくは、前記補正する前の動作に戻すかを切り替え、
前記動作補正部により補正された前記動作情報に基づいて、前記ロボットアームの前記動作を制御して前記動作補正部にて補正した後に、前記力検出部により検出された前記人の力が閾値より小さくなったとき、前記補正方法設定部で設定された前記補正の方法により切り替えられた動作で前記ロボットアームの前記動作を制御する第３の態様に記載のロボットアームの制御装置を提供する。
本発明の第１６態様によれば、前記ロボットアームに加えられた前記人の力を検出する力検出部をさらに備えて、
前記動作補正部は、前記補正パラメータの前記種別に応じて、前記力検出部により検出された前記人の力に応じて、前記ロボットアームの動作を拘束するように前記動作情報データベースの前記動作情報を補正する第８又は９の態様に記載のロボットアームの制御装置を提供する。
本発明の第１７態様によれば、前記動作補正部で補正した動作を記憶する動作記憶部をさらに備え、
前記動作記憶部の前記記憶開始時間は、前記力検出部により検出された前記人の力がある閾値以上になった場合に開始する第１４の態様に記載のロボットアームの制御装置を提供する。
本発明の第１８態様によれば、前記動作情報取得部は複数の前記動作情報を取得し、
前記動作情報取得部で取得した前記複数の動作情報の中から、前記力検出部で検出された前記人の力に応じて、動作情報を選択する動作選択部をさらに備えて、
前記動作補正部は、前記動作選択部により選択された前記動作情報を補正する第１４の態様に記載のロボットアームの制御装置を提供する。
本発明の第１９態様によれば、前記補正方法設定部は、前記動作情報を補正するか補正しないかの切り替えを、前記力検出部で検出された人の力に応じて決定する第１４の態様に記載のロボットアームの制御装置を提供する。
本発明の第２０態様によれば、前記ロボットアームと、
前記ロボットアームを制御する第１、３、４〜９、１７〜１９のいずれか１つの態様第記載のロボットアームの制御装置を有するロボットを提供する。
本発明の第２１態様によれば、ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御方法であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得しくした前記動作情報の力で対象物を押し付けながら力制御部で制御し、
前記動作情報の補正の有無を補正方法設定部で設定し、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを制御パラメータ管理部で切り替え、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を情報取得部で取得し、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を動作補正部で補正し、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの制御方法を提供する。
【００４１】
このような構成により、ロボットアームの制御方法であって、前記ロボットアームの動作に関する情報である動作情報を記憶し、人の力を検出し、前記人の力に応じて、前記動作情報を補正する方法を提供することができる。
【００４２】
本発明の第２２態様によれば、ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの制御プログラムであって、
コンピュータに、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら力制御部で制御し、
前記動作情報の補正の有無を補正方法設定部で設定し、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを制御パラメータ管理部で切り替え、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を情報取得部で取得し、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を動作補正部で補正し、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うステップを実行させるための、ロボットアームの制御プログラムを提供する。
【００４３】
このような構成により、前記ロボットアームの動作に関する情報が記憶された動作情報データベースを使用し、検出された人の力に応じて、前記動作情報データベースの前記動作情報を補正するステップを有することを特徴とするロボットアームの制御プログラムを提供することができる。
【００４４】
本発明の第２３態様によれば、ロボットアームによる複数の動作からなる作業を実行するために、前記ロボットアームの動作を制御するロボットアームの集積電子回路であって、
前記動作に対応する、前記ロボットアームが対象物に加える力の時系列の動作情報として記憶された動作情報データベースから取得した前記動作情報の力で対象物を押し付けながら制御する力制御部と、
前記動作情報の補正の有無を設定する補正方法設定部と、
（ｉ）前記補正方法設定部により、前記動作情報の補正を無しと設定した場合に、前記動作情報データベースに予め記憶された動作情報に基づいて前記ロボットアームを自動的に力制御する力ハイブリッドインピーダンス制御モードと、（ｉｉ）前記補正方法設定部により、前記動作情報の補正を有りと設定した場合に、人が前記ロボットアームを保持して前記ロボットアームに力を教示可能な高剛性位置制御モードとを切り替える制御パラメータ管理部と、
前記高剛性位置制御モードにおいて、前記人が前記ロボットアームを保持して力を加えて、前記ロボットアームの前記動作を補正する際の前記ロボットアームが加える力に関する補正動作情報を取得する情報取得部と、
前記情報取得部で取得したそれぞれの時間での補正動作情報に応じて、前記動作情報を補正する動作補正部とを備え、
前記動作情報データベースは、前記動作情報である力の方向を特定する補正パラメータフラグを有し、
前記制御パラメータ管理部が、前記力ハイブリッドインピーダンス制御モードで前記ロボットアームを自動的に力制御している途中に、前記高剛性位置制御モードに切り替えた後、前記情報取得部が、前記補正パラメータフラグにより特定された力の方向に関して、前記人による前記ロボットアームの前記補正動作情報を取得し、
前記動作補正部は、前記補正動作情報に応じて、前記動作情報を補正し、
前記力制御部は、前記補正した動作情報に基づいて前記ロボットアームの力制御を行うロボットアームの集積電子回路を提供する。
【００４５】
このような構成により、前記ロボットアームの動作に関する情報が記憶された動作情報データベースと、力検出部で検出された人の力に応じて、前記動作情報データベースの前記動作情報を補正する動作補正部とを有することを特徴とするロボットアーム制御用集積電子回路を提供することができる。
【００４６】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００４７】
（第１実施形態）
まず、本発明の第１実施形態におけるロボットアームの制御装置を備えるロボットシステム１の構成について説明する。図１は、本発明の第１実施形態におけるロボットアーム５及びその制御装置７０を備えるロボットシステム１の概要を示す図である。
【００４８】
図１に示したように、ロボットシステム１のロボットアーム５は、例えば家庭内のキッチン又はテーブルなどの作業台７の壁面７ａに設置され、ロボットアーム５の基端が、壁面７ａに固定されたレール８に、移動可能に支持され、レール８上をロボットアーム５がレール８沿いの横方向例えば水平方向に、人４の力により、移動可能とする。
【００４９】
前記ロボットシステム１は、家庭内で、ロボットアーム５と人４とが協働して行う作業、例えば、ロボットアーム５を使用して鍋３の中の具材を、かき混ぜる作業、又は、ロボットアーム５を使用してキッチンの汚れをふき取る作業を行うロボットシステムである。ロボットシステム１による鍋３の中のかき混ぜ作業、又は、ロボットシステム１によるＩＨクッキングヒータの天板などの拭き掃除作業などのロボットシステム１による作業の操作手順の一例を、図１に示す。
【００５０】
まず、人４がロボットシステム１のロボットアーム５を直接把持又は押すことにより、人４がロボットアーム５に力を加える。そして、人４からロボットアーム５に加えられた力により、ロボットシステム１のロボットアーム５をレール８に沿って移動させることで、器具３の付近までロボットアーム５を誘導する。
【００５１】
次に、人４が、ロボットシステム１のロボットアーム５の手先すなわち先端のハンド３０に、かき混ぜ作業のためのレードルなどの器具９又は拭き掃除作業のための器具４６（第２実施形態の図１４Ａ参照）を取り付ける。
【００５２】
次に、IＨクッキングヒーター又はガスコンロなどの調理装置６の側面などに配置されている、ロボットシステム１の操作盤１３のボタン１３ａを、人４が押すなどしてデータ入力ＩＦ２６を使用することにより、ロボットアーム５が作動し、予め選択された作業、すなわち、かき混ぜ作業又は拭き掃除作業を開始させる。以下、一例として、まず、ロボットアーム５により、かき混ぜ作業を行う場合について説明する。
【００５３】
次に、ロボットアーム５が、ハンド３０で把持したレードル９により鍋３の中でかき混ぜているとき、鍋３の中の具材の状態を人４が確認し、人４がロボットアーム５に力を加えてかき混ぜる動作を行わせることにより、動作記憶部１５により動作情報データベース１７に記憶された情報を利用して、後述する動作選択部２７で最適な、かき混ぜ方法を選択させ、後述する表示部２に表示された補正手順に従って、人４が、ロボットシステム１のロボットアーム５を直接把持又は押すことにより、補正したい方向に力をロボットアーム５に加えて、ロボットシステム１のロボットアーム５の動作を補正する。
【００５４】
レール８は、作業台７の壁面７ａに配置したが、壁面の無いアイランドキッチンの場合は、天井面又はアイランドキッチンの天板側面など作業をするのに適した場所に設置することができる。
【００５５】
さらに、操作盤１３は、調理装置６の側面に固定したが、操作盤１３に代えて、遠隔操作が可能なリモコンでも良い。
【００５６】
図２は、ロボットシステム１を構成する、制御対象であるロボットアーム５と、ロボットアーム５の制御装置７０との詳細構成を示す図である。ロボットアーム５の制御装置７０は、図２に詳細構成を示すように、制御装置本体部１１と、ロボットアーム５の動作を生成する動作生成装置１２と、周辺装置１４とを備えている。
【００５７】
制御装置本体部１１及び動作生成装置１２及び周辺装置１４は、一例として、それぞれ一般的なパーソナルコンピュータにより構成される。
【００５８】
制御装置本体部１１は、制御パラメータ管理部２１と制御部２２とを有するように構成される。制御部２２と制御パラメータ管理部２１との間では、ロボットアーム５の手先位置及び力の情報などが入出力される。
【００５９】
動作生成装置１２は、動作情報データベース１７と動作選択部２７と動作補正部２０と補正方法設定部２３と動作記憶部１５とを有するように構成される。動作補正部２０と制御パラメータ管理部２１との間ではロボットアーム５の手先位置及び姿勢と、人４の加えられた力の情報と、動作指令などが入出力されるとともに、制御パラメータ管理部２１からは、ロボットアーム５の手先位置及び姿勢と、人４の加えられた力の情報となどが動作記憶部１５に出力されるとともに、ロボットアーム５の手先位置及び姿勢と、人４の加えられた力の情報となどが動作選択部２７に出力される。
【００６０】
なお、図２Ａに示す動作補正部２０は、後述するように動作選択部２７で選択された動作情報を動作情報データベース１７から取得する機能を有しているが、これに限られるものではなく、この機能を、動作補正部２０から独立させて第１情報取得部１０１として設けるようにしてもよい。また、図２Ａに示す制御パラメータ管理部２１は、後述するようにロボットアーム５の手先位置及び姿勢と、人４の加えられた力の情報となどの動作情報を取得する機能を有しているが、これに限られるものではなく、この機能を、制御パラメータ管理部２１から独立させて第２情報取得部１０２として設けるようにしてもよい。この場合、第１情報取得部１０１と第２情報取得部１０２とを別々に設ける場合のほか、図２Ｂに示すように、１つの情報取得部１００内に、第１情報取得部１０１と第２情報取得部１０２とを有するようにしてもよい。図２Ｂでは情報取得機能を有している部分のみ図２Ａと異なるだけであり、機能自体は同じであるため、以下の説明では、代表例として、図２Ａに基づいて、説明を行う。
【００６１】
周辺装置１４は、データ入力ＩＦ(インターフェース)２６と入出力ＩＦ(インターフェース)２４とモータドライバ２５と表示部２とを有するように構成される。制御部２２から入出力ＩＦ２４には制御信号などの制御情報が出力される。動作補正部２０から、動作情報データベース１７で記憶された補正パラメータなどの補正情報および動作ＩＤに該当する映像もしくは写真もしくはテキストが表示部２へ出力されて、動作情報で記述されたロボットアーム５の動作の映像もしくは写真もしくはテキストを表示部２で表示する。
【００６２】
入出力ＩＦ２４は、パーソナルコンピュータのＰＣＩバスなどの拡張スロットに接続された、例えばＤ／ＡボードとＡ／Ｄボードとカウンタボードなどを有するように構成される。入出力ＩＦ２４は、ロボットアーム５の各関節部の、後述するエンコーダ４４より出力される各関節角度情報及びハンド３０のエンコーダ６１より出力される角度情報が入力されて制御部２２に入力する一方、入出力ＩＦ２４には、制御部２２から制御信号などの制御情報が入力されるとともに、モータドライバ２５に制御指令値などの制御情報を出力する。モータドライバ２５は、ロボットアーム５の各関節部の、後述するモータ４３及びハンド３０のモータ６２へ制御指令値などの制御情報を出力する。
【００６３】
ロボットアーム５の動作を制御するため、動作生成装置１２と制御装置本体部１１と周辺装置１４のそれぞれの動作が実行されることにより、ロボットアーム５の各関節部の、後述するエンコーダ４４より出力される各関節角度情報が、入出力ＩＦ２４のカウンタボードを通じて制御装置本体部１１に取り込まれ、取り込まれた各関節角度情報に基づき制御装置本体部１１によって各関節部の回転動作での制御指令値が算出される。算出された各制御指令値は、入出力ＩＦ２４のＤ／Ａボードを通じて、ロボットアーム５の各関節部を駆動制御するためのモータドライバ２５に与えられ、モータドライバ２５から送られた各制御指令値に従って、ロボットアーム５の各関節部のモータ４３が駆動される。また、モータドライバ２５により駆動制御されるハンド駆動装置の一例としてハンド駆動用のモータ６２と、ハンド駆動用のモータ６２の回転軸の回転位相角を検出するエンコーダ６１とを、さらに、ハンド３０に備えて、エンコーダ６１で検出された回転角度情報が、入出力ＩＦ２４のカウンタボードを通じて制御装置本体部１１に取り込まれ、取り込まれた回転角度情報を基に、制御装置本体部１１の制御部２２のハンド制御部５４（図１２に図示）によってハンド３０の開閉動作での制御指令値が算出される。算出された制御指令値は、入出力ＩＦ２４のＤ／Ａボードを通じて、ハンド３０の開閉駆動も行うモータドライバ２５に与えられ、モータドライバ２５から送られた各制御指令値に従って、モータ６２の回転を駆動制御して、ハンド駆動用のモータ６２の回転軸を正逆回転させることにより、ハンド３０を開閉させる。
【００６４】
ロボットアーム５は、一例として、多関節ロボットアームであって、６自由度の多リンクマニピュレータであり、前記ハンド３０と、ハンド３０が取り付けられている手首部３１を先端に有する前腕リンク３２と、前腕リンク３２の基端に回転可能に先端が連結される上腕リンク３３と、上腕リンク３３の基端が回転可能に連結支持される台部３４とを備えている。台部３４は、レール８に移動可能に連結されているが、一定位置に固定されていても良い。手首部３１は、第４関節部３８と、第５関節部３９と、第６関節部４０との３つの回転軸を有しており、前腕リンク３２に対するハンド３０の相対的な姿勢（向き）を変化させることができる。すなわち、図２Ａにおいて、第４関節部３８は、手首部３１に対するハンド３０の横軸周りの相対的な姿勢を変化させることができる。第５関節部３９は、手首部３１に対するハンド３０の、第４関節部３８の横軸とは直交する縦軸周りの相対的な姿勢を変化させることができる。第６関節部４０は、手首部３１に対するハンド３０の、第４関節部３８の横軸及び第５関節部３９の縦軸とそれぞれ直交する横軸周りの相対的な姿勢を変化させることができる。前腕リンク３２の他端は、上腕リンク３３の先端に対して第３関節部３７周りに、すなわち、第４関節部３８の横軸と平行な横軸周りに回転可能とする。上腕リンク３３の他端は、台部３４に対して第２関節部３６周りに、すなわち、第４関節部３８の横軸と平行な横軸周りに回転可能とする。さらに、台部３４の上側可動部３４ａは、台部３４の下側固定部３４ｂに対して第１関節部３５周りに、すなわち、第５関節部３９の縦軸と平行な縦軸周りに回転可能としている。
【００６５】
この結果、ロボットアーム５は、合計６個の軸周りに回転可能として前記６自由度の多リンクマニピュレータを構成している。
【００６６】
各軸の回転部分を構成する各関節部には、モータ４３のような回転駆動装置と、モータ４３の回転軸の回転位相角（すなわち関節角）を検出するエンコーダ４４（実際には、ロボットアーム５の各関節部の内部に配設されている）とを備えている。モータ４３（実際には、ロボットアーム５の各関節部の内部に配設されている）は、各関節部を構成する一対の部材（例えば、回動側部材と、該回動側部材を支持する支持側部材）のうちの一方の部材に備えられる、後述するモータドライバ２５により駆動制御される。各関節部の一方の部材に備えられたモータ４３の回転軸が、各関節部の他方の部材に連結されて、前記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
【００６７】
４１は台部３４の下側固定部３４ｂに対して相対的な位置関係が固定された絶対座標系であり、４２はハンド３０に対して相対的な位置関係が固定された手先座標系である。絶対座標系４１から見た手先座標系４２の原点位置Ｏｅ（ｘ，ｙ，ｚ）をロボットアーム５の手先位置、絶対座標系４１から見た手先座標系４２の姿勢をロール角とピッチ角とヨー角で表現した（φ，θ，ψ）をロボットアーム５の手先姿勢とし、手先位置及び姿勢ベクトルをベクトルｒ＝［ｘ，ｙ，ｚ，φ，θ，ψ］Ｔと定義する。よって、一例として、絶対座標系４１のｚ軸に対して第１関節部３５の縦軸が平行であり、ｘ軸に対して第２関節部３６の横軸が平行に位置可能とするのが好ましい。また、手先座標系４２のｘ軸に対して第６関節部４０の横軸が平行に位置可能であり、ｙ軸に対して第４関節部３８の横軸が平行に位置可能であり、ｚ軸に対して第５関節部３９の縦軸が平行に位置可能とするのが好ましい。なお、手先座標系４２のｘ軸に対しての回転角をヨー角ψとし、ｙ軸に対しての回転角をピッチ角θとし、ｚ軸に対しての回転角をロール角φとする。ロボットアーム５の手先位置と姿勢を制御する場合には、手先位置及び姿勢ベクトルｒを、後述する目標軌道生成部５５で生成された手先位置及び姿勢目標ベクトルｒｄに追従させることになる。
【００６８】
２６はデータ入力ＩＦ（インターフェース）であり、人４がキーボード又はマウス又はマイクなどの入力装置を使用して、後述する動作情報又は補正するパラメータの種別を入力したり又は変更したりするための補正方法設定情報を補正方法設定部２３に入力するインターフェースである。また、データ入力ＩＦ２６は、図１の操作盤１３のボタン１３ａなどの入力装置を使用して、人４から補正方法設定部２３に対して制御動作開始及び終了の指令を受けるようにしてもよい。ボタン１３ａとしては、例えばトグルスイッチとして１つのボタンで制御動作開始及び制御動作終了をそれぞれ入力可能としてもよいし、制御動作開始ボタンと制御動作終了ボタンと別々に設けてもよい。
【００６９】
２は表示部であり、例えばロボットアーム５又は作業台７の側面に設置されたディスプレイ装置で、後述する動作情報又は補正するパラメータの種別などを表示する。
【００７０】
動作情報データベース１７は、ロボットアーム５の、ある時間における手先位置及び姿勢などの動作に関する情報（動作情報）が動作記憶部１５により記憶されている。よって、動作情報データベース１７は、動作選択部２７との間で動作情報が入出力されるとともに、動作補正部２０との間で動作情報が入出力され、動作記憶部１５により種々の動作情報が入力されて記憶される。
【００７１】
次に、動作情報データベース１７の詳細について説明する。
【００７２】
動作情報データベース１７は、例えば、図３に示したロボットアーム５の動作に関する情報が動作記憶部１５により記憶されている。動作に関する情報の具体的な例としては、作業を識別する作業ＩＤ番号（図３の「作業ＩＤ」の欄参照）と、その作業の中の個々の動作を識別する動作ＩＤ番号（図３の「動作ＩＤ」の欄参照）と、その動作におけるロボットアーム５の手先位置及び姿勢に関する情報（図３の「位置姿勢」の欄参照）と、ロボットアーム５の手先位置及び姿勢のパラメータのうちのいずれの情報が有効かを示すフラグに関する情報（図３の「フラグ」の欄参照）と、ハンド３０が開閉しているか否かのハンド開閉状態を表す情報（図３の「ハンド」の欄参照）と、各動作が作用する時間に関する情報（図３の「時間」の欄参照）と、後述する動作補正部２０で動作情報データベース１７の動作情報を補正する際の補正すべきパラメータの種別に関する情報（図３の「補正パラメータ」の欄参照）と、後述する動作選択部２７で選択されたロボットアーム５の動作が現在実行中かどうかを示す進捗情報（図３の「進捗情報」の欄参照）とを含むように構成されている。ここで、作業ＩＤは、作業に関する情報を識別するために用いられる符号であり、動作ＩＤは、動作に関する情報を識別するために用いられる符号である。
【００７３】
図３の動作情報データベース１７の「位置姿勢」すなわち手先位置及び姿勢に関する情報は、前述したロボットアーム５の手先位置及び姿勢を表し、原点位置Ｏｅの座標及び姿勢から、（ｘ，ｙ，ｚ，φ，θ，ψ）と表す。
【００７４】
図３の動作情報データベース１７の「フラグ」に関する情報は、各「動作ＩＤ」が示す動作情報に基づくロボットアーム５の手先位置及び姿勢のうちのいずれの情報が有効かを示す値であり、具体的には、図４で示した３２ビットの数値で表す。図４において、それぞれのビットで、手先位置及び姿勢のそれぞれの値が有効の場合は「１」とし、手先位置及び姿勢のそれぞれの値が無効の場合は「０」とする。例えば、０ビット目においては、ロボットアーム５の手先位置のｘ座標の値が有効の場合は「１」とし、手先位置のｘ座標の値が無効の場合は「０」とし、１ビット目においては、ロボットアーム５の手先位置のｙ座標の値が有効の場合は「１」とし、手先位置のｙ座標の値が無効の場合は「０」とし、２ビット目においては、ロボットアーム５の手先位置のｚ座標の値が有効の場合は「１」とし、手先位置のｚ座標の値が無効の場合は「０」とし、順次、３，４，５ビット目においては、姿勢のφ、θ、ψの有効性をそれぞれ表す（すなわち、有効の場合は「１」とし、無効の場合は「０」とする）。また、フラグに関する情報は、将来の拡張用に多め（３２ビット）に用意しているため、この例では、７ビット目から３１ビット目は使用しないので、「０」を入れておく。しかしながら、フラグとしては、６ビットのみ格納できる変数としても良い。図４では、０ビット目から２ビット目が「１」となっているので、動作情報のうち、ｘ、ｙ、ｚ情報のみが有効であることを示し、３ビット目から５ビット目が「０」となっているので、動作情報のうち、φ、θ、ψの値に、どのような値が記憶されていても無効であるとする。
【００７５】
図３の動作情報データベース１７のハンド３０が開閉しているか否かの「ハンド」に関する情報は、ロボットアーム５の動作中のハンド３０の開閉の有無を表すフラグとし、ハンド３０が開いている場合は「０」と記載し、ハンド３０が閉じている場合は「１」を記載する。
【００７６】
図３の動作情報データベース１７の「時間」に関する情報は、ロボットアーム５の各動作を実行するための時間であり、この「動作ＩＤ」に記憶された動作を、ここでの「時間」に関する情報として記憶された時間をかけて行なうことを表す。すなわち、絶対時刻ではなく、前の動作からの相対時間を表す。すなわち、「動作ＩＤ」が示す位置及び姿勢に、ロボットアーム５のハンド３０が移動するまでの時間を表す。
【００７７】
図３の動作情報データベース１７の「補正パラメータフラグ」に関する情報は、後述する動作補正部２０で、どのパラメータを補正するかを表す情報である。具体的には、図５に示した３２ビットの数値で表す。図５において、それぞれのビットで、手先位置及び姿勢のそれぞれの値の補正が可能な場合は「１」とし、手先位置及び姿勢のそれぞれの値の補正が不可能な場合は「０」とする。例えば、０ビット目においては、手先位置のｘ座標の値の補正が可能な場合は「１」とし、手先位置のｘ座標の値の補正が不可能な場合は「０」とし、１ビット目においては、手先位置のｙ座標の値の補正が可能な場合は「１」とし、手先位置のｙ座標の値の補正が不可能な場合は「０」とし、２ビット目においては、手先位置のｚ座標の値の補正が可能な場合は「１」とし、手先位置のｚ座標の値の補正が不可能な場合は「０」とし、順次３，４，５ビット目は、姿勢のφ、θ、ψの補正可能性をそれぞれ表す（すなわち、補正が可能な場合は「１」とし、補正が不可能な場合は「０」とする）。補正パラメータフラグは、動作情報データベース１７の「フラグ」が有効であるパラメータのみ有効であり、「フラグ」で無効すなわち「０」が設定されているパラメータについて、補正パラメータフラグに「１」が設定されている場合は、「０」が設定されているとみなす。また、補正パラメータフラグは、将来の拡張用に多め（３２ビット）に用意しているため、この例では、７ビット目から３１ビット目は使用しないので、「０」を入れておくが、６ビットのみ格納できる変数としても良い。
【００７８】
「進捗情報」は、現在実行中のロボットアーム５の動作であるかどうかどうかを示す情報のフラグで、実行中の動作の場合は「１」を、実行中の動作でない場合は「０」を動作記憶部１５により動作情報データベース１７に記憶する。具体的には、人４は、選択したいロボットアーム５の動作をロボットアーム５に行わせて、動作記憶部１５により動作情報データベース１７に記憶された情報に基づいて、動作選択部２７によって、作業したい作業を選択する。そして、選択した作業が開始されると、その作業の各動作のうち、現在実行中の動作について「１」を動作記憶部１５により動作情報データベース１７に記憶し、動作していない動作について「０」を動作記憶部１５により動作情報データベース１７に記憶する。
【００７９】
図２Ａの２７は動作選択部であり、人がロボットアーム５に力を加えた際のロボットアーム５の手先位置とそのときの時刻とに基づいて、動作制御データベース１７に記憶された動作のうちのロボットアーム５の手先位置とそのときの時刻が一致する動作か又は類似する動作（完全には一致していないが、両者の差が許容範囲内の動作）を抽出することにより、人４がロボットアーム５に行わせようとする動作を動作制御データベース１７の動作から選択するものである。このため、動作選択部２７には、制御パラメータ管理部２１から、ロボットアーム５の手先位置及び姿勢と、人４の加えられた力の情報となどが入力されるとともに、動作制御データベース１７との間でロボットアーム５の手先位置及び姿勢の情報などを入出力する。動作情報データベース１７の作業一覧から、前記選択された動作を含む作業を動作選択部２７により選択して、選択された作業のうち、現在、実行している動作の「動作ＩＤ」に関連する「進捗情報」に「１」を動作選択部２７により設定し、その他の動作の「動作ＩＤ」については「０」を動作選択部２７により設定する。具体的には、人４が動作させたい動きを、ロボットアーム５を直接把持してロボットアーム５を動作させることで実行させ、そのとき、図６に示すように、人４がロボットアーム５に力を加えた際のロボットアーム５の手先位置とそのときの時刻を対応付けて動作記憶部１５により動作情報データベース１７に記憶する。次に、動作情報データベース１７に予め記憶されかつ全てのロボットアーム５の動作に関するロボットアーム５の手先位置及び姿勢の情報と、人４が力を加えた際に図６に示すように動作情報データベース１７に記憶したロボットアーム５の手先位置及び姿勢の情報とをそれぞれ時系列に動作選択部２７により比較し、人４が力を加えた際のロボットアーム５の手先位置及び姿勢の情報が、動作情報データベース１７に予め記憶されたロボットアーム５の、ある動作に関するロボットアーム５の手先位置及び姿勢の情報との差が予め定められた誤差の範囲内である場合には、両者は一致したと動作選択部２７で判断し、一致したと判断された動作で構成される作業を、人４がロボットアーム５に動作させたい作業であるとして、動作選択部２７により選択する。これに対して、一致するものが無いと動作選択部２７で判断すれば、デフォルトの作業（例えば、「作業ＩＤ」の番号が「１」の作業）を動作選択部２７により選択する。動作選択部２７で選択された「作業ＩＤ」の作業の全ての動作は、「動作ＩＤ」の番号の小さいものから、順番に実行され、一番最後の動作まで実行されると、その「作業ＩＤ」の先頭の「動作ＩＤ」の動作に戻り、一連の動作を繰り返し実行する。
【００８０】
動作情報データベース１７の位置と姿勢と時間の情報は、例えば、図７に示すように、ロボットアーム５を人４が直接把持して、後述するインピーダンス制御モードにて、ロボットアーム５を人４により移動させて、その移動の間に、ある一定時間毎（例えば０．２msec毎）にロボットアーム５の手先位置及び姿勢の情報を取得し、時間と共に、動作記憶部１５により動作情報データベース１７に記憶することにより作成する。
【００８１】
２３は補正方法設定部であり、後述する動作補正部２０によるロボットアーム５の動作情報の補正の方法を設定する。補正方法設定部２３には、データ入力ＩＦ２６から補正方法の設定情報などが入力され、動作補正部２０と補正方法設定部２３との間では、補正有無の情報（例えば、補正有無のフラグ）が入力又は出力される。動作補正部２０から、補正パラメータなどの動作情報に関する補正情報などを表示部２に出力する。具体的には、ロボットアーム５に人４の力がかかった場合に、ロボットアーム５の動作を補正するか補正しないかの補正有無の情報（例えば、補正有無のフラグ）をデータ入力ＩＦ２６を介して補正方法設定部２３により設定する。すなわち、補正する場合は補正有無のフラグを「１」に、補正しない場合は補正有無のフラグを「０」に補正方法設定部２３により設定する。この設定により、ロボットアーム５が動作中に、誤って人４がロボットアーム５に力を加えてしまった場合に、補正有無のフラグを「０」に補正方法設定部２３により設定しておくと、後述する位置制御モードでロボットアーム５を動作させるとき、ロボットアーム５の動作を誤って補正せずに、ロボットアーム５の動作を続けることができる。
【００８２】
なお、それぞれの設定は、データ入力ＩＦ２６により人４が補正有無のフラグのような補正有無の情報などの設定情報を直接入力しても良いし、ロボットシステム出荷時に、製造メーカなどが補正有無のフラグのような補正有無の情報などを予め設定しておいても良い。
【００８３】
２０は動作補正部であり、動作情報データベース１７の位置と姿勢と時間の情報にて、後述する位置制御モードで、ロボットアーム５の動作中に、人４がロボットアーム５に力を加えることで、動作情報データベース１７のロボットアーム５の動作情報を動作補正部２０により補正する機能である。
【００８４】
以下、動作補正部２０の機能について説明する。
【００８５】
人４は、前記したように、動作選択部２７により、動作情報データベース１７の「作業ＩＤ」の中からロボットアーム５に実行させたい作業を選択して、動作補正部２０により、動作開始の指示を行う。すなわち、動作補正部２０は、動作情報データベース１７の中から選択された「作業ＩＤ」の作業の動作情報（具体的には、位置の情報と姿勢の情報と時間の情報）を、後述する位置制御モードで動作するように、後述する制御パラメータ管理部２１へ指令を出す。制御パラメータ管理部２１は、動作補正部２０からの指令を受けて、位置制御モードで、かき混ぜ動作をするように制御部２２へ指令を出すと、制御部２２の制御の下に、図８の（ａ）に示すように、ロボットアーム５は、かき混ぜ動作を開始する。
【００８６】
ロボットアーム５を使用して鍋３の中の上側の部分のかき混ぜ動作を行っているとき、人４が鍋３の中の具材の状況などを確認して、図８の（ｃ）に示すように、もう少し鍋３の底をこするように、鍋３の中の底側の部分をかき混ぜたいとき、ロボットアーム５の動作の補正を行なう場合を例にとって、以下に、補正動作について説明する。
【００８７】
人４は、キーボードなどを使用して、補正有りの情報を入力することにより、データ入力ＩＦ２６を介して補正方法設定部２３にて、動作情報データベース１７における、当該動作に関する補正有無のフラグを「０」から「１」に変更する。
【００８８】
次いで、動作補正部２０は、補正方法設定部２３から出力された補正有無のフラグ「１」の情報を受けて、制御パラメータ管理部２１へ、後述するハイブリッドインピーダンス制御モード（位置制御モードで移動しながら、人の力を力検出部５３で検出した方向にインピーダンス制御で移動させるモード）で動作するように指令を出す。制御部２２は、制御パラメータ管理部２１からのハイブリッドインピーダンス制御モードの動作指令を受けて、入出力ＩＦ２４を介してモータドライバ２５からモータ４３及び６２に制御指令値が入力されて、ロボットアーム５がハイブリッドインピーダンス制御モードでの動作を開始する。
【００８９】
次いで、ロボットアーム５の動作を補正するため、図８の（ｂ）に示すように、人４がロボットアーム５を直接把持して、ロボットアーム５のハンド３０で把持したレードル９で鍋３の中の上側の部分をかき混ぜる動作ではなく、レードル９で鍋３の中の底側の部分をかき混ぜるように下方向に力を人４がロボットアーム５に加えると、ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を動作させながら、人４の力を、後述する力検出部５３により検出して、人４がロボットアーム５に力を加えた方向にロボットアーム５をｚ軸方向にインピーダンス制御で移動させて、図８の（ｃ）のように、かき混ぜ動作を補正することができる。
【００９０】
なお、この例では、ｚ軸の方向にのみロボットアーム５の動作を補正したい場合であるので、動作情報データベース１７に記憶されかつ図５に示された補正パラメータフラグの２ビット目のみを「１」にするような指令を、データ入力ＩＦ２６及び補正方法設定部２３を介して動作補正部２０から制御パラメータ管理部２１へ出すことで、ｚ軸方向にしか、インピーダンス制御でロボットアーム５が動作しないように設定することができる。
【００９１】
上述のように、人４は、ロボットアーム５を把持して下方向へ力をロボットアーム５に加えてロボットアーム５をΔｚ分だけｚ軸方向に移動させた場合に、Δｚの値が、ｚ軸方向の補正値として、制御部２２と制御パラメータ管理部２１とを経由して、動作補正部２０に送信される。動作補正部２０では、補正方法設定部２３から動作補正部２０に入力された補正有無のフラグが「１」の場合は、前記選択された「作業ＩＤ」の作業の動作情報の全てのｚ座標の値から、Δｚを減算し、補正した動作情報を、動作補正部２０から制御パラメータ管理部２１へ送信する。制御パラメータ管理部２１は、Δｚ分補正した座標で動作するように制御部２２へ指示する。これにより、図８の（ｃ）のような鍋３の底かき混ぜ動作に補正される。次に、Δｚ分だけ減算した動作情報を、動作補正部２０から、後述する動作記憶部１５に送られ、動作記憶部１５で動作情報データベース１７に記憶する。
【００９２】
以上により、動作補正部２０は、動作情報データベース１７の位置と姿勢と時間の情報により、位置制御モードで動作している状態で、ハイブリッドインピーダンス制御モードに切り替えて、人４がロボットアーム５に力を加えることで、予め生成された位置及び姿勢を方向別（例えば、互いに直交する３つの方向（例えば、ｘ，ｙ，ｚ軸方向）別）に補正することができるようになる。
【００９３】
また、表示部２には、図９のＡ及びＢに示すように、表示部２を左右２つの画面で表示し、左側の画面（図９のＡ参照）に、動作情報で記述されたロボットアーム５の動作の映像若しくは写真若しくはテキストで表示される。さらに、右側の画面（図９のＢ参照）には、どのパラメータを補正できるかを映像若しくは写真若しくはテキストで表示する。この例では、補正パラメータフラグにて、ロボットアーム５がｚ軸方向にしか動作しないように設定しているので、上から手で力をロボットアーム５に加えてロボットアーム５の動作を補正している映像若しくは写真を表示する。また、表示部２は、動作選択部２７で作業を切り替えた際に、切り替えた作業に応じて、表示する内容を切り替える。なお、この例では、映像若しくは写真若しくはテキストを表示するようにしているが、動作を説明する音声などでも良い。
【００９４】
１５は動作記憶部で、補正した動作情報を動作情報データベース１７に記憶する。動作記憶部１５には、動作補正部２０から補正した動作情報が入力されるとともに、制御パラメータ管理部２１から、ロボットアーム５の手先位置及び姿勢と人４の加えた力の情報とが入力される。前述したとおり、動作補正部２０では、人４がロボットアーム５を把持してロボットアーム５に力を加えて、ロボットアーム５の動作を補正するが、人４がロボットアーム５に力を加え始めてから、ロボットアーム５の動作が安定するまで、ある一定時間がかかる。そのため、動作記憶部１５では、人４がロボットアーム５に力を加え始めて、ある一定時間（例えば、３秒後）を経過した後（これを「記憶開始時間」と呼ぶ。）から、補正方法設定部２３から動作記憶部１５に入力される補正有無のフラグが「０」に切り替わるまで、若しくは、人４がロボットアーム５に加えておりかつ力検出部５３で検出される力の値が閾値以下になる時点までのロボットアーム５の動作を記憶する。なお、記憶開始時間は、定数値でも良いし、又は、記憶開始時間は、図１０に示すように、縦軸を人４がロボットアーム５に加えた力とするとともに横軸を時間としたときのグラフにおいて、人４がロボットアーム５に加えている力が一定になる時間としても良い。
【００９５】
次に、制御パラメータ管理部２１の詳細について説明する。
【００９６】
制御パラメータ管理部２１は、動作補正部２０の指示に基づいて、ロボットアーム５の動作モード、すなわち、位置制御モードとインピーダンス制御モードとハイブリッドインピーダンス制御モードとの３つのモードの間でモードを切り替える設定、及び、インピーダンス制御モード時及びハイブリッドインピーダンス制御モード時の機械インピーダンス設定値の設定、及び、後述するハイブリッドインピーダンス計算部５１で出力する手先位置及び姿勢目標補正出力ｒｄΔの設定、及び、目標軌道生成部５５への動作情報の設定を行う。さらに、制御部２２から制御パラメータ管理部２１に入力されたロボットアーム５の手先位置及び力の情報などを、制御パラメータ管理部２１から動作補正部２０へ通知する。
【００９７】
位置制御モードは、後述する目標軌道生成部５５の手先位置及び姿勢目標ベクトル指令に基づいて、ロボットアーム５が作動するモードで、具体的には、かき混ぜ作業又は拭き掃除作業などの作業時にロボットアーム５が動作するモードである。
【００９８】
インピーダンス制御モードは、力検出部５３で検出されかつ人４などからロボットアーム５に加わる力に応じて、ロボットアーム５が作動するモードで、例えば、図７に示すように、人４がロボットアーム５を直接持って、人４がロボットアーム５を作業場所まで誘導する場合にロボットアーム５が動作するモードである。
【００９９】
ハイブリッドインピーダンス制御モードは、ロボットアーム５が位置制御モードで動作している最中に、人４などからロボットアーム５に加わる力が力検出部５３で検出され、力検出部５３で検出された力に応じてロボットアーム５が作動するモードであり、例えば、かき混ぜなどの作業中に、人４がロボットアーム５を直接持って、ロボットアーム５の動作を補正する際にロボットアーム５が動作するモードである。
【０１００】
例えば、ロボットアーム５が、図８の（ａ）に示す、かき混ぜ作業を行っている場合に、人４が鍋３の中の具材の状況を確認して、鍋３の中の底側の部分を、かき混ぜるようにロボットアーム５の動作を人４が補正したい場合に、動作補正部２０から、制御パラメータ管理部２１が、位置制御モードからハイブリッドインピーダンス制御モードに切り替える指令を制御部２２へ出力する。
【０１０１】
その結果、位置制御モードで、かき混ぜ作業中に、図８の（ｂ）に示すように、人４がロボットアーム５を把持して、ハイブリッドインピーダンス制御モードで下方向に力をロボットアーム５に加えることで、位置制御モードで、鍋３の中をかき混ぜながら、図８の（ｃ）のように、鍋３の中の底側の部分を、かき混ぜる動作に補正することができるようになる。
【０１０２】
さらに、人４が、ハイブリッドインピーダンス制御モードでロボットアーム５が動作中に、補正するパラメータに応じて、機械インピーダンスパラメータ又はインピーダンス計算部５１で出力する手先位置及び姿勢目標補正出力ｒｄΔの設定を変更する。
【０１０３】
機械インピーダンス設定値の設定パラメータとしては、慣性Ｍと粘性Ｄと剛性Ｋとがある。機械インピーダンス設定値の各パラメータの設定は、補正値を使って、以下の評価式に基づいて行う。
【０１０４】
【数１】
2010137357.tif 000003
【０１０５】
【数２】
2010137357.tif 000004
【０１０６】
【数３】
2010137357.tif 000005
【０１０７】
前記式（３）〜式（５）中のＫＭ、ＫＤ、ＫＫはそれぞれゲインであり、それぞれある定数値である。
【０１０８】
制御パラメータ管理部２１は、前記式（３）〜式（５）に基づき計算した機械インピーダンスパラメータの慣性Ｍと粘性Ｄと剛性Ｋとを制御部２２へ出力する。
【０１０９】
前記式（３）〜式（５）により、例えば、図８の（ｂ）のように、人４が、ロボットアーム５のハンド３０で把持されたレードル９を使用して鍋３の中の上側の部分をかき混ぜている動作に対して、鍋３の中の底側の部分をかき混ぜるようにロボットアーム５の動作を補正させたい場合に、ロボットアーム５のｚ軸以外の軸の位置成分及び姿勢成分が簡単に動くと、ロボットアーム５の動作の補正作業がやりにくくなる。そこで、制御パラメータ管理部２１により、ロボットアーム５のｚ軸以外の軸の位置成分及び姿勢成分についてのみ、上述の補正値を高く（具体的には、例えば上述の補正値の約１０倍に）設定することで、ロボットアーム５の粘性Ｄ及び剛性Ｋが大きくなるように設定されることになり、ロボットアーム５の動きに抵抗感又は硬さが生じ、ロボットアーム５が動きにくくなる。
【０１１０】
又は、別の方法として、インピーダンス計算部５１から出力される手先位置及び姿勢目標補正出力ｒｄΔの各成分のうち、ｚ軸以外の値を全て０にする方法がある。これによって、ｚ軸以外は、人４の力で移動できなくなるため、誤操作を防ぐことができる。
【０１１１】
さらに、上述したように、制御パラメータ管理部２１から、動作選択部２７と動作記憶部１５と動作補正部２０とに、ロボットアーム５の手先位置及び姿勢と、人４の加えた力の情報とを通知する必要がある。そのため、制御部２２から制御パラメータ管理部２１にロボットアーム５の手先位置及び力の情報を受けると、制御パラメータ管理部２１は、動作選択部２７と動作記憶部１５と動作補正部２０とへ、それらの情報の通知を行う。また、動作補正部２０から制御パラメータ管理部２１に入力された、位置及び姿勢と時間などの動作情報を、制御パラメータ管理部２１から制御部２２へ通知する。
【０１１２】
以上の動作補正部２０と動作選択部２７と補正方法設定部２３と動作記憶部１５と動作情報データベース１７と制御パラメータ管理部２１の動作ステップについて、図１１のフローチャートに基づいて説明する。
【０１１３】
まず、ロボットアーム５を人４が実際に把持してロボットアーム５を移動させることで、人４が、かき混ぜ作業の動作をロボットアーム５に行わせる。すると、そのときのロボットアーム５の手先位置及び姿勢の情報が動作記憶部１５により動作情報データベース１７に記憶される。次いで、動作選択部２７が、動作情報データベース１７に今回記憶されたロボットアーム５の手先位置及び姿勢の情報と、動作情報データベース１７に予め記憶されかつ予め記憶されている作業のそれぞれの動作のロボットアーム５の手先位置及び姿勢の情報とを比較して、一致するか、許容範囲内で類似するロボットアーム５の手先位置及び姿勢の情報に関連する動作を選択する。そして、その動作を含まれている作業を、動作情報データベース１７に予め記憶された作業の一覧から動作選択部２７により選択し、動作情報データベース１７の進捗情報に現在の作業を動作選択部２７により設定する（ステップＳ４０）。前記作業の一覧中には、例えば、複数のかき混ぜ作業（具体的には、早くかき混ぜる作業、ゆっくりかき混ぜる作業、同じ回転方向にかき混ぜる作業、正逆の両方の回転方向にかき混ぜる作業など）がリストされており、その中から、一致する作業を選択する場合のほか、前記作業の一覧中には、異なる種類の作業、例えば、かき混ぜ作業と拭き掃除作業がリストされており、その中から、一致する作業を選択する場合が考えられる。
【０１１４】
次いで、動作情報データベース１７の進捗情報に現在の作業が設定されると、動作補正部２０は、制御パラメータ管理部２１へ、インピーダンス制御モードでロボットアーム５が動作するように動作指令を出してインピーダンス制御モードに設定し、人４はロボットアーム５を鍋３の付近まで把持しながら誘導し（ステップＳ４１）、データ入力ＩＦ２６にて、かき混ぜ作業開始の指令を補正方法設定部２３に対して行う。補正方法設定部２３から、制御パラメータ管理部２１を経由して、制御部２２へ前記指令をさらに送る。
【０１１５】
次いで、前記補正方法設定部２３から制御パラメータ管理部２１に入力された、かき混ぜ作業開始の指令が制御部２２に通知されると、位置制御モードでの、かき混ぜ動作を制御部２２により開始する（ステップＳ４２）。
【０１１６】
次いで、補正方法を補正方法設定部２３で設定する。具体的には、データ入力ＩＦ２６及び補正方法設定部２３を介して、動作情報データベース１７において、補正有無のフラグの情報を「０」から「１」に設定して、補正を開始させるなどの設定を補正方法設定部２３で行う（ステップＳ４３）。補正有りと設定された場合（補正有無のフラグが「０」から「１」に設定された場合）に、動作補正部２０は、補正方法設定部２３から出力された補正有無のフラグ「１」の情報を受けて、制御パラメータ管理部２１へ、ハイブリッドインピーダンス制御モードで動作するように指令を出して、ハイブリッドインピーダンス制御モードに設定する（ステップＳ４４）。制御部２２は、制御パラメータ管理部２１からのハイブリッドインピーダンス制御モードの動作指令を受けて、入出力ＩＦ２４を介してモータドライバ２５からモータ４３及び６２に制御指令値が入力されて、ロボットアーム５がハイブリッドインピーダンス制御モードでの動作を開始する。なお、補正無しと設定された場合（補正有無のフラグが「０」のままで変更されない場合、又は、補正有無のフラグが「１」から「０」に設定された場合）には、動作補正部２０は、制御パラメータ管理部２１へ位置制御モードで動作するように指令を出して、位置制御モードに設定して、以後、ロボットアーム５を補正無しでかつ位置制御モードで動作させる。
【０１１７】
次いで、補正パラメータに従って、ハイブリッドインピーダンス制御モード時のインピーダンス制御モードでの動作を拘束するために、インピーダンスパラメータの設定又はインピーダンス計算部５１で出力する手先位置及び姿勢目標補正出力ｒｄΔの設定を行う（ステップＳ４５）。前記インピーダンスパラメータの設定は、前記したように、データ入力ＩＦ２６及び補正方法設定部２３を介して動作補正部２０から制御パラメータ管理部２１へ、補正したい補正パラメータフラグを「１」にするような指令を入力する。また、インピーダンス計算部５１で出力する手先位置及び姿勢目標補正出力ｒｄΔの設定を行うときは、後述するように、制御パラメータ管理部２１からインピーダンス計算部５１に入力された、補正するパラメータに応じて、インピーダンス計算部５１から位置誤差計算部８０に出力する手先位置及び姿勢目標補正出力ｒｄΔの設定を変更する。
【０１１８】
次いで、人４がロボットアーム５を把持して、補正したい方向に力を人４がロボットアーム５に加えることで、動作補正部２０が、動作情報データベース１７の動作情報を補正する（ステップＳ４６）。
【０１１９】
次いで、動作補正部２０により補正された動作情報は、動作記憶部１５により、動作情報データベース１７に記憶される（ステップＳ４７）。
【０１２０】
図１２は、位置制御モードとインピーダンス制御モードとハイブリッドインピーダンス制御モード時との制御部２２のブロック図を示す。制御部２２は、制御パラメータ管理部２１で設定した慣性Ｍと粘性Ｄと剛性Ｋとの設定値に基づき設定されたロボットアーム５の機械インピーダンス設定値に、ロボットアーム５の機械インピーダンスの値を制御する。
【０１２１】
次に、制御部２２の詳細について、図１２により説明する。ロボットアーム５からは、それぞれの関節部のエンコーダ４４により計測された関節角の現在値（関節角度ベクトル）ベクトルｑ＝［ｑ１，ｑ２，ｑ３，ｑ４，ｑ５，ｑ６］Ｔが出力され、入出力ＩＦ２４により制御部２２に取り込まれる。ただし、ｑ１，ｑ２，ｑ３，ｑ４，ｑ５，ｑ６は、それぞれ、第１関節部３５、第２関節部３６、第３関節部３７、第４関節部３８、第５関節部３９、第６関節部４０の関節角度である。
【０１２２】
５５は目標軌道生成部であり、位置制御モード及びハイブリッドインピーダンス制御モード時は、動作補正部２０で生成されかつ制御パラメータ管理部２１を介して目標軌道生成部５５に入力された動作情報から、目標とする手先位置及び姿勢目標ベクトルｒｄを目標軌道生成部５５により生成する。具体的には、動作補正部２０から制御パラメータ管理部２１を介しての動作情報が目標軌道生成部５５に入力されると、目標とするロボットアーム５の動作を実現するための手先位置及び姿勢目標ベクトルｒｄが、目標軌道生成部５５から位置誤差計算部８０に出力される。目標とするロボットアーム５の動作は、目的とする作業に応じて動作補正部２０からそれぞれの時間（ｔ＝０、ｔ＝ｔ１、ｔ＝ｔ２、・・・）でのポイントごとの位置及び姿勢（ｒｄ０、ｒｄ１、ｒｄ２、・・・）が与えられており、目標軌道生成部５５は、多項式補間を使用し、各ポイント間の軌道を補間し、手先位置及び姿勢目標ベクトルｒｄを生成する。インピーダンス制御モード時には、インピーダンス制御モードに切り替え時のロボットアーム５の手先位置を、目標とする手先位置及び姿勢目標ベクトルｒｄとし出力する。さらに、動作情報データベース１７の「ハンド」の開閉フラグにより、後述するハンド制御部５４へ、ハンド３０の開閉指令を出す。
【０１２３】
５４はハンド制御部５４であり、目標軌道生成部５５から入力した開閉フラグにより、ハンド３０を開閉するよう、入出力ＩＦ２４を介してロボットアーム５へ指令を出す。
【０１２４】
５３は力検出部であり、人４等とロボットアーム５の接触によってロボットアーム５に加わる外力を検出する。力検出部５３には、モータドライバ２７の電流センサーで計測された、ロボットアーム５の各関節部を駆動するモータ４３を流れる電流値ｉ＝［ｉ１，ｉ２，ｉ３，ｉ４，ｉ５，ｉ６］Ｔが入出力ＩＦ２４を介して取り込まれ、また、関節角の現在値ｑが入出力ＩＦ２４を介して取り込まれるとともに、後述する近似逆運動学計算部５７からの関節角度誤差補償出力ｕｑｅが取り込まれる。力検出部５３は、オブザーバーとして機能し、以上の電流値ｉと関節角の現在値ｑと関節角度誤差補償出力ｕｑｅとより、ロボットアーム５に加わる外力により各関節部に発生するトルクτｅＴを算出する。そして、Ｆｅｘｔ＝Ｊｖ（ｑ）−Ｔτｅｘｔ−［０，０，ｍｇ］Ｔによりロボットアーム５の手先における等価手先外力Ｆｅｘｔに換算して、この等価手先外力Ｆｅｘｔをインピーダンス計算部５１に出力する。ここで、Ｊｖ（ｑ）は、
【０１２５】
【数４】
2010137357.tif 000006
を満たすヤコビ行列である。ただし、ただし、ｖ＝［ｖｘ，ｖｙ，ｖｚ，ωｘ，ωｙ，ωｚ］Ｔであり、（ｖｘ，ｖｙ，ｖｚ）は手先座標系４２でのロボットアーム５の手先の並進速度、（ωｘ，ωｙ，ωｚ）は手先座標系４２でのロボットアーム５の手先の角速度である。また、ｍはハンド３０で把持している把持物体の重さであり、ｇは重力加速度である。把持物体の重さｍの値は、その物体を把持する前に、人４が入出力ＩＦ２４を介して力検出部５３に入力することができる。また、ロボットアーム５のハンド３０により物体の把持を実際に行い、そのときの力検出部５３の等価手先外力Ｆｅｘｔの推定結果より把持物体の重さｍの値を算出する事も可能である。
【０１２６】
インピーダンス計算部５１は、ロボットアーム５に機械インピーダンス設定値への前記ロボットアーム５の機械インピーダンスの値の制御を実現する機能を果たす部分であり、制御パラメータ管理部２１から位置制御モード又はインピーダンス制御モード又はハイブリッドインピーダンス制御モードの情報が入力されるとともに、目標軌道生成部５５の出力する手先位置及び姿勢目標ベクトルｒｄと、制御パラメータ管理部２１で予め設定されたインピーダンスパラメータである慣性Ｍと粘性Ｄと剛性Ｋと、関節角の現在値ｑと、力検出部５３が検出した外力Ｆｅｘｔとが入力される。制御パラメータ管理部２１で位置制御モードに切り替えられた際には、インピーダンス計算部５１から０を出力する。一方、制御パラメータ管理部２１でインピーダンス制御モード又はハイブリッドインピーダンス制御モードに切り替えられた際には、制御パラメータ管理部２１で予め設定されたインピーダンスパラメータである慣性Ｍと粘性Ｄと剛性Ｋと関節角の現在値ｑと、力検出部５３が検出した外力Ｆｅｘｔとより、ロボットアーム５に機械インピーダンス設定値への前記ロボットアーム５の機械インピーダンスの値の制御を実現するための手先位置及び姿勢目標補正出力ｒｄΔを以下の式（６）によりインピーダンス計算部５１で計算して、計算して求められた手先位置及び姿勢目標補正出力ｒｄΔを位置誤差計算部８０に出力する。手先位置及び姿勢目標補正出力ｒｄΔは、目標軌道生成部５５の出力する手先位置及び姿勢目標ベクトルｒｄに位置誤差計算部８０で加算され、手先位置及び姿勢補正目標ベクトルｒｄｍが生成される。ただし、ハイブリッドインピーダンス制御モード時に、補正パラメータに応じて、ロボットアーム５の動作を拘束する場合に、例えば、ｚ軸のみロボットアーム５が動くようにするには、手先位置及び姿勢目標補正出力ｒｄΔのｚ成分以外の成分を０にインピーダンス計算部５１で設定する。
【０１２７】
【数５】
2010137357.tif 000007
ただし、
【０１２８】
【数６】
2010137357.tif 000008
【０１２９】
【数７】
2010137357.tif 000009
【０１３０】
【数８】
2010137357.tif 000010
であり、sはラプラス演算子である。
【０１３１】
５８はロボットアーム５からのそれぞれの関節部のエンコーダ４４により計測された関節角の現在値ｑである関節角度ベクトルｑが、入出力ＩＦ２４を介して入力される順運動学計算部であり、ロボットアーム５の関節角度ベクトルｑから、手先位置及び姿勢ベクトルｒへの変換の幾何科学的計算を順運動学計算部５８で行い、手先位置及び姿勢ベクトルｒを目標軌道生成部５５及び位置誤差計算部８０へそれぞれ出力する。
【０１３２】
５６は位置誤差補償部であり、ロボットアーム５において計測される関節角度ベクトルｑより順運動学計算部５８により計算される手先位置及び姿勢ベクトルｒと、手先位置及び姿勢補正目標ベクトルｒｄｍとの誤差ｒｅが位置誤差計算部８０で求められたのち、その誤差ｒｅが位置誤差補償部５６に入力され、順運動学計算部５８から、位置誤差補償出力ｕｒｅが近似逆運動学計算部５７に向けて出力される。
【０１３３】
近似逆運動学計算部５７では、位置誤差補償部５６に入力される位置誤差補償出力ｕｒｅとロボットアーム５において計測される関節角度ベクトルｑとに基づき、近似式ｕｏｕｔ＝Ｊｒ（ｑ）−１ｕｉｎにより、逆運動学の近似計算を行う。ただし、Ｊｒ（ｑ）は、
【０１３４】
【数９】
2010137357.tif 000011
の関係を満たすヤコビ行列、ｕｉｎは近似逆運動学計算部５７への入力、ｕｏｕｔは近似逆運動学計算部５７からの出力であり、入力ｕｉｎを関節角度誤差ｑｅとすれば、ｑｅ＝Ｊｒ（ｑ）−１ｒｅのように手先位置及び姿勢誤差ｒｅから関節角度誤差ｑｅへの変換式となる。したがって、位置誤差補償部５６から位置誤差補償出力ｕｒｅが近似逆運動学計算部５７に入力されると、近似逆運動学計算部５７からの出力として、関節角度誤差ｑｅを補償するための関節角度誤差補償出力ｕｑｅが近似逆運動学計算部５７から入出力ＩＦ２４を介してロボットアーム５のモータドライバ２５に向けて出力される。
【０１３５】
関節角度誤差補償出力ｕｑｅは、入出力ＩＦ２４のＤ／Ａボードを介してロボットアーム５のモータドライバ２５に電圧指令値として与えられ、各モータ４３により各関節部が正逆回転駆動されロボットアーム５が動作する。
【０１３６】
以上のように構成される制御部２２に関して、ロボットアーム５のインピーダンス制御動作の原理について説明する。
【０１３７】
インピーダンス制御動作（ハイブリッドインピーダンス制御も同様）の基本は、位置誤差補償部５６による手先位置及び姿勢誤差ｒｅのフィードバック制御（位置制御）であり、の点線で囲まれかつ参照符号５９により示された部分が位置制御部５９になっている。位置誤差補償部５６として、例えば、ＰＩＤ補償器を使用すれば、手先位置及び姿勢誤差ｒｅが０に収束するように位置制御部５９による制御が働き、目標とするロボットアーム５のインピーダンス制御動作を実現することができる。
【０１３８】
制御パラメータ管理部２１でインピーダンス制御モード若しくはハイブリッドインピーダンス制御モードに切り替えられた場合には、前記説明した位置制御部５９に対し、インピーダンス計算部５１により手先位置及び姿勢目標補正出力ｒｄΔが位置誤差計算部８０で加算され、手先位置及び姿勢の目標値の補正が行われる。このために、前記した位置制御部５９は、手先位置及び姿勢の目標値が本来の値より微妙にずれることになり、結果的に、前記ロボットアーム５の機械インピーダンスの値を前記適切に設定された設定値に制御する動作が実現され、位置制御部５９の位置制御動作を補正することができる。手先位置及び姿勢目標補正出力ｒｄΔは式（６）により算出されるため、前記ロボットアーム５の慣性Ｍと粘性Ｄと剛性Ｋの機械インピーダンスの値を前記適切に設定された設定値に制御する動作が実現される。
【０１３９】
以上の原理に基づく制御プログラムの実際の動作ステップについて、図１３のフローチャートに基づいて説明する。
【０１４０】
ロボットアーム５の関節部のそれぞれのエンコーダ４４により計測された関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）が、エンコーダ４４から、入出力ＩＦ２４を介して、制御装置本体部１１の制御部２２に取り込まれる(ステップＳ１)。
【０１４１】
次いで、制御部２２に取り込まれた関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）に基づいて、逆運動学計算部５７にて、ロボットアーム５の運動学計算に必要なヤコビ行列Ｊｒ等の計算を行う(ステップＳ２)。
【０１４２】
次いで、順運動学計算部５８にて、ロボットアーム５のそれぞれのエンコーダ４４からの関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）から、ロボットアーム５の現在の手先位置及び姿勢ベクトルｒを計算して、位置誤差計算部８０と目標軌道生成部５５とに出力する（ステップＳ３）。
【０１４３】
次いで、位置制御モード又はハイブリッドインピーダンス制御モード時は、動作補正部２０から制御パラメータ管理部２１を介して送信された動作情報に基づき、目標軌道計算部５５は、ロボットアーム５の手先位置及び姿勢目標ベクトルｒｄを計算して位置誤差計算部８０に出力する一方、インピーダンス制御モード時は、ロボットアーム５の手先位置を、目標とする手先位置及び姿勢目標ベクトルｒｄとして位置誤差計算部８０に出力する（ステップＳ４）。
【０１４４】
次いで、力検出部５３は、モータ４３の駆動電流値ｉと、関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）と、関節角度誤差補償出力ｕｑｅから、ロボットアーム５の手先における等価手先外力Ｆｅｘｔを計算してインピーダンス計算部５１に出力する（ステップＳ５）。
【０１４５】
次いで、ステップＳ６では、制御パラメータ管理部２１において、補正有りと動作補正部２０により指示された場合には、ハイブリッドインピーダンス制御モードを設定し、補正なしと動作補正部２０により指示された場合には、位置制御モードを設定する。位置制御モードのみのときにはステップＳ７に処理を進める一方、ハイブリッドインピーダンス制御モードのときには、ステップＳ８へ処理を進める。
【０１４６】
次いで、ステップＳ７（インピーダンス計算部５１での処理）では、制御パラメータ管理部２１において、位置制御モードが設定された場合には、インピーダンス計算部５１で、手先位置及び姿勢目標補正出力ｒｄΔを０ベクトルとする。その後、ステップＳ９に進む。
【０１４７】
ステップＳ８では、制御パラメータ管理部２１において、インピーダンス制御モードが設定された場合（制御パラメータ管理部２１において、補正有りと動作補正部２０により指示された場合）若しくはハイブリッドインピーダンス制御モードが設定された場合に、制御パラメータ管理部２１において設定された機械インピーダンスパラメータの慣性Ｍと粘性Ｄと剛性Ｋと、関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）と、力検出部５３により計算されたロボットアーム５に加わる等価手先外力Ｆｅｘｔとから、手先位置及び姿勢目標補正出力ｒｄΔが、インピーダンス計算部５１により計算される。さらに、インピーダンス計算部５１では、補正パラメータに基づいて、手先位置及び姿勢目標補正出力ｒｄΔのうちのいずれかの成分の値を０に設定する。
【０１４８】
次いで、ステップＳ９では、位置誤差計算部８０では、目標軌道生成部５５からの手先位置及び姿勢目標ベクトルｒｄとインピーダンス計算部５１からの手先位置及び姿勢目標補正出力ｒｄΔとの和（ｒｄ＋ｒｄΔ）である、手先位置及び姿勢補正目標ベクトルｒｄｍを計算する。次いで、位置誤差計算部８０は、手先位置及び姿勢補正目標ベクトルｒｄｍと、順運動学計算部５８からの現在の手先位置及び姿勢ベクトルｒとの差（ｒｄｍ−ｒ）である、手先位置及び姿勢の誤差ｒｅを計算して、位置誤差補償部５６に出力する。位置誤差補償部５６の具体例としてはＰＩＤ補償器が考えられる。定数の対角行列である比例、微分、積分の３つのゲインを適切に調整することにより、位置誤差が０に収束するように位置誤差補償部５６の制御が働く。
【０１４９】
次いで、近似逆運動学計算部５７では、ステップＳ２で計算したヤコビ行列Ｊｒの逆行列を位置誤差補償出力ｕｒｅに乗算することにより、位置誤差補償出力ｕｒｅを、手先位置及び姿勢の誤差に関する値から関節角度の誤差に関する値である関節角度誤差補償出力ｕｑｅに、近似逆運動学計算部５７により変換する（ステップＳ１０）。
【０１５０】
次いで、関節角度誤差補償出力ｕｑｅが、近似逆運動学計算部５７から入出力ＩＦ２４を通じ、モータドライバ２５に与えられ、モータドライバ２５は、関節角度誤差補償出力ｕｑｅに基づき、関節部のそれぞれのモータ４３を流れる電流量を変化させる。この電流量の変化により、ロボットアーム５のそれぞれの関節部の回転運動が発生して、ロボットアーム５が動作を行なう（ステップＳ１１）。
【０１５１】
次いで、前記制御動作のステップＳ１〜ステップＳ１１を続ける場合にはステップＳ１に戻る一方、それ以外の場合（電源を切る又はロボットを停止させるのではなく、前記制御動作のみを終了させる場合）には前記制御動作のステップＳ１〜ステップＳ１１を終了する（ステップＳ１２）。
【０１５２】
以上のステップＳ１〜ステップＳ１２が制御の計算ループとして繰り返し実行されることにより、ロボットアーム５の動作の制御、すなわち、ロボットアーム５の機械インピーダンスの値を前記適切に設定された設定値に制御する動作を実現することができる。
【０１５３】
以上の動作ステップＳ４０〜ステップＳ４７及びステップＳ１〜ステップＳ１２により、動作情報に基づいて位置制御モードで動作中に、ハイブリッドインピーダンス制御にて人４がロボットアーム５を直接把持して、人４がロボットアーム５に力を加えることで、補正パラメータの一部のパラメータを補正することで、ロボットアーム５による作業が実現する。
【０１５４】
以上のように、動作情報データベース１７と動作補正部２０と制御パラメータ管理部２１と制御部２２とを備えることにより、位置制御モードで動作中のロボットアーム５を、位置制御モードからハイブリッドインピーダンス制御モードに切り替えて、人４がロボットアーム５を直接把持して移動させることで、人４が、希望するロボットアーム５の動きに簡単に補正することができる。
【０１５５】
また、補正方法設定部２３を備え、補正の有無を切り替えることにより、補正を意図せずに誤って人４がロボットアーム５に力を加えてしまった場合に、ロボットアーム５の動作を補正なしとしておくことができて、ロボットアーム５の動作が補正されずに、ロボットアーム５の動作をそのまま続けることができる。
【０１５６】
なお、動作選択部２７は、人４の操作すなわちロボットアーム５を把持して力を加えることによって、動作を選択するようにしているが、人４が表示部２に表示された作業の一覧から、操作盤１３のボタン１３ａなどのデータ入力ＩＦ２６を使用することによって、動作選択部２７を介して、作業したい作業を選択しても良い。この場合、データ入力ＩＦ２６から動作選択部２７に指令情報が入力されるように接続する必要がある。
【０１５７】
さらに、補正方法設定部２３にて、補正有無のフラグを「０」から「１」に切り替えることで、位置制御モードからハイブリッドインピーダンス制御モードに切り替えることを記載したが、ロボットアーム５が作業中、位置制御モードではなく、常にハイブリッドインピーダンス制御モードで動作するようもしても良い。その場合は、誤って人４がロボットアーム５に力を加えてしまった場合の誤操作は防げないが、補正の有無の切り替えをせずに、いつでも補正をすることができるようになる。
【０１５８】
（第２実施形態）
本発明の第２実施形態における、ロボットシステム１のロボットアーム５の制御装置７０の基本的な構成は、第１実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
【０１５９】
この第２実施形態においては、図１４Ａに示すように、ロボットシステム１を使ってＩＨクッキングヒータ６の天板を拭き掃除作業する場合を例に説明する。まず、人４が、ロボットシステム１のロボットアーム５の手先すなわち先端のハンド３０に、か拭き掃除作業のための器具の一例としてのスポンジ４６を取り付ける。
【０１６０】
図１５は、動作情報データベース１７Ａ（図２Ａの動作情報データベース１７の位置に、動作情報データベース１７に代えて配置されている動作情報データベース１７Ａ）を示し、「作業ＩＤ」と、「動作ＩＤ」と、「位置姿勢」と、「ハンド」と、「時間」と、「進捗情報」とは、第１実施形態の場合のそれぞれ同様であるので、それらの説明は省略する。
【０１６１】
動作情報データベース１７Ａの「力」に関する情報は、ロボットアーム５が作業をする際に対象となる物体に加える力に関する情報を示し、力のｘ，ｙ，ｚ，φ，θ，ψ方向の成分を（fｘ，fｙ，fｚ，fφ，fθ，fψ）と表す。例えばfｚ＝５[Ｎ]である場合は、ｚ軸方向に５[Ｎ]の力を加えて拭き掃除作業することを表し、ＩＨクッキングヒータ６などの天板を拭き掃除作業する際に、天板の表面沿いの方向に力を加えて擦る場合などに使用するパラメータである。
【０１６２】
動作情報データベース１７Ａの「フラグ」に関する情報は、位置と姿勢と力とのうちの、いずれの情報が有効かを示す値であり、具体的には、図１６で示した３２ビットの数値で、それぞれのビットで、位置と姿勢と力とのそれぞれの値が有効の場合は「１」とし、位置と姿勢と力とのそれぞれの値が無効の場合は「０」とする。例えば、０ビット目においては、ロボットアーム５の手先位置のｘ座標の値が有効の場合は「１」とし、手先位置のｘ座標の値が無効の場合は「０」とし、１ビット目においては、ロボットアーム５の手先位置のｙ座標の値が有効の場合は「１」とし、手先位置のｙ座標の値が無効の場合は「０」とし、２ビット目においては、ロボットアーム５の手先位置のｚ座標の値が有効の場合は「１」とし、手先位置のｚ座標の値が無効の場合は「０」とし、順次、３，４，５ビット目においては、姿勢のφ、θ、ψの有効性をそれぞれ表し（すなわち、有効の場合は「１」とし、無効の場合は「０」とし）、６ビット目〜１１ビット目においては、力のそれぞれの成分が有効か無効かを示す（すなわち、有効の場合は「１」とし、無効の場合は「０」とする）。また、フラグに関する情報は、第１実施形態と同様、将来の拡張用に多め（３２ビット）に用意しているため、この例では１３ビット目から３１ビット目は使用しないので、「０」を入れておく。
【０１６３】
動作情報データベース１７Ａの「補正パラメータフラグ」に関する情報は、第１実施形態と同様の、動作補正部２０で、どのパラメータを補正するかを表す情報で３２ビットの値で表し、動作情報データベース１７Ａのフラグで記述されたパラメータのうち、補正可能なパラメータの種別について図１７のように記述する。具体的には動作情報データベースで力のｚ軸方向の力であるfｚ座標のみを補正する場合に、８ビット目に「１」を、それ以外を「０」と記載する。
【０１６４】
人４は、操作盤１３のボタン１３ａなどのデータ入力ＩＦ２６を使用することによって、動作選択部２７により、動作情報データベース１７Ａの作業の中から拭き掃除作業を選択して、拭き掃除作業の動作開始の指示を制御部２２に行う。
【０１６５】
図１８は、ＩＨクッキングヒータ６を天井側から見た平面図である。図１８の図中の矢印で示すような軌道でロボットアーム５の手先すなわちハンド３０が移動して、スポンジ４６によりＩＨクッキングヒータ６の天板の拭き掃除作業を行うように、予め、動作情報のｘ，ｙ座標の値が、ロボットアーム５の手先位置の座標として、動作情報データベース１７Ａに記憶されている。これらの軌道は、ハンド３０に把持したスポンジ４６を、ある力でｚ軸方向にＩＨクッキングヒータ６の天板に押し付けながら拭き掃除作業をするため、ｚ軸方向は、位置姿勢の情報ではなく、力の情報を持つ。具体的には、図１５に示すように「作業ＩＤ」が「４」の作業の動作情報で、ｚ軸以外は位置姿勢で指定し、ｚ軸は力を指定する。そのため、「フラグ」は、図１６に示すように、位置ｘ、ｙ、姿勢φ、θ、ψを表す０ビット目、１ビット目、３〜５ビット目がそれぞれ「１」となり、力のｚ軸成分を表す８ビット目が「１」となる。
【０１６６】
動作補正部２０は、まず、補正前の拭き掃除作業の動作を実現するために、「フラグ」において、力成分のビットが「１」であるかどうかを確認する。このとき、６軸のうちの１つの軸においてでも、その力成分のビットが「１」であると動作補正部２０が判断した場合には、動作補正部２０は、「位置姿勢」と「力」と「フラグ」と「時間」と「ハンド」との動作情報を、後述する力ハイブリッドインピーダンス制御モード（force hybrid impedance control mode）で制御するような制御指令を制御パラメータ管理部２１へ出す。力ハイブリッドインピーダンス制御モードでは、方向別に、位置制御か、インピーダンス制御か、を切り替え、さらに、指定した力を作用させて拭き掃除作業の動作を行うモードである。
【０１６７】
拭き掃除作業時に力を加えるのは、ｚ軸方向のみで、その他は位置制御モードで動作するため、力ハイブリッドインピーダンス制御モードへの切り替え時に、図１６の「フラグ」と共にそのような動作を行わせるめための指令を動作補正部２０から制御パラメータ管理部２１へ出す。ただし、補正方法設定部２３で補正無しと設定された場合に、力ハイブリッドインピーダンス制御モードで制御する場合には、人４が誤ってロボットアーム５にｚ軸方向に力を加えてロボットアーム５を移動させてしまわないように、後述するインピーダンス計算部５１では、ロボットアーム５の手先がある値を超えて移動した場合は、それ以上、ロボットアーム５が移動しないように制御を行うことで、拭き掃除などの作業を安全に行うことができる。
【０１６８】
ここで、力ハイブリッドインピーダンス制御モードで拭き掃除作業中に、人４が図１４Ｂのように、天板の汚れのひどい部分Ｇを確認して、その部分だけ、もう少し強めに天板をスポンジ４６でこするように、ロボットアーム５の動作を補正したい場合を例にとって、以下説明する。
【０１６９】
人４は、データ入力ＩＦ２６を介して補正方法設定部２３にて、補正の有無のフラグを「０」から「１」に変更し、さらに、補正パラメータのｚ軸の力のみ補正をするために、図１６の補正パラメータの８ビット目のみを「１」にする制御指令を、補正方法設定部２３から動作補正部２０を介して制御パラメータ管理部２１へ出す。制御パラメータ管理部２１は、補正パラメータの６〜１１ビット目（力成分）のうちのいずれかが「１」であるときは、第１実施形態のハイブリッドインピーダンス制御モードへの切り替えではなく、後述する高剛性位置制御モードで動作するような制御指令を、制御部２２へ出す。
【０１７０】
この制御部２２への指令時に、高剛性位置制御モードでは、方向別に位置制御時の高剛性を設定することができ、人４がロボットアーム５に力を加えても床面などに接触するように、簡単に移動しないようにするためのモードである。ｚ軸方向のみ高剛性位置制御モードでロボットアーム５が動作し、その他の方向は通常の位置制御モードでロボットアーム５が動作するような制御指令を、制御パラメータ管理部２１から制御部２２へ出す。そして、制御部２２は、前記制御指令に基づき、ロボットアーム５の拭き掃除動作を制御する。
【０１７１】
このようにしてロボットアーム５が拭き掃除作業を行う場合で、かつ、ロボットアーム５が、天板の汚れのひどい部分Ｇを拭き掃除動作しているとき、人４がロボットアーム５を直接把持して、ＩＨクッキングヒータ６の天板に向かって下方向に、拭き掃除作業しているロボットアーム５に人４が加えたい力を、人４がロボットアーム５に加える。
【０１７２】
高剛性位置制御モードは、第１実施形態の位置制御モードを、さらに高剛性にしたモードで、後述する位置誤差補償部５６でのゲインを大きくする（制御パラメータ管理部２１から位置誤差補償部５６に高剛性位置制御モードで動作するような制御指令を出す。位置誤差補償部５６はその指令を受けて、ゲインを通常の位置制御モード時より大きくする（具体的には、通常の位置制御モード時の２倍程度の値）。）ことで実現し、人４がロボットアーム５に力を加えても、ロボットアーム５を容易に移動することがない。従って、ロボットアーム５が移動して床面などに接触することがないため、接触面からの抗力の影響を受けることなく、人４が加えた力を制御部２２の力検出部５３で検出することができる。
【０１７３】
制御部２２の力検出部５３で検出された力を、制御パラメータ管理部２１を介して動作補正部２０に通知する。そして、動作補正部２０は、動作情報データベース１７Ａのｚ軸方向の力を、動作補正部２０に通知された力に置き換えて、動作記憶部１５で動作情報データベース１７Ａに記憶して、記憶された情報に基づいてロボットアーム５を動作させることで、汚れている部分のみを強めに掃除作業するように、ロボットアーム５の動作を補正することができる。
【０１７４】
制御パラメータ管理部２１は、第１実施形態の機能に加えて、インピーダンス制御モードと力ハイブリッドインピーダンス制御モードと高剛性位置制御モードとのいずれかへの切り替え設定の情報と位置姿勢情報とに加えて、力情報を、目標軌道生成部５５へ通知する機能を備えている。
【０１７５】
以上の構成にかかる、動作補正部２０と動作選択部２７と補正方法設定部２３と動作記憶部１５と動作情報データベース２０と制御パラメータ管理部２１との動作ステップについて、図１９のフローチャートに基づいて説明する。なお、以下の説明では、高剛性位置制御モードへの切り替えを中心に説明する。
【０１７６】
第１実施形態のステップＳ４０と同様に、まず、人４がロボットアーム５を実際に把持してロボットアーム５を移動させることで、人４が、拭き掃除作業の動作をロボットアーム５に行わせる。すると、そのときのロボットアーム５の手先位置及び姿勢の情報が動作記憶部１５により動作情報データベース１７Ａに記憶される。
次いで、動作選択部２７が、動作情報データベース１７Ａに今回記憶されたロボットアーム５の手先位置及び姿勢の情報と、動作情報データベース１７Ａに予め記憶されかつ予め記憶されている作業のそれぞれの動作のロボットアーム５の手先位置及び姿勢の情報とを比較して、一致するか、許容範囲内で類似するロボットアーム５の手先位置及び姿勢の情報に関連する動作を選択する。そして、動作選択部２７により、その動作が含まれている作業を、動作情報データベース１７Ａに予め記憶された作業の一覧から選択し、動作情報データベース１７Ａの進捗情報に現在の作業を設定する（ステップＳ１２１）。前記作業の一覧中には、例えば、複数の拭き掃除作業（具体的には、強くこするように拭き掃除する作業、弱く拭き掃除する作業、同じ回転方向に拭き掃除する作業、正逆の両方の回転方向に拭き掃除する作業など）がリストされており、その中から、一致する作業を選択する場合のほか、前記作業の一覧中には、異なる種類の作業、例えば、拭き掃除作業とかき混ぜ作業がリストされており、その中から、一致する作業を選択する場合が考えられる。
【０１７７】
次いで、第１実施形態のステップＳ４１と同様に、動作情報データベース１７Ａの進捗情報に現在の作業が設定されると、動作補正部２０は、制御パラメータ管理部２１へインピーダンス制御モードでロボットアーム５が動作するように動作指令を出してインピーダンス制御モードに設定し、人４はロボットアーム５をＩＨクッキングヒータ６の付近まで誘導し（ステップＳ１２２）、データ入力ＩＦ２６にて、拭き掃除作業開始の指令を補正方法設定部２３に対して行う。補正方法設定部２３から、制御パラメータ管理部２１を経由して、制御部２２へ前記指令をさらに送る。
【０１７８】
次いで、前記補正方法設定部２３から制御パラメータ管理部２１に入力された、拭き掃除作業開始の指令が制御部２２に通知されるとともに、動作補正部２０は、動作情報データベース１７Ａの「フラグ」に力成分のビットが「１」である場合は、力ハイブリッドインピーダンス制御モードでの拭き掃除作業の動作を制御部２２により開始する（ステップＳ１２３）。なお、動作補正部２０は、動作情報データベース１７Ａの「フラグ」に力成分のビットが「０」である場合は、ステップＳ１２２で設定された位置制御モードでの拭き掃除作業の動作を制御部２２により開始する。
【０１７９】
次いで、補正方法を補正方法設定部２３で設定する。具体的には、データ入力ＩＦ２６及び補正方法設定部２３を介して、動作情報データベース１７Ａにおいて、補正有無のフラグの情報を「０」から「１」に設定して、補正を開始させる設定を補正方法設定部２３で行う（ステップＳ１２４）。補正有りと設定された場合（補正有無のフラグが「０」から「１」に設定された場合）で、かつ、補正パラメータで力成分を補正する場合（力成分のフラグが「１」の場合）は、動作補正部２０は、補正方法設定部２３から出力された補正有無のフラグ「１」でかつ補正パラメータの６〜１１ビット目（力成分）のうちのいずれかが「１」であるとの情報を受けて、制御パラメータ管理部２１へ、高剛性位置制御モードで動作するように指令を出して、高剛性位置制御モードに設定する（ステップＳ１２５）。制御部２２は、制御パラメータ管理部２１からの高剛性位置制御モードの動作指令を受けて、入出力ＩＦ２４を介してモータドライバ２５からモータ４３及び６２に制御指令値が入力されて、ロボットアーム５が高剛性位置制御モードでの動作を開始する。
【０１８０】
次いで、補正パラメータに従って、高剛性位置制御モード時の動作を拘束するために、方向別の高剛性位置制御モードの設定を行う（ステップＳ１２６）。この方向別の高剛性位置制御モードの設定は、前記したように、データ入力ＩＦ２６及び補正方法設定部２３を介して動作補正部２０から制御パラメータ管理部２１へ、補正したい補正パラメータフラグを「１」にするような指令を入力する。
【０１８１】
次いで、人４がロボットアーム５を把持して、補正したい方向に力を人４がロボットアーム５に加えることで、動作補正部２０が動作情報データベース１７Ａの動作情報を補正する（ステップＳ１２７）。
【０１８２】
次いで、補正された動作情報は、第１実施形態のステップＳ４７と同様に、動作記憶部１５により、動作情報データベース１７Ａに記憶される（ステップＳ１２８）。
【０１８３】
次に、制御部２２の詳細について、図２０により説明する。
【０１８４】
制御部２２のうち、力検出部５３と近似逆運動学計算部５７と順運動学計算部５８とハンド制御部５４と位置誤差計算部８０とは、第１実施形態とそれぞれ同様であるので、それらの説明は省略する。
【０１８５】
目標軌道生成部５５は、インピーダンス制御モードと力ハイブリッドインピーダンス制御モードと高剛性位置制御モード時は、動作補正部２０で生成されかつ制御パラメータ管理部２１を介して目標軌道生成部５５に入力された動作情報から、目標とする手先位置及び姿勢目標ベクトルｒｄを目標軌道生成部５５により生成する。目標軌道生成部５５は、制御パラメータ管理部２１からの動作情報の入力を受けて、目標とするロボットアーム５の動作を実現するための手先位置及び姿勢目標ベクトルｒｄと目標軌道生成部５５で生成される手先の力ベクトルｆｄとそれぞれの方向別にどのパラメータが有効かを示すフラグとが、目標軌道生成部５５から位置誤差計算部８０に出力される。位置制御モード時には、目標とするロボットアーム５の動作は、目的とする作業に応じて、動作補正部２０からそれぞれの時間（ｔ＝０、ｔ＝ｔ１、ｔ＝ｔ２、・・・）でのポイントごとの位置及び姿勢（ｒｄ０、ｒｄ１、ｒｄ２、・・・）と、力（ｆｄ０、ｆｄ１、ｆｄ２、・・・）が与えられる。目標軌道生成部５５は、多項式補間を使用し、各ポイント間の軌道と力を補間し、手先位置及び姿勢目標ベクトルｒｄ及び力ベクトルｆｄを生成する。さらに、第１実施形態と同様、動作情報データベース１７Ａの「ハンド」の開閉フラグにより、後述するハンド制御部５４へ、ハンド３０の開閉指令を出す。
【０１８６】
インピーダンス計算部５１は、ロボットアーム５に機械インピーダンス設定値への前記ロボットアーム５の機械インピーダンスの値の制御を実現する機能を果たす部分であり、制御パラメータ管理部２１で位置制御モードに切り替えられた際には、インピーダンス計算部５１から０を出力する。制御パラメータ管理部２１でインピーダンス制御モードが指定された際には、第１実施形態と同様に、手先位置及び姿勢目標補正出力ｒｄΔを出力する。制御パラメータ管理部２１で力ハイブリッドインピーダンス制御モードに切り替えられた際には、「フラグ」で指定された力成分が存在する場合には、制御パラメータ管理部２１で設定されたインピーダンスパラメータである慣性Ｍと粘性Ｄと剛性Ｋと、関節角の現在値ｑと、力検出部５３が検出した外力Ｆｅｘｔと、目標軌道生成部５５から出力されるｆｄとより、ロボットアーム５に機械インピーダンス設定値への前記ロボットアーム５の機械インピーダンスの値の制御を実現するための手先位置及び姿勢目標補正出力ｒｄΔを以下の式（１０）によりインピーダンス計算部５１で計算して、計算して求められた手先位置及び姿勢目標補正出力ｒｄΔを位置誤差計算部８０に出力する。手先位置及び姿勢目標補正出力ｒｄΔは、第１実施形態と同様に、目標軌道生成部５５の出力する手先位置及び姿勢目標ベクトルｒｄに位置誤差計算部８０で加算され、手先位置及び姿勢補正目標ベクトルｒｄｍが生成される。ただし、補正パラメータに応じて、インピーダンス制御でのロボットアーム５の動作を拘束する場合には、例えば、ｚ軸のみ力をロボットアーム５に加えて掃除作業し、その他の軸の成分は位置制御モードで動くようにするには、手先位置及び姿勢目標補正出力ｒｄΔのｚ成分以外の成分を０にインピーダンス計算部５１で設定する。
【０１８７】
【数１０】
2010137357.tif 000012
さらに、力ハイブリッドインピーダンス制御モードに切り替えられた際には、目標軌道生成部５５から設定される実際のロボットアーム５の手先位置及び姿勢ベクトルｒが、例えば、人４が誤ってロボットアーム５に力を加えて、ある範囲以上にロボットアーム５を移動してしまったことをで検出した場合は、算出した手先位置及び姿勢目標補正出力ｒｄΔを、ある値以下にすることで、ある範囲以上にロボットアーム５が移動しないように調整する。
【０１８８】
ここで、ある範囲以上にロボットアーム５を移動してしまったか否かは、以下のようにして判定する。すなわち、実際のロボットアーム５の手先位置を時系列に記憶しておき、ある時間内で、あるしきい値以上に手先位置が移動したか否かを検出する。具体的には、図２０の誤操作判定部６８において、順運動学計算部５８から出力される実際のロボットアーム５の手先位置ｒを時系列に記憶しておき、ある時間内で、ある閾値以上に手先位置が移動したか否かを誤操作判定部６８で判断する。もし、ある閾値以上移動したと誤操作判定部６８が判断した場合は、インピーダンス計算部５１に対して、算出した手先位置及び姿勢目標補正出力ｒｄΔを、ある値以下にするような指令を誤操作判定部６８から出す。
【０１８９】
位置誤差補償部５６は、第１実施形態の位置誤差補償部５６の機能に加えて、高剛性位置制御モードが設定された際に、定数の対角行列である比例、微分、積分の３つのゲインをあらかじめ設定された値に大きく設定する（通常の位置制御モードと比較して大きな値を設定する。具体的には、通常の位置制御モード時の２倍程度の値に設定する。ここで、高剛性とは、通常の位置制御と比較して、剛性が高くなることを意味する。値を通常の位置制御モード時の２倍程度にすると、約２倍だけ剛性を高くすることができる。）ことで、高剛性の位置制御を実現することができる。なお、前記ゲインを各成分毎に値を変えることで、例えば、ｚ軸方向のみ高剛性で、その他の方向は通常の位置制御で動作するよう制御することができる。
【０１９０】
以下、制御プログラムの実際の動作ステップについて、図２１のフローチャートに基づいて説明する。
【０１９１】
ロボットアーム５の関節部のそれぞれのエンコーダ４４により計測された関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）が、エンコーダ４４から、入出力ＩＦ２４を介して、制御装置本体部１１の制御部２２に取り込まれる(ステップＳ５１)。
【０１９２】
次いで、制御部２２に取り込まれた関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）に基づいて、逆運動学計算部５７にて、ロボットアーム５の運動学計算に必要なヤコビ行列Ｊｒ等の計算を行う(ステップＳ５２)。
【０１９３】
次いで、順運動学計算部５８にて、ロボットアーム５のそれぞれのエンコーダ４４からの関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）から、ロボットアーム５の現在の手先位置及び姿勢ベクトルｒを計算して、位置誤差計算部８０と目標軌道生成部５５とインピーダンス５１とに出力する（ステップＳ５３）。
【０１９４】
次いで、動作補正部２０から制御パラメータ管理部２１を介して送信された動作情報に基づき、目標軌道計算部５５は、ロボットアーム５の手先位置及び姿勢目標ベクトルｒｄ及び力目標ベクトルｆｄを目標軌道計算部５５で計算して位置誤差計算部８０に出力する（ステップＳ５４）。
【０１９５】
次いで、力検出部５３は、モータ４３の駆動電流値ｉと、関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）と、関節角度誤差補償出力ｕｑｅから、ロボットアーム５の手先における等価手先外力Ｆｅｘｔを計算してインピーダンス計算部５１に出力する（ステップＳ５５）。
【０１９６】
次いで、ステップＳ５６では、制御パラメータ管理部２１において、補正なしと動作補正部２０により指示された場合には、力ハイブリッドインピーダンス制御モードを設定し、補正ありと動作補正部２０により指示された場合には、高剛性位置制御モードを設定する。高剛性位置制御モードのみのときにはステップＳ５７に処理を進める一方、力ハイブリッドインピーダンス制御モードのときには、ステップＳ５８へ処理を進める。
【０１９７】
次いで、ステップＳ５７（インピーダンス計算部５１での処理）では、制御パラメータ管理部２１において、高剛性位置制御モードが設定された場合には、インピーダンス計算部５１で、手先位置及び姿勢目標補正出力ｒｄΔを０ベクトルとする。その後、ステップＳ５９に進む。
【０１９８】
ステップＳ５８では、制御パラメータ管理部２１において、力ハイブリッドインピーダンス制御モードが設定された場合に、制御パラメータ管理部２１において設定された機械インピーダンスパラメータの慣性Ｍと粘性Ｄと剛性Ｋと、関節角度データ（関節変数ベクトル又は関節角度ベクトルｑ）と、力検出部５３により計算されたロボットアーム５に加わる等価手先外力Ｆｅｘｔとから、手先位置及び姿勢目標補正出力ｒｄΔが、インピーダンス計算部５１により計算される。さらに、インピーダンス計算部５１では、補正パラメータに基づいて、実際の手先位置ｒ（順運動学計算部５８から出力される実際のロボットアーム５の手先位置ｒ）（ステップＳ５３参照）がある範囲以上に移動してしまったことを検出した場合は、算出した手先位置及び姿勢目標補正出力ｒｄΔを、ある値以下に設定する。
【０１９９】
次いで、ステップＳ５９又はステップＳ６０では、位置誤差計算部８０では、目標軌道生成部５５からの手先位置及び姿勢目標ベクトルｒｄとインピーダンス計算部５１からの手先位置及び姿勢目標補正出力ｒｄΔとの和（ｒｄ＋ｒｄΔ）である、手先位置及び姿勢補正目標ベクトルｒｄｍを計算する。次いで、位置誤差計算部８０は、手先位置及び姿勢補正目標ベクトルｒｄｍと、順運動学計算部５８からの現在の手先位置及び姿勢ベクトルｒとの差（ｒｄｍ−ｒ）である、手先位置及び姿勢の誤差ｒｅを計算して、位置誤差補償部５６に出力する。このとき、ステップＳ６０では、位置誤差補償部５６の具体例としてはＰＩＤ補償器が考えられる。定数の対角行列である比例、微分、積分の３つのゲインを適切に調整することにより、位置誤差が０に収束するように位置誤差補償部５６の制御が働く。ステップＳ５９では、そのゲインを、ある値まで大きくする（通常の位置制御モードと比較して大きな値を設定する。具体的には、通常の位置制御モード時の２倍程度の値に設定する。ここで、高剛性とは、通常の位置制御と比較して、剛性が大きくなることを意味する。値を通常の位置制御モード時の２倍程度にすると、約２倍だけ剛性を高くすることができる。）ことで、高剛性の位置制御を実現する。
【０２００】
次いで、近似逆運動学計算部５７では、ステップＳ５２で計算したヤコビ行列Ｊｒの逆行列を位置誤差補償出力ｕｒｅに乗算することにより、位置誤差補償出力ｕｒｅを、手先位置及び姿勢の誤差に関する値から関節角度の誤差に関する値である関節角度誤差補償出力ｕｑｅに、近似逆運動学計算部５７により変換する（ステップＳ６１）。
【０２０１】
次いで、関節角度誤差補償出力ｕｑｅが、近似逆運動学計算部５７から入出力ＩＦ２４を通じ、モータドライバ２５に与えられ、モータドライバ２５は、関節角度誤差補償出力ｕｑｅに基づき、関節部のそれぞれのモータ４３を流れる電流量を変化させる。この電流量の変化により、ロボットアーム５のそれぞれの関節部の回転運動が発生して、ロボットアーム５が動作を行なう（ステップＳ６２）。
【０２０２】
次いで、前記制御動作のステップＳ５１〜ステップＳ６２を続ける場合にはステップＳ５１に戻る一方、それ以外の場合（電源を切る又はロボットを停止させるのではなく、前記制御動作のみを終了させる場合）には前記制御動作のステップＳ５１〜ステップＳ６２を終了する（ステップＳ６３）。
【０２０３】
以上のステップＳ５１〜ステップＳ６２が制御の計算ループとして繰り返し実行されることにより、ロボットアーム５の動作の制御、すなわち、ロボットアーム５の機械インピーダンスの値を前記適切に設定された設定値に制御する動作を実現することができる。
【０２０４】
以上の動作ステップＳ１２０〜ステップＳ１３０及びステップＳ５１〜ステップＳ６２により、動作情報に応じて、力ハイブリッドインピーダンス制御で動作中に、高剛性位置制御にて補正パラメータの力情報を補正することで、ロボットアーム５による作業が実現する。
【０２０５】
以上のように、動作情報データベース１７Ａと動作補正部２０と制御パラメータ管理部２１と制御部２２とを備えることにより、力ハイブリッドインピーダンス制御モードにて、ロボットアーム５が方向別に(例では、ＩＨクッキングヒータ６の天板方向に)力を加えて、拭き掃除などの作業をしている最中に、高剛性位置制御モードに切り替えて、人４がロボットアーム５を直接把持して方向別に力を加えても容易にはロボットアーム５を移動することがないため、床面などに接触して接触面からの抗力の影響を受けることなく、人４が希望するロボットアーム５の動き（力成分）を簡単に補正することができる。
【０２０６】
（第３実施形態）
本発明の第３実施形態における、ロボットアーム５の制御装置７０の基本的な構成は、第１実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
【０２０７】
図２２の（ａ）（図２２の（ｄ）は、図２２の（ａ）を上方から見た図）に示したように、ロボットシステム１のロボットアーム５を使って鍋３の中の、かき混ぜ作業をする場合を例に説明する。
【０２０８】
図２３は、ロボットシステム１を構成する、制御対象であるロボットアーム５と、ロボットアーム５の制御装置７０との詳細構成を示す図である。ロボットアーム５の制御装置７０は、図２３に詳細構成を示すように、制御装置本体部１１と、ロボットアーム５の動作を生成する動作生成装置１２と、周辺装置１４とを備えている。図２３において、ロボットアーム５と周辺装置１４と制御装置本体部１１と動作選択部２７と補正方法設定部２３は、第１実施形態の場合とそれぞれ同様であるので、それらの説明は省略する。なお、この第３実施形態においては、環境情報データベース１８と、補正パラメータデータベース１９と、情報生成部２９と、動作情報展開部１０とを新たに備えている点で、先の実施形態とは異なっている。
【０２０９】
図２４に示す動作情報データベース１７Ｂは、第１実施形態の動作情報データベース１７又は第２実施形態の動作情報データベース１７Ａに相当する動作情報データベースであって、ロボットアーム５の、ある時間における位置及び姿勢など動作に関する情報であって、かつ、後述する情報生成部２９で生成した情報が、動作情報データベース１７Ｂに記憶される。
【０２１０】
さらに、環境情報データベース１８は、ロボットアーム５と人４とが協働して作業を行うときのロボットアーム５の環境に関する情報であって、例えば、レードルなどの器具９又は鍋などの器具３などロボットアーム５が動作する際に必要となる道具に関する情報、又は、ＩＨクッキングヒーター又はガスコンロの調理装置６などの動作環境に関する情報などが記憶されており、後述する情報生成部２９で環境情報を生成し、情報生成部２９により環境情報データベース１８に記憶される。
【０２１１】
補正パラメータデータベース１９は、後述する動作補正部２０で動作情報データベース１７Ｂの動作情報を補正する際の補正すべきパラメータの種別に関する情報であり、情報生成部２９で生成され、補正パラメータデータベース１９に情報生成部２９で記憶される。なお、後述する動作補正部２０は、ロボットアーム５が動作する環境に関する環境情報を取得する環境情報取得部の一例又は動作情報を取得する動作情報取得部の一例として機能しうるものである。
【０２１２】
次に、動作情報データベース１７Ｂの詳細について説明する。
【０２１３】
動作情報データベース１７Ｂは、例えば、図２４に示したロボットアーム５の動作に関する情報で、「作業ＩＤ」と、「動作ＩＤ」と、「位置姿勢」と、「ハンド」と、「進捗情報」とは、第１実施形態の場合とそれぞれ同様であるので、それらの説明は省略する。
【０２１４】
図２５Ａ〜図２５Ｇは、動作情報データベース１７Ｂの「動作テンプレートＩＤ」（動作テンプレートに関する情報を識別するために用いられる符号）に関する情報であって、動作テンプレートに関する情報を表す。動作テンプレートに関する情報（動作テンプレート情報）は、ロボットアーム５の手先位置を生成するための幾何学的な情報であり、具体的には、図２５Ｆに示すように、ロボットアーム５の手先が円を描くように動作する場合には、図２５Ｂのように、中心座標と半径で表す。以下に、動作テンプレート情報に関して詳述する。
【０２１５】
図２４の動作情報データベース１７Ｂの「動作テンプレートＩＤ」、すなわち、動作テンプレートに関する情報を識別する「動作テンプレートＩＤ」は、図２５Ａに示す「動作テンプレートＩＤ」を指し、後述する動作情報展開部１０により、動作テンプレート情報と後述する環境情報からロボットアーム５の手先位置及び姿勢を生成する。例えば、図２４の動作情報データベース１７Ｂの「動作テンプレートＩＤ」が「１」の場合は、図２５Ａの「動作テンプレートＩＤ」が「１」の場合の動作テンプレート情報を意味している。
【０２１６】
図２６Ａ〜図２６Ｃは、それぞれ、鍋３を上から見た図を示しており、図中の矢印は、ロボットアーム５の手先が移動する軌道を示している。ここでは、動作テンプレート情報の動作としては、例えば、図２６Ａのように、ロボットアーム５の手先が円を描くように移動して鍋３の中をかき混ぜる動き、図２６Ｂのように、ロボットアーム５の手先がジグザグに移動して鍋３の中をかき混ぜる動き、及び、図２６Ｃのように、ロボットアーム５の手先が鍋３の中心と周囲との間で放射線状に移動して鍋３の中をかき混ぜる動きなどが例示されている。一例として、図２６Ａの動きの場合は、図２５Ａの動作テンプレート情報の「種別」に「１」を記述し、図２６Ｂの動きの場合は、動作テンプレート情報の「種別」に「２」を記述し、図２６Ｃの動きの場合は、動作テンプレート情報の「種別」に「３」を記述する。
【０２１７】
さらに図２５Ａの動作テンプレート情報の「種別」が「１」の場合は、図２５Ｂの表を参照し、「種別」が「２」の場合は、図２５Ｃの表を参照し、「種別」が「３」の場合は、図２５Ｄの表を参照し、その後、図２５Ａの「種別ＩＤ」（種別に関する情報を識別するために用いられる符号）に対応する図２５Ｂ〜図２５Ｄの表の「種別ＩＤ」の情報を参照する。例えば、図２５Ａの動作テンプレート情報の「種別」が「１」でかつ「種別ＩＤ」が「１」である場合は、図２５Ｂの「種別ＩＤ」が「１」の場合に対応し、図２５Ｆに示すように、ロボットアーム５の手先が円を描くように移動して鍋３の中をかき混ぜる際の円の中心座標（（ｘｂ１，ｙｂ１，ｚｂ１）など）、半径（ｒｂ１など）が図２５Ｂに示すように記憶されている。また、図２５Ａの動作テンプレート情報の「種別」が「２」でかつ「種別ＩＤ」が「１」である場合は、図２５Ｃの「種別ＩＤ」が「１」の場合に対応し、図２５Ｇに示すように、ロボットアーム５の手先が放射線状に移動して鍋３の中をかき混ぜる際の放射線の中心座標と半径とが図２５Ｃのように記憶されている。また、図２５Ａの動作テンプレート情報の「種別」が「３」でかつ「種別ＩＤ」が「１」である場合は、図２５Ｄの「種別ＩＤ」が「１」の場合に対応し、図２５Ｅに示すように、ロボットアーム５の手先がジグザグに移動して鍋３の中をかき混ぜる際の４点の座標（座標１（ｘd1，ｙd1，ｚd1）、座標２（ｘd2，ｙd2，ｚd2）、座標３（ｘd3，ｙd3，ｚd3）、座標４（ｘd4，ｙd4，ｚd4））が図２５Ｄのように記憶されている。
【０２１８】
図２５Ｂと図２５Ｃと図２５Ｄとの中心座標と半径と座標などのそれぞれの値は、後述する情報生成部２９にて、環境情報データベース１８により補正された後、後述する動作情報展開部１０により、ロボットアーム５の手先位置及び姿勢の情報を作成して、動作情報データベース１７Ｂに記憶されている。なお、動作テンプレート情報は、上の３つ（図２５Ｂ、図２５Ｃ、図２５Ｄ）に限られたものではなく、ロボットアーム５の手先位置及び姿勢が生成可能な幾何情報（ロボットアーム５の手先の幾何学的な軌道情報）であればどのようなものでも良い。
【０２１９】
図２４の動作情報データベース１７Ｂの「フラグ」に関する情報は、各「動作ＩＤ」が示す動作情報のロボットアーム５の手先位置と姿勢と動作テンプレート情報とのうちのいずれの情報が有効かを示す値であり、具体的には、図２７で示した３２ビットの数値で表す。図２７において、それぞれのビットで、ロボットアーム５の手先位置と姿勢と動作テンプレート情報とのそれぞれの値が有効の場合は「１」とし、ロボットアーム５の手先位置と姿勢と動作テンプレート情報とのそれぞれの値が無効の場合は「０」とする。例えば、０ビット目においては、ロボットアーム５の手先位置のｘ座標の値が有効の場合は「１」とし、手先位置のｘ座標の値が無効の場合は「０」とし、１ビット目においては、ロボットアーム５の手先位置のｙ座標の値が有効の場合は「１」とし、手先位置のｙ座標の値が無効の場合は「０」とし、２ビット目においては、ロボットアーム５の手先位置のｚ座標の値が有効の場合は「１」とし、手先位置のｚ座標の値が無効の場合は「０」とし、順次３，４，５ビット目においては、姿勢のφ、θ、ψの有効性をそれぞれ表し（すなわち、有効の場合は「１」とし、無効の場合は「０」とし）、６ビット目においては、動作テンプレート情報の有効性を表す（すなわち、有効の場合は「１」とし、無効の場合は「０」とする）。また、フラグに関する情報は将来の拡張用に多め（３２ビット）に用意しているため、この例では、７ビット目から３１ビット目は使用しないので、「０」を入れておく。図２７では、０ビット目から２ビット目が「１」となっているので、動作情報のうち、ｘ、ｙ、ｚ情報のみが有効であることを示し、３ビット目から５ビット目が「０」となっているので、動作情報のうち、φ、θ、ψ、動作テンプレート情報の値にどのような値が記憶されていても無効であるとする。
【０２２０】
図２４の動作情報データベース１７Ｂの「時間」に関する情報は、ロボットアーム５の各動作を実行するための時間であり、この「動作ＩＤ」に記憶された動作を、ここでの「時間」に関する情報として記憶された時間をかけて行なうことを表す。すなわち、絶対時刻ではなく、前の動作からの相対時間を表す。さらに、「動作ＩＤ」が示す動作が動作テンプレート情報が有効である場合は、その動作テンプレート情報が動作するのに有する時間を表す。「動作ＩＤ」が示す動作が、ロボットアーム５の手先位置及び姿勢が有効である場合は、指定された位置及び姿勢に移動するまでの時間を表す。
【０２２１】
図２４の動作情報データベース１７Ｂの「環境情報ＩＤ」（環境情報を識別するために用いられる符号）は、２種類の「環境情報ＩＤ」より構成されている。そのうちの１つ目の「環境情報ＩＤ」が表す「周辺環境」に関する情報は、ロボットアーム５が作用する周辺環境に関する情報であり、例えば、ロボットアーム５が、かき混ぜ作業をしている場合は、鍋３などの情報を表す。２つ目の「環境情報ＩＤ」が表す「把持物体」に関する情報は、ロボットアーム５が把持している物体に関する情報で、例えば、ロボットアーム５が、かき混ぜ作業をしている場合は、ロボットアーム５が把持しているレードル９などの情報を表す。それぞれの「環境情報ＩＤ」は、後述する図２８Ａに示す「環境情報ＩＤ」のうちのいずれかの値であり、どの環境下で動作するかを表す情報である。
【０２２２】
図２４の動作情報データベース１７の「補正パラメータＩＤ」（補正パラメータに関する情報を識別するために用いられる符号）に関する情報は、後述する図２９に示す「補正パラメータＩＤ」のうちのいずれかの値であり、後述する動作補正部２０で、どのパラメータを補正するかを表す情報である。
【０２２３】
環境情報データベース１８は、例えば、図２８Ａに示したロボットアーム５の動作環境に関する情報で、環境を識別する環境情報ＩＤ番号を表す「環境情報ＩＤ」と、その環境情報の種別を表す「種別」と、それぞれの種別を識別するための「種別ＩＤ」とを備えるように構成されている。環境情報の「種別」に応じて、それぞれ、図２８Ｂと図２８Ｃと図２８Ｄとに示す情報から構成されている。すなわち、図２８Ａの環境情報の「種別」が「１」の場合は、図２８Ｂの表を参照し、図２８Ａの環境情報の「種別」が「２」の場合は、図２８Ｃの表を参照し、図２８Ａの環境情報の「種別」が「３」の場合は、図２８Ｄの表を参照する。例えば、図２８Ａの環境情報の「種別」が「１」でかつ「種別ＩＤ」が「１」の場合は、図２８Ｂの「種別ＩＤ」が「１」の場合に対応し、その一致した値（中心座標、半径、高さ）をその「環境情報ＩＤ」の環境情報とする。例えば、図２８Ｂは、図２８Ｅのような円筒形の物体を表す情報であり、家庭用の鍋３などを近似的に表すことができる。円筒形の物体は、円筒の底面の中心座標と底面の半径と円筒の高さとの情報で構成されている。図２８Ａの環境情報の「種別」が「２」でかつ「種別ＩＤ」が「１」の場合は、図２８Ｃの「種別ＩＤ」が「１」の場合に対応し、その一致した値（中心座標、半径）をその「環境情報ＩＤ」の環境情報とする。図２８Ｃは、図２８Ｆのような円に関する情報であり、例えばＩＨクッキングヒータ６の鍋３を置く部分などを近似的に表す事ができる。具体的には、円の中心座標と半径の情報から構成される。図２８Ｄの環境情報の「種別」が「３」でかつ「種別ＩＤ」が「１」の場合は、図２８Ｄの「種別ＩＤ」が「１」の場合に対応し、その一致した値（座標１、座標２、座標３、高さ）をその「環境情報ＩＤ」の環境情報とする。図２８Ｇのような直方体を表す情報で、家庭用の台所のシンク又はバスタブなどを近似的に表すことができる。具体的には、直方体の上面は、上面の、ある１点の座標（図２８Ｇでは上面の１つの隅部の「座標２」）とその座標（図２８Ｇでは上面の１つの隅部の「座標２」）と隣合う２点の座標（図２８Ｇでは上面の前記隅部「座標２」と隣合う２つの隅部の「座標１」と「座標３」）で表され、その上面と直交する方向の高さの情報とを備えて構成されている。
【０２２４】
補正パラメータデータベース１９は、例えば図２９に示す情報で、後述する動作補正部２０で動作情報データベース１７Ｂの動作情報を補正する際に、補正すべきパラメータの種別に関する情報である。具体的には、補正パラメータを識別するための「補正パラメータＩＤ」と、その「補正パラメータＩＤ」毎に、動作情報のどのパラメータを補正するかを表す「動作情報フラグ」と、環境情報のどのパラメータを補正するかを表す「環境情報フラグ」と、動作テンプレート情報のどのパラメータを補正するかを表す「動作テンプレートフラグ」とを備えるように構成されている。
【０２２５】
「動作情報フラグ」は、図２７と同様に３２ビットの値で表し、図３の動作情報データベース１７Ｂの「フラグ」で記述されたパラメータのうち、補正可能なパラメータの種別について図２７と同様の方法で記述する。具体的には、動作情報データベース１７Ｂでｘ、ｙ、ｚ座標が有効である場合に、ｘ座標のみ補正する場合は、０ビット目に「１」を、それ以外を「０」と記載する。
【０２２６】
「環境情報フラグ」は、図３０に示すように、３２ビットの値で表し、座標１のｘ座標を補正する場合は０ビット目に「１」を、補正しない場合は０ビット目に「０」を記載する。なお、環境情報データベース１８の図２８Ｂの中心座標の補正の有無は、図３０の座標１に記載する。同様に図２８のＣの中心座標の補正の有無は、図３０の座標１に記載する。
【０２２７】
「動作テンプレートフラグ」は、図３０に示しように３２ビットの値で表し、「環境情報フラグ」と同様に「座標１」のｘ座標を補正する場合は０ビット目に「１」を、補正しない場合は０ビット目に「０」を記載する。なお、動作テンプレート情報の図２５Ｂ及び図２５Ｃの中心座標の補正の有無は、図３０の座標１に記載する。
【０２２８】
２９は情報生成部であり、後述する外部からの入力情報とデータ入力ＩＦ２６からの入力情報と制御パラメータ管理部２１とからの入力情報とに基づき、動作情報データベース１７Ｂの動作情報と環境情報データベース１８の環境情報と補正パラメータデータベース１９の補正パラメータとを生成して、動作情報データベース１７Ｂと環境情報データベース１８と補正パラメータデータベース１９にそれぞれ出力する。
【０２２９】
動作情報データベース１７Ｂの動作テンプレート情報は、先に説明したように、図２６に示すように、ロボットアーム５の手先が、ある一定のパターンで動作する動作を表し、図２３のインターネット２８を通じて外部のウェブサーバにある情報データベース１６から幾何情報を収集し、その幾何情報で必要な情報を図２５のように記憶する。なお、メーカが出荷時にあらかじめ幾何情報を記憶しておいても良い。
【０２３０】
環境情報データベース１８は、例えば、鍋３及びレードル９、作業するシンク、ＩＨクッキングヒータなどにＲＦＩＤタグを付け、それらの物体の位置を、タグ検出器でそれぞれ検出する。さらに、情報生成部２９により、インターネット２８を通じて外部のウェブサーバにある情報データベース１６から物体の寸法情報を収集し、環境情報データベース１８に記憶する。
【０２３１】
なお、カメラなどの画像撮像装置で環境を撮影し、得られた画像データと、あらかじめ記憶された物体の画像との間でモデルマッチング処理を行い、物体の寸法又は物体の位置を抽出して、環境情報データベース１８に記憶するようにしても良い。
【０２３２】
さらに、超音波タグシステムを使用して、物体に超音波発信機を設置し、超音波発信機が発する超音波を、天井などに備えられた複数の超音波受信機にて受信し、超音波の到達時間差から超音波発信機の３次元位置（３次元位置座標の値）を算出して、環境情報データベース１８に記憶するようにしても良い。
【０２３３】
動作情報データベース１７Ｂのロボットアーム５の手先位置及び姿勢に関する情報は、後述する動作情報展開部１０により、動作テンプレート情報を環境情報データベース１８により補正した後、ロボットアーム５の手先位置と姿勢と時間との情報を作成して、動作情報データベース１７Ｂに記憶する。動作テンプレート情報に無い動作を行う場合には、第１実施形態の場合と同様に、ロボットアーム５を人４が直接把持して、インピーダンス制御モードにて、ロボットアーム５を移動させて、ある一定時間毎（例えば０．２msec毎）にロボットアーム５の手先位置と姿勢の情報を取得し、時間と共に、動作情報データベース１７Ｂに記憶する。
【０２３４】
動作情報展開部１０は、動作テンプレート情報と環境情報データベース１８からの環境情報とを使用して、ロボットアーム５の手先位置である動作情報データベース１７Ｂの位置と姿勢と時間の動作情報を生成する。具体的には、例えば、図２４に示す動作情報データベース１７Ｂの「作業ＩＤ」が「１」でかつ、「動作ＩＤ」が「１」の場合を例にとって、以下、説明する。
【０２３５】
「動作ＩＤ」が「１」の場合に示す動作情報は、図２７で示した３２ビットの数値で示すフラグの６ビット目が「１」で、残りが全て「０」であり（動作テンプレート情報のみ有効）、「動作テンプレートＩＤ」が「１」で、「時間」は３秒である。この動作は、図２６Ａに示すように、ロボットアーム５の手先が円を描くように移動して鍋３の中をかき混ぜる動作で、この例では、鍋３の中を１周３秒かけてかき混ぜ動作することを示す。さらに、動作する環境情報は、「周辺環境」の「環境情報ＩＤ」が「１」であり、「把持物体」の「環境情報ＩＤ」が「４」であることから、図２８Ａの「環境情報ＩＤ」が「１」の「種別」は「１」で、「種別ＩＤ」は「１」であるので、図２８Ｂの「種別ＩＤ」が「１」を参照すると、中心座標（０．１ｍ，０．１ｍ，０．１ｍ）で半径０．２ｍ、高さ０．３ｍの鍋３のような円筒形の中で、動作することを示している。さらに、「環境情報ＩＤ」が「４」の「種別」は「１」で、「種別ＩＤ」は「２」であるので、図２８Ｂの「種別ＩＤ」が「２」を参照すると、中心座標（０．１ｍ，０．１ｍ，０ｍ）で半径０．０１ｍ、高さ０．２ｍのレードルのような円筒形の物体をロボットアーム５のハンド３０が把持していることを示している。
【０２３６】
まず、動作テンプレート情報からロボットアーム５の手先位置及び姿勢情報を生成する前に、図３１Ａに示すように、かき混ぜ作業を行う鍋３の付近まで、ロボットアーム５を人４が直接把持してロボットアーム５を誘導する。これは、後述するインピーダンス制御モードで実現し、例えば、かき混ぜ作業を開始する前の停止状態時には、あらかじめインピーダンス制御モードに設定しておくことで、人４がロボットアーム５を把持してロボットアーム５に力を加えることで、ロボットアーム５を人４により移動させることができる。
【０２３７】
次に、動作情報展開部１０は、かき混ぜ開始の指令を、データ入力ＩＦ２６を介して補正方法設定部２３から受けると、環境情報データベース１８の情報から、かき混ぜ動作のロボットアーム５の手先位置のｚ軸成分の値を動作情報展開部１０により求める。具体的には、図３１Ｂのように、鍋３の中の底側の部分、すなわち、鍋３の底から少し浮いた位置で、かき混ぜ動作をさせるとし、図３１Ａのロボットアーム５の手先位置Ｏｐのｚ座標をＯｐｚ、図３１Ｂすなわち、補正後のロボットアーム５の手先位置Ｏｐ'のｚ座標をＯｐｚ'とし、環境情報データベース１８より、レードル９と鍋３の高さをｈ１(０．２ｍ)、鍋３の高さをｈ２(０．３ｍ)とすると、補正後のロボットアーム５の手先位置Ｏｐ'のｚ座標は、Ｏｐｚ'＝ Ｏｐｚ−（ｈ１−ｈ２）＋α  の式により動作情報展開部１０で計算される。なお、αを正の値とすれば、鍋３の底から少し浮かした位置で、かき混ぜ動作を実現することができる。
【０２３８】
次に、ｘ座標及びｙ座標を動作情報展開部１０で求める。具体的には、図３１Ｃのように、ｚ軸の座標を保持した状態で、かき混ぜる動作を実現する。図３１Ｄは、鍋３を上方から見た図であり、ｍ（ｍｘ，ｍｙ）は鍋３の中心座標、ｒは鍋３の内側の半径を表す。これらの情報は、上述した情報生成部２９により環境情報データベース１８に記憶され、具体的には、図２８Ｂの「種別ＩＤ」が「２」として記憶されている。図３１Ｄにおいて、Ｃｐ１'、Ｃｐ２'、・・・、Ｃｐ８'は鍋３の縁の円周を８等分にしたときの各位置での座標で、Ｃｐ１'、Ｃｐ２'、・・、Ｃｐ８'の順にロボットアーム５の手先位置を移動させていくことで、ロボットアーム５の手先が近似的に円を描くような動作が実現できる。図３１Ｄにおいて、θは鍋３の中心周りの角度を表し、座標Ｃｐ１'のｘ座標ｘ１とｙ座標ｙ１は、半径ｒと中心座標ｍ（ｍｘ，ｍｙ）と角度θとを使って、ｘ１＝ｒcosθ＋ｍｘ、ｙ１＝ｒsinθ＋ｍｙで動作情報展開部１０により求められる。同様に、座標Ｃｐ２'、・・、Ｃｐ８'のｘ軸及びｙ軸の値をそれぞれ動作情報展開部１０で算出し、ｚ軸の座標として上述したＯｐｚ'を代入することで、座標Ｃｐ１'、Ｃｐ２'、・・、Ｃｐ８'の８つの座標を動作情報展開部１０により求めることができる。前記したように、かき混ぜ動作は３秒で１周することから、座標Ｃｐ１'、Ｃｐ２'、・・、Ｃｐ８'それぞれへの到達時間は３／８秒となる。なお、姿勢については、人４の誘導時のロボットアーム５の手先の姿勢をそのまま動作情報展開部１０により代入する。動作情報展開部１０により生成した座標Ｃｐ１'、Ｃｐ２'、・・、Ｃｐ８'の８つの座標とそれぞれの時間の情報は、例えば、図２４の動作情報データベース１７Ｂの「作業ＩＤ」が「３」でかつ「動作ＩＤ」が「１」〜「８」の欄に、図２４に示すように記憶する。その際に、動作情報データベース１７Ｂの「フラグ」の情報は、図２７の位置及び姿勢のビット（０ビット目から５ビット目まで）を「１」とし、他のビットは「０」として動作情報展開部１０により設定する。また、補正パラメータは、「補正パラメータＩＤ」を「３」として動作情報データベース１７Ｂに動作情報展開部１０により記憶され、図２９の補正パラメータのうち「動作情報フラグ」は、位置及び姿勢が補正可能なので、図２７の０ビット目から５ビット目までを「１」に設定し、それ以外のビットを「０」に動作情報展開部１０により設定する。「環境情報フラグ」は、鍋３の半径と中心座標と高さとの情報が補正可能なので、図３０の０，１，２ビット目と１２、１３ビット目を「１」に設定し、その他は「０」を動作情報展開部１０により設定する。「動作テンプレートフラグ」は、図２８Ｂのパラメータが補正可能なので、図３０の０，１，２ビット目と１２ビット目を「１」に設定し、その他は「０」を動作情報展開部１０により設定する。
【０２３９】
動作情報展開部１０は、動作テンプレート情報と環境情報データベース１８からの情報とに基づいて、ロボットアーム５の手先位置及び姿勢を算出し、図２４の「作業ＩＤ」が「３」の動作情報を動作情報データベース１７Ｂに記憶する。動作情報展開部１０により動作情報データベース１７Ｂに記憶された動作情報に基づいて、動作補正部２０は、位置制御モードで、かき混ぜ作業を実行するように制御パラメータ管理部２１へ指令を出すことで、位置制御モードでの、かき混ぜが動作する。
【０２４０】
次に、人４が鍋３の中の具材の状況などを確認して、鍋３の中で、鍋３の周囲近傍をかき混ぜる動作（図２２の（ａ）及び図２２の（ａ）の上方から見た図２２の（ｄ）参照）から、図２２の（ｃ）（図２２の（ｆ）は、図２２の（ｃ）を上方から見た図）に示すように、鍋３のもう少し内側を中心に小さくかき混ぜる動作に変更したい場合を例にとって、かき混ぜ動作の補正について説明する。
【０２４１】
人４は、第１実施形態の場合と同様、補正方法設定部２３にて、補正有無のフラグを「０」から「１」に変更する。動作補正部２０は補正方法設定部２３からの補正有無のフラグ「１」を受けて、制御パラメータ管理部２１へ、後述するハイブリッドインピーダンス制御モード（位置制御モードでロボットアーム５が移動しながら、力検出部５３が人４の力を検出した方向にインピーダンス制御でロボットアーム５を移動させるモード）でロボットアーム５が動作するように、指令を動作補正部２０から出す。
【０２４２】
次いで、図２２の（ｂ）（図２２の（ｅ）は、図２２の（ｂ）を上方から見た図）に示すように、人４がロボットアーム５を直接把持して、ロボットアーム５のハンド３０で把持したレードル９で鍋３の中心付近を小さくかき混ぜるように鍋３の内側に向かって力をロボットアーム５に加えると、ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人４の力を力検出部５３で検出して力を加えた方向にロボットアーム５をｙ軸方向に移動させて、図２２の（ｃ）のように、かき混ぜ動作を補正することができる。
【０２４３】
なお、この例では、かき混ぜる円の半径を小さくするよう補正したいので、図２９の「補正パラメータＩＤ」が「１」の場合のように、動作テンプレートフラグを図３０の１２ビット目のみを「０」から「１」に変更するように補正方法設定部２３により設定すると、補正方法設定部にて、図３０の１２ビット目のみを「１」に設定する。動作補正部２０は、補正方法設定部２３からの補正有無のフラグ「１」を受けて、動作補正部２０から制御パラメータ管理部２１へ指令を出す。
【０２４４】
かき混ぜる円の半径を変える場合は、この例では、ｘ軸方向及びｙ軸方向にしか、インピーダンス制御でロボットアーム５を動作しないように動作する。動作補正部２０では、人４の力を受けて移動したロボットアーム５の手先位置の情報を制御部２２からの通知で受けて、図２５Ｂの動作テンプレート情報の半径の値を変更する。具体的には、人４の力を受けてロボットアーム５が半径方向にΔｒだけ移動したとすると、半径の値ｒからΔｒを動作補正部２０により減算する。すなわち、（ｒ−Δｒ）を動作補正部２０により計算する。
【０２４５】
次いで、その補正テンプレートに基づいて、再度、ロボットアーム５の手先位置及び姿勢情報を動作情報展開部１０で生成することで、図２２の（ｃ）に示すように、鍋３の中心付近を小さく描くような、かき混ぜ動作を実現することができる。
【０２４６】
以上の動作情報展開部１０と動作補正部２０と情報生成部２９と動作選択部２７と補正方法設定部２３と動作記憶部１５と動作情報データベース２０と環境情報データベース１８と補正パラメータデータベース１９と制御パラメータ管理部２１の動作ステップについて、図３２のフローチャートに基づいて説明する。
【０２４７】
情報生成部２９は、動作テンプレート情報と鍋３又はキッチンなどの環境情報とをインターネット２８を通じて外部のウェブサーバにある情報データベース１６から収集し、若しくは、画像認識などにより環境情報を収集し、収集した情報を動作情報データベース１７Ｂと環境情報データベース１８とに情報生成部２９により記憶する（ステップＳ２０）。
【０２４８】
次いで、先の実施形態のステップＳ４０と同様に、人４が、かき混ぜたい動作を、人４がロボットアーム５を実際に把持してロボットアーム５を移動させることで、ロボットアーム５にかき混ぜ動作を実行させることにより、ロボットアーム５の作業の一覧から、人４が、かき混ぜたい動作に対応するかき混ぜ作業を動作選択部２７により選択し、選択された作業を、動作情報データベース１７Ｂの進捗情報に現在の作業として動作選択部２７により設定する（ステップＳ２１）。
【０２４９】
次いで、動作情報データベース１７Ｂの進捗情報に現在の作業が設定されると、動作補正部２０は、制御パラメータ管理部２１へ、インピーダンス制御モードでロボットアーム５が動作するように動作指令を出してインピーダンス制御モードに設定し、人４はロボットアーム５を鍋３付近まで把持しながら誘導し（ステップＳ２２）、データ入力ＩＦ２６にて、かき混ぜ作業開始の指令を補正方法設定部２３に対して行う。
【０２５０】
次いで、動作情報展開部１０は、前記選択された作業について、動作テンプレートフラグが有効か否かを判断する（ステップＳ２３）。もし有効でない場合には、ステップＳ２５に進み、有効である場合には、ステップＳ２４に進む。選択された作業が動作パラメータの場合は（ステップＳ２３）（具体的には、図２４のフラグにて動作テンプレート情報が有効の場合、選択された作業が動作パラメータで示す動作で作業すると判断する場合）、ステップＳ２４では、環境情報と動作パラメータとからロボットアーム５の手先位置と姿勢と時間の情報を動作情報展開部１０で生成する。
【０２５１】
ステップＳ２５では、動作補正部２０の指令により、制御パラメータ管理部２１を介して、位置制御モードで、かき混ぜ動作を制御部２２により開始する（ステップＳ２５）。
【０２５２】
次いで、選択した動作において、ロボットアーム５の手先位置及び姿勢の情報が有効である場合は、その値で、かき混ぜ作業を制御部２２により開始する（ステップＳ２５）。
【０２５３】
次いで、補正方法を補正方法設定部２３で設定する。具体的には、人がデータ入力ＩＦ２６を入力して、補正方法設定部２３で「０」から「１」に設定することにより、データ入力ＩＦ２６及び補正方法設定部２３を介して、動作情報データベース１７Ｂにおいて、補正有無のフラグの情報を「０」から「１」に設定して、補正を開始させるなどの設定を補正方法設定部２３で行う（ステップＳ２６）。補正有りと設定された場合（補正有無のフラグが「０」から「１」に設定された場合）に、動作補正部２０は、補正方法設定部２３から出力された補正有無のフラグ「１」の情報を受けて、制御パラメータ管理部２１へ、ハイブリッドインピーダンス制御モードで動作するように指令を出して、ハイブリッドインピーダンス制御モードに設定する（ステップＳ２７）。制御部２２は、制御パラメータ管理部２１からのハイブリッドインピーダンス制御モードの動作指令を受けて、入出力ＩＦ２４を介してモータドライバ２５からモータ４３及び６２に制御指令値が入力されて、ロボットアーム５がハイブリッドインピーダンス制御モードでの動作を開始する。なお、補正無しと設定された場合（補正有無のフラグが「０」のままで変更されない場合、又は、補正有無のフラグが「１」から「０」に設定された場合）には、動作補正部２０は、制御パラメータ管理部２１へ位置制御モードで動作するように指令を出して、位置制御モードに設定して、以後、ロボットアーム５を補正無しでかつ位置制御モードで動作させる。
【０２５４】
次いで、補正パラメータに従って、ハイブリッドインピーダンス制御モード時のインピーダンス制御モードでの動作を拘束するために、インピーダンスパラメータの設定又はインピーダンス計算部５１で出力するロボットアーム５の手先位置及び姿勢目標補正出力ｒｄΔの設定を行う（ステップＳ２８）。前記インピーダンスパラメータの設定は、前記したように、データ入力ＩＦ２６及び補正方法設定部２３を介して動作補正部２０から制御パラメータ管理部２１へ、補正したい補正パラメータフラグを「１」にするような指令を入力する。また、インピーダンス計算部５１で出力する手先位置及び姿勢目標補正出力ｒｄΔの設定を行うときは、制御パラメータ管理部２１からインピーダンス計算部５１に入力された、補正するパラメータに応じて、インピーダンス計算部５１から位置誤差計算部８０に出力する手先位置及び姿勢目標補正出力ｒｄΔの設定を変更する。
【０２５５】
次いで、人４がロボットアーム５を把持して、補正したい方向に力を人４がロボットアーム５に加えることで、動作補正部２０が、動作情報データベース１７Ｂの動作情報を補正する（ステップＳ２９）。
【０２５６】
次いで、動作補正部２０により補正された動作情報は、動作記憶部１５により、動作情報データベース１７Ｂに記憶される（ステップＳ３０）。
【０２５７】
以上のように、動作テンプレート情報を有する動作情報データベース１７Ｂと環境データベース１８とを備えることにより、人４がロボットアーム５の全ての軌道を生成する必要がなくなり、効率的に作業をすることができる。さらに、補正パラメータデータベース１９にて、補正する動作テンプレート情報のパラメータ種別を設定することで、かき混ぜ動作の半径などを人４がロボットアーム５を直接把持して簡単に補正することができる。
【０２５８】
なお、前記第３実施形態で、補正パラメータは、動作テンプレート情報のパラメータを補正するとしたが、環境情報半径を補正パラメータとし、環境情報の一部のパラメータ（具体的には、鍋３の半径）を補正するように指示することで、同様の効果を得ることができる。
【０２５９】
また、前記第３実施形態で、補正パラメータは動作テンプレート情報のパラメータ(具体的には、かき混ぜ動作の半径)を補正するとしたが、第１実施形態と同様に、かき混ぜの高さを補正するようにしても良い。
【０２６０】
（第４実施形態）
本発明の第４実施形態における、ロボットアーム５の制御装置７０の基本的な構成は、第１実施形態及び第３実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
【０２６１】
図３３の（ａ）（図３３の（ｄ）は、図３３の（ａ）を上方から見た図）に示したように、ロボットシステム１のロボットアーム５を使用して鍋３を、ジグザグに、かき混ぜる作業をする場合を例に説明する。
【０２６２】
図３４は、ジグザグに、かき混ぜる作業を行う動作情報データベース１７Ｃ（図２３の動作情報データベース１７Ｂの位置に、動作情報データベース１７Ｂに代えて配置されている動作情報データベース１７Ｃ）を示し、それぞれのパラメータの定義は、第３実施形態の場合とそれぞれ同様であるので、それらの説明は省略する。
【０２６３】
動作情報展開部１０は、第３実施形態の場合と同様に、動作テンプレート情報と環境情報データベース１８から環境情報とを使用して、ロボットアーム５の手先位置である動作情報データベース１７Ｃの位置と姿勢と時間とを生成する。具体的には、例えば、図３４に示す動作情報データベース１７Ｃの「作業ＩＤ」が「１」でかつ「動作ＩＤ」が「１」の場合を例にとって、以下、説明する。
【０２６４】
「動作ＩＤ」が「１」の場合が示す動作情報は、図２７で示した３２ビットの数値で示すフラグの６ビット目が「１」で、残りが全て「０」であり（動作テンプレート情報のみ有効）、「動作テンプレートＩＤ」は「１」で、「時間」は３秒である。この動作情報で実行される動作は、図２６Ｂに示すように、ロボットアーム５が、ジグザグで、鍋３の中をかき混ぜる動作であって、この例では、１周期（図３３の（ｇ）に示す「逆Ｖ字状」の動作を１周期とする）に３秒かけてかき混ぜ動作することを示している。さらに、動作する環境情報は、第３実施形態の場合と同様に、「周辺環境」の「環境情報ＩＤ」が「１」で、かつ、「把持物体」の「環境情報ＩＤ」「４」であることから、図２８Ａの「環境情報ＩＤ」が「１」の「種別」は「１」で、「種別ＩＤ」は「１」であるので、図２８Ｂの「種別ＩＤ」が「１」を参照すると、中心座標（０．１ｍ，０．１ｍ，０．１ｍ）で半径０．２ｍ、高さ０．３ｍの鍋３のような円筒形の中で作用する（すなわち、ジグザグにかき混ぜ動作する）ことを示している。さらに、「環境情報ＩＤ」が「４」の「種別」は「１」でかつ「種別ＩＤ」は「２」であるので、図２８Ｂの「種別ＩＤ」が「２」の場合を参照すると、中心座標（０．１ｍ，０．１ｍ，０ｍ）で半径０．０１ｍ、高さ０．２ｍのレードル９のような円筒形の物体を、ロボットアーム５のハンド３０が把持していることを示している。
【０２６５】
まず、動作テンプレート情報からロボットアーム５の手先位置及び姿勢情報を動作情報展開部１０で生成する前に、図３１Ａに示すように、人４が、かき混ぜ動作を行う鍋３の付近までロボットアーム５を直接把持して誘導する。
【０２６６】
次に、動作情報展開部１０は、かき混ぜ作業開始の指令を、データ入力ＩＦ２６を介して補正方法設定部２３から受けると、環境情報データベース１８の情報から、かき混ぜ動作のロボットアーム５の手先位置のｚ軸成分の値を求める。具体的には、図３１Ｂのように鍋３の底から少し浮いた位置で、かき混ぜ動作をさせるとし、図３１Ａのロボットアーム５の手先位置Ｏｐのｚ座標をＯｐｚとし、図３１Ｂすなわち、補正後のロボットアーム５の手先位置Ｏｐ'のｚ座標をＯｐｚ'とし、レードル９と鍋３の高さは、それぞれ環境情報データベース１８よりｈ１（０．２ｍ）、鍋３の高さをｈ２（０．３ｍ）とすると、補正後のロボットアーム５の手先位置Ｏｐ'のｚ座標は、Ｏｐｚ'＝ Ｏｐｚ−（ｈ１−ｈ２）＋α  の式により動作情報展開部１０で計算される。なお、αを正の値とすれば、鍋３の底から少し浮かした位置で、かき混ぜ動作を実現することができる。
【０２６７】
次いで、ｘ座標及びｙ座標を動作情報展開部１０で求める。具体的には、図３５Ａのようにｚ軸の座標を保持した状態で、かき混ぜる動作を実現する。図３５Ｂは、鍋３を上方から見た図であり、ｍ（ｍｘ，ｍｙ）は鍋３の中心座標、ｒは鍋３の内側の半径を表す。これらの情報は、上述した情報生成部２９により環境情報データベース１８に記憶され、具体的には、図２８Ｂの「種別ＩＤ」が「２」として記憶されている。座標Ｃｐ１'、Ｃｐ２'、Ｃｐ３'の順に座標Ｃｐｎ'まで繰り返してロボットアーム５の手先位置を移動させていくことで、ロボットアーム５の手先が図３５Ｃのようなジグザグに移動する、かき混ぜが実現できる。
【０２６８】
具体的には、図３５Ｅのθ１は鍋３の中心周りの角度を表し、座標Ｃｐ１'のｘ座標ｘ１とｙ座標ｙ１は、半径ｒと中心座標ｍ（ｍｘ，ｍｙ）と角度θ１とを使って、ｘ１＝ｒcosθ１＋ｍｘ、ｙ１＝ｒsinθ１＋ｍｙで動作情報展開部１０により求められる。座標Ｃｐ２'は、図２５Ｅの座標２のｘ座標及びｙ座標のそれぞれについて、座標１のｘ座標及びｙ座標をそれぞれ動作情報展開部１０により減算した値（ｄｘ１、ｄｘ２）を、Ｃｐ１'の座標に動作情報展開部１０により加算した値とする。なお、上述の方法で動作情報展開部１０により算出した座標Ｃｐ２'が図３５Ｂの座標Ｃｐ２２'のように鍋３の外に出てしまった場合には、ｘ２＝ｒcosθ２＋ｍｘ、ｙ２＝ｒsinθ２＋ｍｙとして動作情報展開部１０により算出する。座標Ｃｐ３'のｘ軸及びｙ軸は、図２５Ｅの座標３から座標２を動作情報展開部１０により減算した値を、座標Ｃｐ２'に動作情報展開部１０により加算する。座標Ｃｐ４'は、図２５Ｅの座標２から座標３を動作情報展開部１０により減算した値を、Ｃｐ３'に動作情報展開部１０により加算する。座標Ｃｐ５'は、座標Ｃｐ３'と同様に、座標Ｃｐ５'＝（座標３−座標２）＋Ｃｐ４' として動作情報展開部１０により算出するとともに、座標Ｃｐ６'は、座標Ｃｐ４'と同様に、Ｃｐ６'＝（座標２−座標３）＋Ｃｐ５'として動作情報展開部１０により算出し、順次、座標Ｃｐ７'、座標Ｃｐ８'、座標Ｃｐ９'を動作情報展開部１０によりそれぞれ算出する。
【０２６９】
座標Ｃｐ９'のように鍋３の外になった時点で動作情報展開部１０による算出処理を終了し、鍋３の外になった座標Ｃｐ９'を削除して、座標Ｃｐ１'、Ｃｐ２'、・・・Ｃｐ７'、Ｃｐ８'、Ｃｐｎ'とし、ｚ軸の座標として上述したＯｐｚ'を代入することで、座標を求めることができる。時間については、図３３の（ｇ）に示す「逆Ｖ字状」の動作の１周期に３秒かかるので、例えば、座標Ｃｐ３'、座標Ｃｐ４'、座標Ｃｐ５'までが３秒であるので、座標Ｃｐ４'、座標Ｃｐ５'は、３／２秒となる。座標Ｃｐ２'から座標Ｃｐ３'までは約１／２周期となるので、３／２秒となる。座標Ｃｐ１'から座標Ｃｐ２'及び座標Ｃｐ８'から座標Ｃｐｎ'は、約１／４周期なので、３／４秒となる。
【０２７０】
動作情報展開部１０により生成した座標Ｃｐ１'、Ｃｐ２'、・・、Ｃｐｎ'の９つの座標とそれぞれの時間の情報は、例えば、図３４の動作情報データベース１７Ｃの「作業ＩＤ」の「４」の「動作ＩＤ」の「１」〜「９」に記憶する。その際に、動作情報データベース１７Ｃのフラグ情報は、図２７の位置及び姿勢のビット（０ビット目から５ビット目まで）を「１」と設定し、他のビットは「０」として設定する。
【０２７１】
さらに、補正パラメータは、「補正パラメータＩＤ」が「５」として記憶され、図２９の補正パラメータのうち「動作情報フラグ」は、位置及び姿勢が補正可能なので、図２７の０ビット目から５ビット目までを「１」に設定し、それ以外のビットを「０」に設定する。「環境情報フラグ」は、鍋３の半径と中心座標と高さとの情報が補正可能なので、図３０の０，１，２ビット目と１２、１３ビット目をそれぞれ「１」に設定し、その他は「０」を設定する。「動作テンプレートフラグ」は図２８Ｄのパラメータが補正可能なので、図３０の０ビット目から１１ビット目を「１」にそれぞれ設定し、その他は「０」を設定する。
【０２７２】
動作情報展開部１０は、動作テンプレート情報と環境情報データベース１８からの環境情報とに基づいて、ロボットアーム５の手先位置及び姿勢を算出し、図３４の「作業ＩＤ」の「４」の動作情報を動作情報データベース１７Ｃに記憶する。動作情報データベース１７Ｃに記憶された動作情報に基づいて、動作補正部２０は、位置制御モードで、かき混ぜ作業を実行するように制御パラメータ管理部２１へ指令を出して制御部２２でロボットアーム５を動作制御することで、位置制御モードでの、かき混ぜ動作を実行することができる。
【０２７３】
次に、人４が鍋３の中の具材の状況などを確認して、鍋３の中で、図３３の（ｃ）（図３３の（ｆ）は図３３の（ｃ）を上方から見た図）に示すように、もう少し鍋３の内側を中心に振幅を小さくかき混ぜる動作に変更したい場合を例にとって、かき混ぜ動作の補正について説明する。
【０２７４】
人４は、第１実施形態の場合と同様、補正方法設定部２３にて、補正有無のフラグを「０」から「１」に変更する。動作補正部２０は補正方法設定部２３からの補正有無のフラグ「１」を受けて、制御パラメータ管理部２１へ、後述するハイブリッドインピーダンス制御モード（位置制御モードでロボットアーム５が移動しながら、力検出部５３が人４の力を検出した方向にインピーダンス制御でロボットアーム５を移動させるモード）で動作するように、指令を動作補正部２０から出す。
【０２７５】
次いで、図３３の（ｂ）（図３３の（ｅ）は図３３の（ｂ）を上方から見た図）に示すように、人４がロボットアーム５を直接把持して、ロボットアーム５のハンド３０で把持したレードル９で鍋３の中心付近を小さくかき混ぜるように鍋３の内側に向かって力をロボットアーム５に加えると、ハイブリッドインピーダンス制御モードにより、位置制御モードでロボットアーム５を移動させながら、インピーダンス制御モードにより、人４の力を力検出部５３で検出して力を加えた方向にロボットアーム５をｙ軸方向に移動させて、図３３の（ｃ）のように、かき混ぜ動作を補正することができる。
【０２７６】
なお、この例では、かき混ぜる振幅をｙ軸方向に小さく補正するために、図２５Ｅの座標２と座標３を補正したいので、図２９の「補正パラメータＩＤ」が「４」のように、動作テンプレートフラグを図３０の３〜８ビット目のみを「１」にするような指令を、データ入力ＩＦ２６及び補正方法設定部２３を介して動作補正部２０から制御パラメータ管理部２１へ出す。このようにすることで、振幅を変える場合は、この例では、ｘとｙ軸方向にしか、インピーダンス制御でロボットアーム５が動作しないように設定することができる。動作補正部２０では、人４の力を受けて移動したロボットアーム５の手先位置の情報を制御部２２から受けて、図２５Ｄの動作テンプレート情報の座標２及び座標３の値を変更する。具体的には、人４の力を受けてロボットアーム５がｙ軸方向にΔｒ移動したとすると、座標３のｙ座標の値からΔｒを動作補正部２０により減算し、座標４のｙ座標の値にΔｒを動作補正部２０により加算する。次に、その補正テンプレートに基づいて、動作情報展開部１０により、再度、ロボットアーム５の手先位置及び姿勢情報を生成することで、図３３の（ｃ）（図３３の（ｆ））に示すように、鍋３の中心付近を小さな振幅で、かき混ぜ動作することが実現できる。
【０２７７】
以上の動作情報展開部１０と動作補正部２０と情報生成部２９と動作選択部２７と補正方法設定部２３と動作記憶部１５と動作情報データベース２０と環境情報データベース１８と補正パラメータデータベース１９と制御パラメータ管理部２１との動作ステップについては、第３実施形態の場合と同様であるので、省略する。
【０２７８】
以上のように、動作テンプレート情報と環境データベース１８とを備えることにより、人４がロボットアーム５の全ての軌道を生成する必要がなくなり、効率的に作業をすることができる。さらに、補正パラメータデータベース１９にて、補正する動作テンプレート情報のパラメータ種別を設定することで、かき混ぜ動作の半径などを人４がロボットアーム５を直接把持して簡単に補正することができる。
【０２７９】
また、第１実施形態で説明した動作選択部２７により、例えば、図３３の（ｇ）に示す「逆Ｖ字状」のような動きを、人４がロボットアーム５を直接把持してロボットアーム５に動作させることで、ジグザグに、かき混ぜる作業を選択することができる。
【０２８０】
（第５実施形態）
本発明の第５実施形態における、ロボットアーム５の制御装置７０の基本的な構成は、第１実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
【０２８１】
図３６は、ロボットシステム１を構成する、制御対象であるロボットアーム５と、ロボットアーム５の制御装置７０との詳細構成を示す図である。ロボットアーム５の制御装置７０は、図３６に詳細構成を示すように、制御装置本体部１１と、ロボットアーム５の動作を生成する動作生成装置１２と、周辺装置１４とを備えている第３実施形態にかかる図２３のロボットアーム５の制御装置７０において、ロボットアーム５と周辺装置１４と制御装置本体部１１と動作選択部２７と補正方法設定部２３とは、第３実施形態の場合とそれぞれ同様であるので、それらの説明は省略する。
【０２８２】
図３７は、動作情報データベース１７Ｄと周辺機器情報データベースの一例として機能する調理機器情報データベース６３の一例を示す。動作情報データベース１７Ｄは、第１実施形態の場合と同様であるので、その説明は省略する。
【０２８３】
調理機器情報データベース６３は、調理装置６の状況に関する情報（調理機器情報）が記憶されている。具体的には、「調理機器情報」は、動作ＩＤ番号に相当する動作にて、作動している調理装置６を識別するＩＤである「機器ＩＤ」（機器である調理装置６に関する情報を識別するために用いられる符号）と、調理装置６の動作状態を示す「制御ＩＤ」（調理装置６の動作制御に関する情報を識別するために用いられる符号）に関する情報とを備えて構成されている。例えば、図３７に示す「機器ＩＤ」の「１」が調理装置６の一例としてのＩＨクッキングヒータを示し、「制御ＩＤ」の「１００１」が動作状態の一例としての「強火で加熱」であり、「制御ＩＤ」の「１００２」が動作状態の他の例としての「中火で加熱」であり、「制御ＩＤ」の「１００３」が動作状態のさらに他の例としての「弱火で加熱」であることを示し、後述する情報生成部２９により、対応する指令を生成する。
【０２８４】
２９は情報生成部であり、情報生成部２９は、ロボットアーム５の周辺に存在している他の周辺機器、例えば、電子レンジ又はＩＨクッキングヒータなどの調理装置６の調理時間又は火加減などの調理機器情報を収集し、調理機器情報データベース６３に記憶する。なお、調理機器情報は、情報生成部２９により、インターネット２８を通じて外部のウェブサーバにある情報データベース１６から収集しても良い。
【０２８５】
調理装置６は、図３６に示すように、入出力部６５と制御部６６と動作部６７とを備えるよう構成されている。入出力部６５は、ロボットシステム１との入出力インタフェースであり、動作補正部２０及び情報生成部２９と接続されて、調理装置６の状態に関する情報の入出力を行う。制御部６６は、入出力部６５の調理装置６の状態に応じて、調理装置６の制御を行い、動作部６７にて、実際に調理装置６を動作させる。具体的には、図１に示すＩＨクッキングヒータ６の場合では、ロボットシステム１から火加減情報を指示し、制御部６６にて入力された火加減となるように制御し、動作部６７にてその火加減で動作させる。さらに、人４が手動で火加減を変更した場合には、その火加減情報を入出力部６５によりロボットシステム１に送信する。
【０２８６】
動作補正部２０は、第１実施形態の場合と同様に、動作情報データベース１７Ｄの位置と姿勢と時間とで、後述する位置制御モードでロボットアーム５の動作中に、人４が力をロボットアーム５に加えることで動作情報データベース１７Ｄの動作情報を補正する。さらに、補正が開始されたタイミングで、そのとき動作している「動作ＩＤ」に相当する周辺機器の一例としての調理装置６の「機器ＩＤ」の機器に対して、現在の「制御ＩＤ」を動作補正部２０が取得する。よって、動作補正部２０は、周辺機器に関する情報である周辺機器情報を取得する周辺機器情報取得部の一例としても機能することができる。具体的には、例えば、「機器ＩＤ」が「１」の場合はＩＨクッキングヒータ６であるため、ＩＨクッキングヒータ６の入出力部６５から、ＩＨクッキングヒータ６の現在の火加減の情報を動作補正部２０が取得する。動作補正部２０が取得した「制御ＩＤ」が「１００１」（強めに加熱）の場合は、「制御ＩＤ」を「１００１」（強めに加熱）から「１００３」（弱めに加熱）に変更して、変更された「制御ＩＤ」の情報を、動作補正部２０から調理装置６の入出力部６５へ送信する。調理装置６では、入力された火加減で（すなわち、この例では、弱めに加熱した状態で）かき混ぜ動作するよう変更する。さらに、かき混ぜ動作の補正が終了したタイミング（補正方法設定部２３で補正有無が設定され、補正の開始(補正有り)は「１」に設定されるのに対して、補正の終了(補正なし)は「０」と設定される場合、補正の終了(補正なし)を意味する「０」が設定されたタイミング又は時間）で、元の火加減１００１に戻すよう設定する。
【０２８７】
これにより、かき混ぜ動作の補正を行っている最中は、例えばＩＨクッキングヒータ６の場合に、火加減を弱めにすることで、具材の焦げなどを防止することができる。
【０２８８】
なお、既に補正時に１００３（弱めに加熱）となっており、これ以上弱めに変更できない場合は、火加減の変更はしない。
【０２８９】
（第６実施形態）
本発明の第６実施形態における、ロボットアーム５の制御装置７０の基本的な構成は、第１実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。なお、以下の説明では、第１実施形態との比較で説明するが、この第６実施形態は、第２〜５実施形態にもそれぞれ適用可能である。
【０２９０】
補正方法設定部２３が、第１実施形態では、動作情報データベース１７に記憶されている、補正をするかしないかの補正有無のフラグを設定することについて説明したが、動作情報データベース１７に記憶可能な、その他の設定について、以下、詳細に説明する。
【０２９１】
第１実施形態では、補正有無のフラグをデータ入力ＩＦ２６で切り替えるよう説明したが、別の方法について説明する。
【０２９２】
第１実施形態と同様に、ロボットアーム５が位置制御モードで、かき混ぜ動作を実行している最中に、人４がロボットアーム５を把持して補正したい方向に力を加える。図３８Ａのように、人４がロボットアーム５に加えた力が、ある閾値（図３８Ａの「ｔ１」参照）以上であり、その状態がある一定時間（図３８Ａの「ｔｉｍｅ１」参照）以上続いたと補正方法設定部２３が判断した場合に、補正方法設定部２３により、動作情報データベース１７に記憶されている補正有無のフラグを「０」から「１」に切り替えて、補正が可能な状態とする。なお、このとき、制御部２２(力検出部５３)から、制御パラメータ管理部２１と動作補正部２０とを経て、動作方法設定部２３に、順に、力情報が送信される。
【０２９３】
逆に、加えた力が閾値より小さくなったと補正方法設定部２３が判断した場合には、補正方法設定部２３により、動作情報データベース１７に記憶されている補正有無のフラグを「１」から「０」に切り替えて、補正不可能な状態とする。
【０２９４】
また、図３８Ｂのように、瞬時に強い力がかかったと補正方法設定部２３が判断した場合は、加えた力は閾値（図３８Ｂの「ｔ１」参照）以上になっているが、力を加えている時間が短いと補正方法設定部２３が判断した場合（図３８Ｂの「ｔｉｍｅ２」参照）は、補正方法設定部２３により補正不可能とする。これは、衝突など瞬時に大きな力がロボットアーム５にかかった場合に、ロボットアーム５の動作を誤って補正することを防ぐことができる。
【０２９５】
以上により、ボタンなどのデータ入力ＩＦ２６を使わずに、補正方法設定部２３により、補正の有無を切り替えることができる。
【０２９６】
さらに、何らかの補正が動作補正部２０で行われた後に、人４がデータ入力ＩＦ２６により、補正有無のフラグを「１」から「０」に戻した場合、若しくは、人４の力が、ある閾値より小さくなったと補正方法設定部２３により判断した場合に、補正が終わったと補正方法設定部２３により判断して、補正が終わった際に、補正した動きで動作するか、補正前の動作をするかの補正後の動作情報を設定するモードを、さらに、動作情報データベース１７に記憶してもよい。図３９のモードの第２欄に示す「補正後に補正した動作か元の動作か」のフラグに、補正後に「補正した動作」とする場合は「１」と設定し、補正後に「元の動作」に戻す場合は「０」を設定し、動作情報データベース１７に記憶する。この設定により、例えば、動作情報データベース１７に記憶されている「補正後に補正した動作か元の動作か」のフラグを「０」と設定しておくと、人４がロボットアーム５に手を加えた際にのみ、ロボットアーム５の動作を補正し、人４が手をロボットアーム５から離した場合は、ロボットアーム５を元の動作に動作補正部２０により戻すことができる。言い換えれば、人４がロボットアーム５に手を加えている間のみ、別の動作を行なわせることができる。
【０２９７】
さらに、別の例として、何らかの補正が動作補正部２０で行われた後に、補正後の動作でロボットアーム５を動作させる場合において、元の動作の代わりに、補正した動作でロボットアーム５を動作させるか（上書きモード）、元の動作と、補正した動作とを交互にロボットアーム５で動作させるか（挿入モード）を設定して動作情報データベース１７に記憶することもできる。図３９のモードの第３欄に示す「上書きか挿入か」のフラグに、「上書きモード」の場合は「１」として設定し、「挿入モード」の場合は「０」として設定し動作情報データベース１７に記憶する。この設定により、例えば、動作情報データベース１７に記憶されている「上書きか挿入か」のフラグが「０」に設定された場合には、補正前の動作と補正後の動作を交互に動作させることができる。
【０２９８】
さらに、動作情報データベース１７で動作中に、動作補正部２０で補正している最中に、ロボットアーム５の動作が速すぎる場合には人４がロボットアーム５を直接把持しにくいことから、ある速度以上でロボットアーム５が動作していて、人４がロボットアーム５に力を加えて補正する場合、若しくは、「補正有無」のフラグで「１」を設定した場合（補正有りの場合）に、ロボットアーム５の速度を、ある閾値以下に低速にするか、低速にしないかの動作速度の動作情報を設定し、動作情報データベース１７に記憶することができる。図３９のモードの第４欄の「低速にするかしないか」のフラグで、「低速にする」場合は「１」と設定し、「低速にしない」場合は「０」を設定し、動作情報データベース１７に記憶する。この設定により、ロボットアーム５の動作が速すぎて人４がロボットアーム５を把持できない場合は、動作情報データベース１７に記憶されている「低速にするかしないか」のフラグが「１」に設定された場合、ロボットアーム５の動作を低速にすることができて、ロボットアーム５を人４が安全に把持してロボットアーム５の動作を補正することができる。
【０２９９】
なお、それぞれの設定は、データ入力ＩＦ２６により人４が動作情報データベース１７に対して前記したように設定しても良いし、システム出荷時にあらかじめ製造メーカなどが動作情報データベース１７に対して前記したように設定しておいても良い。
【０３００】
第１実施形態又は第３実施形態のように、人４の力を受けて、ロボットアーム５が動作をする際に、動作補正部２０は、補正方法設定部２３から出力された補正有無のフラグ「１」を受けて、制御パラメータ管理部２１へハイブリッドインピーダンス制御モード（位置制御モードでロボットアーム５が移動しながら、人４の力を検出した方向にインピーダンス制御でロボットアーム５を移動させるモード）でロボットアーム５が動作するように指令を出す。その際に、動作情報データベース１７に記憶されている「低速にするかしないか」のフラグが「１」に補正方法設定部２３で設定されている場合には、動作補正部２０は、ハイブリッドインピーダンス制御モードでの位置制御時でのロボットアーム５の動作を低速にするために、動作情報データベース１７の「時間」の値を大きく（例えば２倍の値とするなど）設定した動作情報を制御パラメータ管理部２１へ指令を出す。これにより、位置制御時での動作の速度は低速に変更される。
【０３０１】
以上の設定後、第１実施形態又は第３実施形態のように、人４がロボットアーム５を直接把持して、ロボットアーム５の動作の変更を行う。
【０３０２】
次に、補正方法設定部２３の、ロボットアーム５の動作の補正後に、補正した動作に変更するか、元の動作に戻すかの設定で、元に動作に戻すと設定されている場合（「補正後に補正した動作か元の動作か」のフラグが「０」の場合）は、補正が終わった際に(補正有無のフラグが「０」に戻った際に)、第１実施形態の場合に、補正するｚ成分の差分値であるΔｚ分（ｚ軸方向の補正値）を、動作補正部２０により、動作情報の全てのｚ座標の値に加算して、動作記憶部１５により、動作情報データベース１７の動作情報に記憶する。補正した動作に変更する場合（「補正後に補正した動作か元の動作か」のフラグが「１」の場合）は、さらに補正方法設定部２３の、上書きモード（「上書きか挿入か」のフラグが「１」の場合）の場合は、動作情報の全てのｚ座標の値からΔｚ分だけ動作補正部２０により減算した動作情報を、動作記憶部１５により、動作情報データベース１７に記憶する。具体的には図３の「作業ＩＤ」が「３」の全ての行について、ロボットアーム５の手先位置のｚ座標をΔｚ分だけ動作補正部２０により減算して、動作記憶部１５により、動作情報データベース１７に記憶する。挿入モード（「上書きか挿入か」のフラグが「０」の場合）の場合は、動作記憶部１５で、動作情報データベース１７の動作情報のうちの、元の動作（例えば、図３の「作業ＩＤ」が「３」の８行の動作）の後ろの行に、元の動作のそれぞれの位置のうちのｚ座標をΔｚだけ動作補正部２０により減算した値を８行だけ追加する。なお、挿入モードの場合は、元の動作の後に、補正した動作を挿入するため、元の動作と、補正した動作の繋ぎ目の時間が短い場合には、動作が急に切り替わることがある。その場合に、動作補正部２０により、切り替わりの動作の時間を大きくすることで、低速で切り替えることが可能になる。さらに、動作補正部２０により、切り替わりの「動作ＩＤ」が示す動作情報と同じ動作を１行だけ直後にコピーして、切り替わり時に、そのような動作を挿入しておくことで、その位置情報で停止する動作を挿入することができ、急な切り替わりを防ぐことができる。
【０３０３】
以上より、人４がロボットアーム５に加えた力の状態により、ロボットアーム５の動作の補正の有無を切り替えることで、ボタンなどを使わずに、ロボットアーム５の動作を簡単に補正することができ、さらに、ロボットアーム５と、人４又は他の物体との衝突などの際には、ロボットアーム５の動作を誤って補正しないようにすることができようになる。さらに、補正後の動作を、上書きするか又は挿入するかを設定することで、補正後の動作のみをするのか、又は、補正前と補正後の動作を組み合わせて、ロボットアーム５に動作させるのかを切り替えることができるようになる。さらに、補正中のロボットアーム５の動作を低速にすると設定していた場合には、ロボットアーム５の動作が速すぎて人４がロボットアーム５を把持できない場合は、ロボットアーム５の動作を低速にすることで、ロボットアーム５を人４が安全に把持してロボットアーム５の動作を補正することができる。
【０３０４】
（第７実施形態）
本発明の第７実施形態における、ロボットアーム５の制御装置７０の基本的な構成は、第１実施形態の場合と同様であるので、共通部分の説明は省略し、異なる部分についてのみ以下、詳細に説明する。
この第７実施形態において、図４０に示すように、セル生産の工場でテレビ又はＤＶＤレコーダなどの電気機器に、ネジ７３を取り付ける場合を例にとって説明する。
【０３０５】
図４０に示したように、ロボットシステム１のロボットアーム５は、例えば工場内の作業台テーブルなどの作業台７の壁面７ａに設置され、ロボットアーム５の基端が、壁面７ａに固定されたレール８に、移動可能に支持され、レール８上をロボットアーム５がレール８沿いの横方向例えば水平方向に、人４の力により、移動可能とする。
【０３０６】
前記ロボットシステム１は、工場内で、ロボットアーム５と人４とが協働して行う作業、例えば、テレビ又はＤＶＤレコーダへのネジ７３の取り付け作業をロボットアーム５を使用して行う、作業ロボットシステムである。
【０３０７】
第１実施形態と同様に、まず、人４がロボットシステム１のロボットアーム５を直接把持又は押すことにより、人４がロボットアーム５に力を加える。そして、人４からロボットアーム５に加えられた力により、ロボットシステム１のロボットアーム５をレール８に沿って移動させることで、器具７１（この例では、ネジを取り付けるテレビ又はＤＶＤレコーダの電気機器を示す）の付近までロボットアーム５を誘導するように移動させる。
【０３０８】
次に、人４が、ロボットシステム１のロボットアーム５の手先すなわち先端のハンド３０に、ネジ７３を電気機器に取り付けるための工具、例えば、電動ドライバー器具７２を取り付ける。電動ドライバー器具７２の動作は、制御パラメータ管理部２１により自動的に制御される。
【０３０９】
次に、セル生産の作業台などの側面などに配置されている、ロボットシステム１の操作盤１３のボタン１３ａを、人４が押すなどしてデータ入力ＩＦ２６を使用することにより、ロボットアーム５が作動し、予め選択された作業、すなわち、ネジ７３をネジ入れ７５から取り出し、器具７１のネジ穴７１ａにネジ７３を取り付ける作業を開始させる。以下、一例として、まず、ロボットアーム５により、ネジ７３の取り付け作業を行う場合について説明する。
【０３１０】
次に、ロボットアーム５が、ハンド３０で把持した電動ドライバー７２によりネジ７３の取り付け作業を行っているときに、人４がネジ７３の取り付け状態を確認し、人４がロボットアーム５に力を加えて、ネジ７３の締め付け方、又は、ネジ７３の位置の調整などの動作を行わせることにより、動作記憶部１５により動作情報データベース１７に記憶された情報を利用して、後述する動作選択部２７で最適なネジ７３の取り付け作業を選択させ、後述する表示部２に表示された補正手順に従って、人４が、ロボットシステム１のロボットアーム５を直接把持又は押すことにより、補正したい方向に力をロボットアーム５に加えて、ロボットシステム１のロボットアーム５の動作を補正する。
【０３１１】
レール８は、作業台７の壁面７ａに配置したが、壁面の無い作業台の場合は、第１実施形態と同様に天井面又は作業台の天板側面など作業をするのに適した場所に設置することができる。
【０３１２】
さらに、操作盤１３は、作業台７の側面に固定したが、操作盤１３に代えて、遠隔操作が可能なリモコンでも良い。
【０３１３】
図４１は、ロボットシステム１を構成する、制御対象であるロボットアーム５と、ロボットアーム５の制御装置７０との詳細構成を示す図である。
【０３１４】
ロボットアーム５の制御装置７０は、図４１に詳細構成を示すように、制御装置本体部１１と、ロボットアーム５の動作を生成する動作生成装置１２と、周辺装置１４と、ネジ位置検出部とを備えている。図４１において、ロボットアーム５と周辺装置１４と制御装置本体部１１と動作選択部２７と補正方法設定部２３は、第１実施形態の場合とそれぞれ同様であるので、それらの説明は省略する。
【０３１５】
図４２に示す動作情報データベース１７Ｅは、第１実施形態の動作情報データベース１７又は第２実施形態の動作情報データベース１７Ａに相当する動作情報データベースであって、ロボットアーム５の、ある時間における位置及び姿勢など動作に関する情報であって、かつ、後述する情報生成部２９で生成した情報が、動作情報データベース１７Ｅに記憶される。
【０３１６】
さらに、環境情報データベース１８Ａは、ロボットアーム５と人４とが協働して作業を行うときのロボットアーム５の環境に関する情報であって、例えば、電動ドライバーなどの器具７２又は電気機器などの器具７１、ネジ７３などロボットアーム５が動作する際に必要となる道具などの部材に関する情報が記憶されており、後述する情報生成部２９で環境情報を生成し、情報生成部２９により環境情報データベース１８に記憶される。
【０３１７】
補正パラメータデータベース１９Ａは、後述する動作補正部２０で動作情報データベース１７Ｅの動作情報を補正する際の補正すべきパラメータの種別に関する情報であり、情報生成部２９で生成され、補正パラメータデータベース１９に情報生成部２９で記憶される。
【０３１８】
次に、動作情報データベース１７Ｅの詳細について説明する。
【０３１９】
動作情報データベース１７Ｅは、例えば、図４２に示したロボットアーム５の動作に関する情報で、「作業ＩＤ」と、「動作ＩＤ」と、「位置姿勢」と、「力」と、「フラグ」と、「ハンド」と、「時間」と、「補正パラメータフラグ」と、「進捗情報」とは、第１実施形態及び第２実施形態の場合とそれぞれ同様であるので、それらの説明は省略する。
【０３２０】
図４２の動作情報データベース１７Ｅの「環境情報ＩＤ」（環境情報を識別するために用いられる符号）は、２種類の「環境情報ＩＤ」より構成されている。そのうちの１つ目の「環境情報ＩＤ」が表す「周辺環境」に関する情報は、ロボットアーム５が作用する周辺環境に関する情報であり、例えば、ロボットアーム５が、ネジ７３の取り付け作業をしている場合は、器具７１又は器具７１のネジ穴７１ａの位置及び大きさなどの情報を表す。２つ目の「環境情報ＩＤ」が表す「把持物体」に関する情報は、ロボットアーム５が把持している物体に関する情報で、例えば、ロボットアーム５が、ネジ７３の取り付け作業をしている場合は、ロボットアーム５が把持している電動ドライバー７２などの動作情報を表す。それぞれの「環境情報ＩＤ」は、後述する図４３Ａに示す「環境情報ＩＤ」のうちのいずれかの値であり、どの環境下で動作するかを表す情報である。
【０３２１】
環境情報データベース１８は、例えば、図４３Ａに示したロボットアーム５の動作環境に関する情報で、環境を識別する環境情報ＩＤ番号を表す「環境情報ＩＤ」と、その環境情報の種別を表す「種別」と、それぞれの種別を識別するための「種別ＩＤ」とを備えるように構成されている。環境情報の「種別」に応じて、それぞれ、図４３Ｂと図４３Ｄと図４３Ｆとに示す情報から構成されている。すなわち、図４３Ａの環境情報の「種別」が「１」の場合は、図４３Ｂの表を参照し、図４３Ａの環境情報の「種別」が「２」の場合は、図４３Ｄの表を参照し、図４３Ａの環境情報の「種別」が「３」の場合は、図４３Ｆの表を参照する。例えば、図４３Ａの環境情報の「種別」が「１」でかつ「種別ＩＤ」が「１」の場合は、図４３Ｂの表の「種別ＩＤ」が「１」の場合に対応し、その一致した値（中心座標ｃ１、半径ｒ１、高さｈ１、中心座標ｃ２、半径ｒ２、高さh２）をその「環境情報ＩＤ」の環境情報とする。
【０３２２】
例えば、図４３Ｂは、図４３Ｃのような物体を表す情報であり、この情報により、ネジ７３又は電動ドライバー７２などを近似的に表すことができる。
【０３２３】
図４３Ａの環境情報の「種別」が「２」でかつ「種別ＩＤ」が「１」の場合は、図４３Ｄの表の「種別ＩＤ」が「１」の場合に対応し、その一致した値（座標１、座標２、座標３、高さ）をその「環境情報ＩＤ」の環境情報とする。図４３Ｅのような直方体を表す情報で、この情報により、作業台７上のＴＶ又はＤＶＤレコーダなどの電気機器７１、又は、ネジ７３が格納されているネジ入れ７５、又は、作業台７などを近似的に表すことができる。具体的には、直方体の上面は、上面の、ある１点の座標（図４３Ｅでは上面の１つの隅部の「座標２」）と、その座標（図４３Ｅでは上面の１つの隅部の「座標２」）と隣合う２点の座標（図４３Ｅでは上面の前記隅部「座標２」と隣合う２つの隅部の「座標１」と「座標３」）とで表され、その上面と直交する方向の高さの情報とをさらに備えて構成されている。図４３Ａの環境情報の「種別」が「３」でかつ「種別ＩＤ」が「１」の場合は、図４３Ｆの「種別ＩＤ」が「１」の場合に対応し、その一致した値（中心座標、半径）をその「環境情報ＩＤ」の環境情報とする。図４３Ｆは、図４３Ｇのような円に関する情報であり、この情報により、例えばＴＶ又はＤＶＤレコーダ上部のネジ穴７１ａなどを近似的に表す事ができる。具体的には、円の中心座標と半径の情報から構成される。
【０３２４】
図４１に戻って、２９は情報生成部である。情報生成部２９は、後述する外部（インターネット２８など）からの入力情報とデータ入力ＩＦ２６からの入力情報と制御パラメータ管理部２１からの入力情報とに基づき、動作情報データベース１７Ｅの動作情報と環境情報データベース１８Ａの環境情報と補正パラメータデータベース１９Ａの補正パラメータとを生成して、動作情報データベース１７Ｅと環境情報データベース１８Ａと補正パラメータデータベース１９Ａにそれぞれ出力する。
【０３２５】
環境情報データベース１８Ａは、例えば、ネジ７３と、電動ドライバー７２と、ＴＶ又はＤＶＤレコーダなどの電気機器７１と、作業する作業台７となどにＲＦＩＤタグをそれぞれ付け、それらの物体の位置を、タグ検出器でそれぞれ検出する。さらに、情報生成部２９により、インターネット２８を通じて外部のウェブサーバにある情報データベース１６から物体の寸法情報を収集し、環境情報データベース１８Ａに記憶する。
【０３２６】
なお、情報生成部２９の別の例として、カメラなどの画像撮像装置で環境を撮影し、得られた画像データと、あらかじめ記憶された物体の画像との間でモデルマッチング処理を行い、物体の寸法又は物体の位置を抽出して、環境情報データベース１８Ａに記憶するようにしても良い。
【０３２７】
さらに、情報生成部２９の別の例として、超音波タグシステムを使用して、物体に超音波発信機を設置し、超音波発信機が発する超音波を、天井などに備えられた複数の超音波受信機にて受信し、超音波の到達時間差から超音波発信機の３次元位置（３次元位置座標の値）を算出して、環境情報データベース１８Ａに記憶するようにしても良い。
【０３２８】
動作情報データベース１７Ｅのロボットアーム５の手先位置及び姿勢に関する情報は、後述する動作情報展開部１０により、環境情報データベース１８に基づいて生成した後、ロボットアーム５の手先位置と姿勢と時間との情報を作成して、動作情報データベース１７Ｅに記憶する。
【０３２９】
動作情報展開部１０は、環境情報データベース１８Ａから、ロボットアーム５の手先位置である動作情報データベース１７Ｅの位置と姿勢と時間の動作情報を生成する。具体的には、図４０のネジ入れ７５からネジ７３を取り出し、電気機器７１上のネジ穴７１ａまで移動して、ネジ７３をネジ穴７１ａに対して、上部から押し付ける軌跡を生成する。生成した軌跡（位置と姿勢）は時間とともに、動作情報データベース１７Ｅに記憶する。
【０３３０】
次に、人４がネジ７３の取り付け作業の状況などを確認して、もう少し強めに締め付けるように、動作の補正を行う場合について説明する。
【０３３１】
人４は第２実施形態の場合と同様に、データ入力ＩＦ２６を使用して補正方法設定部２３にて、補正有無のフラグを「０」から「１」に変更し、さらに、補正パラメータのｚ軸方向の力のみを補正をするために、図１６の補正パラメータの８ビット目のみを「１」にする制御指令を、補正方法設定部２３から動作補正部２０を介して制御パラメータ管理部２１へ出す。制御パラメータ管理部２１は、補正パラメータの６〜１１ビット目（力成分）のうちのいずれかが「１」であるときは、第２実施形態と同様に、高剛性位置制御モードで動作するような制御指令を、制御部２２へ出す。
【０３３２】
この制御部２２への指令時に、高剛性位置制御モードでは、方向別に位置制御時の高剛性を設定することができるため、ｚ軸方向のみ高剛性位置制御モードでロボットアーム５が動作し、その他の方向は通常の位置制御モードでロボットアーム５が動作するような制御指令を、制御パラメータ管理部２１から制御部２２へ出す。そして、制御部２２は、前記制御指令に基づき、ロボットアーム５で把持している電動ドライバー７２でネジ穴７１ａにネジ７３を押し付けながら、ネジ７３の取り付け作業を制御する。
【０３３３】
制御部２２の力検出部５３で検出された力を、制御パラメータ管理部２１を介して動作補正部２０に通知する。そして、動作補正部２０は、動作情報データベース１７Ａのｚ軸方向の力を、動作補正部２０に通知された力に置き換えて、動作記憶部１５で動作情報データベース１７Ｅに記憶して、記憶された情報に基づいてロボットアーム５を動作させることで、強めにネジ７３の取り付け作業するように、ロボットアーム５の動作を補正することができる。
【０３３４】
このようにしてロボットアーム５がネジ７３の取り付け作業を行う場合で、かつ、ロボットアーム５が、ネジ７３を強めに締め付けるような動作をする場合に、人４がロボットアーム５を直接把持して、ネジ穴７１ａに向かって下方向に、ネジ７３の取り付け作業をしているロボットアーム５に人４が加えたい力を、人４がロボットアーム５に加える。
【０３３５】
なお、リサイクル工場でテレビ又はエアコンなどのネジを取り外す場合も同様に適応可能である。また、ネジを緩めに締め付ける場合は、弱めに力を加えることで、同様に補正することができる。さらに、情報生成部２９で環境情報データベース１７Ｅを生成する際に、各々の環境情報の検出精度が悪いために、ロボットアーム５がネジ穴とは異なる場所でネジを締めつけるような誤動作、又は、ロボットアーム５の先端がネジ入れ７５に衝突して、ロボットアーム５が停止してしまうような場合において、第１実施形態と同様に、ロボットアーム５の手先位置を人４が補正することで、簡単に誤操作を回避することが可能となる。
【０３３６】
なお、前記第３実施形態などでは、作業手順情報は、インターネット２８を通じて収集するとしたが、ＳＤカードなどのメモリ又はＤＶＤなどのメディアから情報生成部２９により収集しても良い。
【０３３７】
さらに、前記各実施形態ではロボットアーム５を例に説明したが、本発明は、アームに限らず、車輪により動く移動ロボット、又は、２足歩行ロボット、多足歩行ロボットなどにも適用することができ、移動ロボットなどと人間との接触に関して同様の効果を発揮する。
【０３３８】
なお、各実施形態において、動作選択部２７と動作記憶部１５と動作補正部２０と補正方法設定部２３と制御パラメータ管理部２１と制御部２２と情報生成部２９と動作情報展開部１０となどのそれぞれ、又は、そのうちの任意の一部は、それ自体がソフトウェアで構成することができる。よって、例えば、本願明細書のそれぞれの実施形態の制御動作を構成するステップを有するコンピュータプログラムとして、記憶装置（ハードディスク等）などの記録媒体に読み取り可能に記憶させ、そのコンピュータプログラムをコンピュータの一時記憶装置（半導体メモリ等）に読み込んでＣＰＵを用いて実行することにより、前記した各ステップを実行することができる。
【０３３９】
また、ＩＳＯ  １０２１８−１にて、人とロボットが安全に協調して動作する際には、速度又は力、パワーなどの制限が規格化されている。本実施の形態においても、速度又は力、パワーを規格に準拠して、それらを制限するような制限部を設けても良い。
【０３４０】
さらに、各実施形態では、力検出部を使って、人が加えた力を検出することで、ロボットアーム５を操作したが、接触センサで人が加えた力を検出したり、カメラなどを使って、人の手先位置を検出することで、人が操作した操作軌跡を得て、補正しても良い。
【０３４１】
また、各実施形態では、人が直接ロボットアームを把持して操作したが、例えばティーチングペンダントなどのリモコン、又は遠隔教示のための操作用ロボットアーム等を使って操作をしても良い。
【０３４２】
さらに、前記様々な実施形態のうちの任意の実施形態を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【０３４３】
本発明は、産業用ロボット又は家庭用ロボットなど人とロボットが協働して作業を行う際のロボットアームの動作の制御を行なう、ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路として有用である。また、家庭用ロボットに限らず、産業用ロボット、リサイクル工場での解体を行う産業用ロボット、セル生産を行っている工場で稼動するロボット、生産設備等における可動機構のロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、及びロボットアームの制御プログラムとしても適用が可能である。
【０３４４】
本発明は、添付図面を参照しながら好ましい実施形態に関連して充分に記載されているが、この技術の熟練した人々にとっては種々の変形又は修正は明白である。そのような変形や修正は、添付した請求の範囲による本発明の範囲から外れない限りにおいて、その中に含まれると理解されるべきである。
【符号の説明】
【０３４５】
１    ロボットシステム
２    表示部
３    第１の器具（鍋）
４    人
５    ロボットアーム
６    調理装置（ＩＨクッキングヒータ）
７    作業台
８    レール
９    第２の器具（レードル）
１０  動作情報展開部
１１  制御装置本体部
１２  動作生成装置
１３  操作盤
１３ａ  ボタン
１４  周辺装置
１５  動作記憶部
１６  情報データベース
１７，１７Ａ，１７Ｂ，１７Ｃ，１７Ｄ  動作情報データベース
１８  環境情報データベース
１９  補正パラメータデータベース
２０  動作補正部
２１  制御パラメータ管理部
２２  制御部
２３  補正方法設定部
２４  入出力ＩＦ
２５  モータドライバ
２６  データ入力ＩＦ
２７  動作選択部
２８  インターネット
２９  情報生成部
３０  ハンド
３１  手首部
３２  前腕リンク
３３  上腕リンク
３４  台部
３５  第１関節部
３６  第２関節部
３７  第３関節部
３８  第４関節部
３９  第５関節部
４０  第６関節部
４１  絶対座標系
４２  手先座標系
４３  モータ
４４  エンコーダ
４６  スポンジ
５１  インピーダンス計算部
５３  力検出部
５４  ハンド制御部
５５  目標軌道生成部
５６  位置誤差補償部
５７  近似逆運動学計算部
５８  順運動学計算部
５９  位置制御部
６１  エンコーダ
６２  モータ
６３  調理機器情報データベース
６５  入出力部
６６  制御部
６７  動作部
７０  ロボットアームの制御装置
Ｇ  天板の汚れのひどい部分
【図１】
2010137357.tif 000013
【図２Ａ】
2010137357.tif 000014
【図２Ｂ】
2010137357.tif 000015
【図３】
2010137357.tif 000016
【図４】
2010137357.tif 000017
【図５】
2010137357.tif 000018
【図６】
2010137357.tif 000019
【図７】
2010137357.tif 000020
【図８】
2010137357.tif 000021
【図９】
2010137357.tif 000022
【図１０】
2010137357.tif 000023
【図１１】
2010137357.tif 000024
【図１２】
2010137357.tif 000025
【図１３】
2010137357.tif 000026
【図１４Ａ】
2010137357.tif 000027
【図１４Ｂ】
2010137357.tif 000028
【図１５】
2010137357.tif 000029
【図１６】
2010137357.tif 000030
【図１７】
2010137357.tif 000031
【図１８】
2010137357.tif 000032
【図１９】
2010137357.tif 000033
【図２０】
2010137357.tif 000034
【図２１】
2010137357.tif 000035
【図２２】
2010137357.tif 000036
【図２３】
2010137357.tif 000037
【図２４】
2010137357.tif 000038
【図２５Ａ】
2010137357.tif 000039
【図２５Ｂ】
2010137357.tif 000040
【図２５Ｃ】
2010137357.tif 000041
【図２５Ｄ】
2010137357.tif 000042
【図２５Ｅ】
2010137357.tif 000043
【図２５Ｆ】
2010137357.tif 000044
【図２５Ｇ】
2010137357.tif 000045
【図２６Ａ】
2010137357.tif 000046
【図２６Ｂ】
2010137357.tif 000047
【図２６Ｃ】
2010137357.tif 000048
【図２７】
2010137357.tif 000049
【図２８Ａ】
2010137357.tif 000050
【図２８Ｂ】
2010137357.tif 000051
【図２８Ｃ】
2010137357.tif 000052
【図２８Ｄ】
2010137357.tif 000053
【図２８Ｅ】
2010137357.tif 000054
【図２８Ｆ】
2010137357.tif 000055
【図２８Ｇ】
2010137357.tif 000056
【図２９】
2010137357.tif 000057
【図３０】
2010137357.tif 000058
【図３１Ａ】
2010137357.tif 000059
【図３１Ｂ】
2010137357.tif 000060
【図３１Ｃ】
2010137357.tif 000061
【図３１Ｄ】
2010137357.tif 000062
【図３２】
2010137357.tif 000063
【図３３】
2010137357.tif 000064
【図３４】
2010137357.tif 000065
【図３５Ａ】
2010137357.tif 000066
【図３５Ｂ】
2010137357.tif 000067
【図３５Ｃ】
2010137357.tif 000068
【図３５Ｄ】
2010137357.tif 000069
【図３５Ｅ】
2010137357.tif 000070
【図３６】
2010137357.tif 000071
【図３７】
2010137357.tif 000072
【図３８Ａ】
2010137357.tif 000073
【図３８Ｂ】
2010137357.tif 000074
【図３９】
2010137357.tif 000075
【図４０】
2010137357.tif 000076
【図４１】
2010137357.tif 000077
【図４２】
2010137357.tif 000078
【図４３Ａ】
2010137357.tif 000079
【図４３Ｂ】
2010137357.tif 000080
【図４３Ｃ】
2010137357.tif 000081
【図４３Ｄ】
2010137357.tif 000082
【図４３Ｅ】
2010137357.tif 000083
【図４３Ｆ】
2010137357.tif 000084
【図４３Ｇ】
2010137357.tif 000085