JP2017209762A - ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法 - Google Patents
ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法 Download PDFInfo
- Publication number
- JP2017209762A JP2017209762A JP2016105609A JP2016105609A JP2017209762A JP 2017209762 A JP2017209762 A JP 2017209762A JP 2016105609 A JP2016105609 A JP 2016105609A JP 2016105609 A JP2016105609 A JP 2016105609A JP 2017209762 A JP2017209762 A JP 2017209762A
- Authority
- JP
- Japan
- Prior art keywords
- robot arm
- value
- robot
- command value
- acceleration sensor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
【課題】本動作においてロボットアームの振動を抑制しながらも、ロボットアームの動作の高速化及び高精度化を実現する。
【解決手段】生産動作等の本動作に先立って、ロボットアーム201の先端部の理想軌道に基づき、動作指令値を生成する。動作指令値に基づきロボットアーム201を本動作よりも低速で動作させ、力覚センサ203の検出値を取得する。ロボットアーム201の先端部が理想軌道を辿るときの力覚センサ203の理想値に対する力覚センサ203の検出値の偏差が小さくなるように、動作指令値を補正する。
【選択図】図1
【解決手段】生産動作等の本動作に先立って、ロボットアーム201の先端部の理想軌道に基づき、動作指令値を生成する。動作指令値に基づきロボットアーム201を本動作よりも低速で動作させ、力覚センサ203の検出値を取得する。ロボットアーム201の先端部が理想軌道を辿るときの力覚センサ203の理想値に対する力覚センサ203の検出値の偏差が小さくなるように、動作指令値を補正する。
【選択図】図1
Description
本発明は、ロボットの振動を抑制する技術に関する。
近年、生産システムにおいて、ロボットアーム及びエンドエフェクタ(例えばロボットハンド)を有するロボットと、ロボットを制御する制御装置とを備えたロボット装置が普及している。ロボット装置により、例えばロボットハンドに把持させたワークを他のワークに自動的に組み付けるような作業を行う場合には、高精度かつ高速にロボットアームを動作させることが望まれている。このため、ロボットアームの先端部に取り付けた加速度センサの計測値をフィードバックし、ロボットアームの関節部の動作量を動作指令値に近づけるフィードバック制御値を補正することで、振動を抑制する方法が提案されている(特許文献1参照)。なお、特許文献1には、フィードバック制御値は速度指令値やトルク指令値等の所定指令値として記載されている。
しかしながら、ロボットアームの先端部は、ロボットアームの製作公差、組立誤差、ロボットアームの先端部に作用する荷重によるロボットアームの撓みなどの多くの外乱により、理想の軌道を辿らないことがある。このような場合、外乱が加速度センサの検出値に重畳するため、ロボットアームの先端部の振動成分を正確に抽出することはできず、ロボットアームの振動を抑制するのに処理時間が長くなり、ロボットアームの動作の高速化及び高精度化の妨げとなっていた。
そこで、本発明は、本動作においてロボットアームの振動を抑制しながらも、ロボットアームの動作の高速化及び高精度化を実現することを目的とする。
本発明のロボット装置は、関節部を介して互いに連結された複数のリンクを有するロボットアーム、前記ロボットアームの各関節部を駆動する駆動部、前記各関節部の動作量を検出する検出部、及び前記ロボットアームの先端部に設けられた加速度センサを有するロボットと、前記各関節部の動作指令値に基づき前記ロボットアームを動作させる本動作の最中に、前記動作量を前記動作指令値に近づけるフィードバック制御値を、前記ロボットアームの先端部に生じた振動を抑制するよう前記加速度センサの検出値に基づいて補正して、該フィードバック制御値により前記駆動部を制御する制御部と、を備え、前記制御部は、前記本動作に先立って、前記ロボットアームの先端部の理想軌道に基づき、前記動作指令値を生成する指令値生成処理と、前記動作指令値に基づき前記ロボットアームを前記本動作よりも低速で動作させ、前記加速度センサの検出値を取得する低速動作処理と、前記ロボットアームの先端部が前記理想軌道を辿るときの前記加速度センサの理想値に対する、前記低速動作処理にて検出した前記加速度センサの検出値の偏差が小さくなるように、前記動作指令値を補正する補正処理と、を実行することを特徴とする。
本発明によれば、本動作においてロボットアームの振動を抑制しながらも、ロボットアームの動作の高速化及び高精度化を実現することができる。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、第1実施形態に係るロボット装置を示す模式図である。ロボット装置100は、生産ラインに設けられ、ワークW1をワークW2に組み付ける組付作業を行い、ワークW1とワークW2とが組み付けられた物品を製造する。ロボット装置100は、ロボット200と、ロボット200の動作を制御する制御装置300と、を備えている。
図1は、第1実施形態に係るロボット装置を示す模式図である。ロボット装置100は、生産ラインに設けられ、ワークW1をワークW2に組み付ける組付作業を行い、ワークW1とワークW2とが組み付けられた物品を製造する。ロボット装置100は、ロボット200と、ロボット200の動作を制御する制御装置300と、を備えている。
ロボット200は、垂直多関節のロボットアーム201と、ロボットアーム201の先端部に支持された、ロボット200の手先であるエンドエフェクタとしてのロボットハンド202と、を有している。
また、ロボット200は、ロボットアーム201の先端部とロボットハンド202との間に配置された、加速度センサとしての力覚センサ203を有している。よって、ロボットハンド202は、ロボットアーム201の先端部に力覚センサ203を介して取り付けられることになる。
ロボットアーム201は、架台150に固定されるベース部(基端リンク)210と、変位や力を伝達する複数のリンク211〜216とが関節部J1〜J6を介して揺動(旋回)又は回転可能に互いに連結されている。架台150は、アンカー等で床に固定されている。なお、架台150には、不図示の治具やモジュールが配置されている。
第1実施形態では、ロボットアーム201は、揺動する3軸と回転する3軸の6軸の関節部J1〜J6で構成されている。ここで、揺動する関節部を揺動部、回転する関節部を回転部と呼ぶ。ロボットアーム201は、6つの関節部J1〜J6から構成され、関節部J1,J4,J6が回転部、関節部J2,J3,J5が揺動部である。
ロボットアーム201の各関節部J1〜J6には、駆動部が設けられている。各関節部J1〜J6の駆動部は、必要なトルクの大きさに合わせて適切な出力のものが用いられる。
ロボットハンド202は、ハンド本体と、ハンド本体に開閉可能に支持された複数のフィンガーとを有している。複数のフィンガーを閉動作させることにより、ワークや治工具を把持することができ、複数のフィンガーを開動作させることにより、ワークや治工具を把持解放することができる。
力覚センサ203は、ロボット200の手先、つまりロボットアーム201の先端部にかかる力を検出する。ここで、ロボットアーム201の先端部とは、複数のリンク210〜216のうち、先端に位置するリンク(先端リンク)216のことであり、力覚センサ203は、リンク216に取り付けられている。力覚センサ203は、6軸力覚センサであり、ロボットアーム201の先端部の座標系で、X軸、Y軸、Z軸の3軸の力成分Fx,Fy,Fzと、各軸まわりRx,Ry,Rzのモーメント成分Mx,My,Mzと、を検出することができる。ここで、ロボットアーム201の6軸目のリンク216の軸方向がZ軸、Z軸を法線とする面にそれぞれX軸およびY軸がある。力覚センサ203は、歪ゲージ式を用いてもよいが、感度を上げるために、磁気式又は静電容量式を用いてもよい。力覚センサ203の出力(検出値)は、6軸とも制御装置300にリアルタイムで送信される。
力覚センサ203は、ロボットアーム201とロボットハンド202との間に設けられているので、ロボットハンド202とロボットハンド202が把持したワーク又は治具に掛かる反力、重力及び慣性力を検出することが可能である。力覚センサ203に掛る重力、慣性力は、ワークや治具の重量、重心の位置により、力の大きさ及び方向が変化する。
制御装置300は、制御部(演算部)であるCPU301と、記憶部として、ROM302、RAM303及びHDD304と、インターフェース部(I/F)305と、を有するコンピュータで構成されている。HDD304には、後述するロボット制御方法(物品の製造方法)の各工程を実行させるプログラム307が格納されている。
なお、第1実施形態では、コンピュータ読み取り可能な記録媒体がHDD304であり、HDD304にプログラム307が格納される場合について説明するが、これに限定するものではない。プログラム307は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム307を供給するための記録媒体としては、ROM302や、記録ディスク、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、USBメモリ等の不揮発性メモリ、ROM等を用いることができる。
図2は、第1実施形態に係るロボット装置のブロック図である。なお、制御装置300においては、CPU301の機能をブロック化している。即ち、CPU301は、プログラム307を実行することにより目標値演算部310、目標値出力部311、フィードバック制御部312i、減算部313i及びサーボ制御部314iとして機能する。また、CPU301は、プログラム307を実行することによりアンプフィルタ320、第1演算部321、第2演算部322及びゲイン調整部324iとして機能する。なお、一部の機能をCPU301とは別の制御回路で構成してもよい。iは、1〜6の整数である。
ロボット200は、各関節部Jiを各々駆動する駆動部としてのモータ221iと、各関節部Jiの動作量として、各モータ221iの回転角度を各々検出する検出部としてのエンコーダ222iと、を有している。各モータ221iは、それぞれの減速機223iを介して、互いに連結されたリンク210〜216を相対的に駆動する。
モータ221iは、サーボモータであり、例えばブラシレスDCサーボモータやACサーボモータである。エンコーダ222iは、ロータリーエンコーダであり、アブソリュート型のロータリーエンコーダが望ましい。各関節部Jiのエンコーダ222iの値により、ロボットアーム201の先端部の位置及び姿勢を計算することができる。減速機223iは、例えば波動歯車減速機である。
ここで、ロボットアーム201の先端部にはツールセンターポイント(TCP)が設定されている。TCPは、位置を表す3つのパラメータと、姿勢を表す3つのパラメータとからなる6つのパラメータで構成され、タスク空間上では、1つの点としてみなすことができる。つまり、タスク空間は、これら6つの座標軸で規定された空間である。このTCPで教示点を指定することができる。
なお、教示点を関節角度(コンフィグレーション)で表すこともできる。第1実施形態では、ロボットアーム201の関節部が6つあるので、教示点は、関節角度を表す6つのパラメータで構成されたコンフィグレーションで表され、関節空間上では、1つの点とみなすことができる。つまり、関節空間は、これら6つの座標軸で規定された空間である。
教示点は、タスク空間又は関節空間で指定可能であるが、第1実施形態では、タスク空間で指定されるものとする。CPU301は、ロボットプログラムで指定された補間方法に従い、教示点間を補間するロボットアーム201の経路(補間経路)データを生成する。ここで、教示点間を補間する補間方法としては、直線補間、円弧補間、Spline補間、B−Spline補間、ベジェ曲線など、種々の方法がある。経路データとは、タスク空間におけるロボットアーム201のTCPの軌跡である。この経路データに速度、加速度等の時間パラメータを付加したものが軌道データである。つまり、軌道データは、時刻毎のTCPの位置(姿勢を含む)である位置指令値(目標位置ともいう)の順列集合で表される。CPU301は、補間計算により求めた位置指令値からなる理想軌道のデータを、HDD304等の記憶部に記憶させておく。
CPU301は、TCPの位置指令値を、各関節部Jiの動作量の目標値を示す動作指令値に、逆運動学計算によりロボット200のモデル情報(メカモデル)を用いて変換する。そして、CPU301は、動作指令値によりロボットアーム201の各関節部Jiの動作を制御する。即ち、CPU301は、ロボットアーム201の各関節部Jiの動作指令値から各関節部Jiをサーボ制御し、各関節部Jiのモータ221iを駆動させ、各エンコーダ222iにて検出された動作量を動作指令値へと近づけるようフィードバック制御する。
ロボット200のメカモデルは、リンクパラメータ、エンドエフェクタの長さ、エンコーダ222iの角度換算値、リンクやエンドエフェクタなどのロボットの各部の重量、リンク及び関節の剛性値、並びにロボットアームの先端部に掛る荷重のデータである。リンクパラメータは、リンク長、リンクのねじれ角度、リンク間距離及びリンク間角度などのデータである。
ここで、エンコーダ222iが検出する動作量は、モータ221iの回転角度であり、動作指令値は、モータ221iの回転角度に対応する角度指令値である。なお、エンコーダ222iが検出する動作量が減速機223iの出力角度、即ち関節部Jiの角度である場合、動作指令値は、関節部Jiの角度に対応する角度指令値ということになる。つまり、第1実施形態では、セミクローズドループ制御でフィードバック制御する場合について説明するが、フルクローズドループ制御でフィードバック制御する場合であってもよい。
図3は、第1実施形態に係るロボット装置の記憶装置の構成を示す模式図である。記憶装置としてのHDD304は、ロボット200のモデル情報であるメカモデルを記憶する記憶部(モデル記憶部)304Aと、ロボットアーム201の先端部、即ちTCPの理想軌道のデータを記憶する記憶部(軌道記憶部)304Bと、を有する。また、HDD304は、動作指令値を記憶する記憶部(指令値記憶部)304Cと、ロボットアーム201の先端部が理想軌道を辿るときの力覚センサ203の理想値を記憶する記憶部(理想値記憶部)304Dと、を有する。また、HDD304は、各種のパラメータを記憶する記憶部(パラメータ記憶部)304Eを有する。各種のパラメータとしては、各関節部Jiの最大角速度のデータ、各関節部Jiの最大角加速度のデータ、後述する力の偏差の比較対象である閾値のデータ等である。これら記憶部304A〜304Eは、それぞれ異なる記憶装置で構成されていてもよく、また、共通の記憶装置において記憶領域がそれぞれ異なるようにしてもよいが、書き換え可能な記憶部である必要がある。
ここで、実際のロボット200を動作指令値に従って動作させたとしても、ロボットアーム201の先端部に設定したTCPの実軌道が、理想軌道に対してずれることがある。この理想軌道に対する実軌道の乖離は、大別して2つの要因で発生する。第1の要因は、ロボットアーム201のリンク長の製作公差や組立誤差、関節部のねじれによる角度誤差、ロボットアーム201の先端部に作用する荷重によるロボットアーム201の撓みなど、理想に対する実機のメカモデルの乖離である。第2の要因は、ロボットアーム201の動作中の振動である。
図4は、第1実施形態に係るロボット装置による物品の製造方法を示すフローチャートである。第1実施形態では、生産を行う生産動作(本動作)に先立って行う事前動作と、生産を行う生産動作(本動作)の2段階に分ける。そして、事前動作で第1の要因によるTCPの軌道のずれを補正し(S1)、本動作である生産動作で第2の要因によるTCPの軌道のずれを補正する(S2)。なお、事前動作は、生産動作の度に逐一行う必要はなく、ロボット200の初期起動時やメンテナンス時に適宜行えばよい。
上述したように、ステップS2の各関節部Jiの動作指令値に基づきロボットアーム201を動作させる生産動作の最中においては、エンコーダ222iにより検出された動作量を動作指令値に近づけるフィードバック制御を行う。このフィードバック制御によるフィードバック制御値を、ロボットアーム201の先端部に生じた振動を抑制するよう力覚センサ203の検出値に基づいて補正して、補正したフィードバック制御値によりモータ221iを制御する。即ち、力覚センサ203の検出値に基づいて、ロボットアーム201の振動によるTCPの軌道のずれを補正する。第1実施形態では、事前動作(ステップS1)では、生産動作(ステップS2)で用いる力覚センサ203を用いて、第1の要因によるTCPの軌道のずれを補正する。
ここで、上述したように、記憶部304Dには、ロボットアーム201の先端部が理想軌道を辿るときの力覚センサ203の理想値のデータが格納されている。力覚センサ203の理想値は、コンピュータのシミュレーションにより求めてもよいし、基準となるロボットを実際に動作させて取得してもよい。
図5(a)は、ロボットアーム201を動作させたときに、TCPが第1の要因及び第2の要因により理想軌道からずれた場合の理想値に対する力覚センサ203の検出値の偏差を示す模式図である。図5(b)は、ロボットアーム201を動作させたときに、TCPが第1の要因により理想軌道からずれた場合の理想値に対する力覚センサ203の検出値の偏差を示す模式図である。図5(c)は、ロボットアーム201を動作させたときに、TCPが第2の要因により理想軌道からずれた場合の理想値に対する力覚センサ203の検出値の偏差を示す模式図である。
ロボットアーム201の先端部に設定したTCPの実軌道が理想軌道からずれると、図5(a)に示すように、力覚センサ203の検出値が理想値からずれる。力覚センサ203の検出値は、上述した2つの要因により理想値に対してずれるため、2つの要因によるずれを生産動作中に補正すると、検出値を理想値に収束させるのに要する処理時間が増加してしまい、ロボットアーム201の動作の高速化の妨げとなる。
図5(b)及び図5(c)に示すように、第1の要因による力覚センサ203の検出値の理想値からの偏差は、第2の要因による力覚センサ203の検出値の理想値からの偏差と比較して大きい。また、図5(b)に示す第1の要因による力覚センサ203の検出値の偏差は、同じ動作であれば同じ傾向として現れる。したがって、事前動作で、図5(b)に示す第1の要因による力覚センサ203の検出値のずれにより動作指令値を補正しておけば、生産動作では、図5(c)に示す第2の要因による力覚センサ203の検出値のずれによる動作指令値だけを補正すればよい。よって、CPU301は、事前動作にて設定される第1制御モードと、生産動作にて設定される第2制御モードとを有する。ここで、CPU301において、図2に示す第1演算部321は、第1制御モードに設定されたときに機能し、第2演算部322は、第2制御モードに設定されたときに機能する。
図6は、第1制御モードで制御するときのブロック図であり、図7は、第2制御モードで制御するときのブロック図である。まず、図6を参照しながら、第1制御モードに設定された場合について説明する。目標値演算部310は、予め設定されたロボットアーム201の先端部(TCP)の理想軌道のデータから、逆運動学計算により、ロボット200のメカモデルを用いて各関節部Jiに対応する動作指令値θref(i)(i=1〜6)を生成する。つまり、記憶部304Bにはメカモデルが格納され、記憶部304BにはTCPの理想軌道のデータが格納されているので、目標値演算部310は、これら記憶部304A,304Bからメカモデル及び理想軌道のデータを読み出して、動作指令値を計算する。
ロボットアーム201は、先端部に掛った荷重により撓んだ状態となる。したがって、目標値演算部310は、メカモデルからロボットアーム201の撓み量を演算する。具体的には、目標値演算部310は、リンク及び関節部の剛性値と先端部に掛った荷重のデータにより、ロボットアーム201の撓み量、即ちロボットアーム201の先端部の位置姿勢のずれ量を演算する。そして、目標値演算部310は、ロボットアーム201の撓みによる先端部の位置姿勢のずれを相殺してTCPが理想軌道を辿るように、ロボットアーム201の撓み量のデータを用いて、各関節部Jiに対応する動作指令値θref(i)を生成する。目標値演算部310は、生成した動作指令値θref(i)を、記憶部304Cに記憶させる。目標値出力部311は、動作指令値θref(i)を、記憶部304Cから読み出し、各フィードバック制御部312iに出力する。
フィードバック制御部312iは、動作量θ(i)と動作指令値θref(i)との差分値(θref(i)−θ(i))に、ゲインKpを掛けて、動作量θ(i)を動作指令値θref(i)に近づけるフィードバック制御値Vref(i)を演算する。第1実施形態では、フィードバック制御値Vref(i)は、速度指令値である。サーボ制御部314iは、入力した速度指令値であるフィードバック制御値Vref(i)に基づいてモータ221iを駆動する。
アンプフィルタ320は、力覚センサ203の検出信号を増幅及び濾波する。演算部321は、力覚センサ203の検出値に基づいて、メカモデルを補正、つまり記憶部304Aに格納されているメカモデルを書き換える。
したがって、目標値演算部310は、記憶部304Aのメカモデルが書き換えられたら、再び、補正したメカモデルを用いて各関節部Jiに対応する補正した動作指令値θref(i)を逆運動学計算により生成する。以上の制御ループを、ロボットアーム201のTCPの実軌道が理想軌道に近づくように、即ち力覚センサ203の検出値が理想値に近づくように繰り返し実行する。このようにして記憶部304Cには、補正された動作指令値θref(i)が格納される。ここで、記憶部304Aに記憶されている初期(補正前)のメカモデルは、設計値であり、以上の制御ループにより、順次書き換えられていくことになる。
次に、図7を参照しながら、第2制御モードに設定された場合について説明する。目標値出力部311は、動作指令値θref(i)を、記憶部304Cから読み出し、各フィードバック制御部312iに出力する。
フィードバック制御部312iは、動作量θ(i)と動作指令値θref(i)との差分値(θref(i)−θ(i))に、ゲインKpを掛けて、動作量θ(i)を動作指令値θref(i)に近づけるフィードバック制御値Vref(i)を演算する。
一方、アンプフィルタ320は、力覚センサ203の検出信号を増幅及び濾波する。演算部322は、力覚センサ203の検出値に基づいて、各軸方向の加速度成分α1を算出する。また、記憶部304Aに記憶されているロボットアーム201の先端部に掛る荷重のデータに基づき、各軸方向の加速度成分α0を算出し、加速度成分α1から加速度成分α0を除去(減算)し、加速度成分αを得る。なお、記憶部304Aに記憶されているロボットアーム201の先端部に掛る荷重のデータの代わりに、記憶部304Dに記憶されている力覚センサ203の理想値のデータを用いてもよいが、前者の方が後者の方よりも正確である。
これにより、力覚センサ203の検出値から重力成分や慣性力成分が除去され、振動成分のみが抽出される。そして、演算部322は、ロボットアーム201の構造で決まるヤコビ行列Jの転置行列JTを用いて、振動成分である補償成分αθ(i)(=JTα)を算出する。
ゲイン調整部324iは、補償成分αθ(i)にゲインKα(i)を乗じ、減算部313iは、その値をフィードバック制御値Vref(i)から減算して、新たなフィードバック制御値Vref1(i)を生成する。即ちロボットアーム201に生産動作させている最中に、力覚センサ203の検出値から、事前動作で取得した力覚センサ203の検出値を用いてロボットアーム201の振動成分を抽出し、この振動成分を相殺するようにフィードバック制御値を補正する。サーボ制御部314iは、入力したフィードバック制御値Vref1(i)に基づいてモータ221iを駆動する。
次に、事前動作における制御フローについて説明する。図8は、事前動作における制御処理を示すフローチャートである。ここで、CPU301は、予め、記憶部304Dから理想値のデータ、及び記憶部304Eから閾値のデータをそれぞれ読み出しておき、RAM303等の一時記憶領域に予め設定しておく。
CPU301は、ロボットアーム201の先端部の理想軌道に基づき、ロボットアーム201の逆運動学計算により、メカモデルを用いて動作指令値θref(i)を生成する(S11:指令値生成処理、指令値生成工程)。CPU301は、生成した動作指令値θref(i)を記憶部304Cに記憶させる。
次に、CPU301は、動作指令値θref(i)に基づきロボットアーム201を生産動作よりも低速(例えば生産動作の1/10の速度)で動作させ(S12)、力覚センサ203の検出値を取得(荷重計測)する(S13:低速動作処理、低速動作工程)。
次に、CPU301は、ロボットアーム201の動作が終了したか否かを判断し(S14)、動作が終了していなければ(S14:No)、ステップS12に戻り、低速動作を継続する。
CPU301は、ロボットアーム201の動作が終了した場合(S14:Yes)、記憶部304Dから読み出した理想値に対する力覚センサ203の検出値の偏差を求め、偏差が記憶部304Eから読み出した閾値以内であるか否かを判断する(S15)。
即ち、リンク長の製作公差や組立誤差、関節部の角度誤差によるロボットアーム201の姿勢の変化、及びロボットアーム201の先端部に掛る荷重によるロボットアーム201の撓みにより、力覚センサ203の検出値が理想値に対してずれる。このずれ量を示す偏差が閾値以下であれば、TCPは理想軌道を辿るものとみなせる。CPU301は、この力覚センサ203の検出値をロボットアーム201の先端部に掛る荷重として記憶部304Aに記憶させる。
CPU301は、偏差が閾値を超える場合(S15:No)、メカモデル、具体的にはリンクパラメータと、ロボットアーム201の先端部に掛る荷重のデータを補正、つまり記憶部304Aに記憶されているメカモデルを書き換える(S16)。
そして、CPU301は、補正したメカモデルを用いて、ロボットアーム201の逆運動学計算により、動作指令値θref(i)を生成し(S17)、記憶部304Cに記憶されている動作指令値θref(i)のデータを書き換える。つまり、書き換えられたメカモデルを用いてロボットアーム201の撓み量を推定して、ロボットアーム201の撓みによる姿勢の変化を解消するように補正した動作指令値θref(i)を生成する。そして、ステップS12に戻り、補正された動作指令値θref(i)に基づきロボットアーム201を低速で動作させる。このように、CPU301は、ステップS16,S17の補正処理(補正工程)により、偏差が小さくなるように動作指令値を補正する。
CPU301は、この補正処理を1回のみ行うようにしてもよいが、第1実施形態では、ステップS12〜S17(低速動作処理及び補正処理)を、偏差が閾値以内に収束するまで、繰り返し実行する。CPU301は、ステップS15において、偏差が閾値以内に収束したと判断した場合には、事前動作を終了する。
以上のように生成された動作指令値θref(i)に基づきロボットアーム201を動作させたとき、ロボットアーム201の振動がなければ、TCPはほぼ理想軌道を辿ることになる。
次に、生産動作における制御フローについて説明する。図9は、生産動作における制御処理を示すフローチャートである。
CPU301は、記憶部304Cから読み出した動作指令値θref(i)に基づきロボットアーム201を既定の速度で動作させ(S21)、力覚センサ203の検出値を取得(荷重計測)する(S22)。そして、CPU301は、上述したように、力覚センサ203の検出値に基づき補償成分αθ(i)を演算して、この補償成分αθ(i)でフィードバック制御値Vref(i)を補正し(S23)、ロボットアーム201の位置制御を行う。この補償成分αθ(i)は、事前動作で取得済みのロボットアーム201の先端部の荷重データで補正しているので、重力や慣性力を除去した振動成分のみとなっている。したがって、振動エネルギーを相殺する逆位相の加速度がロボットアーム201の先端部に付与されることになる。
CPU301は、ロボットアーム201の動作が終了したか否かを判断し(S24)、終了していなければ(S24:No)ステップS21に戻り、終了していれば(S24:Yes)、処理を終了する。
以上、生産動作では、予め事前動作により第1の要因による軌道のずれが補正されている状態で、第2の要因である振動による軌道のずれのみを補正できるので、処理が簡単であり、計算負荷を削減できる。よって、生産中の計算負荷を大幅に削減することができ、振動を抑制する処理時間を大幅に短縮することができるので、ロボットアーム201の振動を抑制しつつ、ロボットアーム201を高精度かつ高速に動作させることができる。このため、ロボットハンド202の位置を高精度に制御できるため、組付作業を、高速かつ高精度に行うことができる。
[第2実施形態]
次に、本発明の第2実施形態に係るロボット装置について説明する。図10は、第2実施形態に係るロボット装置のブロック図である。第2実施形態では、事前動作は上記第1実施形態と同様であり、生産動作の処理が上記第1実施形態と異なる。具体的には、図10中、第2演算部322、ゲイン調整部324i及び減算部313iの機能が第1実施形態と異なる。
次に、本発明の第2実施形態に係るロボット装置について説明する。図10は、第2実施形態に係るロボット装置のブロック図である。第2実施形態では、事前動作は上記第1実施形態と同様であり、生産動作の処理が上記第1実施形態と異なる。具体的には、図10中、第2演算部322、ゲイン調整部324i及び減算部313iの機能が第1実施形態と異なる。
図1中、Y方向およびZ方向の振動が大きい場合、図1に示した関節部J3,J5のみ、第2演算部322、ゲイン調整部324i及び減算部313iにてフィードバック制御で補正しすればよい。これにより、生産中の計算負荷がより削減することができ、全関節部をフィードバック制御するよりも、一部の関節部のみにフィードバックループ制御を絞ったことで、より高速でかつ高精度な生産を行うことができる。
[第3実施形態]
次に、本発明の第3実施形態に係るロボット装置について説明する。図11は、第3実施形態に係るロボット装置のブロック図である。第3実施形態では、事前動作は上記第1実施形態と同様であり、生産動作の処理が上記第1実施形態と異なる。具体的には、図11中、第2演算部322、ゲイン調整部324i及び減算部313iの機能が第1実施形態と異なる。
次に、本発明の第3実施形態に係るロボット装置について説明する。図11は、第3実施形態に係るロボット装置のブロック図である。第3実施形態では、事前動作は上記第1実施形態と同様であり、生産動作の処理が上記第1実施形態と異なる。具体的には、図11中、第2演算部322、ゲイン調整部324i及び減算部313iの機能が第1実施形態と異なる。
図1中、X方向、Y方向およびZ方向の振動が大きい場合、図1に示した関節部J1,J3,J5のみ、第2演算部322、ゲイン調整部324i及び減算部313iにてフィードバック制御で補正しすればよい。これにより、生産中の計算負荷がより削減することができ、全関節部をフィードバック制御するよりも、一部の関節部のみにフィードバックループ制御を絞ったことで、より高速でかつ高精度な生産を行うことができる。
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、上述の実施形態では、ロボットアーム201が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
また、上述の実施形態では、力覚センサ203を用いる場合について説明したが、加速度を検出する加速度センサを用いてもよい。
100…ロボット装置、201…ロボットアーム、202…ロボットハンド、203…力覚センサ(加速度センサ)、221i…モータ(駆動部)、222i…エンコーダ(検出部)、301…CPU(制御部)
Claims (14)
- 関節部を介して互いに連結された複数のリンクを有するロボットアーム、前記ロボットアームの各関節部を駆動する駆動部、前記各関節部の動作量を検出する検出部、及び前記ロボットアームの先端部に設けられた加速度センサを有するロボットと、
前記各関節部の動作指令値に基づき前記ロボットアームを動作させる本動作の最中に、前記動作量を前記動作指令値に近づけるフィードバック制御値を、前記ロボットアームの先端部に生じた振動を抑制するよう前記加速度センサの検出値に基づいて補正して、該フィードバック制御値により前記駆動部を制御する制御部と、を備え、
前記制御部は、
前記本動作に先立って、前記ロボットアームの先端部の理想軌道に基づき、前記動作指令値を生成する指令値生成処理と、
前記動作指令値に基づき前記ロボットアームを前記本動作よりも低速で動作させ、前記加速度センサの検出値を取得する低速動作処理と、
前記ロボットアームの先端部が前記理想軌道を辿るときの前記加速度センサの理想値に対する、前記低速動作処理にて検出した前記加速度センサの検出値の偏差が小さくなるように、前記動作指令値を補正する補正処理と、を実行することを特徴とするロボット装置。 - 前記制御部は、前記低速動作処理及び前記補正処理を、前記偏差が予め設定した閾値以内に収束するまで、繰り返し実行することを特徴とする請求項1に記載のロボット装置。
- 前記理想値を予め記憶する理想値記憶部を備え、
前記制御部は、前記理想値記憶部から前記理想値を読み出して前記補正処理を実行することを特徴とする請求項1又は2に記載のロボット装置。 - 前記制御部は、前記ロボットアームを前記本動作で動作させている最中に、前記加速度センサの検出値から、前記低速動作処理で取得した前記加速度センサの検出値を用いて前記ロボットアームの振動成分を抽出し、該振動成分を相殺するように前記フィードバック制御値を補正することを特徴とする請求項1又は2に記載のロボット装置。
- 前記制御部は、前記各関節部に対応する前記フィードバック制御値のうち一部を補正することを特徴とする請求項1乃至3のいずれか1項に記載のロボット装置。
- 前記動作指令値を記憶する指令値記憶部を備え、
前記制御部は、前記補正処理では前記指令値記憶部に記憶されている前記動作指令値を書き換え、
前記指令値記憶部から読み出した前記動作指令値に基づき前記ロボットアームを動作させることを特徴とする請求項1乃至4のいずれか1項に記載のロボット装置。 - 前記制御部は、前記指令値生成処理では、前記ロボットのモデル情報を用いて、前記ロボットアームの逆運動学計算により、前記動作指令値を生成し、前記補正処理では、前記モデル情報を補正し、補正した前記モデル情報を用いて、前記ロボットアームの逆運動学計算により、補正した前記動作指令値を生成することを特徴とする請求項1乃至5のいずれか1項に記載のロボット装置。
- 前記モデル情報には、リンクパラメータが含まれており、
前記制御部は、前記補正処理では、前記モデル情報として、前記リンクパラメータを補正することを特徴とする請求項7に記載のロボット装置。 - 前記モデル情報には、前記ロボットアームの先端に掛る荷重のデータが含まれており、
前記制御部は、前記補正処理では、前記モデル情報として、前記低速動作処理で取得した前記加速度センサの検出値から前記荷重のデータを補正することを特徴とする請求項7又は8に記載のロボット装置。 - 前記加速度センサが、前記ロボットアームの先端部に作用する力を検出する力覚センサであることを特徴とする請求項1乃至9のいずれか1項に記載のロボット装置。
- 関節部を介して互いに連結された複数のリンクを有するロボットアーム、前記ロボットアームの各関節部を駆動する駆動部、前記各関節部の動作量を検出する検出部、及び前記ロボットアームの先端部に設けられた加速度センサを有するロボットを制御する制御部が、前記各関節部の動作指令値に基づき前記ロボットアームを動作させる本動作の最中に、前記動作量を前記動作指令値に近づけるフィードバック制御値を、前記ロボットアームの先端部に生じた振動を抑制するよう前記加速度センサの検出値に基づいて補正して、該フィードバック制御値により前記駆動部を制御するロボット制御方法であって、
前記制御部が、前記本動作に先立って、前記ロボットアームの先端部の理想軌道に基づき、前記動作指令値を生成する指令値生成工程と、
前記制御部が、前記動作指令値に基づき前記ロボットアームを前記本動作よりも低速で動作させ、前記加速度センサの検出値を取得する低速動作工程と、
前記制御部が、前記ロボットアームの先端部が前記理想軌道を辿るときの前記加速度センサの値を理想値に対する、前記低速動作工程にて取得した前記加速度センサの検出値の偏差が小さくなるように、前記動作指令値を補正する補正工程と、を備えたことを特徴とするロボット制御方法。 - コンピュータに請求項11に記載のロボット制御方法の各工程を実行させるためのプログラム。
- 請求項12に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
- 関節部を介して互いに連結された複数のリンクを有するロボットアーム、前記ロボットアームの各関節部を駆動する駆動部、前記各関節部の動作量を検出する検出部、及び前記ロボットアームの先端部に設けられた加速度センサを有するロボットを制御する制御部が、前記各関節部の動作指令値に基づき前記ロボットアームを動作させる生産動作の最中に、前記動作量を前記動作指令値に近づけるフィードバック制御値を、前記ロボットアームの先端部に生じた振動を抑制するよう前記加速度センサの検出値に基づいて補正して、該フィードバック制御値により前記駆動部を制御し、前記ロボットにより物品の製造をする物品の製造方法であって、
前記制御部が、前記生産動作に先立って、前記ロボットアームの先端部の理想軌道に基づき、前記動作指令値を生成する指令値生成工程と、
前記制御部が、前記動作指令値に基づき前記ロボットアームを前記生産動作よりも低速で動作させ、前記加速度センサの検出値を取得する低速動作工程と、
前記制御部が、前記ロボットアームの先端部が前記理想軌道を辿るときの前記加速度センサの理想値に対する、前記低速動作工程にて取得した前記加速度センサの検出値の偏差が小さくなるように、前記動作指令値を補正する補正工程と、を備えたことを特徴とする物品の製造方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016105609A JP2017209762A (ja) | 2016-05-26 | 2016-05-26 | ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016105609A JP2017209762A (ja) | 2016-05-26 | 2016-05-26 | ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017209762A true JP2017209762A (ja) | 2017-11-30 |
Family
ID=60475868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016105609A Pending JP2017209762A (ja) | 2016-05-26 | 2016-05-26 | ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017209762A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019179454A (ja) * | 2018-03-30 | 2019-10-17 | オムロン株式会社 | センサ、情報処理装置、センサ制御方法、情報処理方法、プログラム、および記録媒体 |
WO2019216416A1 (ja) * | 2018-05-11 | 2019-11-14 | 川崎重工業株式会社 | 撓み量推定装置、ロボット制御装置、及び撓み量推定方法 |
CN110465936A (zh) * | 2018-05-09 | 2019-11-19 | 发那科株式会社 | 控制系统和被驱动体的控制方法 |
CN110480628A (zh) * | 2018-05-14 | 2019-11-22 | 精工爱普生株式会社 | 机器人、控制装置以及机器人控制方法 |
CN110955192A (zh) * | 2018-09-27 | 2020-04-03 | 日本电产三协株式会社 | 伺服控制装置、机器人及伺服控制方法 |
WO2022118760A1 (ja) * | 2020-12-02 | 2022-06-09 | ファナック株式会社 | ロボットを用いた3dプリンタ及びロボットの制御装置 |
WO2023222206A1 (en) * | 2022-05-17 | 2023-11-23 | Abb Schweiz Ag | Reducing kinematic error |
-
2016
- 2016-05-26 JP JP2016105609A patent/JP2017209762A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019179454A (ja) * | 2018-03-30 | 2019-10-17 | オムロン株式会社 | センサ、情報処理装置、センサ制御方法、情報処理方法、プログラム、および記録媒体 |
CN110465936A (zh) * | 2018-05-09 | 2019-11-19 | 发那科株式会社 | 控制系统和被驱动体的控制方法 |
WO2019216416A1 (ja) * | 2018-05-11 | 2019-11-14 | 川崎重工業株式会社 | 撓み量推定装置、ロボット制御装置、及び撓み量推定方法 |
JP2019195892A (ja) * | 2018-05-11 | 2019-11-14 | 川崎重工業株式会社 | 撓み量推定装置、ロボット制御装置、及び撓み量推定方法 |
JP7141847B2 (ja) | 2018-05-11 | 2022-09-26 | 川崎重工業株式会社 | 撓み量推定装置、ロボット制御装置、及び撓み量推定方法 |
CN110480628A (zh) * | 2018-05-14 | 2019-11-22 | 精工爱普生株式会社 | 机器人、控制装置以及机器人控制方法 |
CN110480628B (zh) * | 2018-05-14 | 2023-09-12 | 精工爱普生株式会社 | 机器人、控制装置以及机器人控制方法 |
CN110955192A (zh) * | 2018-09-27 | 2020-04-03 | 日本电产三协株式会社 | 伺服控制装置、机器人及伺服控制方法 |
WO2022118760A1 (ja) * | 2020-12-02 | 2022-06-09 | ファナック株式会社 | ロボットを用いた3dプリンタ及びロボットの制御装置 |
WO2023222206A1 (en) * | 2022-05-17 | 2023-11-23 | Abb Schweiz Ag | Reducing kinematic error |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017209762A (ja) | ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法 | |
JP6083145B2 (ja) | ロボットの制御装置、およびロボット | |
JP5897644B2 (ja) | ロボットの制御装置 | |
JP5774223B2 (ja) | ロボット制御装置およびロボット制御方法 | |
JP5916583B2 (ja) | 多関節ロボットのウィービング制御装置 | |
JP5417161B2 (ja) | ロボットの制振方法およびロボットの制御装置 | |
JP6392825B2 (ja) | 学習制御機能を備えたロボット制御装置 | |
JP5480198B2 (ja) | 学習制御機能を備えたスポット溶接ロボット | |
JP2016105686A (ja) | モータ駆動装置の制御装置、複軸モータ駆動装置の制御装置、及びモータ駆動装置の制御方法 | |
JP5921248B2 (ja) | ロボットの制御装置、ロボット、そのプログラム及びその制御方法 | |
JP2019013984A (ja) | 速度一定が要求されるアプリケーションにおいて学習制御を行うロボット及びその制御方法 | |
JP2017124455A (ja) | ロボット装置、ロボット制御方法、プログラム及び記録媒体 | |
JP6652310B2 (ja) | ロボットシステム、ロボットアームの制御方法、プログラム、記録媒体、及び物品の製造方法 | |
JP4498061B2 (ja) | 溶接ロボット制御装置 | |
JP2020015124A (ja) | ロボット制御方法、物品の製造方法、ロボット制御装置、ロボット、プログラム及び記録媒体 | |
JP6057284B2 (ja) | 多関節ロボット及び半導体ウェハ搬送装置 | |
JP2008194760A (ja) | ロボットアーム、及びその制御方法 | |
JP2013223895A (ja) | ロボット制御方法及びロボット制御装置 | |
JP2015104789A (ja) | ロボット | |
JP6814441B2 (ja) | 駆動機械の学習制御装置及び学習制御方法 | |
JPH0760667A (ja) | ロボットのウィービング制御装置 | |
JP7391523B2 (ja) | 制御装置、ロボットシステム、制御方法、物品の製造方法、プログラム、及び記録媒体 | |
JP2020069616A (ja) | モータ駆動装置、ロボット駆動システム及びモータ駆動プログラム | |
JP2019214105A (ja) | ロボット制御装置およびロボット制御方法 | |
JP2024071866A (ja) | ロボットの制御方法およびロボットシステム |