(57)【要約】【課題】適切な位置に作用する力に基づいてマニュピレーターを制御できる技術の提供。【解決手段】本発明のロボット制御装置は、マニュピレーターと、前記マニュピレーターを駆動する駆動部と、力検出器と、を備えるロボットを制御するロボット制御装置であって、制御パラメーターに応じて前記駆動部を制御する力制御を行う駆動制御部と、前記制御パラメーターの入力を受け付ける受付部と、前記制御パラメーターによる前記駆動部の駆動に応じて得られる前記力検出器の出力波形を、当該制御パラメーターと同時に表示させる表示部と、を備える。【選択図】図７
2017030059.tif 000002
【特許請求の範囲】
【請求項１】
マニュピレーターと、前記マニュピレーターを駆動する駆動部と、力検出器と、を備えるロボットを制御するロボット制御装置であって、
制御パラメーターに応じて前記駆動部を制御する力制御を行う駆動制御部と、
前記制御パラメーターの入力を受け付ける受付部と、
前記制御パラメーターによる前記駆動部の駆動に応じて得られる前記力検出器の出力波形を、当該制御パラメーターと同時に表示させる表示部と、
を備えるロボット制御装置。
【請求項２】
前記力検出器が検出した検出力を、前記マニュピレーター上または前記マニュピレーターが把持する把持対象物上において任意に設定されるコンプライアンスセンターポイントに作用する力である作用力に変換する力変換部を備え、
前記表示部は、前記出力波形として前記作用力の波形を表示する、
請求項１に記載のロボット制御装置。
【請求項３】
前記駆動制御部は、前記マニュピレーター上または前記マニュピレーターが把持する把持対象物上において設定されたツールセンターポイントの位置が予め設定された目標位置に近づくように前記駆動部を制御する位置制御を行い、
前記コンプライアンスセンターポイントと前記ツールセンターポイントとは同一の位置である、
請求項２に記載のロボット制御装置。
【請求項４】
前記表示部は、予め記憶媒体に記憶された力の時間応答波形と、前記作用力の時間応答波形とを対比可能に表す、
請求項１から請求項３のいずれか一項に記載のロボット制御装置。
【請求項５】
請求項１から請求項４のいずれか一項に記載のロボット制御装置によって前記駆動部が制御される、
ロボット。
【請求項６】
請求項１から請求項４のいずれか一項に記載のロボット制御装置と、
前記ロボット制御装置によって前記駆動部が制御されるロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボットおよびロボットシステムに関する。
【背景技術】
【０００２】
ロボットの手首に取り付けられた力覚センサーが検出した力を目標力に加えてロボットを制御するロボット制御装置が知られている（特許文献１、参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７３４０３２３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の力覚センサーはロボットの手首に作用している力を検出できるが、現実にロボットが嵌合等の作業を行う対象のワークに作用している力を検出できないという問題があった。例えば、ワークに作用している力よりもロボットの手首に作用している力が小さい場合に、ロボットの手首に作用している力に基づいてロボットを制御すると、過大な力がワークに作用し、ワークを破損する等の問題があった。ロボットの手首やワークに作用する力は、力制御における制御パラメーターを調整することにより適正化させることができる。しかしながら、制御パラメーターをどのように変更したらどのような力が作用することになるかを予測することが困難であり、力制御の制御パラメーターを容易に設定できないという問題があった。
本発明は、前記問題を解決するために創作されたものであって、力制御の制御パラメーターを容易に設定できる技術の提供を目的とする。
【課題を解決するための手段】
【０００５】
前記目的を達成するためのロボット制御装置は、マニュピレーターと、マニュピレーターを駆動する駆動部と、力検出器と、を備えるロボットを制御するロボット制御装置であって、制御パラメーターに応じて駆動部を制御する力制御を行う駆動制御部と、制御パラメーターの入力を受け付ける受付部と、制御パラメーターによる駆動部の駆動に応じて得られる力検出器の出力波形を、当該制御パラメーターと同時に表示させる表示部と、を備える。
【０００６】
前記の構成において、制御パラメーターによる駆動部の駆動に応じて得られる力検出器の出力波形と、制御パラメーターとが同時に表示されるため、望ましい出力波形を得られるように制御パラメーターを容易に設定できる。
【０００７】
なお請求項に記載された各手段の機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら各手段の機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【図面の簡単な説明】
【０００８】
【図１】ロボットシステムの模式図である。
【図２】ロボットシステムのブロック図である。
【図３】アームの斜視図である。
【図４】エンドエフェクターの斜視図である。
【図５】エンドエフェクターの斜視図である。
【図６】教示処理のフローチャートである。
【図７】ＧＵＩを示す図である。
【図８】ＧＵＩを示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を以下の順序にしたがって添付図面を参照しながら説明する。なお、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
（１）ロボットシステムの構成：
（１−１）ロボットと制御端末：
（１−２）教示端末：
（２）他の実施形態：
【００１０】
（１）ロボットシステムの構成：
本発明の第一実施例としてのロボットシステムは、図１に示すように、ロボット１と、エンドエフェクター２と、制御端末３（コントローラー）と、教示端末４（ティーチングペンダント）と、を備えている。制御端末３と教示端末４とは、本発明のロボット制御装置を構成する。制御端末３と教示端末４とは、それぞれ専用のコンピューターであってもよいし、ロボット１のためのプログラムがインストールされた汎用のコンピューターであってもよい。さらに、制御端末３と教示端末４とは、別々のコンピューターでなくてもよく、単一のコンピューターであってもよい。
【００１１】
（１−１）ロボットと制御端末：
ロボット１は、１つのマニュピレーターＭを備える単腕ロボットであり、マニュピレーターＭはアームＡとエンドエフェクター２を備える。アームＡは６つの関節Ｊ１〜Ｊ６を備える。関節Ｊ１〜Ｊ６によって６個のアーム部材Ａ１〜Ａ６が連結される。関節Ｊ２、Ｊ３、Ｊ５は曲げ関節であり、関節Ｊ１、Ｊ４、Ｊ６はねじり関節である。アームＡのうち最も先端側のアーム部材Ａ６には、関節Ｊ６を介して、力覚センサーＦＳとエンドエフェクター２とが装着される。エンドエフェクター２はグリッパーによってワークＷを把持する。エンドエフェクター２の所定位置をＴＣＰ(Tool Center Point)と表す。ＴＣＰの位置はエンドエフェクター２の位置の基準となる。力覚センサーＦＳは、６軸の力検出器である。
【００１２】
ロボット１が設置された空間を規定する座標系をロボット座標系と表す。本実施形態において、ロボット座標系は、水平面上において互いに直交するＸ軸とＹ軸と、鉛直上向きを正方向とするＺ軸とによって規定される３次元の直交座標系である。またＸ軸周りの回転角をＲＸで表し、Ｙ軸周りの回転角をＲＹで表し、Ｚ軸周りの回転角をＲＺで表す。Ｘ，Ｙ，Ｚ方向の位置により３次元空間における任意の位置を表現でき、ＲＸ，ＲＹ，ＲＺ方向の回転角により３次元空間における任意の姿勢（回転方向）を表現できる。以下、特に示さない限り、位置と表記した場合、姿勢も意味し得ることとする。また、特に示さない限り、力と表記した場合、ＲＸ，ＲＹ，ＲＺ方向に作用するトルクも意味し得ることとする。制御装置３は、アームＡを駆動することによって、ロボット座標系においてＴＣＰの位置を制御する。
【００１３】
図２は、ロボットシステムのブロック図である。制御装置３にはロボット１の制御を行うための制御プログラムがインストールされている。制御装置３は、プロセッサーやＲＡＭやＲＯＭを含むコンピューターを備える。コンピューターがＲＯＭ等の記録媒体に記録された制御プログラムを実行することにより、制御装置３は、機能構成としての駆動制御部３１と力変換部３２とを備えることとなる。駆動制御部３１と力変換部３２とは、制御装置３のハードウェア資源とソフトウェア資源とが協働して実現する機能構成である。なお、駆動制御部３１と力変換部３２とは、必ずしもソフトウェア資源によって実現されなくてもよく、ＡＳＩＣ（Application Specific Integrated Circuit）によって実現されてもよい。
【００１４】
駆動制御部３１は、マニュピレーターＭの位置制御と力制御とを行う。具体的に、駆動制御部３１は、ＴＣＰの位置が目標位置に近づくようにアームＡの位置制御を行う。駆動制御部３１は、ＣＣＰ(Compliance Center Point)に作用する作用力が目標力に近づくようにアームＡの力制御を行う。
【００１５】
図３はマニュピレーターＭの斜視図であり、図４はエンドエフェクター２の斜視図である。ＣＣＰとは、エンドエフェクター２やワークＷ等の把持対象物上において任意に設定可能な位置である。ＣＣＰは、エンドエフェクター２やワークＷ上の位置のうち、他の物体と接触する予定の位置に設けられることが望ましい。図４に示すＣＣＰは、嵌合部材であるワークＷのなかで被嵌合部材に最初に接触する位置に設定される。また、エンドエフェクター２やワークＷが他の物体と点接触する場合、接触点の位置をＣＣＰに設定すればよい。エンドエフェクター２やワークＷが他の物体と線接触する場合、接触線上の位置（例えば中点の位置）をＣＣＰに設定してもよい。エンドエフェクター２やワークＷが他の物体と面接触する場合、接触面上の位置（例えば重心の位置）をＣＣＰに設定してもよい。
【００１６】
例えば、エンドエフェクター２のグリッパーにて把持対象物を把持する場合において把持対象物と接触するグリッパー上の位置にＣＣＰが設定されてもよい。また、エンドエフェクター２が備える先端工具が加工対象物を加工する場合において加工対象物と接触する先端工具上の位置にＣＣＰが設定されてもよい。例えば、エンドエフェクター２が把持する把持対象物によって加工対象物を加工したり把持対象物を組付対象物に組み付けたりする場合において加工対象物や組付対象物と接触する把持対象物上の位置にＣＣＰが設定されてもよい。目標力とは、ＣＣＰに作用させるべき力であり、ロボット座標系において任意に設定される力である。
【００１７】
駆動制御部３１の説明においてＳの文字は、ロボット座標系を規定する軸の方向（Ｘ，Ｙ，Ｚ，ＲＸ，ＲＹ，ＲＺ）のなかのいずれか１個の方向を表すこととする。例えば、Ｓ＝Ｘの場合、ロボット座標系にて設定された目標位置のＸ方向成分がＳt＝Ｘtと表記され、目標力のＸ方向成分がｆSt＝ｆXtと表記される。また、Ｓは、Ｓ方向の位置（回転角）も表すこととする。
【００１８】
ロボット１は、図１に図示した構成のほかに、駆動部としてのモーターＭ１〜Ｍ６と、エンコーダーＥ１〜Ｅ６とを備える。モーターＭ１〜Ｍ６とエンコーダーＥ１〜Ｅ６とは、関節Ｊ１〜Ｊ６のそれぞれに対応して備えられており、エンコーダーＥ１〜Ｅ６はモーターＭ１〜Ｍ６の駆動位置Ｄaを検出する。アームＡを制御することは、駆動部としてのモーターＭ１〜Ｍ６を制御することを意味する。駆動制御部３１は、ロボット１と通信可能なっている。駆動制御部３１は、モーターＭ１〜Ｍ６の駆動位置Ｄaから導出される各関節Ｊ１〜Ｊ６の回転角と、ロボット座標系におけるＴＣＰの位置とを相互に変換する変換関係Ｕを記憶している。変換関係Ｕは、順運動学と逆運動学に基づいて得られる関数であり、例えば同時変換行列を含んでいてもよい。駆動制御部３１は、変換関係Ｕによって、モーターＭ１〜Ｍ６の駆動位置ＤaからＴＣＰの位置を導出でき、逆にＴＣＰの位置からモーターＭ１〜Ｍ６の駆動位置Ｄaを導出することもできる。
【００１９】
力変換部３２は、検出力ｆ0を、マニュピレーターＭ上またはマニュピレーターＭが把持する把持対象物上において任意に設定されるＣＣＰに作用する力である作用力に変換する。図４に示すように、力覚センサーＦＳは、ＦＳＯ(Force Sensor Origin)において互いに直交する３個のα，β，γ軸方向の力である力ＦFSO（ＦFSOα，ＦFSOβ，ＦFSOγ）と、当該３個の検出軸まわりのトルクＭFSO（ＭFSOα，ＭFSOβ，ＭFSOγ）で構成される検出力ｆ0を検出する。ＦＳＯは、円柱状の力覚センサーＦＳの中心軸上に存在している。検出力ｆ0はＦＳＯに作用する現実の力を意味する。ＦＳＯを原点とし、検出軸（α，β，γ軸）を座標軸とする座標系とセンサー座標系と表記する。また、ＴＣＰを原点とし、検出軸と同一方向の軸を座標軸とする座標系をツール座標系と表記する。センサー座標系の座標軸の方向は検出軸の方向と異なってもよいが、説明の簡略化のため同じであることとする。
【００２０】
力変換部３２は、モーターＭ１〜Ｍ６の駆動位置Ｄaと変換関係Ｕとに基づいて、ロボット座標系におけるセンサー座標系の座標軸の方向（＝ツール座標系の座標軸の方向）を導出する。これにより、力覚センサーＦＳが検出した検出力ｆ0がロボット座標系においてどのような方向を向いているかを把握できることとなる。なお、センサー座標系の座標軸の方向とツール座標系の座標軸の方向とが異なる場合、力変換部３２は、ツール座標系の座標軸の方向を回転変換することによりセンサー座標系の座標軸の方向を導出すればよい。
【００２１】
力変換部３２は、ＦＳＯに作用する力ＦFSO（ＦFSOα，ＦFSOβ，ＦFSOγ）に基づいて、ＣＣＰに作用する力ＦCCP（ＦCCPα，ＦCCPβ，ＦCCPγ）を導出する。本実施形態において、力覚センサーＦＳとエンドエフェクター２とワークＷとは一体の剛体であると見なすこととする。そのため、力変換部３２は、ＦＳＯにおける力ＦFSOをそのままＣＣＰにおける力ＦCCPとして導出する。なお、ＦＳＯに作用する力ＦFSO（ＦFSOα，ＦFSOβ，ＦFSOγ）と、ＣＣＰに作用する力ＦCCP（ＦCCPα，ＦCCPβ，ＦCCPγ）とは必ずしも同一でなくてもよい。例えば、力変換部３２は、ＦＳＯに作用する力ＦFSOを定義するセンサー座標系の軸の方向と、ＣＣＰに作用する力ＦCCPを定義する座標系の軸の方向とが異なる場合に、ＦＳＯに作用する力ＦFSOを回転変換してＣＣＰに作用する力ＦCCPを導出してもよい。例えば、力覚センサーＦＳに対してエンドエフェクター２がチルトして備えられている場合には、ＦＳＯに作用する力ＦFSOを定義するセンサー座標系の軸の方向と、ＣＣＰに作用する力ＦCCPを定義する座標系の軸の方向とが異なり得る。
【００２２】
力変換部３２は、ＦＳＯに作用する力ＦFSO（ＦFSOα，ＦFSOβ，ＦFSOγ）とトルクＭFSO（ＭFSOα，ＭFSOβ，ＭFSOγ）に基づいて、ＣＣＰに作用するトルクＭFSO（ＭCCPα，ＭCCPβ，ＭCCPγ）を導出する。図５は、ＣＣＰに作用するトルクＭCCP（ＭCCPα，ＭCCPβ，ＭCCPγ）を導出する様子を示す斜視図である。センサー座標系におけるＣＣＰの座標（αCCP，βCCP，γCCP）は既知であり記録媒体に記録されている。図５に示すように、ＦＳＯからＣＣＰまで延びるベクトルをベクトルＰCCP（αCCP,βCCP,γCCP）と表記する。力変換部３２は、以下の（１）式により、ＣＣＰに作用するトルクＭCCPを導出する。
【数１】
2017030059.tif 000003
前記の（１）式に示すように、ＣＣＰに作用するトルクＭCCPは、ＦＳＯに作用するトルクＭFSOから、ベクトルＰCCPとＦＳＯに作用する力ＦFSOとの外積を減算することにより導出される。
【００２３】
ベクトルＰCCPとＦＳＯに作用する力ＦFSOとの外積は、ベクトルＰCCPの大きさ（ＦＳＯからＣＣＰまでの距離）に、ＦＳＯに作用する力ＦFSOを掛けたものであり、ＦＳＯに作用する力ＦFSOがＦＳＯに生じさせるトルクを意味する。以上の計算により、力変換部３２は、ＣＣＰに作用する作用力ｆS（ＦCCPα，ＦCCPβ，ＦCCPγ，ＭCCPα，ＭCCPβ，ＭCCPγ）を導出できる。さらに、力変換部３２は、ロボット座標系におけるα，β，γ軸の方向に基づいて作用力ｆSを回転変換することにより、ロボット座標系における作用力ｆSを導出する。
【００２４】
さらに、力変換部３２は、作用力ｆSに対して重力補償を行う。重力補償とは、作用力ｆSから重力成分を除去することである。重力補償を行った作用力ｆSは、ＣＣＰに作用している重力以外の力と見なすことができる。ＴＣＰ（ＣＣＰ）の姿勢ごとにＣＣＰに作用する作用力ｆSの重力成分が予め調査されており、駆動制御部３１は、作用力ｆSからＴＣＰの姿勢に対応する重力成分を減算することにより重力補償が実現する。なお、重力補償は必ずしも行われなくてもよく、作業の内容等に応じて省略されてもよい。
【００２５】
駆動制御部３１は、目標力ｆStと作用力ｆSとをインピーダンス制御の運動方程式に代入することにより、力由来補正量ΔＳを特定する。（２）式は、インピーダンス制御の運動方程式である。
【数２】
2017030059.tif 000004
（２）式の左辺は、ＴＣＰの位置Ｓの２階微分値に仮想慣性係数ｍを乗算した第１項と、ＴＣＰの位置Ｓの微分値に仮想粘性係数ｄを乗算した第２項と、ＴＣＰの位置Ｓに仮想弾性係数ｋを乗算した第３項とによって構成される。（２）式の右辺は、目標力ｆStから現実の作用力ｆSを減算した力偏差ΔｆS（ｔ）によって構成される。（２）式における微分とは、時間による微分を意味する。ロボット１が行う工程において、目標力ｆStとして一定値が設定される場合もあるし、目標力ｆStとして時間に依存する関数によって導出される値が設定される場合もある。
【００２６】
インピーダンス制御とは、仮想の機械的インピーダンスをモーターＭ１〜Ｍ６によって実現する制御である。仮想慣性係数ｍはＴＣＰが仮想的に有する質量を意味し、仮想粘性係数ｄはＴＣＰが仮想的に受ける粘性抵抗を意味し、仮想弾性係数ｋはＴＣＰが仮想的に受ける弾性力のバネ定数を意味する。各係数ｍ，ｄ，ｋは方向ごとに異なる値に設定されてもよいし、方向に拘わらず共通の値に設定されてもよい。力由来補正量ΔＳとは、ＴＣＰが機械的インピーダンスを受けた場合に、目標力ｆStとの力偏差ΔｆS（ｔ）を解消するために、ＴＣＰが移動すべき位置Ｓの大きさを意味する。駆動制御部３１は、目標位置Ｓtに、力由来補正量ΔＳを加算することにより、インピーダンス制御を考慮した補正目標位置（Ｓt＋ΔＳ）を特定する。
【００２７】
そして、駆動制御部３１は、変換関係Ｕに基づいて、ロボット座標系を規定する各軸の方向の補正目標位置（Ｓt＋ΔＳ）を、各モーターＭ１〜Ｍ６の目標の駆動位置である目標駆動位置Ｄtに変換する。そして、駆動制御部３１は、目標駆動位置ＤtからモーターＭ１〜Ｍ６の現実の駆動位置Ｄaを減算することにより、駆動位置偏差Ｄe（＝Ｄt−Ｄa）を算出する。駆動制御部３１は、駆動位置偏差Ｄeに位置制御ゲインＫpを乗算した値と、現実の駆動位置Ｄaの時間微分値である駆動速度との差である駆動速度偏差に、速度制御ゲインＫvを乗算した値とを加算することにより、制御量Ｄcを特定する。なお、位置制御ゲインＫpおよび速度制御ゲインＫvは、比例成分だけでなく微分成分や積分成分にかかる制御ゲインを含んでもよい。制御量Ｄcは、モーターＭ１〜Ｍ６のそれぞれについて特定される。以上説明した構成により、駆動制御部３１は、目標位置Ｓtと目標力ｆStとに基づいてアームＡを制御することができる。
【００２８】
（１−２）教示端末：
教示端末４には、制御端末３に目標位置Ｓtと目標力ｆStとを教示するための教示プログラムがインストールされている。教示端末４は、プロセッサーやＲＡＭやＲＯＭを備え、これらのハードウェア資源が制御プログラムと協働する。これにより、図２に示すように、設定部としての教示端末４は、機能構成として第１表示部４１と第２表示部４２と受付部４３とを備えることとなる。図示しないが、教示端末４は、ユーザーからの指示を受け付ける入力装置（マウス、キーボード、タッチパネル等）と、ユーザーに各種情報を出力する表示装置（ディスプレイ）を備える。以下、第１表示部４１と第２表示部４２と受付部４３とが行う処理の詳細をフローチャートとともに説明する。第１表示部４１と第２表示部４２とは、本発明の表示部を構成する。
【００２９】
図６は、教示処理のフローチャートである。なお、図６の教示処理は、目標力ｆStとともにインピーダンス制御の係数を教示するための処理であり、目標位置Ｓtを教示するための処理は別途行われていることとする。目標位置Ｓtは公知の教示手法によって教示でき、例えばユーザーがアームＡを手で移動させることにより目標位置Ｓtが教示されてもよいし、教示端末４にてロボット座標系における座標を指定することにより目標位置Ｓtが教示されてもよい。
【００３０】
まず、受付部４３は、動作開始位置までアームＡを移動させる（ステップＳ１００）。すなわち、受付部４３は、制御端末３に対して、ＴＣＰが動作開始位置となるようなアームＡの制御を実行させる。動作開始位置とは、ＣＣＰに目標力ｆStが作用するようにアームＡを制御する直前のＴＣＰの位置である。例えばエンドエフェクター２が把持するワークＷを他の物体に押し付ける直前の位置や、加工具を把持したエンドエフェクター２によって他の物体を加工する直前の位置等である。ただし、図６の教示処理においては、目標力ｆStとインピーダンス制御の係数を設定できればよく、動作開始位置は、必ずしも実際の作業においてＣＣＰに作用力ｆSが作用するようにアームＡを制御する直前の位置でなくてもよい。次に、受付部４３は、ＧＵＩ（graphical user interface）を表示する（ステップＳ１１０）。ＧＵＩは本発明の設定画面である。
【００３１】
図７は、ＧＵＩを示す図である。図７に示すように、ＧＵＩは、入力窓Ｎ１〜Ｎ３と、スライダーバーＨと、表示窓Ｑ１，Ｑ２と、グラフＧ１，Ｇ２と、ボタンＢ１，Ｂ２とを含んでいる。受付部４３は、入力装置によってＧＵＩ上において行われた操作を受け付ける。
【００３２】
ＧＵＩを表示すると、受付部４３は、力の方向（目標力ｆStの方向）と、力の大きさ（目標力ｆStの大きさ）とを受け付ける（ステップＳ１２０）。ＧＵＩにおいて、力の方向を受け付けるための入力窓Ｎ１と、力の大きさを受け付けるための入力窓Ｎ２とが設けられている。受付部４３は、入力窓Ｎ１において、ロボット座標系を規定するいずれかの軸の方向の入力を受け付ける。また、受付部４３は、入力窓Ｎ２において、任意の数値の入力を受け付ける。
【００３３】
次に、受付部４３は、仮想弾性係数ｋを受け付ける（ステップＳ１３０）。ＧＵＩにおいて、第１設定値としての仮想弾性係数ｋを受け付けるための入力窓Ｎ３が設けられている。受付部４３は、入力窓Ｎ３において、任意の数値の入力を受け付ける。ユーザーは、ワークＷやエンドエフェクター２を他の物体と軟らかく接触させたい場合には仮想弾性係数ｋを小さい値に設定すればよい。反対に、ユーザーは、ワークＷやエンドエフェクター２を他の物体と硬く接触させたい場合には仮想弾性係数ｋを大きい値に設定すればよい。
【００３４】
仮想弾性係数ｋを受け付けると、第２表示部４２は、仮想弾性係数ｋに対応する記憶波形ＶをグラフＧ２にて表示する（ステップＳ１４０）。グラフＧ２の横軸は時刻を示し、グラフＧ２の縦軸は作用力ｆSを示す。記憶波形Ｖは、作用力ｆSの時間応答波形であり、予め教示端末４の記憶媒体に仮想弾性係数ｋごとに記憶されている。記憶波形Ｖは、入力窓Ｎにて受け付けられた大きさの力へと収束していく波形である。記憶波形Ｖは、一般的な条件において、入力窓Ｎ２にて受け付けた大きさの力がＣＣＰに作用するようにアームＡを制御した場合に、ＣＣＰに作用する作用力ｆSの時間応答波形である。仮想弾性係数ｋが異なると記憶波形Ｖの形状（傾き）が大きく異なることとなるため、仮想弾性係数ｋごとに記憶波形Ｖを記憶することとしている。
【００３５】
記憶波形Ｖは、ユーザーの目安となる波形であればよく、例えばロボット１のメーカーが推奨する波形であってもよいし、過去においてロボット１が正常に作業を行った実績のある波形であってもよい。また、記憶波形Ｖは、嵌合作業や研磨作業等の作業内容ごとに用意されてもよいし、ワークＷの機械特性（弾性係数、硬さ等）や、ワークＷやエンドエフェクター２が接触する物体の機械特性ごとに用意されてもよい。
【００３６】
次に、受付部４３は、スライダーバーＨ上におけるスライダーＨ１の操作に応じて仮想粘性係数ｄと仮想慣性係数ｍを受け付ける（ステップＳ１５０）。図７のＧＵＩにおいて、仮想慣性係数ｍと仮想粘性係数ｄとを受け付けるための構成として、スライダーバーＨと、当該スライダーバーＨ上をスライド可能なスライダーＨ１とが設けられている。受付部４３は、スライダーＨ１をスライダーバーＨ上にてスライドさせる操作を受け付ける。なお、スライダーバーＨには、右方向にスライダーＨ１が移動するほど安定性を重視する設定となり、左方向にスライダーＨ１が移動するほど応答性を重視する設定となることが表示されている。
【００３７】
そして、受付部４３は、スライダーバーＨ上におけるスライダーＨ１のスライド位置を取得し、当該スライド位置に対応する仮想慣性係数ｍと仮想粘性係数ｄとを受け付ける。具体的に、受付部４３は、仮想慣性係数ｍと仮想粘性係数ｄとの比が一定（例えば、ｍ：ｄ＝１：１０００）となるように、第２設定値としての仮想慣性係数ｍと仮想粘性係数ｄの設定を受け付ける。また、受付部４３は、スライダーＨ１のスライド位置に対応する仮想慣性係数ｍと仮想粘性係数ｄを表示窓Ｑ１，Ｑ２に表示する。
【００３８】
なお、図７のスライダーバーＨにおいてスライダーＨ１を右方向に移動させるほど、仮想慣性係数ｍと仮想粘性係数ｄが大きくなる。仮想慣性係数ｍと仮想粘性係数ｄが大きくなると、ＴＣＰの位置が移動しにくくなるため、ＣＣＰに作用する作用力ｆSが安定しやすくなる。仮想慣性係数ｍと仮想粘性係数ｄが小さくなると、ＴＣＰの位置が移動しやすくなるため、ＣＣＰに作用する作用力ｆSの応答性がよくなる。なお、スライダーＨ１は、仮想慣性係数ｍと仮想粘性係数ｄの設定を受付可能な単一の操作部に相当する。
【００３９】
次に、受付部４３は、動作ボタンＢ１の操作に応じて現在の設定値でアームＡを制御する（ステップＳ１６０）。すなわち、受付部４３は、制御端末３に対して、ＧＵＩにて設定された目標力ｆStとインピーダンス制御の制御パラメーターｍ，ｄ，ｋとを出力し、これらの設定値に基づいてアームＡを制御するように指令する。図７のＧＵＩの場合、ワークＷが−Ｚ方向に移動し、−Ｚ方向においてワークＷが他の物体に接触してＧＵＩにて設定された大きさの作用力ｆSがＣＣＰに作用するように、アームＡが制御される。
【００４０】
次に、第２表示部４２は、作用力ｆSの波形である作用波形ＬをグラフＧ１に表示する（ステップＳ１７０）。出力波形としての作用波形Ｌは、図３〜５に示すＣＣＰに作用する作用力ｆSの時間応答波形であり、ＣＣＰに作用する力ＦCCPの時間応答波形であってもよいし、ＣＣＰに作用するトルクＭCCPの時間応答波形であってもよい。第２表示部４２は、ステップＳ１６０にてアームＡが制御される期間において、所定のサンプリング周期ごとに重力補償後の作用力ｆSを制御端末３から取得し、教示端末４の記憶媒体に記憶しておく。そして、ステップＳ１６０が終了すると、記憶媒体からサンプリング周期ごとの作用力ｆSを取得し、当該作用力ｆSの時系列の波形である作用波形ＬをグラフＧ１にて表示する。グラフＧ１の縦軸と横軸は、グラフＧ２の縦軸と横軸と同じスケールであることとする。むろん、作用波形Ｌも、入力窓Ｎにて受け付けられた大きさの力へと収束していく波形である。
【００４１】
次に、受付部４３は、決定ボタンＢ２が操作されたか否かを判定する（ステップＳ１８０）。すなわち、受付部４３は、ＧＵＩにて設定した各設定値を確定的に決定するための操作が受け付けられたか否かを判定する。
【００４２】
決定ボタンＢ２が操作されたと判定しなかった場合（ステップＳ１８０：Ｎ）、受付部４３は、ＧＵＩにて設定値の変更を受け付け（ステップＳ１９０）、ステップＳ１６０に戻る。すなわち、ユーザーが作用波形Ｌに満足できなかったとして、引き続き、インピーダンス制御の制御パラメーターｍ，ｄ，ｋを設定する操作をＧＵＩにて受け付ける。設定値の変更を受け付けた後に決定ボタンＢ２が操作されれば、変更後の設定値によってアームＡを制御し、グラフＧ１にて作用波形Ｌを更新表示する。なお、ステップＳ１９０にて、仮想弾性係数ｋが変更された場合、グラフＧ２にて記憶波形Ｖを更新表示してもよい。
【００４３】
一方、決定ボタンＢ２が操作されたと判定した場合（ステップＳ１８０：Ｙ）、受付部４３は、設定値を制御端末３に出力し（ステップＳ２００）、教示処理を終了する。これにより、ＧＵＩにて設定された目標力ｆStとともに、インピーダンス制御の制御パラメーターｍ，ｄ，ｋを制御端末３に教示することができる。
【００４４】
以上の構成において、第１表示部４１と第２表示部４２とは、制御パラメーターｍ、ｄ，ｋによる駆動部の駆動に応じて得られる力覚センサーＦＳの出力波形としての作用波形Ｌを、当該制御パラメーターｍ、ｄ，ｋと同時に表示させている。これにより、望ましい作用波形Ｌを得られるように制御パラメーターｍ、ｄ，ｋを容易に設定できる。制御パラメーターｍ、ｄ，ｋを表示するとは、数値を表示することであってもよいし、数値に応じて位置が変化するスライダーＨ１を表示することであってもよいし、グラフ等を表示することであってもよい。同時に表示させるとは、対比可能に表示させることであればよく、必ずしも単一の画面上に表示させることでなくてもよい。さらに、予め記憶媒体に記憶された記憶波形Ｖと比較して、力覚センサーＦＳが検出した検出力を変換して得られた実際の作用波形Ｌが所望の形状となっているか否かをユーザーが容易に判断でき、作用波形Ｌが所望の形状となるように仮想慣性係数ｍと仮想粘性係数ｄの設定を行うことができる。作用波形Ｌが所望の形状となるように仮想慣性係数ｍと仮想粘性係数ｄを設定できるため、時間応答波形を考慮しながら自由度の高い制御の設定が可能となる。必ずしも、ユーザーは、記憶波形Ｖと類似する形状の作用波形Ｌが得られる仮想慣性係数ｍと仮想粘性係数ｄを設定しなくてもよく、例えばユーザーは記憶波形Ｖよりも収束が早くなったり遅くなったりする作用波形Ｌが得られる仮想慣性係数ｍと仮想粘性係数ｄを意図的に設定することができる。また、ユーザーは記憶波形Ｖよりも振幅が大きくなったり小さくなったりする作用波形Ｌが得られる仮想慣性係数ｍと仮想粘性係数ｄを意図的に設定することができる。
【００４５】
また、時間応答波形への影響が大きい仮想弾性係数ｋに対応する記憶波形Ｖを表示するため、作用波形Ｌとの比較において参考となる記憶波形Ｖを表示できる。また、単一のスライダーＨ１の操作により仮想慣性係数ｍと仮想粘性係数ｄの設定できるため、仮想慣性係数ｍと仮想粘性係数ｄとを容易に設定できる。スライダーバーＨにて、安定性を重視する方向と応答性を重視する方向が示されているため、ユーザーは直感的に仮想慣性係数ｍと仮想粘性係数ｄとを設定できる。特に、仮想慣性係数ｍと仮想粘性係数ｄとが一定の比を保つため、安定性を重視する設定と応答性を重視する設定とを容易に実現できる。
【００４６】
また、力変換部３２は、力覚センサーＦＳが検出した検出力を、ＣＣＰに作用する力である作用力ｆSに変換するため、力覚センサーＦＳが検出した検出力そのものではなく、ＣＣＰに作用する力である作用力ｆSが目標力ｆStに近づくように力制御を行うことができる。従って、ＣＣＰを適切な位置に設定することにより、適切な位置に作用する力に基づいてマニュピレーターＭを制御できる。
【００４７】
（２）他の実施形態
ロボット１は、必ずしも６軸の単腕ロボットでなくてもよく、ロボットが駆動することに応じていずれかの箇所に力が作用するロボットであればよい。例えば、ロボット１は、双腕ロボットであってもよいし、スカラーロボットであってもよい。
【００４８】
また、制御端末３は、力検出器の検出値と第１設定値と第２設定値に基づく制御を行えばよく、インピーダンス制御を以外の力制御を行ってもよい。また、制御端末３は、必ずしも３個のパラメーターｍ，ｄ，ｋをすべて考慮したインピーダンス制御を行わなくてもよく、これらのうち１個または２個を考慮したインピーダンス制御を行ってもよい。
【００４９】
また、受付部４３は、必ずしも仮想慣性係数ｍと仮想粘性係数ｄとの比が一定となるように、仮想慣性係数ｍと仮想粘性係数ｄの設定を受け付けなくてもよく、スライダーＨ１の位置や他の操作部の操作状況に応じて仮想慣性係数ｍと仮想粘性係数ｄとの比が変化してもよい。さらに、受付部４３は、必ずしも仮想慣性係数ｍと仮想粘性係数ｄとを単一の操作部（スライダーＨ１）にて受け付けなくてもよく、熟練したユーザー等に対して仮想慣性係数ｍと仮想粘性係数ｄとそれぞれ直接入力可能なＧＵＩを提供してもよい。
【００５０】
また、第１設定値に対応する記憶波形Ｖを表示する構成において、第１設定値は、必ずしも仮想弾性係数ｋでなくてもよく、仮想慣性係数ｍと仮想粘性係数ｄの少なくとも一方であってもよい。さらに、受付部４３は、必ずしも第１設定値と第２設定値の双方を受け付けなくてもよく、少なくとも第２設定値を受け付ければよい。例えば、受付部４３は、第１設定値としての仮想弾性係数ｋを受け付けることなく、予め決められた仮想弾性係数ｋに対応する記憶波形Ｖが表示されてもよい。
【００５１】
図８に示すように、ＧＵＩは、作用力ｆSの時間応答波形Ｌとともに検出力の時間応答波形Ｑを表すように構成されてもよい。すなわち、教示端末４は、力変換部３２が変換した後の作用力ｆSの時間応答波形Ｌを表示するグラフＧ１だけでなく、力変換部３２が変換する前の検出力の時間応答波形Ｑを表示するグラフＧ３も含むＧＵＩを表示してもよい。これにより、力覚センサーＦＳに過大な力が作用していないか否かを容易に判断できるとともに、作用力ｆSの時間応答波形Ｌと検出力の時間応答波形Ｑとを対比することができる。
【００５２】
さらに、前記実施形態においては、ＴＣＰとＣＣＰとが異なる位置に設定されていたが、ＴＣＰとＣＣＰとは同一の位置であってもよい。すなわち、位置制御の基準となる位置と、力制御の基準となる位置が同一の位置であってもよい。これにより、ＴＣＰ（＝ＣＣＰ）の位置を厳密に制御しつつ、当該ＴＣＰに作用する力も制御できる。例えば、先端工具の先端の位置等にＴＣＰとＣＣＰを設定することにより、先端工具（ドライバー、ビット等）の先端の位置と力とを高精度に制御できる。
【符号の説明】
【００５３】
１…ロボット、２…エンドエフェクター、３…制御装置、３１…駆動制御部、３２…力変換部、Ａ…アーム、Ａ１〜Ａ６…アーム部材、ｄ…仮想粘性係数、Ｄa…駆動位置、Ｄc…制御量、Ｄe…駆動位置偏差、Ｄt…目標駆動位置、Ｅ１〜Ｅ６…エンコーダー、ｆS…作用力、ｆS…目標力、ＦＳ…力覚センサー、ｆSt…目標力、Ｊ１〜Ｊ６…関節、Ｋ…凹部、ｋ…仮想弾性係数、Ｋp…位置制御ゲイン、Ｋv…速度制御ゲイン、ｍ…仮想慣性係数、Ｍ１〜Ｍ６…モーター、Ｗ…ワーク、ΔｆS…力偏差、ΔＳ…力由来補正量
【図２】
2017030059.tif 000005
【図３】
2017030059.tif 000006
【図４】
2017030059.tif 000007
【図５】
2017030059.tif 000008
【図６】
2017030059.tif 000009
【図７】
2017030059.tif 000010
【図８】
2017030059.tif 000011
【図１】
2017030059.tif 000012