(57)【要約】【課題】アームの変位を精度よく演算できる多関節ロボットの制御装置を提供する。【解決手段】このロボット１０の制御装置２０は、アーム１０ａの先端部にサンプル外力Ｆを加えた時の各可動軸Ｊ１〜Ｊ６周りの変位の検出値に基づいて求められた補正係数又は補正関数が格納されている記憶部を備え、アーム１０ａの先端部に加わる力Ｆの大きさおよび該力Ｆの方向に応じて変化する各可動軸Ｊ１〜Ｊ６周りの各アーム部材１１〜１６の変位の演算に、各可動軸Ｊ１〜Ｊ６の回転軸方向と前記力Ｆの方向との関係を示す数式要素と、前記補正係数又は前記補正関数とを少なくとも用いる。【選択図】図１
2020110861.tif 000002
【特許請求の範囲】
【請求項１】
ロボットのアームを構成する複数のアーム部材が複数の可動軸周りに動く多関節ロボットの制御装置であって、
前記アームの先端部にサンプル外力を加えた時の前記先端部の変位又は前記各可動軸周りの変位の検出値に基づいて求められた補正係数又は補正関数が格納されている記憶部と、
前記アームの前記先端部に加わる力の大きさおよび該力の方向に応じて変化する前記各可動軸周りの前記各アーム部材の変位の演算に、前記各可動軸の回転軸方向と前記力の方向との関係を示す数式要素と、前記補正係数又は前記補正関数とを少なくとも用いる変位演算手段と、を備える多関節ロボットの制御装置。
【請求項２】
前記変位演算手段により重力による前記各アーム部材の前記変位を演算し、演算により得られた結果を用いて前記各アーム部材の位置補正を行う、請求項１に記載の多関節ロボットの制御装置。
【請求項３】
前記アームの先端部に保持された物品をワークに押し当てることによって前記ワークに力を加える際に、前記変位演算手段が、前記ワークからの反力の大きさおよび該反力の方向に応じて変化する前記各可動軸周りの前記各アーム部材の変位を、前記各可動軸の前記回転軸方向と前記反力の方向との関係を示す数式要素と、前記補正係数又は前記補正関数とを少なくとも用いて演算し、
当該制御装置は、前記物品と前記ワークとの間に生ずる滑り量を低減するために、前記演算によって得られた結果に基づき、前記アームの動作指令を補正する動作プログラム補正手段をさらに備える、請求項１又は２に記載の多関節ロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は多関節ロボットの制御装置に関する。
【背景技術】
【０００２】
従来、ロボットのアームの先端部に保持されたツールをワークに押し当てながら作業を行うロボットを制御する際に、ツールに作用する反力によってツールとワークとの間に生ずる滑り量を補正する多関節ロボットの制御装置が知られている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−３６８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットに外力が作用すると、アームや減速機などが変形し、ロボットの先端位置が変化する。前記制御装置では、外力によって生じるロボットの先端変位をバネモデルを用いて算出し、その結果を用いてロボットの位置を補正することでツールとワークの間に生じる滑りを抑制している。前記制御装置で用いているバネモデルでは、各可動軸に対して、姿勢に依存しないバネ定数を定義している。このバネ定数は、例えば、ある特定のロボット姿勢における外力と先端変位の関係から実験的に決定される。しかし、このような簡易的なバネモデルでは、すべての姿勢で精度よく先端変位を求められない。つまり、姿勢によっては推定された先端変位と実際の先端変位にずれが生じる。
【０００５】
前記バネモデルで求めた先端変位と実際の先端変位のずれは、外力モーメントと各可動軸の回転軸ベクトルとの成す角に依存して変化することが実験的にわかっている。例えば、当該当角が０°のときに理論値とのずれが小さくなるようなバネ定数を用いた場合、当該当角が大きくなるほど、実際の先端変位量は前記バネモデルで求めた先端変位量より小さくなる。逆に、当該当角が０°から外れたときに理論値とのずれが小さくなるようなバネ定数を用いた場合、当該当角が０°に近づくほど、実際の先端変位量は前記バネモデルで求めた先端変位量より大きくなる。
【０００６】
本発明は、前述の事情に鑑みてなされている。本発明の目的の一つは、アームの変位を精度よく演算できる多関節ロボットの制御装置の提供である。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は以下の手段を採用する。
本発明の一態様は、ロボットのアームを構成する複数のアーム部材が複数の可動軸周りに動く多関節ロボットの制御装置であって、前記アームの先端部にサンプル外力を加えた時の前記先端部の変位又は前記各可動軸周りの変位の検出値に基づいて求められた補正係数又は補正関数が格納されている記憶部と、前記アームの前記先端部に加わる力の大きさおよび該力の方向に応じて変化する前記各可動軸周りの前記各アーム部材の変位の演算に、前記各可動軸の回転軸方向と前記力の方向との関係を示す数式要素と、前記補正係数又は前記補正関数とを少なくとも用いる変位演算手段と、を備える。
【０００８】
上記態様では、大きさおよび方向がわかっているサンプル外力に基づいて補正係数又は補正関数が求められる。また、各可動軸の回転軸方向と力の方向との関係を示す数式要素に加え、補正係数又は補正関数を用いて、各可動軸周りの各アーム部材の変位が算出される。このため、ロボットに作用する力の大きさおよび方向に応じたロボットのアームの変位を精度良く計算することが可能となる。
【０００９】
上記態様の制御装置は、好ましくは、前記変位演算手段により重力による前記各アーム部材の前記変位を演算し、演算により得られた結果を用いて前記各アーム部材の位置補正を行う。
当該構成では、重力による各アーム部材の変位が制御装置によって正確に認識される。これは、アームの動作の正確性を向上するために有用である。
【００１０】
上記態様の制御装置は、好ましくは、前記アームの先端部に保持された物品をワークに押し当てることによって前記ワークに力を加える際に、前記変位演算手段が、前記ワークからの反力の大きさおよび該反力の方向に応じて変化する前記各可動軸周りの前記各アーム部材の変位を、前記各可動軸の前記回転軸方向と前記反力の方向との関係を示す数式要素と、前記補正係数又は前記補正関数とを少なくとも用いて演算し、当該制御装置は、前記物品と前記ワークとの間に生ずる滑り量を低減するために、前記演算によって得られた結果に基づき、前記アームの動作指令を補正する動作プログラム補正手段をさらに備える。
【００１１】
当該構成では、各可動軸周りの各アーム部材の変位が正確に求められ、正確に求められた各アーム部材の変位に基づきアームの動作指令が補正される。このため、アームの先端部に保持された物品をワークに押し当てることにより生ずるアームの変位が正確に考慮された動作指令の補正が行われる。これは、作業の正確性の向上、作業性の向上、当該作業によって得られた製品の品質を向上のために有利である。
【発明の効果】
【００１２】
本発明によれば、アームの変位を精度よく演算することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態のロボットおよび制御装置の概略構成図である。
【図２】本実施形態のロボットの動作説明図である。
【図３】本実施形態のロボットの動作説明図である。
【図４】本実施形態の制御装置のブロック図である。
【発明を実施するための形態】
【００１４】
本発明の一実施形態に係る多関節ロボットであるロボット１０の制御装置２０が、図面を用いながら以下説明されている。
本実施形態のロボット１０は、図１に示されるように、ベースＢとアーム１０ａとを有する。アーム１０ａは複数のアーム部材１１，１２，１３，１４，１５，１６を有し、複数のアーム部材１１，１２，１３，１４，１５，１６がそれぞれ可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６周りに動く。なお、図１に示されるロボット１０は垂直多関節ロボットであるが、水平多関節ロボットであってもよく、特定の種類のロボットに限定されない。
【００１５】
ロボット１０は、複数の可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６周りにそれぞれアーム部材１１，１２，１３，１４，１５，１６を駆動する複数のサーボモータ１１ａ，１２ａ，１３ａ，１４ａ，１５ａ，１６ａ（図４）を有する。サーボモータ１１ａ，１２ａ，１３ａ，１４ａ，１５ａ，１６ａにそれぞれ減速機１１ｂ，１２ｂ，１３ｂ，１４ｂ，１５ｂ，１６ｂ（図４）が接続され、サーボモータ１１ａ，１２ａ，１３ａ，１４ａ，１５ａ，１６ａの駆動力が減速機１１ｂ，１２ｂ，１３ｂ，１４ｂ，１５ｂ，１６ｂを介してアーム部材１１，１２，１３，１４，１５，１６に伝達される。また、各サーボモータ１１ａ，１２ａ，１３ａ，１４ａ，１５ａ，１６ａはその作動位置を検出するための作動位置検出装置（図示せず）を有し、作動位置検出装置は一例としてエンコーダである。作動位置検出装置の検出結果は制御装置２０に送信される。
【００１６】
制御装置２０は、図４に示されるように、ＣＰＵ等であるプロセッサ２１と、表示装置２２と、不揮発性ストレージ、ＲＯＭ、ＲＡＭ等を有する記憶部２３と、キーボード等の入力装置２４と、送受信部２５と、サーボモータ１１ａ〜１６ａに各々対応したサーボ制御器２６とを備え、ロボット１０のサーボモータ１１ａ〜１６ａを制御する。記憶部２３にはシステムプログラム２３ａが格納されており、システムプログラム２３ａが制御装置２０の基本機能を担っている。
【００１７】
記憶部２３には、動作プログラム２３ｂと、補正係数取得プログラム２３ｃと、変位演算プログラム（変位演算手段）２３ｄと、動作補正プログラム（動作プログラム補正手段）２３ｅとが格納されている。プロセッサ２１は、動作プログラム２３ｂに基づきサーボモータ１１ａ〜１６ａを制御し、これによりロボット１０がアーム１０ａの先端部に設けられたツールＴを用いて所定の作業を行う。なお、動作プログラム２３ｂは、サーボモータ１１ａ〜１６ａを制御するための一連の動作指令である。
【００１８】
また、プロセッサ２１は、入力装置２４から所定の開始信号の入力があった時、又は、送受信部２５において所定の開始信号が受信された時に、補正係数取得プログラム２３ｃに基づき各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の補正係数を求め、求めた補正係数を記憶部２３に格納する。
【００１９】
例えば、プロセッサ２１は、サーボモータ１１ａ〜１６ａを制御することによって、アーム１０ａを第１の姿勢にする。この時、ツールＴにサンプル外力Ｆが加えられる。プロセッサ２１によるサーボモータ１１ａ〜１６ａの制御によってツールＴを所定の部材に押し当て、これによってサンプル外力ＦがツールＴに加えられてもよく、所定の装置によってツールＴを押すこと、ツールＴが所定の物体を保持すること等によって、ツールＴにサンプル外力Ｆが加えられてもよい。
【００２０】
この時のサンプル外力Ｆの方向および大きさがわかっており、サンプル外力Ｆの方向および大きさは制御装置２０に入力される。サンプル外力Ｆの方向および大きさが入力装置２４又は送受信部２５を介して制御装置２０に入力されてもよく、サンプル外力Ｆの方向および大きさがアーム１０ａの先端部、ツールＴ等に設けられた取得手段の一例である力センサＤ（図１）によって検出され、検出結果が制御装置２０に送信されてもよい。
【００２１】
なお、サンプル外力Ｆの方向および大きさは制御装置２０が認識しているアーム１０ａの基準座標系に対応したものである。一例では、サンプル外力ＦはツールＴの一部に可動軸Ｊ６に垂直な方向又は沿った方向に加わるものであり、サンプル外力Ｆの方向がアーム１０ａの姿勢の変更に応じて変化する。
【００２２】
プロセッサ２１は、補正係数取得プログラム２３ｃに基づき、可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６のそれぞれについて、補正係数Ｒ１、Ｒ２、Ｒ３、・・・Ｒｎを求める。補正係数Ｒ１、Ｒ２、Ｒ３、・・・Ｒｎを求めるため、一例として、プロセッサ２１は、アーム１０ａの姿勢情報又は各サーボモータ１１ａ，１２ａ，１３ａ，１４ａ，１５ａ，１６ａの作動位置検出装置の情報からわかる位置ベクトルＰｉおよび回転軸ベクトル方向の単位ベクトルＡＵｉと、サンプル外力Ｆの方向および大きさとを、下記式（１）又は（１）および（２）に適用して、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の理論的なモーメントＭａｉおよび変位（変位角度）Δθｉを求める。本実施形態では、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の変位Δθｉは、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６周りの各アーム部材１１，１２，１３，１４，１５，１６の変位である。
【００２３】
【数１】
2020110861.tif 000003
【数２】
2020110861.tif 000004
モーメントＭａｉ、変位Δθｉ、バネ定数Ｋａｉ、位置ベクトルＰｉ、各可動軸Ｊ１〜Ｊ６の回転軸方向を示す単位ベクトルＡＵｉ、垂線の長さ（各可動軸Ｊ１〜Ｊ６と外力Ｆの作用点との距離）ｒｉ等のｉには可動軸Ｊ１〜Ｊ６に対応する１〜６の数字が入り、例えば、Ｐ１は可動軸Ｊ１に関する位置ベクトル、Ｐ２は可動軸Ｊ２に関する位置ベクトル、・・・Ｐ６は可動軸Ｊ６に関する位置ベクトル、Ｍａ１は可動軸Ｊ１に働くモーメントの理論値である。また、×と・はそれぞれ、ベクトルの外積、内積を表す。
【００２４】
Ｐｉは、サンプル外力Ｆの作用点から各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６に下ろした垂線と回転軸の交点を点Ｏとして、点ＯからＦの作用点を結ぶ位置ベクトルであり、ＡＵｉは、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６に沿った方向に延びる単位ベクトルであり、φｉは、回転軸ベクトル（単位ベクトルＡＵｉ）と外力モーメントＰｉ×Ｆの成す角度である。
Ｐｉ×Ｆおよびｃｏｓφは、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の回転軸方向と外力Ｆの方向との関係を示す数式要素である。
【００２５】
そして、プロセッサ２１は、補正係数取得プログラム２３ｃに基づき、可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の各々について、サンプル外力Ｆに対し式（２）によって得られる変位Δθｉと、実測値に基づく変位（変位角度）Δθｍｉとの比から補正係数を求め、求められた補正係数を対応する可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の番号と共に記憶部２３に格納する。
【００２６】
例えば、ツールＴの先端部分に取り付けられた反射器ＲＤをレーザトラッカＬＴで検出することによって、サンプル外力Ｆを加える前と後のそれぞれにおける先端部分の位置・姿勢を計測する。計測された位置・姿勢を逆変換することにより、サンプル外力Ｆを加える前後の各可動軸の位置を求め、その差分から各可動軸の変位Δθｍｉを求めることが可能である。
【００２７】
また、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６に角度検出器を取付け、角度検出器を用いて各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の変位（変位角度）を実測することも可能である。
また、その他の方法を用いて各アーム部材１１，１２，１３，１４，１５，１６又は各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の変位角度を実測してもよい。
【００２８】
なお、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６に加わる理論トルク（モーメントＭａｉ）と、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６に実際に加わるトルク（実測値）との差に基づき、実測値に基づく変位Δθｍｉを得ることも可能である。この場合、プロセッサ２１は、補正係数取得プログラム２３ｃに基づき、可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の各々について、サンプル外力Ｆに対し式（１）によって理論的に得られる理論トルク（モーメントＭａｉ）によって計算される変位Δθｉと、サンプル外力Ｆを加えた時にサーボモータ１１ａ，１２ａ，１３ａ，１４ａ，１５ａ，１６ａによって各々実測されるモータ電流値又はトルク値とに基づく変位Δθｍｉとを用いて、補正係数を求め、求められた補正係数を対応する可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の番号と共に記憶部２３に格納する。各サーボモータ１１ａ〜１６ａにトルクセンサが設けられている場合、各サーボモータ１１ａ〜１６ａのトルクセンサの検出値が前記補正係数の計算に用いられてもよい。
【００２９】
ここで、好ましくは補正係数はφに対応するように求められ、記憶部２３に格納される。例えば、第１の姿勢において、式（１）に示される位置ベクトルＰｉとサンプル外力Ｆの外積と、可動軸Ｊ１の回転軸方向（可動軸Ｊ１の単位ベクトルＡＵ１）とが成す角度φが１０°である場合、記憶部２３には、第１の姿勢およびサンプル外力Ｆの時の可動軸Ｊ１の補正係数Ｒ１が角度φに対応して格納される。第２の姿勢、第３の姿勢、・・・第ｎの姿勢の時に同様に補正係数Ｒ２、Ｒ３、・・・Ｒｎが角度φに対応して格納される。図１は可動軸Ｊ５に関する位置ベクトルＰ５、可動軸Ｊ５の単位ベクトルＡＵ５等が示されているが、可動軸Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の各々について、同様に補正係数Ｒ１、Ｒ２、Ｒ３、・・・Ｒｎが角度φに対応して格納される。
【００３０】
記憶部２３に格納される補正係数Ｒ１、Ｒ２、Ｒ３、・・・Ｒｎは、角度φを所定の角度おきに変化させて得られるものであってもよく、角度φをランダムに変化させて得られるものであってもよい。
【００３１】
プロセッサ２１は変位演算プログラム２３ｄにより作動し、記憶部２３に格納されている補正係数Ｒ１、Ｒ２、Ｒ３、・・・Ｒｎに基づき得られる補正関数ｆｉ（φ）を下記式（３）に適用することによって、各可動軸Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の補正された変位Δθｉ’を演算する。本実施形態では、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の補正された変位Δθｉ’は、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６周りの各アーム部材１１，１２，１３，１４，１５，１６の補正された変位である。
【数３】
2020110861.tif 000005
【００３２】
補正された変位Δθｉ’のｉには可動軸Ｊ１〜Ｊ６に対応する１〜６の数字が入り、例えば、Δθ１’は可動軸Ｊ１の補正された変位、Δθ２’は可動軸Ｊ２の補正された変位、・・・Δθ６’は可動軸Ｊ６の補正された変位である。
【００３３】
補正関数ｆｉ（φ）のｉには可動軸Ｊ１〜Ｊ６に対応する１〜６の数字が入り、ｆ１（φ）は可動軸Ｊ１の補正関数、ｆ２（φ）は可動軸Ｊ２の補正関数、・・・ｆ６（φ）は可動軸Ｊ６の補正関数である。
補正関数ｆｉ（φ）は、可動軸Ｊ１〜Ｊ６の各々について、補正係数Ｒ１、Ｒ２、Ｒ３、・・・Ｒｎとその時の角度φとの関係から得られる式である。補正関数ｆｉ（φ）の代わりに、可動軸Ｊ１〜Ｊ６の各々について、補正係数Ｒ１、Ｒ２、Ｒ３、・・・Ｒｎとその時の角度φとを対応させた補正テーブルを用いることも可能である。
【００３４】
一般に、φが０°のとき補正関数ｆｉ（φ）は最大値を取り、φが０°から離れるに従って補正関数ｆｉ（φ）は減少する傾向がある。
【００３５】
一例を示す。図２と図３は、アーム部材１４の可動軸Ｊ４周りの回転位置が互いに異なるが、他の可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ５，Ｊ６の回転位置は同じである。この場合、図２と図３は、可動軸Ｊ２の回転軸ベクトルＡＵ２とＰ２×Ｆ（外積）との成す角度φが互いに異なり、角度φは図２よりも図３の方が大きくなる。
【００３６】
一方、前述のように、可動軸Ｊ２の補正係数Ｒ１、Ｒ２、・・・Ｒｎが角度φに対応して格納され、例えば、角度φが１０°、２０°、および３０°の時の補正係数Ｒ１、Ｒ２、およびＲ３が０．８５、０．６５、および０．４である時、可動軸Ｊ２の補正関数ｆ２（φ）は、両者を対応付けるための例えば二次曲線の近似関数となる。近似関数はその他のｎ次関数、対数関数、指数関数等であってもよい。
【００３７】
例えば、図２においてφが１０°であり、図３においてφが２０°である場合、図２の状態で可動軸Ｊ２の補正係数Ｒが０．８５となり、図２の状態で可動軸Ｊ２の補正係数Ｒが０．６５となる。このように角度φと補正係数Ｒとが対応するように、各可動軸Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６の補正関数ｆｉ（φ）が作成される。
【００３８】
実際にツールＴに働く外力Ｆの大きさおよび方向が入力装置２４、送受信部２５等を介して入力された時、又は、実際にツールＴに働く外力Ｆである力センサＤの検出値を受信した時に、プロセッサ２１は、式（３）を用いて可動軸Ｊ１〜Ｊ６の各々の補正された変位θｉ’を求める。力センサＤの代わりに各サーボモータ１１ａ〜１６ａの電流値に基づき外力Ｆが求められてもよい。
そして、プロセッサ２１は、順運動学を用いて各可動軸Ｊ１〜Ｊ６の補正された変位θｉ’からアーム１０ａの先端部又はツールＴの所定位置の変位Δｘ、Δｙ、およびΔｚを求める。
【００３９】
なお、補正関数ｆｉ（φ）を作成する代わりに、角度φと補正係数Ｒ１、Ｒ２、・・・Ｒｎとが対応している補正テーブルを作成してもよい。この場合、プロセッサ２１は、補正テーブルに基づき補正係数を決定し、決定された補正係数を式（３）のｆｉ（φ）の位置に代入し、可動軸Ｊ１〜Ｊ６の各々の補正された変位θｉ’を求める。
また、可動軸Ｊ１〜Ｊ６にそれぞれ１つの補正係数が決定されており、当該補正係数が補正関数ｆｉ（φ）および補正テーブルの代わりに記憶部２３に格納されていてもよい。この場合、プロセッサ２１は、記憶部２３に格納されている補正係数を式（３）のｆｉ（φ）の位置に代入し、可動軸Ｊ１〜Ｊ６の各々の補正された変位θｉ’を求める。
【００４０】
そして、プロセッサ２１は、動作補正プログラム２３ｅに基づき、動作プログラム２３ｂに含まれる動作指令を必要に応じて変更する。例えば、実際にツールＴに働く外力Ｆである力センサＤの検出値を受信した時に、ツールＴの所定位置の変位Δｘ、Δｙ、およびΔｚを求め、これら変位が所定の閾値以上である場合に、その変位をキャンセルするために動作指令を変更する。
例えば、ロボット１０による作業時にツールＴがワークに押し当てられ、ツールＴとワークとの間に好ましくない滑り量が生ずる時に、前記動作指令の変更によって、ツールＴとワークとの間の滑りが低減され、又は無くなる。
【００４１】
なお、プロセッサ２１が、可動軸Ｊ１〜Ｊ６の各々の補正された変位θｉ’を所定の表示装置に表示してもよく、補正された変位θｉ’が大きい１つ、２つ、又は複数の可動軸を表示装置に表示してもよい。また、プロセッサ２１が、可動軸Ｊ１〜Ｊ６の各々の補正された変位θｉ’を表示、シミュレーション等のために他の装置に送信してもよく、補正された変位θｉ’が大きい１つ、２つ、又は複数の可動軸を表示のために他の装置に送信してもよい。
【００４２】
また、上位制御装置３０、シミュレーション装置等が、制御装置２０から、補正係数を対応する可動軸Ｊ１〜Ｊ６の番号と共に受信し、受信した補正係数を可動軸Ｊ１〜Ｊ６の番号と共にメモリ３１に格納してもよい。上位制御装置３０又はシミュレーション装置が、制御装置２０から、補正関数又は補正テーブルを可動軸Ｊ１〜Ｊ６の番号と共に受信し、受信した補正関数又は補正テーブルを可動軸Ｊ１〜Ｊ６の番号と共にメモリ３１に格納してもよい。
【００４３】
この時、上位制御装置３０、シミュレーション装置等は、好ましくは、ロボット１０の機種の情報、ロボット１０のサイズの情報、ロボット１０の作業に関する情報、動作プログラム２３ｂの種類の情報、サーボモータの種類の情報、およびツールＴの種類の情報のうち少なくとも１つを含む適用情報も制御装置２０から受信し、受信した補正係数、補正関数、又は補正テーブルを適用情報と対応付けてメモリ３１に格納する。上位制御装置３０、シミュレーション装置等が、他のロボットの制御装置から同様の情報を受信し、受信した情報をメモリ３１に格納してもよい。
【００４４】
上位制御装置３０は、例えば新たに設置されたロボットの制御装置から、要求および情報を受信する。受信する情報は、新たに設置されたロボットの機種、ロボットのサイズ、動作プログラムの種類、ロボットの作業、サーボモータの種類、ツールの種類等である。
この場合、上位制御装置３０は、メモリ３１に格納されている適用情報のうち受信した情報に近い又は一致する適用情報を決定し、決定された適用情報に応じた補正係数、補正関数、又は補正テーブルを新たに設置されたロボットの制御装置に送信し、新たに設置されたロボットの制御装置において、受信する補正係数、補正関数、又は補正テーブルが用いられる。
また、シミュレーション装置は、例えばロボット１０のシミュレーションを行う際に、メモリ３１に格納されている補正係数、補正関数、又は補正テーブルを用いてアーム１０ａの変位量を計算する。
【００４５】
なお、個体毎には測定を行わず、予め機種毎に決められた補正係数または補正関数を用いてもよい。
【００４６】
［実施例］
上記実施形態は、ロボット１０がツールＴをワークに押し当てる作業が行われる際に、押し当てによって生ずるワークに対するツールＴの位置ずれを抑制又は無くすために用いられる。このような作業として、ＦＤＳ（フロー・ドリル・スクリュー）、ローラーヘム等がある。
ＦＤＳは、ツールＴに保持されたネジ（物品）を高速で回転させ、回転しているネジをロボット１０によって重ね合わせられた金属部材に打込むことによって、これらの金属部材を互いに溶着するものである。高速回転しているネジを金属部材に押し当てる際のツールＴ先端の変位を正確に得られることは、ＦＤＳの作業の正確性の向上、作業性の向上、当該作業によって得られた製品の品質を向上のために有利である。
【００４７】
ローラーヘムは、ツールＴの先端に設けられたローラ（物品）を板状のワークに押し当て、この状態でローラをワークに沿って移動させることにより、ワークの一部を折り曲げる作業である。ローラをワークに押し当てる際のツールＴ先端の変位を正確に得られることは、ローラーヘムの作業の正確性の向上、作業性の向上、当該作業によって得られた製品の品質を向上のために有利である。
【００４８】
なお、上記実施形態では、式（１）および式（２）において、各可動軸Ｊ１〜Ｊ６の回転軸方向と外力Ｆの方向との関係を示す数式要素としてＰｉ×Ｆ（外積）、ｃｏｓφ等を用いているが、各可動軸Ｊ１〜Ｊ６の回転軸方向と外力Ｆの方向とが成す角度が大きくなる程小さくなる他の１次関数、２次関数等の数式要素を用いることも可能である。
【００４９】
上記実施形態では、大きさおよび方向がわかっているサンプル外力Ｆに基づいて補正係数又は補正関数が求められる。また、各可動軸Ｊ１〜Ｊ６の回転軸方向と外力Ｆの方向との関係を示す数式要素に加え、補正係数又は補正関数を用いて、各可動軸Ｊ１〜Ｊ６の変位が算出される。このため、ロボット１０に作用する力の大きさおよび方向に応じたロボット１０のアーム１０ａの変位を精度良く計算することが可能となる。
【００５０】
また、上記実施形態において、外力Ｆが重力のみである場合、又は、外力Ｆに重力が含まれる場合に、プロセッサ２１が、変位演算プログラムに基づき、重力による各アーム部材１１〜１６の前記変位を演算し、プロセッサ２１が、動作補正プログラム２３ｅに基づき、演算により得られた結果を用いて各アーム部材１１〜１６の位置補正を行ってもよい。
この場合、重力による各アーム部材１１〜１６の変位が制御装置２０によって正確に認識される。これは、アーム１０ａの動作の正確性を向上するために有用である。
【００５１】
また、上記実施形態では、アーム１０ａの先端部に保持された物品をワークに押し当てることによってワークに力を加える際に、ワークからの反力の大きさおよび反力の方向を検出する力センサＤが設けられている。そして、プロセッサ２１は、変位演算プログラムに基づき、反力の大きさおよび反力の方向に応じて変化する各可動軸Ｊ１〜Ｊ６周りの各アーム部材１１〜１６の変位を、各可動軸Ｊ１〜Ｊ６の回転軸方向と反力の方向との関係を示す数式要素と、補正係数又は補正関数とを少なくとも用いて演算する。そして、プロセッサ２１は、動作補正プログラム２３ｅに基づき、前記物品とワークとの間に生ずる滑り量を低減するために、前記演算によって得られた結果に基づき、アーム１０ａの動作指令を補正する。
【００５２】
当該構成では、各可動軸Ｊ１〜Ｊ６周りの各アーム部材１１〜１６の変位が正確に求められ、正確に求められた各アーム部材１１〜１６の変位に基づきアーム１０ａの動作指令が補正される。このため、アーム１０ａの先端部に保持された前記物品をワークに押し当てることにより生ずるアーム１０ａの変位が正確に考慮された動作指令の補正が行われる。これは、作業の正確性の向上、作業性の向上、当該作業によって得られた製品の品質を向上のために有利である。
【符号の説明】
【００５３】
１０  ロボット
１０ａ  アーム
１１〜１６  アーム部材
１１ａ〜１６ａ  サーボモータ
１１ｂ〜１６ｂ  減速機
２０  制御装置
２１  プロセッサ
２２  表示装置
２３  記憶部
２３ａ  システムプログラム
２３ｂ  動作プログラム
２３ｃ  補正係数取得プログラム
２３ｄ  変位演算プログラム（変位演算手段）
２３ｅ  動作補正プログラム（動作プログラム補正手段）
２４  入力装置
２５  送受信部
２６  サーボ制御器
３０  上位制御装置
Ｊ１〜Ｊ６  可動軸
Ｂ  ベース
Ｔ  ツール
Ｄ  力センサ
【図１】
2020110861.tif 000006
【図２】
2020110861.tif 000007
【図３】
2020110861.tif 000008
【図４】
2020110861.tif 000009