(57)【要約】【課題】振動を抑制しつつ、ロボットの手先部の所定位置までの移動にかかる時間を短縮することができるロボット制御システムの提供。【解決手段】ロボット制御システムは、ロボットの手先部の位置とその移動先である目標位置とを撮像するカメラ２と、カメラ２の撮像結果に基づいてロボットを制御する制御手段とを備える。このシステムでは、ロボットおよびカメラ２のキャリブレーションが行われていない状態において、ロボットの手先部の移動中に、カメラ２により得られた撮像結果に基づき、ロボットの手先部の位置とその目標位置との誤差をリアルタイムで算出することで、その誤差に基づき、ロボットの手先部が目標位置へ移動するように、ロボットのアームが実時間で制御される。【選択図】図２
2020089927.tif 000002
【特許請求の範囲】
【請求項１】
手先部を有し、前記手先部を移動させるアームを有するロボットと、
前記手先部の位置と、前記手先部の移動先である目標位置とを撮像する撮像手段と、
前記ロボットおよび前記撮像手段のキャリブレーションが行われていない状態において、前記手先部の移動中に、前記撮像手段により得られた撮像結果に基づき、前記手先部の位置と前記目標位置との誤差をリアルタイムで算出することで、前記誤差に基づき、前記手先部が前記目標位置へ移動するよう前記アームを実時間で制御する制御手段と
を備えることを特徴とするロボット制御システム。
【請求項２】
前記制御手段は、前記手先部の前記目標位置への目標軌道を時間の５次関数で与え、前記手先部の移動中において、サンプリングタイム毎に前記目標軌道を求めることで、前記誤差をリアルタイムで算出する
ことを特徴とする請求項１に記載のロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、先端部の手先を移動可能に構成された産業用ロボットの手先位置の制御システムに関するものである。特に、カメラなどで計測されたロボットの情報に基づいて、ロボットの手先の位置を制御するロボット制御システムに関するものである。
【背景技術】
【０００２】
本件発明者は、先に、下記特許文献１に開示されるロボット制御システムを提案している。このロボット制御システムは、カメラで検出されたロボットの手先部の位置とカメラで検出されたロボットの手先部の目標位置との誤差を、カメラ座標系からロボット座標系へ変換後、エンコーダにより検出されたロボットの手先部の位置に加えて仮想目標位置を設定し、その仮想目標位置へロボットの手先部を移動させるものである。なお、通常、ロボットの手先部の位置および目標位置のカメラによる検出から、ロボットの手先部の仮想目標位置への移動までをワンステップとすると、このステップが繰り返し実行される。この際、各ステップにおいて、ロボットの手先部が停止した状態で、仮想目標位置の設定までが行われ、ステップごとにロボットが停止されることになる。
【０００３】
このような制御であるから、ロボットの手先部の位置と目標位置との間の最終的な誤差に、ロボットおよびカメラのキャリブレーション誤差が直接に影響しないようにすることができる。すなわち、下記特許文献１に記載のロボット制御システムでは、時間やコストのかかるロボットおよびカメラのキャリブレーションを行う必要がない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−５２６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来では、指令値を与えることで現時点から台形速度パターンが計算され、目標値に収束させることになるので、ステップの数が多い場合には、目標値への収束までに時間が長くかかることになる。一方、ステップの数が少ない場合には、ある程度収束時間を短くすることができるが、振動現象が発生することになり、結局は収束時間を短くすることができない。いずれにしても、従来の場合では、ロボットの手先部が目標位置へ移動するのにかかる時間が長くなり、ロボットによる作業効率が悪くなる。ところが、ロボットを用いた実際の作業現場では、作業全体のスピード化が求められており、そのためにロボットの作業効率の向上が望まれている。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、その主たる目的は、振動を抑制しつつ、ロボットの手先部の所定位置までの移動にかかる時間を短縮することができるロボット制御システムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明に係るロボット制御システムは、手先部を有し、前記手先部を移動させるアームを有するロボットと、前記手先部の位置と、前記手先部の移動先である目標位置とを撮像する撮像手段と、前記ロボットおよび前記撮像手段のキャリブレーションが行われていない状態において、前記手先部の移動中に、前記撮像手段により得られた撮像結果に基づき、前記手先部の位置と前記目標位置との誤差をリアルタイムで算出することで、前記誤差に基づき、前記手先部が前記目標位置へ移動するよう前記アームを実時間で制御する制御手段とを備えることを特徴とする。
【０００８】
さらに、本発明に係るロボット制御システムは、前記制御手段は、前記手先部の前記目標位置への目標軌道を時間の５次関数で与え、前記手先部の移動中において、サンプリングタイム毎に前記目標軌道を求めることで、前記誤差をリアルタイムで算出することを特徴とする。
【発明の効果】
【０００９】
本発明に係るロボット制御システムによれば、ロボットおよび撮像手段のキャリブレーションが行われていない状態において、ロボットの手先部が目標位置へ移動するようにロボットのアームが実時間で制御される。具体的には、ロボットの手先部の移動中に、撮像手段により得られた撮像結果に基づき、手先部の位置と目標位置との誤差をリアルタイムで算出することで、その誤差に基づいてアームが実時間で制御される。これにより、従来では、ロボットの手先部と目標位置との誤差を算出するたびにロボットが停止されたが、本発明では、ロボットを停止させることなく、ロボットの手先部を目標位置までスムーズに移動させることができる。従って、従来と比較して、振動を抑制することができ、ロボットの手先部の目標位置までの移動にかかる時間を短縮することができる。
【００１０】
さらに、本発明に係るロボット制御システムによれば、ロボットの手先部の移動中に、サンプリングタイム毎に時間の５次関数で与えられた目標軌道が求められる。従って、ロボットの移動時の加速度を滑らかなものとすることができ、ロボットの手先部を安全に目標位置へ移動させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のロボット制御システムが適用されるロボットの一例を示す概略斜視図である。
【図２】本発明のロボット制御システムの一実施例を示す概略ブロック図である。
【図３】本発明のロボット制御システムにおいて与えられた時間の５次関数を示すグラフであり、ロボットの手先部の移動状態での場合を示している。
【図４】産業用ロボットの制御に用いられる時間関数を示すグラフである。
【発明を実施するための形態】
【００１２】
以下、本発明のロボット制御システムの具体的実施例を図面に基づいて詳細に説明する。
【００１３】
図１は、本発明のロボット制御システムが適用されるロボットの一例を示す概略斜視図である。図２は、本発明のロボット制御システムの一実施例を示す概略ブロック図である。本実施例のロボット制御システムは、ロボット１と、撮像手段２と、内界センサ３と、撮像手段２および内界センサ３からの検出信号に基づきロボット１を制御できる制御手段４とを主要部として備える。以下では、ロボット１は、工場などで用いられている産業用ロボットとされ、この産業用ロボットに本実施例のロボット制御システムが適用される場合について説明する。
【００１４】
ロボット１は、土台５と、土台５に回転自在に設けられるアーム６と、アーム６に設けられる手先部７とを有して構成される。アーム６は、複数のリンク棒８と、隣接するリンク棒８，８同士を互いに回転自在に接続する関節９とを有する。本実施例のアーム６は、３本のリンク棒８を有し、隣接するリンク棒８，８同士が関節９を介して互いに回転自在に接続される。アーム６は、基端部が関節９を介して土台５に回転自在に接続されて外方へ延出され、先端に手先部７が固定される。各関節９には、モータ１０が設けられており、このモータ１０を駆動させることで、関節９を回転させることができ、ひいてはリンク棒８を回転させることができる。なお、図１に示される座標系ＸＹＺは、３次元のロボット座標系とされる。
【００１５】
撮像手段２は、ロボット１の手先部７の位置と、ロボット１の手先部７の移動先である目標位置とを撮像するものである。撮像手段２は、本実施例ではカメラとされる。本実施例では、カメラ２は２台用いられ、それらのカメラ２は、像面ＩＭ１，ＩＭ２同士が互いに直交するように配置される。
【００１６】
具体的には、一方のカメラ２は、ロボット座標系のＹＺ平面を撮影できるように配置され、他方のカメラ２は、ロボット座標系のＺＸ平面を撮影できるように配置される。なお、図１に示されるように、一方のカメラ２には、互いに直交するＵ１軸、Ｖ１軸およびＷ１軸からなる３次元のカメラ座標系が設けられ、他方のカメラ２には、互いに直交するＵ２軸、Ｖ２軸およびＷ２軸からなる３次元のカメラ座標系が設けられる。各カメラ２は、前述したように像面ＩＭ１，ＩＭ２同士が互いに直交するように配置され、ロボット１の手先部７の現在の位置と、手先部７の移動先である目標位置とを撮影することができる。
【００１７】
内界センサ３は、ロボット１のアーム６を計測して手先部７の位置を検出するものである。内界センサ３は、本実施例ではエンコーダとされ、各関節９に設けられる。本実施例のエンコーダ３は、モータ１０の回転位置を検出し、この検出結果から現在の手先部７の位置を求めることができる。
【００１８】
制御手段４は、カメラ２で検出されたロボット１の手先部７の位置と、カメラ２で検出されたロボット１の手先部７の移動先である目標位置との誤差を算出し、この誤差を、カメラ座標系からロボット座標系へ変換するものである。制御手段４は、ロボット１の手先部７の真の位置と、カメラ２により検出されたロボット１の手先部７の位置との手先誤差を算出することができる。制御手段４は、カメラ２に接続されており、これらのカメラ２からロボット１の手先部７の位置情報を取得することができる。この取得したロボット１の手先部７の位置と、ロボット１の手先部７の真の位置との誤差である手先誤差を、制御手段４により算出することができる。ここで、手先誤差について説明する。カメラ２からロボット１の手先部７をとらえたときには、カメラ２のひずみなどが原因で、ロボット１の手先部７の実際の位置である真の位置との間に誤差が生じることになり、これが手先誤差となる。
【００１９】
また、制御手段４は、ロボット１の手先部７の真の目標位置と、カメラ２により検出されたロボット１の手先部７の目標位置との目標誤差を算出することができる。制御手段４は、前述したようにカメラ２に接続されており、これらのカメラ２からのロボット１の手先部７の目標位置と、ロボット１の手先部７の真の目標位置との誤差である目標誤差を算出できる。この目標誤差は、カメラ２のひずみなどの原因により、カメラ２からロボット１の手先部７の目標位置をとらえたときに、ロボット１の手先部７の実際の目標位置である真の目標位置との間に生じる誤差である。
【００２０】
具体的には、次のとおりである。ロボット１の手先部７の真の位置をｘ＝（ｘ，ｙ，ｚ）、ロボット１の手先部７の真の目標位置をｘｄ＝（ｘｄ，ｙｄ，ｚｄ）、カメラ２で計測されたロボット１の手先部７の位置をｘｃ＝（ｘｃ，ｙｃ，ｚｃ）、カメラ２で計測されたロボット１の手先部７の目標位置をｘｃｄ＝（ｘｃｄ，ｙｃｄ，ｚｃｄ）とする。カメラ２で計測されたロボット１の手先部７の位置およびカメラ２で計測されたロボット１の手先部７の目標位置は、キャリブレーション誤差を含んでいる。このとき、カメラ２のキャリブレーションによる誤差Δｘｃ、すなわち真値からのずれである手先誤差および目標誤差は、以下の式で表される。なお、以下の式において、左肩に設けられた「ｗ」は、基準となるワールド座標系からみたことを示している。本実施例では、ロボット座標系をワールド座標系としている。また、左肩に設けられた「ｃ」は、カメラ座標系からみたことを示している。
【００２１】
【数１】
2020089927.tif 000003
【００２２】
【数２】
2020089927.tif 000004
【００２３】
【数３】
2020089927.tif 000005
【００２４】
ここで、チルダは誤差を含んだ値を示しており、その他は以下のとおりである。
【数４】
2020089927.tif 000006
【００２５】
数１、数２および数３においては、手先誤差および目標誤差は、カメラ座標系からロボット座標系に変換されている。一方、エンコーダ３で計測されたロボット１の手先部７の現在の位置をｘｍ＝（ｘｍ，ｙｍ，ｚｍ）とすると、ロボット１のキャリブレーションによる誤差Δｘｍ、すなわち真値からのずれは、以下の式で表される。
【００２６】
【数５】
2020089927.tif 000007
【００２７】
ここで、ｆ（ｑ）は、各関節角度からロボット１の手先部７の位置へ変換する関数を示している。なお、ロボット１の幾何情報が正確、かつ各リンク棒８が十分な剛性を有する場合には、Δｘｍはゼロに近づくことになる。同様に、エンコーダ３で計測されたロボット１の手先部７の目標位置をｘｍｄ＝（ｘｍｄ，ｙｍｄ，ｚｍｄ）として、目標位置近傍における誤差、すなわち真値からのずれは、以下の式で定義される。
【００２８】
【数６】
2020089927.tif 000008
【００２９】
【数７】
2020089927.tif 000009
【００３０】
このように、エンコーダ３で計測されたロボット１の手先部７の位置およびエンコーダ３で計測されたロボット１の手先部７の目標位置と、それぞれの真値との間には、リンク棒８の歪みや弛みなどが原因とされる誤差が生じる。
【００３１】
次に、ロボット１の手先部７の位置および姿勢の制御時に生じる誤差は、以下の式で定義される。これは、静止摩擦や重力などの影響による誤差とされる。
【００３２】
【数８】
2020089927.tif 000010
【００３３】
ここでは、以下のとおりである。
【数９】
2020089927.tif 000011
【００３４】
数８で示される誤差は、静止摩擦などの影響が小さく、ロボット１の各関節角が目標位置に正確に制御可能であるとき、Δｘｍ２＝０となる。ここでは、産業用ロボットを対象とするため、この値はゼロとする。ただし、式の展開中では記述することとする。これにより、ロボット１に後述の目標位置を与えた際、制御後のロボット１の手先部７の位置は、数８より以下のようになる。
【００３５】
【数１０】
2020089927.tif 000012
【００３６】
また、制御手段４は、エンコーダ３により検出されたロボット１の手先部７の位置に、前述したように座標系が変換された誤差を加えることで、ロボット１の手先部７の仮想目標位置を設定することができる。制御手段４は、エンコーダ３に接続されており、このエンコーダ３からのロボット１の手先部７の位置情報を取得することができる。そして、エンコーダ３からのロボット１の手先部７の位置に前述した誤差を加えることで、ロボット１の手先部７の仮想目標位置を設定することができる。
【００３７】
具体的には、次のとおりである。仮想目標位置ｘｖｄを以下のように設定し、数１、数２および数４により、仮想目標位置ｘｖｄは以下のようになる。
【００３８】
【数１１】
2020089927.tif 000013
【００３９】
さらに、制御手段４は、設定された仮想目標位置へロボット１の手先部７が移動するように、ロボット１のアーム６を制御することができる。制御手段４は、モータ１０と接続されており、このモータ１０を制御することで、関節９ひいてはリンク棒８を回転させて、ロボット１の手先部７を設定された仮想目標位置へ到達させることができる。
【００４０】
このようにして、ロボット１の手先部７は、停止した初期位置から仮想目標位置へ移動することになる。本実施例では、ロボット１の手先部７は、そのようにして一旦移動を始めたら、停止することなく目標位置まで到達するように制御される。具体的には、ロボット１の手先部７は、次のようにして、制御手段４により制御される。
【００４１】
図３は、本発明のロボット制御システムにおいて与えられた時間の５次関数を示すグラフであり、ロボットの手先部の移動状態での場合を示している。図４は、産業用ロボットの制御に用いられる時間関数のグラフである。多くの産業用ロボットの制御では、速度の台形パターン以外にも、下記の数１２の式および図４で示されるような時間関数を設定することが可能とされている。
【００４２】
【数１２】
2020089927.tif 000014
【００４３】
カメラ２とロボット１との座標系が正確にキャリブレーションされている場合には、ロボット１の手先部７の現在の位置と目標位置とを一旦決定して、ロボット１の指令値の運動の時間関数として設定すればよい。具体的には、ロボット１の手先部７が速度を持った状態で、サンプリングタイムごとに終点である目標位置に向かって軌道を計画し、その軌道に沿って手先部７を移動させることになる。この際、ロボット１およびカメラ２のキャリブレーションが行われていれば、カメラ座標系での目標位置は、各サンプリングタイムで同じ位置となり、サンプリングタイム間でずれが生じることがない。従って、ロボット１の手先部７の運動前に設定された目標軌道に沿って、ロボット１の手先部７を移動させればよい。
【００４４】
一方、本実施例の場合には、前述したようにロボット１およびカメラ２のキャリブレーション誤差が含まれており、ロボット１とカメラ２との座標系がキャリブレーションされていない。従って、ロボット１の手先部７は、運動前に設定されたロボット座標系での目標軌道に追従しても、カメラ座標系の目標位置に収束しない。そこで、本実施例では、ロボット１の手先部７の運動前にロボット座標系の目標軌道を決定するのではなく、運動中に常にカメラ座標系における手先部７の位置と目標位置との偏差情報が利用される。そのために、ロボット１の手先部７の運動中の実時間で軌道計画を行う制御がなされる。すなわち、ロボット１の移動中にロボットセンサ情報が更新され、新たな目標軌道が演算される。目標軌道の設定は、特に限定されないが、本実施例では、加速度も連続となる時間の５次関数による軌道の場合について説明する。なお、時間の５次関数は、以下の数１３の式で示される。この数１３において、ｉはロボット１の関節角の数、ｔは時間を示している。
【００４５】
【数１３】
2020089927.tif 000015
【００４６】
ここでは、まず、一旦運動が開始されてロボット１の手先部７が運動中と想定する。この際、ロボット１の手先部７の位置、現在の速度および加速度は、予め設定された各サンプリングタイムで計測可能とされる。また、前述したようにロボット１およびカメラ２のキャリブレーションが行われていないので、各サンプリングタイムにおいて、ロボット１の手先部７の移動先である目標位置が変更される。目標位置、速度および加速度が条件とされた場合、初期条件の３つのパラメータと終端条件の３つのパラメータの合計６つのパラメータが時間の５次軌道の係数として決定される。たとえば、目標位置での停止を想定する場合には、各サンプリングタイムでの位置、速度および加速度と目標位置、目標速度（ゼロとする）および目標加速度（ゼロとする）と設定すればよい。
【００４７】
具体的には、ロボット１の手先部７が速度を持った状態で、サンプリングタイムごとに終点である目標位置に向かって軌道を計画し、その軌道に沿って手先部７を移動させることになる。本実施例では、ロボット１およびカメラ２のキャリブレーションがなされていないので、それがなされている場合と異なり、カメラ２で検出される目標位置は、各サンプリングタイムで異なる。従って、サンプリングタイムごとに数１３の係数を求め、サンプリングタイムごとに軌道が計画される。すなわち、ロボット１の手先部７が移動している状態において、サンプリングタイムごとに軌道計画が更新され、時間関数が実時間で計算される。
【００４８】
このようにして、ロボット１およびカメラ２のキャリブレーションが行われていない状態において、制御手段４により制御される。制御手段４は、ロボット１の手先部７の移動中に、カメラ２により得られた撮像結果に基づき、ロボット１の手先部７の位置と目標位置との誤差をリアルタイムで算出することで、その誤差に基づき、ロボット１の手先部７がその目標位置へ移動するようアーム６を実時間で制御する。この際、制御手段４は、ロボット１の手先部７の目標位置への目標軌道を時間の５次関数で与え、ロボット１の手先部７の移動中において、サンプリングタイム毎に目標軌道を求めることで、前記誤差をリアルタイムで算出する。
【００４９】
この新たな軌道は、最初の軌道と現在時間においてスムーズにつながり、また、新たな目標位置に収束するための軌道とされる。本実施例の場合、これをロボット１の移動中に各サンプリングタイムで繰り返すことで、ロボット座標系において変動し続ける目標位置に対して、振動がなく、収束までの時間が速いスムーズな制御を実現することができる。これは、ロボット１の手先部７から目標位置までの誤差をリアルタイムで導出することにより、常に手先部７を移動させるべき最適な位置および軌道上を移動させることができるからである。さらに、本実施例の場合、ロボット１の手先部７の移動中において、サンプリングタイムごとに目標軌道である時間の５次関数が求められるので、加速度を滑らかにすることができ、振動を防止することができる。
【００５０】
本発明のロボット制御システムは、前記実施例の構成に限らず、適宜変更可能である。たとえば、前記実施例では、目標軌道は、時間の５次関数で与えられたが、これに限定されるものではなく、ロボット１の手先部７が滑らかな軌道をとる関数であればよい。一例としては、速度と時間との関係が、図４のように釣鐘型ではなく、台形状になる関数が好ましい。この場合、ロボット１に定められたスピードリミットに早く近づくことができ、ロボット１の手先部７の移動の高速化をより向上させることができる。さらに、ロボット１およびカメラ２のキャリブレーションが行われない制御方法は、前述した方法に限定されるものではなく、たとえば、国際公開番号ＷＯ２０１３／１７６２１２号に開示される方法であってもよい。
【符号の説明】
【００５１】
１  ロボット
２  カメラ（撮像手段）
４  制御手段
６  アーム
７  手先部
【図１】
2020089927.tif 000016
【図２】
2020089927.tif 000017
【図３】
2020089927.tif 000018
【図４】
2020089927.tif 000019