(57)【要約】【課題】高精度に力を検出可能とする。【解決手段】制御装置４００が、ロボット装置の動作中に、力に応じた検出値を出力する検出装置４０から、順次取得した複数の第１検出値からなるプロファイルを生成する。制御装置４００が、プロファイルを生成した後のロボット装置の動作中に検出装置４０から取得した第１検出値を、プロファイルに基づいて補正して第２検出値を求める。制御装置４００が、第２検出値に基づいてロボット装置を制御する。【選択図】図３
2020127989.tif 000002
【特許請求の範囲】
【請求項１】
ロボット装置に生じる力に応じた検出値を検出装置から取得して、前記ロボット装置を制御する制御方法であって、
前記ロボット装置は、制御装置を有し、
前記制御装置が、前記ロボット装置の動作中に前記検出装置から順次取得した複数の第１検出値からなるプロファイルを生成し、
前記制御装置が、前記プロファイルを生成した後の前記ロボット装置の動作中に前記検出装置から取得した第１検出値を、前記プロファイルに基づいて補正した第２検出値を求め、
前記制御装置が、前記第２検出値に基づいて前記ロボット装置を制御することを特徴とする制御方法。
【請求項２】
前記ロボット装置には、減速機が設けられており、
前記制御装置は、前記プロファイルとして、前記減速機の入力軸の回転に対して周期的に変化する第１検出値の少なくとも１周期分を取得することを特徴とする請求項１に記載の制御方法。
【請求項３】
前記減速機は、波動歯車減速機であり、
前記１周期分は、前記入力軸が半回転した分であることを特徴とする請求項２に記載の制御方法。
【請求項４】
前記制御装置は、前記第２検出値として、前記プロファイルを生成した後に前記検出装置から取得した第１検出値と、前記プロファイルに含まれる前記１周期分の第１検出値のうちの１つと、の平均値を求めることを特徴とする請求項２又は３に記載の制御方法。
【請求項５】
前記平均値の計算に用いる、前記プロファイルに含まれる前記１周期分の第１検出値のうちの１つは、前記プロファイルを取得した後に取得した第１検出値に対して、半周期前の第１検出値であることを特徴とする請求項４に記載の制御方法。
【請求項６】
前記制御装置は、前記プロファイルをバッファに記憶させることを特徴とする請求項１乃至５のいずれか１項に記載の制御方法。
【請求項７】
前記制御装置は、前記プロファイルを生成した後に取得した第１検出値で、前記バッファに記憶された前記プロファイルを更新することを特徴とする請求項６に記載の制御方法。
【請求項８】
請求項１乃至７のいずれか１項に記載の制御方法により前記ロボット装置を制御し、前記ロボット装置を用いて物品を製造することを特徴とする物品の製造方法。
【請求項９】
力に応じて変化する検出信号を出力する検出ユニットと、
前記検出ユニットから出力された検出信号を処理して第１検出値を求める処理ユニットと、を備える検出装置による検出方法であって、
前記処理ユニットが、前記検出ユニットから出力された検出信号を順次処理して複数の第１検出値からなるプロファイルを求め、
前記処理ユニットが、前記プロファイルを求めた後に前記検出ユニットから出力された検出信号を処理して求まる第１検出値を、前記プロファイルに基づいて補正した第２検出値を求め、前記第２検出値を出力することを特徴とする検出方法。
【請求項１０】
力に応じて変化する検出信号を出力する検出ユニットを有するアクチュエータと、
前記検出ユニットから出力された検出信号を処理して第１検出値を求める処理ユニットと、
前記処理ユニットから第１検出値を取得して、前記アクチュエータを制御する制御装置と、を備え、
前記制御装置は、
前記アクチュエータの動作中に前記処理ユニットから順次取得した複数の第１検出値からなるプロファイルを生成し、
前記プロファイルを生成した後の前記アクチュエータの動作中に前記処理ユニットから取得した第１検出値を、前記プロファイルに基づいて補正した第２検出値を求め、
前記第２検出値に基づいて前記アクチュエータを制御することを特徴とするロボット装置。
【請求項１１】
ロボット装置に生じる力に応じた検出値を検出装置から取得して、前記ロボット装置を制御する制御装置であって、
前記ロボット装置の動作中に前記検出装置から順次取得した複数の第１検出値からなるプロファイルを生成し、
前記プロファイルを生成した後の前記ロボット装置の動作中に前記検出装置から取得した第１検出値を、前記プロファイルに基づいて補正した第２検出値を求め、
前記第２検出値に基づいて前記ロボット装置を制御することを特徴とする制御装置。
【請求項１２】
力に応じて変化する検出信号を出力する検出ユニットと、
前記検出ユニットから出力された検出信号を処理して第１検出値を求める処理ユニットと、を備え、
前記処理ユニットは、
前記検出ユニットから出力された検出信号を順次処理して複数の第１検出値からなるプロファイルを生成し、
前記プロファイルを生成した後に前記処理ユニットから出力された検出信号を処理して求まる第１検出値を、前記プロファイルに基づいて補正した第２検出値を求め、前記第２検出値を出力することを特徴とする検出装置。
【請求項１３】
請求項１乃至７のいずれか１項に記載の制御方法、または請求項８に記載の物品の製造方法、または請求項９に記載の検出方法を、コンピュータに実行させるプログラム。
【請求項１４】
請求項１３に記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置の制御に関する。
【背景技術】
【０００２】
嵌合作業などの組み付け作業、ケーブルの配線作業、ケーブルの接続作業、又は人との協働作業等の作業を、ロボットアームを自動運転することによりロボットに行わせることが考えられている。ロボットアームの自動運転において、手先の位置、及び関節にかかるトルクを検出して、ロボットアームを制御することが求められている。ロボットアームの関節にかかる力、即ちトルクは、関節に設置される検出ユニットを用いて検出される。しかし、検出ユニットを関節に設置する場合、関節の動作に起因して検出値に変動が生じてしまうことがあった。例えば、関節に波動歯車減速機等の減速機が配置される場合、減速機の入力軸の回転に連動して、検出値に周期的な変動が発生することがあった。検出値に変動が生じると、この検出値に基づいてロボットアームの関節をトルク制御した場合、ロボットアームの関節が振動し、その結果、ロボットアームの先端部が振動することがあった。
【０００３】
一方、特許文献１には、減速機の入力軸の位置と減速機の温度とに対応した補正値を、予めＲＯＭに記憶させておき、トルクの検出値を補正値で補正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１４４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、検出値の変動は温度だけではなく、検出ユニットが置かれている状況や使用時間によって変化する。例えば、検出値の変動は、ロボットの機差によっても異なり、同じロボットであっても関節毎に異なり、またロボットの劣化の度合いによっても異なる。したがって、特許文献１のように予めＲＯＭに記憶させておいた補正値で検出値を補正する方法では、力を高精度に検出することが困難であった。
【０００６】
本発明は、高精度に力を検出可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、ロボット装置に生じる力に応じた検出値を検出装置から取得して、前記ロボット装置を制御する制御方法であって、前記ロボット装置は、制御装置を有し、前記制御装置が、前記ロボット装置の動作中に前記検出装置から順次取得した複数の第１検出値からなるプロファイルを生成し、前記制御装置が、前記プロファイルを生成した後の前記ロボット装置の動作中に前記検出装置から取得した第１検出値を、前記プロファイルに基づいて補正した第２検出値を求め、前記制御装置が、前記第２検出値に基づいて前記ロボット装置を制御することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、高精度に力を検出することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係るロボット装置の説明図である。
【図２】第１実施形態に係るロボットアームの関節の断面図である。
【図３】第１実施形態に係るロボット装置を示すブロック図である。
【図４】第１実施形態に係る検出装置の説明図である。
【図５】第１実施形態に係るモータの駆動制御系を示すブロック図である。
【図６】（ａ）及び（ｂ）は、第１実施形態に係る処理のフローチャートである。
【図７】第１実施形態に係る処理のフローチャートである。
【図８】第１実施形態に係る処理の説明図である。
【図９】（ａ）、（ｂ）、及び（ｃ）は、実施例１及び比較例１におけるロボットアームの動作を説明するための図である。
【図１０】（ａ）は、実施例１の実験結果を示すグラフである。（ｂ）は、比較例１の実験結果を示すグラフである。
【図１１】（ａ）は、実施例２及び比較例２におけるロボットアームの動作を説明するための図である。（ｂ）は、実施例２及び比較例２における実験結果を示す図である。
【図１２】第２実施形態に係る検出装置の説明図である。
【発明を実施するための形態】
【００１０】
［第１実施形態］
図１は、第１実施形態に係るロボット装置１０００の説明図である。ロボット装置１０００は、ロボット１００と、ロボット１００を制御するシステム制御ユニット３００と、を備える。システム制御ユニット３００には、教示ペンダント６００が接続される。ロボット１００は、産業用ロボットであり、物品の製造に用いられる。ロボット１００は、ロボットアーム１０１と、エンドエフェクタの一例であるロボットハンド１０２と、を有する。教示ペンダント６００は、操作者が操作するものであり、ロボット１００やシステム制御ユニット３００の動作を指定するのに用いる。
【００１１】
ロボットアーム１０１は、垂直多関節のロボットアームである。ロボットアーム１０１の基端部は、作業台１５０に固定されている。ロボットアーム１０１の先端部には、ロボットハンド１０２が設けられている。ロボットアーム１０１は、複数の関節、例えば６つの関節Ｊ１〜Ｊ６を有している。ロボットアーム１０１は、各関節Ｊ１〜Ｊ６で回転可能に連結された複数のリンク１２０〜１２６を有する。第１実施形態では、リンク１２０〜１２６の順に、基端部側から先端部側に向かって直列に連結されている。リンク１２０は、ロボットアーム１０１の基端部であり、リンク１２６は、ロボットアーム１０１の先端部である。ロボットアーム１０１は、可動範囲内であれば、ロボットアーム１０１の先端部、即ちロボットハンド１０２を任意の位置に移動させることができる。
【００１２】
ロボットハンド１０２は、ワークＷ１を把持可能な複数のフィンガ１０４と、複数のフィンガ１０４を駆動する不図示のアクチュエータとを備えており、複数のフィンガ１０４を駆動することでワークＷ１を把持可能に構成されている。
【００１３】
システム制御ユニット３００は、ロボット１００を制御することで、ロボットハンド１０２にワークＷ１を把持させ、ロボットアーム１０１を動作させてワークＷ１をワークＷ２に組み付けることで物品を製造する。なお、物品は、ワークＷ１をワークＷ２に組み付けて製造されるものに限定するものではなく、例えばレーザ加工などをワークに施して製造されるものであってもよい。また、エンドエフェクタは、ロボットハンド１０２に限定するものではなく、物品を製造する作業に適したものを用いればよい。
【００１４】
図２は、図１に示すロボットアーム１０１の関節Ｊ２の断面図である。なお、他の関節Ｊ１、Ｊ３〜Ｊ６についても関節Ｊ２と同様の構成であるため、説明を省略する。第１リンクであるリンク１２１と、第２リンクであるリンク１２２との連結部分である関節Ｊ２には、駆動源であるモータ１と、モータ１の回転軸の回転を減速して出力する減速機２と、力、即ちトルクを検出する検出装置の検出ユニット４１とが設けられている。検出ユニット４１は、減速機２の出力側に設けられている。リンク１２１には、リンク１２２が減速機２と検出ユニット４１とを介して接続されている。
【００１５】
モータ１は、電磁モータであり、例えばブラシレスＤＣモータ又はＡＣサーボモータである。モータ１は、筐体と、筐体に固定されたステータと、ステータに対して回転するロータと、ロータに固定された回転軸と、を有する。モータ１の回転軸には、エンコーダ１１が設けられている。エンコーダ１１は、ロータリエンコーダであり、光学式、磁気式、静電容量式のいずれであってもよい。また、エンコーダ１１は、インクリメンタル型、アブソリュート型のいずれであってもよい。なお、関節Ｊ２には、必要に応じて、電源ＯＦＦ時にロボットアーム１０１の姿勢を保持するためのブレーキユニットを設けてもよい。
【００１６】
減速機２は、いかなる減速機であってもよいが、本実施形態では、小型で高い減速比が得られる、波動歯車減速機である。減速機２は、入力軸２１と、固定部２２と、出力軸２３とを有する。
【００１７】
モータ１の筐体は、フランジ３にボルト締結等で取り付けられ、モータ１の回転軸は、減速機２の入力軸２１に取り付けられている。これにより、モータ１の動力は、減速機２の入力軸２１に伝達される。
【００１８】
入力軸２１は、楕円形状のカムと弾性軸受で構成されたウェブジェネレータである。固定部２２は、内歯２２Ａを有するリング形状のサーキュラスプラインである。出力軸２３は、固定部２２の内歯２２Ａに噛み合う外歯２３Ａを有するフレクスプラインである。出力軸２３は、シルクハット形状の弾性体で構成されている。
【００１９】
固定部２２の内歯２２Ａは、出力軸２３の外歯２３Ａよりも歯数の多い。固定部２２は、リンク１２１にボルト締結等で取り付けられている。出力軸２３は、フランジ３と共に検出ユニット４１にボルト締結等で取り付けられている。固定部２２と出力軸２３とは、クロスローラベアリングで連結されている。
【００２０】
モータ１の動力により楕円形状の入力軸２１が回転すると、弾性体である出力軸２３が楕円変形し、楕円の長軸部分両端で、出力軸２３の外歯２３Ａが、固定部２２の内歯２２Ａと噛み合う。このとき、固定部２２と出力軸２３との歯数が異なるので、入力軸２１が１回転したとき、固定部２２に対して出力軸２３が歯数の差だけ回転する。この減速機２の減速比Ｎは、例えば５０である。
【００２１】
検出ユニット４１は、関節Ｊ２に作用するトルクを検出するのに用いられる構造物であり、リンク１２２と減速機２の出力軸２３との間に設置される。そのため、リンク１２２は、リンク１２１に対して検出ユニット４１を介して回転軸線Ｌ１まわりに相対的に回転する。
【００２２】
図３は、第１実施形態に係るロボット装置を示すブロック図である。本実施形態のロボット装置１０００は、関節の数と同じ数、例えば６つの制御装置４００と、６つの検出装置４０と、を備える。図３においては、関節Ｊ２に対応する制御装置４００及び検出装置４０のみ図示し、他の関節Ｊ１、Ｊ３〜Ｊ６に対応する制御装置及び検出装置については、関節Ｊ２に対応する制御装置４００及び検出装置４０の構成と同様であるため、図示を省略している。
【００２３】
システム制御ユニット３００は、コマンドを制御装置４００に送信し、コマンドを受信した制御装置４００は、コマンドに従ってロボットアーム１０１の関節、即ちモータ１を制御する。検出装置４０は、関節にかかるトルクを検出するものである。検出装置４０は、検出ユニット４１と、処理ユニット４２とを有する。
【００２４】
システム制御ユニット３００及び制御装置４００は、例えばコンピュータで構成されている。システム制御ユニット３００は、電源回路３０１と、通信制御器３０２と、軌道生成器３０３と、周辺Ｉ／Ｏ制御器３０４と、メモリ３０５と、を有する。制御装置４００は、システム制御ユニット３００の指令に従って、モータ１、即ちロボットアーム１０１の関節を制御するものである。制御装置４００は、電源回路４０１と、通信制御器４０２と、演算器４０３と、メモリ４０４と、シリアル通信器４０５と、ＡＤコンバータ４０６と、電流検出器４０７と、モータドライバ４０８と、を有する。制御装置４００は、例えば１つの制御基板で構成されている。
【００２５】
電源回路３０１は、電源１０１０から供給される交流電圧を所定の直流電圧へ変換する。電源回路３０１から出力される電力は、電力供給線１４５を介して、制御装置４００の電源回路４０１に供給される。
【００２６】
軌道生成器３０３は、予め教示されたロボット１００の手先の位置情報に基づいて、手先の軌道を生成する。更に、軌道生成器３０３は、ロボットアーム１０１の各関節の回転角度を決定する位置制御動作と、ロボットアーム１０１の各関節のトルクを制御することでロボット１００の手先力を制御する力制御動作を実行することが可能である。具体的には、軌道生成器３０３は、位置制御動作時には、各関節の回転角度の目標値θ＊を含むコマンド、力制御動作時には、ロボットアーム１０１の各関節のトルク制御の目標値Ｔ＊を含むコマンドを生成する。軌道生成器３０３は、生成したコマンドを、通信制御器３０２を介して各関節に対応する制御装置４００に通知することで、ロボットアーム１０１を制御する。
【００２７】
周辺Ｉ／Ｏ制御器３０４には、教示ペンダント６００が接続され、教示ペンダント６００から、ロボット１００の手先の位置情報などの教示点情報の入力を受ける。教示点情報は、メモリ３０５に保存される。
【００２８】
制御装置４００の通信制御器４０２は、システム制御ユニット３００の通信制御器３０２と双方向シリアル通信を行い、コマンド情報を通信制御器４０２から受信し、コマンド応答情報を通信制御器４０２に送信する。シリアル通信器４０５は、エンコーダ１１及び処理ユニット４２とシリアル通信を行う。モータドライバ４０８は、モータ１を駆動する電流をモータ１に供給する。電流検出器４０７は、モータ１を駆動する電流の値を検出する。ＡＤコンバータ４０６は、電流値を示すアナログ値をデジタル値に変換する。
【００２９】
演算器４０３は、例えばＣＰＵなどのプロセッサであり、メモリ４０４に記録されたプログラム４０９に従って、システム制御ユニット３００から受けた目標値θ＊又は目標値Ｔ＊に基づいて、モータ１を駆動する出力値を決定する。メモリ４０４は、データを書き換え可能な記憶装置である。
【００３０】
メモリ４０４は、コンピュータ読み取り可能な記録媒体でもある。本実施形態では、メモリ４０４にプログラム４０９が格納されるが、これに限定するものではない。プログラム４０９は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム４０９を供給するための記録媒体としては、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。光ディスクは、例えばＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒである。不揮発性メモリは、例えばＵＳＢメモリ、メモリカード、ＲＯＭである。
【００３１】
図４は、第１実施形態に係る検出装置４０の説明図である。検出ユニット４１は、弾性体、スケール、及び検出ヘッドを含むエンコーダを、１つ又は複数有する。本実施形態では、検出ユニット４１は、２つのエンコーダ４２１，４２２を有する。各エンコーダ４２１，４２２は、リニアエンコーダ又はロータリエンコーダである。各エンコーダ４２１，４２２は、光学式、磁気式、静電容量式のいずれであってもよい。また、各エンコーダ４２１，４２２は、インクリメンタル型、アブソリュート型のいずれであってもよい。２つのエンコーダ４２１，４２２は、回転軸線Ｌ１を挟んで互いに対向して配置されている。各エンコーダ４２１，４２２は、トルクに応じて変化する検出信号、例えばアナログ信号であるパルス信号を処理ユニット４２に出力する。
【００３２】
処理ユニット４２は、ＡＤコンバータ４３１と、制御回路４３２と、通信回路４３３と、を有する。ＡＤコンバータ４３１は、各エンコーダ４２１，４２２からの検出信号であるアナログ信号をデジタル信号に変換する処理を行う。制御回路４３２は、２つの検出信号からトルクの検出値を求める。例えば、制御回路４３２は、エンコーダ４２１の検出信号に基づく変位情報をトルク値に変換し、エンコーダ４２２の検出信号に基づく変位情報をトルク値に変換し、２つのトルク値の平均値を、第１検出値である検出値Ｔｍとする。通信回路４３３は、検出値Ｔｍを示す信号を、シリアル通信線４３５を介して制御装置４００に出力する。
【００３３】
なお、処理ユニット４２は、ロボットアーム１０１の内部、例えば検出ユニット４１の近傍に配置されていてもよいし、ロボットアーム１０１の外部に配置されていてもよい。また、処理ユニット４２が、制御装置４００の制御基板に配置されてもよい。制御装置４００も、ロボットアーム１０１の内部に配置されていてもよいし、ロボットアーム１０１の外部に配置されていてもよい。
【００３４】
図５は、第１実施形態に係るモータの駆動制御系を示すブロック図である。演算器４０３は、図３に示すメモリ４０４に格納されたプログラム４０９を実行することにより、図５に示すように機能する。
【００３５】
演算器４０３には、位置制御動作時、図３の軌道生成器３０３から目標値θ＊が入力され、力制御動作時、軌道生成器３０３から目標値Ｔ＊が入力される。エンコーダ１１により検出された、モータ１の回転軸の回転角度値θｍは、微分器２０４により、モータ１の回転軸の回転速度値ωに変換される。また、回転角度値θｍは、モータ電気角変換器２１１により電気角θｅに変換される。
【００３６】
位置制御器２０２は、目標値θ＊と回転角度値θｍとの偏差に対し、比例、積分、及び微分処理するＰＩＤ制御器であり、当該処理を例えば２ミリ秒周期で実行する。速度制御器２０３は、回転速度値ωと位置制御器２０２の出力値との偏差に基づいて出力値を決定するＰＩＤ制御器であり、当該処理を例えば０．５ミリ秒周期で実行する。
【００３７】
速度制御器２０３の出力値には、外乱を補償する外乱オブザーバ２１４の出力値が加算され、その値は、リミッタ２０５及びノッチフィルタ２０６により処理が施された後、電流制御の目標値Ｉｑ＊として切替器２０７へ入力される。ここで、リミッタ２０５で処理に用いる制限値は、モータ１の仕様によって決定される。ノッチフィルタ２０６でカットする周波数帯域は、システムの仕様、及び負荷等で決定される。
【００３８】
座標変換器２１２は、電気角θｅに基づき、図３の電流検出器４０７によって検出された、モータ１に流れる３相電流の電流値Ｉｕ，Ｉｖ，Ｉｗを、２相電流の電流値であるＱ軸電流値ＩｑとＤ軸電流値Ｉｄとに変換する。
【００３９】
Ｑ軸電流制御器２０８は、目標値Ｉｑ＊とＱ軸電流値Ｉｑとの偏差に基づいて出力値を決定するＰＩＤ制御器である。Ｄ軸電流制御器２０９は、目標値Ｉｄ＊をゼロとして、目標値Ｉｄ＊とＤ軸電流値Ｉｄとの偏差に基づいて出力値を決定するＰＩＤ制御器である。なお、Ｄ軸電流制御器２０９に入力される目標値Ｉｄ＊は、モータ種別、弱め界磁制御等、用途に応じて変更してもよい。
【００４０】
Ｑ軸電流制御器２０８及びＤ軸電流制御器２０９の出力値は、非干渉器２１３により干渉項が除去され、座標変換器２１０により、電気角θｅに基づいて３相の出力電圧値Ｕ，Ｖ，Ｗに変換される。Ｑ軸電流制御器２０８、Ｄ軸電流制御器２０９、座標変換器２１２、座標変換器２１０、非干渉器２１３は、上述した処理を例えば０．１ミリ秒周期で実行する。
【００４１】
モータドライバ４０８は、ＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）変換器であり、３相の出力電圧値Ｕ，Ｖ，Ｗをパルス出力値に変換し、パルス電圧をモータ１に印加することで、モータ１を駆動する。
【００４２】
本実施形態では、処理ユニット４２から送信されるトルクの検出値Ｔｍは、補正器２１８に入力される。補正器２１８は、補正処理を実行して、検出値Ｔｍを補正して得られる補正値、即ち第２検出値である検出値Ｔｃを出力する。
【００４３】
トルク制御動作時には、演算器４０３は、軌道生成器３０３（図３）からトルクの目標値Ｔ＊を受信する。減算器２１５は、受信した目標値Ｔ＊と検出値Ｔｃとの偏差を求める。この偏差は、ローパスフィルタ２１６にて高周波成分が除去され、制御目標値となる。制御目標値は、トルク制御器２１７へ入力される。ローパスフィルタ２１６のカットオフ周波数は、システムの仕様、及び検出ユニット４１の仕様に基づいて決定される。
【００４４】
トルク制御器２１７は、入力された制御目標値に基づいて出力値である目標値Ｉｑ＊を決定するＰＩＤ制御器である。位置制御動作とトルク制御動作とは、同時に実行されることはなく、切替器２０７によって、Ｑ軸電流制御器２０８へ出力される目標値Ｉｑ＊が選択される。切替器２０７における制御動作の選択は、システム制御ユニット３００から受信されるコマンドに付加される動作選択情報により行われる。
【００４５】
以下、補正器２１８の処理について具体的に説明する。本実施形態では、図２に示すように、減速機２の出力軸２３の側に、関節にかかるトルクを検出するための検出ユニット４１が配置されているため、トルクの検出結果に、リップル成分が重畳する。特に、本実施形態では、減速機２が波動歯車減速機であるため、楕円形状の入力軸２１の回転に伴うリップル成分が誤差としてトルクの検出値Ｔｍに重畳している。このリップル成分は、減速機２の入力軸２１の半回転、即ち１８０°回転を１周期として、周期的に変動する。
【００４６】
検出値に誤差として重畳するリップル成分は、検出ユニット４１が置かれている状況に応じて変化する。したがって、検出精度を高めるために、あらゆる状況を加味して検出ユニット１台１台に対して個別に補正値（実験値）をＲＯＭなどに用意しておくことは、煩雑であり現実的ではない。
【００４７】
そこで、本実施形態では、補正器２１８は、ロボットアーム１０１の動作中に、検出値Ｔｍのプロファイルを取得し、プロファイルを取得後は、プロファイルのデータを用いて検出値Ｔｍを補正する。なお、本実施形態における補正器２１８の補正処理においては、検出値Ｔｍの周期的変動の少なくとも１周期分のデータが必要となる。補正器２１８は、制御装置４００の起動後に、減速機２の入力軸２１、即ちモータ１の回転軸が、少なくとも検出値Ｔｍの変動周期の１周期分回転するまで、具体的にはモータ１の回転軸が半回転するまで、補正処理を実行しない前処理を行う。
【００４８】
まず、前処理について図６（ａ）を参照しながら説明する。補正器２１８は、制御装置４００の起動時に、図３のメモリ４０４に複数の検出値Ｔｍを保存可能な複数の領域からなるバッファＢｕｆを確保する。メモリ４０４、即ちバッファＢｕｆは、データを上書き可能であり、補正器２１８は、バッファＢｕｆの全領域を初期化、例えばゼロの値にする。本実施形態では、バッファＢｕｆがデータ保存可能な８１９２個の領域で構成され、補正器２１８は、バッファＢｕｆの全領域に格納される値をゼロに初期化する。
【００４９】
バッファＢｕｆには、減速機２の入力軸２１、即ちモータ１の回転軸の回転に対して周期的に変化する検出値Ｔｍの少なくとも１周期分のデータが保存可能である。つまり、検出値Ｔｍが変化する１周期分は、減速機２の入力軸２１、即ちモータの回転軸が半回転する分であり、その分のデータが、バッファＢｕｆに保存可能である。バッファＢｕｆの各領域には、インデックス（アドレス）が割り当てられる。つまり、減速機２の入力軸２１の回転角度、即ちモータ１の回転軸の回転角度と対応付けて、検出値ＴｍをバッファＢｕｆに保存することができる。
【００５０】
図６（ａ）、図６（ｂ）及び図７は、第１実施形態に係る処理のフローチャートである。図６（ａ）には前処理のフローチャート、図６（ｂ）及び図７は、補正処理のフローチャートを図示している。図８は、第１実施形態に係る処理の説明図である。
【００５１】
周期的に変動する検出値Ｔｍの周期を、モータ１の回転軸の回転角度値に換算した角度値をθｃとする。本実施形態では、角度値θｃは、減速機２の入力軸２１、即ちモータ１の回転軸が半回転する分である１８０°である。補正器２１８は、角度値θｃをバッファＢｕｆに検出値を保存可能なデータ数ＢＵＦＳＺ、例えば上述の「８１９２」で、角度値θｃを除算することで、保存ステップＢｕｆＳｔｐを算出する（Ｓ４０１）。検出値Ｔｍを、モータ１の回転軸の回転角度値θｍに対応させて保存ステップＢｕｆＳｔｐ間隔でバッファＢｕｆに保存することにより、１周期分の検出値Ｔｍを保存することが可能である。データ数ＢＵＦＳＺは、システムのメモリ容量や、ロボットアームを利用した作業におけるモータの回転軸の回転速度等により、適宜決定すればよい。ステップＳ４０１の処理で算出される保存ステップＢｕｆＳｔｐは、処理中に変更されるものではないため、システム起動時の初期化処理等で実行してもよい。
【００５２】
ロボット１００による物品の製造が開始されたとき、演算器４０３は、システム制御ユニット３００からコマンドを受けてロボットアーム１０１の関節の制御を開始し、ロボットアーム１０１の関節を動作させる。バッファＢｕｆは初期化されて補正用のデータが格納されていない状態であるので、補正器２１８は、ロボットアーム１０１の一連の動作のうちの一部の動作、例えば最初の動作でバッファＢｕｆにデータを格納する。ここで、補正器２１８が処理ユニット４２から取得する検出値Ｔｍのうち、初期化したバッファＢｕｆに格納される検出値を検出値Ｔｍｉとする。
【００５３】
補正器２１８は、以下のステップＳ４０２，Ｓ４０３を実行することにより、図８に示すように、複数の検出値ＴｍｉからなるプロファイルＰを生成する。このプロファイルＰの生成処理について具体例を挙げて説明する。補正器２１８は、モータ１の回転軸の半回転させたときの半回転分の検出値Ｔｍｉを順次取得し（Ｓ４０２）、バッファＢｕｆ（図８）の複数の領域に順次格納する（Ｓ４０３）。バッファＢｕｆの各領域に格納されている検出値Ｔｍｉは、インデックス（アドレス）が割り当てられているので、回転角度値θｍと対応付けがなされていることになる。バッファＢｕｆの全領域にデータが格納された後は、補正処理が可能となる。このバッファＢｕｆに格納された複数の検出値ＴｍｉでプロファイルＰのデータが構成されている。即ち、補正器２１８は、ロボットアーム１０１の動作中に検出装置４０の処理ユニット４２から順次、複数の検出値Ｔｍｉを取得してバッファＢｕｆに格納することで、複数の検出値ＴｍｉからなるプロファイルＰを生成する。
【００５４】
以下、補正器２１８における補正処理について図６（ｂ）を参照しながら説明する。図６（ｂ）に示す補正処理は、プロファイルＰを生成した後の処理となる。補正器２１８は、図８のプロファイルＰを生成した後のロボットアーム１０１の動作中に処理ユニット４２から検出値Ｔｍを取得する（Ｓ４０４）。補正器２１８は、処理ユニット４２から取得した検出値Ｔｍをメモリ４０４における変数領域に格納する。また、補正器２１８は、検出値Ｔｍとタイミングが同期した回転角度値θｍをエンコーダ１１から取得する（Ｓ４０５）。補正器２１８は、取得した回転角度値θｍをメモリ４０４における変数領域に格納する。
【００５５】
補正器２１８は、回転角度値θｍに基づき、バッファＢｕｆに保存するインデックス（アドレス）ｗｉｄｘを算出する（Ｓ４０６）。具体的には、補正器２１８は、ＭＯＤ（θｍ，θｃ）／ＢｕｆＳｔｐを算出する。ここで、ＭＯＤ（Ｘ，Ｙ）は、ＸをＹで除算した剰余を表す。ＭＯＤ（θｍ，θｃ）は、モータ１の回転軸の回転角度値θｍを、変動する検出値Ｔｍの１周期内における位相を算出する式である。補正器２１８は、ＭＯＤ（θｍ，θｃ）を保存ステップＢｕｆＳｔｐで除算することにより、バッファＢｕｆにおいて、ステップＳ４０４で取得した検出値Ｔｍの位相に対応するインデックスｗｉｄｘを算出する。
【００５６】
続いて、補正器２１８は、バッファＢｕｆから検出値を読み出すインデックス（アドレス）ｒｉｄｘを算出する（Ｓ４０７）。即ち、補正器２１８は、ＭＯＤ（ｗｉｄｘ＋ＢＵＦＳＺ／２，ＢＵＦＳＺ）を、インデックスｒｉｄｘとする。詳述すると、バッファＢｕｆにおいて、インデックスｗｉｄｘにおける位相に対し、１８０°進めたインデックスｒｉｄｘ、即ち、モータ１の回転軸の回転角度に換算してθｃ／２位相を進めたインデックスｒｉｄｘを算出する。
【００５７】
つまり、インデックスｗｉｄｘの領域に格納されている検出値Ｔｍｉは、プロファイルＰを取得した後にステップＳ４０４において取得した検出値Ｔｍに対して、変動周期における半周期前の過去の検出値、即ちθｃ／２位相前の検出値である。このインデックスｗｉｄｘの領域に格納されている、ステップＳ４０９の演算に用いる検出値Ｔｍｉを、トルク値Ｔｓとする。
【００５８】
補正器２１８は、バッファＢｕｆにおいてインデックスｒｉｄｘの領域からトルク値Ｔｓを読み出す（Ｓ４０８）。補正器２１８は、検出値Ｔｍをトルク値Ｔｓで補正して、新たな検出値（第２検出値）Ｔｃとする（Ｓ４０９）。この補正演算の具体例として、補正器２１８は、検出値Ｔｍとトルク値Ｔｓとの平均値を計算し、この平均値を新たな検出値Ｔｃとする。
【００５９】
このように、ステップＳ４０８においてデータを読み出す領域は、インデックスｒｉｄｘが割り当てられた領域であるのが好ましい。しかし、インデックスｒｉｄｘが割り当てられた領域に近接する領域のデータは、インデックスｒｉｄｘが割り当てられた領域のデータとほとんど変わらない。そのため、ステップＳ４０８においてデータを読み出す領域は、インデックスｒｉｄｘが割り当てられた領域から僅かにずれた別の領域であってもよい。例えばインデックスｒｉｄｘが割り当てられた領域の隣の領域のデータを読み出すようにしてもよい。即ち、補正器２１８は、検出精度に許容させる範囲内で、インデックスｒｉｄｘが割り当てられた領域を含むいくつかの領域の中の１つの領域から、ステップＳ４０９の演算に用いるトルク値Ｔｓを読み出すようにしてもよい。換言すれば、補正器２１８は、検出値Ｔｃとして、ステップＳ４０４で取得した検出値Ｔｍと、プロファイルＰに含まれる複数の検出値のうちの１つとの平均値を求めればよい。また、インデックスｒｉｄｘが割り当てられた領域を含むいくつかの領域の中のデータの平均値や中央値などを、ステップＳ４０９の演算に用いるトルク値Ｔｓとしてもよい。
【００６０】
以上、補正器２１８は、ステップＳ４０４〜Ｓ４０９の処理を実行することで、プロファイルＰを生成した後のロボットアーム１０１の動作中に検出装置４０から取得した検出値Ｔｍを、プロファイルＰに基づいて補正して検出値Ｔｃを求める。
【００６１】
このような補正処理により、検出値Ｔｃにおいてリップル成分が低減され、トルクの検出精度が向上する。また、予め補正データを記憶させておいたＲＯＭを用意する必要がなく、ＲＯＭに記憶させておく補正データを作成するための煩雑な作業を行う必要がない。また、検出値Ｔｍを取得したときのタイミングが、プロファイルＰを生成したタイミングに近いため、温度などの環境、及びロボットアーム１０１の構成要素（特に減速機２）の劣化の度合いなどは、ほとんど変化しない。したがって、プロファイルＰのデータを環境情報やロボットアーム１０１の構成要素の劣化の度合いなどによって修正する必要がない。
【００６２】
更に、工場等の生産ラインにロボット１００を複数台配置した場合、複数台のロボット１００間に機差があったとしても、プロファイルＰのデータは、各ロボット１００に個別に生成されることになる。しがたって、ロボット１００に機差があっても、高精度にトルクを検出することができる。また、同じロボットアーム１０１でも、各関節に配置した検出ユニット毎にプロファイルＰのデータが生成されるので、各関節におけるトルクを高精度に検出することができる。
【００６３】
補正器２１８は、ステップＳ４０９の処理の結果として得られた検出値Ｔｃを、減算器２１５（図５）に出力する。その後、演算器４０３は、図３の各ブロックにおいて処理を行うことで、検出値Ｔｃに基づいてロボットアーム１０１を制御する。このように、検出値Ｔｃに基づいて力制御を行う際に、ロボットアーム１０１の制御の精度が向上するとともに、制御の安定性が向上する。
【００６４】
補正器２１８は、前処理で生成したプロファイルＰを、制御装置４００がリセットされるまで保持するようにしてもよいが、補正に用いるデータのリアルタイム性を向上させるため、随時更新してもよい。本実施形態では、補正器２１８は、検出値Ｔｍを、バッファＢｕｆにおけるインデックスｗｉｄｘの領域に上書き保存する（Ｓ４１０）。即ち、補正器２１８は、ステップＳ４０４で取得した検出値Ｔｍで、バッファＢｕｆに記憶されたプロファイルＰを更新する。プロファイルＰを更新した後、補正器２１８は、補正処理を終了する。
【００６５】
図６（ｂ）に示すステップＳ４１０の処理について、図７を参照しながら具体的に説明する。補正器２１８は、今回取得した角度値θｍと、前回取得した角度値θｍＯｌｄとを比較し、モータ１の回転軸の回転方向を判別する（Ｓ５０１）。即ち補正器２１８は、θｍがθｍＯｌｄ以上であれば（Ｓ５０１：ＹＥＳ）、内部変数Ｄｉｒを１とし（Ｓ５０２）、θｍがθｍＯｌｄ未満であれば（Ｓ５０１：ＮＯ）、内部変数Ｄｉｒを−１とする（Ｓ５０３）。
【００６６】
内部変数Ｄｉｒが１であれば、モータ１の回転軸は正転方向、内部変数Ｄｉｒが−１であれば、モータ１の回転軸は反転方向に回転していることになる。正転方向とは、バッファＢｕｆにおいてデータを記憶する領域に割り当てられたインデックスが加算される方向であり、反転方向とは、バッファＢｕｆにおいてデータを記憶する領域に割り当てられたインデックスが減算される方向である。続いて補正器２１８は、バッファＢｕｆにおいて、前回、検出値Ｔｍを保存した際のインデックスｗｉｄｘＯｌｄに、内部変数Ｄｉｒを加算する（Ｓ５０４）。
【００６７】
補正器２１８は、バッファＢｕｆへ保存するインデックスの上下限を判定する（Ｓ５０５，Ｓ５０７）。バッファＢｕｆは、本実施形態ではリングバッファ構造である。
【００６８】
補正器２１８は、インデックスｗｉｄｘＯｌｄがバッファＢｕｆの先頭アドレスに到達したか否か、即ちアンダーフローか否かを判定する（Ｓ５０５）。補正器２１８は、インデックスｗｉｄｘＯｌｄがバッファＢｕｆの先頭アドレスに到達した場合、即ちｗｉｄｘＯｌｄ＜０の場合は（Ｓ５０５：ＹＥＳ）、バッファＢｕｆの末尾アドレスへインデックスｗｉｄｘＯｌｄを移動させる（Ｓ５０６）。即ち、補正器２１８は、アンダーフロー時は、ステップＳ５０６の処理において、インデックスｗｉｄｘＯｌｄをバッファＢｕｆの末尾アドレス「ＢＵＦＳＺ」に更新する。
【００６９】
ｗｉｄｘＯｌｄ＜０ではない場合（Ｓ５０５：ＮＯ）、補正器２１８は、インデックスｗｉｄｘＯｌｄがバッファＢｕｆの末尾アドレスであるか否か、即ちオーバフローか否かを判定する（Ｓ５０７）。補正器２１８は、インデックスｗｉｄｘＯｌｄがバッファＢｕｆの末尾アドレスに到達した場合、即ちｗｉｄｘＯｌｄ＝ＢＵＦＳＺの場合（Ｓ５０７：ＹＥＳ）、バッファＢｕｆの先頭アドレスへインデックスｗｉｄｘＯｌｄを移動させる（Ｓ５０８）。即ち、補正器２１８は、オーバフロー時は、ステップＳ５０８の処理において、インデックスｗｉｄｘＯｌｄをバッファＢｕｆの先頭アドレス「０」に更新する。
【００７０】
補正器２１８は、インデックスｗｉｄｘＯｌｄで指定されるアドレスのバッファＢｕｆの領域に、ステップＳ４０２の処理で取得した検出値Ｔｍを保存する（Ｓ５０９）。
【００７１】
次に、補正器２１８は、図６（ｂ）のステップＳ４０６の処理で算出したインデックスｗｉｄｘと、インデックスｗｉｄｘＯｌｄとを比較することにより保存を完了するか否か、具体的にはｗｉｄｘ＝ｗｉｄｘＯｌｄであるか否かを判定する（Ｓ５１０）。
【００７２】
ｗｉｄｘとｗｉｄｘＯｌｄとに差異がある場合（Ｓ５１０：ＮＯ）、補正器２１８は、ステップＳ５０４の処理へ戻る。ｗｉｄｘとｗｉｄｘＯｌｄとが同じ場合（Ｓ５１０：ＹＥＳ）、補正器２１８は、今回の補正処理で取得した回転角度値θｍを、前回の補正処理で取得した回転角度値θｍＯｌｄとして内部変数に格納して（Ｓ５１１）、呼び出し元の処理へ戻る。
【００７３】
ステップＳ５１０の処理は、前回の補正処理の実行が終了した時点から、今回の補正処理の実行が終了するまでの間に、モータ１の回転軸の回転角度の変化が、ステップＢｕｆＳｔｐよりも大きい場合に、ステップＢｕｆＳｔｐの区間を補間する処理である。バッファＢｕｆの領域が確保できずにデータ数が十分でない場合や、補正処理の周期がモータ１の回転軸の回転速度に対して長い場合には、ステップＳ５１０の処理が必要である。本実施形態では、補正処理の周期が０．１ミリ秒である。この周期における検出値の変動は微小であることから、同じ検出値をバッファＢｕｆに保存するようにしている。なお、より精密な検出値を必要とする場合には、ステップＢｕｆＳｔｅｐの区間を線形補間等の手法により、検出値を補間してもよい。
【００７４】
［実施例１及び比較例１］
次に、実施例１として、上述の実施形態のように補正処理を行う場合と、比較例１として、補正処理を行わない場合について、それぞれ実験を行った。図９（ａ）、図９（ｂ）、及び図９（ｃ）は、実施例１及び比較例１におけるロボットアーム１０１の動作を説明するための図である。図９（ａ）〜図９（ｃ）に示すように、関節Ｊ２、関節Ｊ３、及び第５関節Ｊ５を、ロボットアーム１０１の先端部が上方を向く角度とし、関節Ｊ２〜Ｊ６を固定して、関節Ｊ１を動作させた。図９（ａ）は、関節Ｊ１の関節角度が−１００ｄｅｇｒｅｅの状態を示している。図９（ｂ）は、関節Ｊ１の関節角度が０ｄｅｇｒｅｅの状態を示している。図９（ｃ）は、関節Ｊ１の関節角度が＋１００ｄｅｇｒｅｅの状態を示している。実験においては、関節Ｊ１の関節角度を、５ｄｅｇｒｅｅ／秒の回転速度で、−１００ｄｅｇｒｅｅから＋１００ｄｅｇｒｅｅまで変化させた後、＋１００ｄｅｇｒｅｅから−１００ｄｅｇｒｅｅまで変化させて、その間のトルクの検出値を取得した。
【００７５】
図１０（ａ）は、実施例１の実験結果を示すグラフである。図１０（ｂ）は、比較例１の実験結果を示すグラフである。図１０（ａ）は、補正処理を行った場合の実験結果、図１０（ｂ）は、補正処理を行わなかった場合の実験結果である。実施例１における検出値の変動幅は０．８Ｎｍ、比較例１における検出値の変動幅は２．４３Ｎｍであった。実施例１における検出値の変動幅が、比較例１における検出値の変動幅に対して約６０％改善されている。このように、減速機に起因する検出値における周期的な変動が補正により低減され、高精度にトルクを検出することが可能となる。
【００７６】
［実施例２及び比較例２］
次に、実施例２として、上述の実施形態のように補正処理を行う場合と、比較例２として、補正処理を行わない場合について、それぞれ実験を行った。図１１（ａ）は、実施例２及び比較例２におけるロボットアームの動作を説明するための図である。図１１（ｂ）は、実施例２及び比較例２における実験結果を示す図である。
【００７７】
図１１（ａ）に示すように、ロボットアーム１０１の先端部に治具８０２を設置した。床面８０５に設置された台座８０４上には、押し付け力を検出するロードセル８０３を接地した。治具８０２をロードセル８０３へ押し付けてロボットアーム１０１の各関節をトルク制御する実験を行った。
【００７８】
ロボットアーム１０１の各関節のトルク制御による目標手先力を０．３Ｎとし、その際の押し付け力の測定結果を、図１１（ｂ）に示す。図１１（ｂ）には、評価項目として、力安定性、応答性、精度の実験結果を図示している。力安定性は、目標手先力とロードセル８０３により検出された押し付け力との偏差である。応答性は、手先力が目標とする手先力に到達するまでの応答周波数である。精度は、手先力の変動である。図１１（ｂ）に示すように、実施例２の場合、比較例２と比較して、力安定性能、応答性能、精度ともに向上した。本実験結果より、ロボットアームの関節のトルク制御時に、補正処理によりトルクの検出値を補正することで、力制御の性能が向上することが確認された。
【００７９】
［第２実施形態］
次に第２実施形態に係る検出装置について説明する。図１２は、第２実施形態に係る検出装置の説明図である。上記第１実施形態においては、検出装置４０が検出した検出値Ｔｍを制御装置４００が補正する場合について説明したが、これに限定するものではない。
【００８０】
図１２に示す検出装置４０Ａは、第１実施形態と同様の構成の、トルクに応じて変化する検出信号を出力する検出ユニット４１と、検出ユニット４１から出力された検出信号を処理する処理ユニット４２Ａと、を有する。検出ユニット４１は、第１実施形態と同様に、図１のロボットアーム１０１の関節に配置される。処理ユニット４２Ａは、ＡＤコンバータ４３１と、制御回路４３２Ａと、通信回路４３３Ａと、を有する。ＡＤコンバータ４３１は、検出ユニット４１の各エンコーダ４２１，４２２からの検出信号であるアナログ信号をデジタル信号に変換する処理を行う。制御回路４３２Ａは、２つの検出信号からトルクの検出値Ｔｍを求め、検出値Ｔｍを補正して検出値Ｔｃを求める。通信回路４３３Ａは、検出値Ｔｃを示す信号を、シリアル通信線４３５を介して制御装置４００に出力する。
【００８１】
第２実施形態では、処理ユニット４２Ａ、即ち制御回路４３２Ａが、上記第１実施形態の制御回路４３２（図４）の機能と、上記第１実施形態の補正器２１８（図５）の機能とを兼ね備えている。なお、制御回路４３２Ａにおける処理は、第１実施形態で図６（ａ）、図６（ｂ）、及び図７を用いて説明した処理と同様であるため、詳細な説明は省略するが、以下、概要について説明する。
【００８２】
処理ユニット４２Ａは、検出ユニット４１から出力された検出信号を順次処理して複数の検出値Ｔｍｉ（図８）からなるプロファイルＰ（図８）を生成する。処理ユニット４２Ａは、プロファイルＰを生成した後に検出ユニット４１から出力された検出信号を処理し検出値Ｔｍを求める。処理ユニット４２Ａは、検出値ＴｍをプロファイルＰに基づいて補正して検出値Ｔｃを求める。処理ユニット４２Ａは、検出値Ｔｃを、図３に示す制御装置４００、即ち図５に示す減算器２１５に出力する。
【００８３】
制御回路４３２Ａは、通信回路４３３Ａがシリアル通信線４３６を介して回転角度値θｍを取得することで、第１実施形態で説明した処理と同様の処理を実現することができる。
【００８４】
なお、処理ユニット４２Ａは、図１のロボットアーム１０１の内部、例えば検出ユニット４１の近傍に配置されていてもよいし、ロボットアーム１０１の外部に配置されていてもよい。また、処理ユニット４２Ａが、図３の制御装置４００の構成の一部であってもよい。
【００８５】
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【００８６】
上述の実施形態では、ロボットアーム１０１が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
【００８７】
また、ロボットアーム１０１の構成例を各実施形態の例図により示したが、これに限定されるものではなく、当業者において任意に設計変更が可能である。また、ロボットアーム１０１に設けられる各モータは、上述の構成に限定されるものではなく、各関節を駆動する駆動源は例えば人工筋肉のようなデバイス等であってもよい。
【００８８】
また上述した実施形態は、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の動作またはこれらの複合動作を自動的に行うことができる機械に適用可能である。
【００８９】
また、上述の実施形態で説明した検出方法は、ロボットアームの制御に適用するのが好適であるが、ロボットアームに限定するものではない。ロボットアーム以外のアクチュエータの力制御においても上述した検出方法を適用可能である。
【００９０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９１】
２…減速機、２１…入力軸、２３…出力軸、４０…検出装置、１０１…ロボットアーム、４００…制御装置、１０００…ロボット装置
【図１】
2020127989.tif 000003
【図２】
2020127989.tif 000004
【図３】
2020127989.tif 000005
【図４】
2020127989.tif 000006
【図５】
2020127989.tif 000007
【図６】
2020127989.tif 000008
【図７】
2020127989.tif 000009
【図８】
2020127989.tif 000010
【図９】
2020127989.tif 000011
【図１０】
2020127989.tif 000012
【図１１】
2020127989.tif 000013
【図１２】
2020127989.tif 000014