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