JP4055090B2 - ロボットの制御装置 - Google Patents
ロボットの制御装置 Download PDFInfo
- Publication number
- JP4055090B2 JP4055090B2 JP03141498A JP3141498A JP4055090B2 JP 4055090 B2 JP4055090 B2 JP 4055090B2 JP 03141498 A JP03141498 A JP 03141498A JP 3141498 A JP3141498 A JP 3141498A JP 4055090 B2 JP4055090 B2 JP 4055090B2
- Authority
- JP
- Japan
- Prior art keywords
- torque
- robot
- command
- speed
- control
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Manipulator (AREA)
Description
【発明の属する技術分野】
本発明はロボットに用いられるモータの制御系において、ロボットアームが周辺物体に衝突した場合のロボットアーム本体やツール、ワークの保護、あるいはロボットアームがオペレータに接触した場合の安全を確保することが可能な制御を実現する制御装置に関する。
【0002】
【従来の技術】
従来のロボット関節を駆動するモータのサーボ系では、位置フィードバックループと速度フィードバックループを有し、指令との差であるサーボ偏差を増幅し、その増幅ゲインをできるだけ高くとることにより制御を行っている。図13にロボットの従来の運動制御のブロック図を示す。図において、10は軌道発生ブロックであり、ティーチペンダントJOGキー12の入力から、あるいはメモリ13のデータからモータの運動の指令を生成する。メモリ13にはあらかじめ教示された位置、速度等のデータ及び補間方法が保存されている。ティーチペンダント12あるいはメモリ13のデータをもとに、軌道生成部座標変換部14で生成された軌道データは座標変換され、各関節のモータの回転指令として運動制御ブロック11へ送られる。運動制御ブロック11はモータのサーボ系であり、ロボット関節駆動モータ15の位置・速度フィードバック信号と軌道生成部座標変換部14で生成された各モータの運動指令とに基づいて制御信号を出力するサーボ制御系メインループ16と、制御信号を電力増幅するアンプ17を備えている。この運動制御ブロック11は、ロボットの駆動系を構成しているモータの数だけ存在する。
【0003】
図14は、各関節で位置制御系を構成する場合の運動制御ブロック11を更に詳しく示している。ここでは、1軸のサーボ系のみを記載しているが他のモータ軸に関しても同様の構成である。図14において、Kpは位置制御ゲイン、Kvは速度制御ゲイン、Tiは積分器の時定数である。ここで、従来においては、位置ループと速度ループのゲインKp、Kvは高めにトルク外乱の影響を受けにくくし、積分時定数Tiは短めに設定することにより、位置の指令値に対してモータの追従性を良くしている。このような従来の制御方法では、指令値と現在値の差、すなわち制御偏差によりモータのトルクが発生する。制御偏差は通常、ロボットアームの慣性や制御装置の応答遅れなどサーボの追従遅れによるものと、ロボットアームに作用する重力や減速機の摩擦、その他、ロボットアームに作用する外力などのトルク外乱により発生する。ロボットを希望する位置や方向に動かす場合は、動作指令に対してはロボットは高速に追従することが望ましい。一方、ロボットが運動中、周辺の物体に衝突したり、人間に接触した場合には、それを出来るだけ速く運動を停止することが望ましい。
【0004】
ところが、従来のロボット制御装置では、指令値応答、外乱応答ともに区別することなく、制御偏差が発生すれば、制御偏差量、もしくは偏差の過去の積算値に比例したトルクをモータにより発生していた。そのため、教示中に誤ってロボットを周辺の物体やワークに衝突させた場合には、教示ツールが変形する、さらにはロボット自体が破損するなどの不都合を起こしていた。ロボットが破損することは重大な問題であるが、教示ツールが変形することで、過去の教示データが使用不能になったり、教示データを変形ツールに合わせて変更するなど、めんどうな手続きが必要であるという問題があった。また、さらに重大なことは、教示者の安全性の問題である。すなわち、教示中はロボットの先端の微妙な位置決めを行う必要があるため、教示者はロボットの近傍で作業を行うことが多い。このとき、教示中に誤って教示者自身の体にロボットアームをぶつけてしまう、あるいは、ロボットアームと周辺ワークの間に腕などを挟む等の危険性がある。さらに、複雑なワーク、たとえば自動車の車体フレーム内に教示者が入り、微妙な位置決めなど行う場合に、ロボット動作速度の選択、ロボット動作方向のJOGキーを押し間違う等の危険が常に存在していた。
【0005】
このような教示時の安全面を考慮した方策として、柔軟教示モードを操作者に表示する方法がある。この教示モードにおける柔軟制御状態を表示するために、図15に示すように、プログラムペンダント上LCD401の文字表示や、教示状態表示灯402のような教示確認手段が設けられ、操作者は表示灯を確認しながら教示作業を行うようにしている。図15中、403は制御盤405に設けられプレイ状態表示灯、404は制御盤405内に設けられたモード切替を行うリレー回路である。しかしながら、図15に示すプログラムペンダント上LCD401の文字表示や、教示状態表示灯402だけでは柔軟教示モードであることを操作者に知らせる効果が低く、教示時とプレイバック時のロボット400のコントロール状態の相違を明確に教示者に通告できない。このため柔軟制御が有効でないプレイバック時にロボットの可動範囲に入ってしまう可能性があり危険であった。ロボットはプレイバックモードにおいて作業を短時間で行うため、頻繁に急加速、急減速を繰り返すことが多く、モータは非常に大きなトルクを発生させ、ロボットアームは高速で運動するため大きな運動エネルギーを有し、教示者にとって非常に危険である。また、教示モードでロボットが柔軟制御状態にある場合、ロボットの発生トルクが非常に小さく押さえられているため、外部から作用する力でロボットが容易に動作する。このようなロボットアームの動きが、ロボットアームとロボットの作業対象であるワークとの接触や、ロボットの周辺の機械との干渉を誘発し、不具合を引き起こすことがあった。
【0006】
【0007】
【0008】
【発明が解決しようとする課題】
そこで本発明は、予期せぬ外乱力がロボットに作用した場合の、操作者の安全確保、あるいはロボットや周辺機器の破損防止を解決課題とする。
【0009】
【課題を解決するための手段】
前記課題を解決するための手段は、位置及び速度の状態フィードバックループを有し、各関節を駆動するモータの制御回路を備えたロボットの制御装置であって、モータの動作指令値からモータの加速トルク及びモータの速度を維持するための速度維持トルクを算出する手段と、前記加速トルクと速度維持トルクを加算してモータの運動に必要な仮想トルク指令を算出する手段と、前記算出結果に基づいてロボットの発生トルクを制限する手段とを有するロボットの制御装置において、前記ロボットの発生トルクを制限する手段によって制限されたトルクに前記ロボットに作用する重力トルクを補償するトルクを加える重力補償手段を有し、前記ロボットの発生トルクを制限する手段が、ロボットヘの位置指令や速度指令の動作指令の状態によって前記動作指令を加速・等速、減速、指令なしの3つのモードに分類し前記モードに応じて発生トルクの制限方法を切り替える手段と、前記トルク制限に一定時間かかった際に接触や衝突が発生したと判断して動作を停止する手段とからなり、前記ロボットの発生トルクを制限する手段は、前記指令なしモードおよび接触や衝突が発生したと判断した時点から前記指令なしモードに至るまでの間においてはトルク制限を0にするものである。
【0010】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。
図1は、本発明の第1実施例を示すものであり、運動制御ブロック11に、各モータの運動指令から加速トルク及び速度トルクを演算する演算手段18と、演算手段18により演算された仮想トルク指令とサーボ制御系メインループ16から得られたトルク指令を比較する比較器19と、比較器19の出力に基づいてブレーキを制御するブレーキ制御部20を有している。その他の構成は従来例を示す図13と同様である。図2は第1実施例における制御ブロック図を示している。図中、21は時間遅れ補償のためのフィルタ、22は関節駆動モータ15の位置信号を記憶するメモリ、25,27は加減算器である。
本実施例において、ティーチペンダント上にはジョグキー12と呼ばれる、ロボット誘導の動作ボタンが配置されている。ジョグキー12を押すと、その時に選択されている座標系と速度に応じて、押下するジョグキー12で示される方向にロボットが動作することになる。その時の信号の流れは、ジョグキー12が押されるとその方向と大きさの情報が軌道生成部14に入力される。軌道生成部14では現在のロボットの指令に対して、指定座標系から基準座標系に変換された増分値が加算され新たなロボットの位置指令が生成される。基準座標系は通常ロボットのベースを中心とした直交座標系で表現されるため、動作指令値は実際のロボットの動作を行うためにロボットの関節座標系に変換され、モータのサーボ系の指令値となる。
【0011】
各モータの制御を行うサーボ系では、例えば図3のブロック図で示されるような処理が行われる。図3において、位置指令信号は2つのブロック101,102の処理系に信号が分かれる。1つのブロックは通常のモータの位置、速度制御系101であり、もう1つは本発明で付加される制御系の処理系102のブロックである。速度制御系101では位置制御および速度制御が実施される。位置制御では比例制御、速度制御系では比例積分制御などが用いられることが一般的である。図3に示す制御系102は、仮想トルク指令を算出する部分である。通常のロボットの運動で必要となるトルクは、ロボットアームとロボットの先端負荷の両者を加速するトルク、運動状態で速度を維持するためのトルクの2種類である。18−2は加速トルクの演算を行うブロック、18−1は速度を維持するためのブロックを示している。ブロック18−2では慣性と加速度の積から必要となるトルクが算出される。慣性の情報は、以下のいずれかの方法により求められる。
1)ロボットの関節の動きに応じて変動する値を演算により求める。
2)適応オブザーバなどのパラメータ同定手法を用いて推定する。
3)代表的な慣性の値を用いる。例えば常に一定の値を用いる、あるいは変位に応じてテーブルから値を引く。図3は1)の場合の例を示している。
【0012】
ブロック18−1では速度を維持するためのトルクが算出される。速度トルクはほぼ動摩擦の値に等しい。従って、あらかじめ求めた速度と摩擦の関係を用いて、現在の速度から必要なトルクを求めることができる。ブロック18−1,18−2で算出され、加算器24で加算されたトルクの加算値はロボットが運動を行うトルクとほぼ等しい値である。演算結果は仮想トルク指令103として、加減算器25により、メインループ(ブロック101)のトルク指令104より減算され、予め設定した値105と比較され、予め設定した値105より大きいときはブレーキ制御装置20によりロボットの運動を停止する。ロボットアームが外部環境に接触などを起こした場合には、位置速度制御系の制御偏差が発生してメインループ(ブロック101)のトルク指令104は大きな値になるが、位置指令の変化はないため仮想トルク指令103は通常の動作で得られる値になり差が生じる。この差を予め設定した値105と比較し、その比較した結果の符号によりロボットの運動を停止する。重力方向に動くロボットでは重力トルクは106で示される補償演算をもとにメインループで補償されるため、仮想トルク指令値が重力の影響で大きくズレを生じることはない。重力補償演算は、例えばロボットの関節角度とアームの重心位置、重量から必要となるトルクを算出することで行われる。ブロック18−1,18−2で生成される仮想トルク指令103とメインループのトルク指令104の発生時間のずれを補償するために、ロボットの加速トルクの算出手段の後段あるいは速度維持トルクの算出手段の後段に高周波成分を除去するフィルタ21を有する。フィルタ21は一般的な1次遅れフィルタや2次遅れフィルタにより調整することが可能である。
【0013】
以上の説明はティーチングペンダントで教示を行う場合を例にとって説明をおこなったが、プレイバックの状態でも当然用いることができる。プレイバック時にはティーチペンダントのかわりにメモリ13から軌道生成部14にデータの情報が払い出される。メモリ13にはあらかじめ教示されたロボットの位置、姿勢の情報が保存されている。また、本発明はロボットに力センサを取け付け、操作者が加える力を計測しロボットを誘導するタイプの、いわゆるダイレクトティーチングのロボットにも適用が可能であり、教示者の安全を確保する上で有効に作用する。ダイレクトティーチング時にはティーチペンダントの代わりに力センサの信号からロボットの運動指令を生成し、軌道生成部14にデータの情報が払い出される。このように、ダイレクトティーチではロボットを直接把持しての作業となるため、本発明は特に有効に作用する。
【0014】
図4は本発明の第2実施例を示すものである。本実施例では、運動制御ブロック11に、トルク制限値をサーボ制御系メインループ16に与えるかどうかの切り替えを行う切替スイッチ23を設け、切替スイッチ23をオンにしたときに、各モータの運動指令から加速トルク及び速度トルクを演算する演算部18によりトルク制限値を演算するようにしたものである。以下、本実施例について説明する。図4に示すジョグキー12を押すと、その時に選択されている座標系と速度に応じて、押下するジョグキー12で示される方向にロボットが動作することになる。そのときの信号の流れは、ジョグキー12が押されるとその方向と大きさの情報が軌道生成部14に入力される。軌道生成部14では、現在のロボットの指令に対して、指定座標系から基準座標系に変換され増分値が加算され新たなロボットの位置指令が生成される。基準座標系は通常ロボットのベースを中心とした直交座標系で表現されるため、動作指令値は実際のロボットの動作を行うためにロボットの関節座標系に変換され、モータのサーボ系の指令値となる。
【0015】
各モータの制御を行うサーボ系では、例えば図5のブロック図で示されるような処理が行われる。図5において、位置指令信号は2つのブロックの処理系に信号が分かれる。1つのブロックは通常の位置、速度制御系201であり、もう1つは本発明で付加される制御系の処理系202のブロックである。ブロック202の処理系では位置制御および速度制御が施される。位置制御では比例制御、速度制御系では比例積分制御などが用いられることが一般的である。図5で示す202の制御系は、運動に必要となるトルクをもとにトルク制限値を算出する部分である。通常のロボットの運動で必要となるトルクは、ロボットアームとロボット先端負荷の両者を加速するトルク、運動状態で速度を維持するためのトルクの2種類である。図5の実施例では、ロボットの関節の動きに応じて変動する慣性を演算により求める場合の例を示している。ブロック18−1では速度を維持するためのトルクが算出される。速度トルクはほぼ動摩擦の値に等しい。従って、あらかじめ求めた速度と摩擦の関係を用いて、現在の速度から必要なトルクを求めることができる。ブロック18−1,18−2で算出されたトルクの加算値はロボットが運動を行うトルクとほぼ等しい値である。計算結果は、トルク制限値演算ブロック203ヘ入力される。ここでは、前段の演算をもとにメインブロック201で発生するトルクの制限値を演算する。ここでは、制限値は前段で制限された値に適度幅を設けることにより求めている。幅を設ける理由は、1つは、指令トルクと発生トルクが必ずしも一致していないことがあるため、その誤差を吸収することである。上記で述べた通り、ブロック203で演算された制限値がロボットの運動で必要となるトルクからずれが生ずることがありうる。このような状態は先端負荷の質量などの正確な情報が得られない場合などに起こりうる。したがって、指令通りの正確な運動が必要とされるプレイバック動作では制御ブロック202を用いず、教示モードでのみブロック202が機能するよう切り替えることができる。図4では切り替えスイッチ23がこの部分の働きを行う。
【0016】
また、図6は操作者に教示時であることを知らせる例を示している。ロボット上に表示ランプ31を取り付け、教示時には制御盤33内のリレー回路32が作動して表示ランプ31を任意の点灯パターンで表示させ操作者に通知する。
【0017】
【0018】
【0019】
【0020】
次に、本発明の第3実施例を説明する。図7に示す第3実施例は、図4に示す第2実施例の構成に、ロボット関節駆動モータの回転位置を検出するエンコーダ34から、その回転位置を現在値として軌道生成部14にフィードバックするようにしたものである。本実施例において、ティーチングペンダント上にはJOGキーと呼ばれる、ロボット誘導の動作ボタンが配置されている。JOGキー12を押すと、そのときに選択されている座標系と速度に応じて、押下するJOGキーで示される方向にロボットが動作することになる。そのときの信号の流れは、JOGキー12が押されるとその方向と大きさの情報が軌道生成部14に入力される。軌道生成部14では現在のロボットの指令に対して、指定座標系から基準座標系に変換された増分値が加算され新たなロボットの位置指令が生成される。基準座標系は通常ロボットのベースを中心とした直交座標系で表現されるため、実際のロボットの動作を行うためにロボットの関節座標系に変換される。関節座標系での変位の値は時間あたりの変位量としてロボットの関節を駆動するパルス列に変換される。変換されたパルス列は関節を駆動するサーボ系への位置指令信号となる。各モータの制御を行うサーボ系では例えば図8のブロック図で示されるような処理が行われる。図8で、位置指令信号は2つのブロックの処理系に信号が分かれる。1つは通常のモータの位置、速度制御系201であり、もう1つは本発明で付加される制御系の処理系202である。201の処理系では位置制御および速度制御が施される。位置制御では比例制御、速度制御系では比例積分制御などが用いられることが一般的である。
【0021】
図8で示す202の制御系は、運動に必要となるトルクを算出する部分である。通常のロボットの運動で必要となるトルクは、ロボットアームとロボットの先端負荷の両者を加速するトルク、通常の運動状態で速度を維持するためのトルクの2種類である。18−2は加速トルクの演算を行うブロック、18−1は速度を維持するためのブロックを示している。ブロック18−2では慣性と加速度の積から必要となるトルクが算出される。慣性の情報は、以下のいずれかの方法が用いられる。
1)慣性はロボットの動きに応じて変動する値を演算により求める。
2)適応オブザーバなどのパラメータ同定手法を用いて推定する。
3)代表的な慣性の値を用いる。
図8では1)の場合を示している。ブロック18−1では速度トルクが算出される。速度トルクはほぼ動摩擦の値に等しい。従って、あらかじめ求めた速度と摩擦の関係から、現在の位置指令の速度を求めることで必要なトルクを求めることができる。
【0022】
ブロック18−1,18−2で算出されたトルクの加算値はロボットが運動を行うトルクとほぼ等しい値である。計算結果はトルク制限値演算ブロック203ヘ入力される。ここでは、前段の演算をもとにメインブロック201で発生するトルクの制限値を演算する。制限値は前段で演算された値に適度な幅を設けることにより求めることができる。ここで適度な幅を設ける理由は、指令トルクと発生トルクが必ずしも一致していないことがあるため、その誤差を吸収すること、また、時間的な発生トルクのずれを吸収することである。時間的なずれの補償とは、指令値により発生トルクを演算した瞬間のトルクとメインブロック201で発生するトルクが時間的なずれを生ずる可能性があり、その誤差をトルクの制限の幅で吸収することである。この時間的なずれは演算ブロックの出力に時間遅れを補償するフィルタ21を挿入することでも吸収することができる。フィルタは一般的な1次遅れフィルタや2次遅れフィルタにより調整する事が可能である。
【0023】
このようなトルク制限を設けることによる物理的な作用の説明を次に行う。ブロック201で示される制御系のメインループではロボットに外部からの力が作用した場合、位置偏差と速度偏差が発生する。位置偏差は定数倍され速度指令となり、速度偏差は比例積分制御され、その出力はモータのトルク指令となる。ロボットに特別の外力が作用しない場合、モータで発生すべきトルクは加速トルク、速度トルクである。通常の動作でロボットが運動するためには上記のトルクを発生すれば良い。ところが、ロボットに外部から力が作用する(またはロボット自身が外部に接触する)場合には、外力によりロボットが動作し前述の制御偏差が発生することになる。従って、そのときの指令トルクはブロック202で演算を行ったトルクの制限域から逸脱したものになる。制限がなければその可能な限りのトルクが発生することになる。適度に制限された場合には制限内のトルクが発生し、外部からの力により偏差をゆるす、すなわちロボットが外力により動くことになる。また、重力方向に動くロボットでは重力トルクはメインブロック201で補償されるため、トルク制限演算ブロック203によりメインループのトルクが小さく抑えられた場合でも、ロボットアームが重力で落下するなどのことはない。
【0024】
次にトルクの制限の方法を図9を用いて具体的に述べる。図9はロボットアームの1つの関節の運動に着目した場合である。関節5は図9(a)で示されるような加速、等速、減速の運動指令が与えられるものとする。図9(b)は図8の信号205、図9(c)は図8での信号206を表している。また、図9(d)の細線はトルク制限ブロックでのトルク制限の上限値と下限値を表している。下限値については例えば、アームを進行方向に押すような場合に下限値にかかることが考えられる。しかしながら、このような場合はほとんど現れることはなく、また危険な方向ではないので、必ずしもトルク制限の下限値を設定する必要はない。トルク制限の一例を図10を用いてさらに詳しく説明する。図10は図9と同様、1つの関節の運動に着目した場合であり、図10(a)のような加速、等速、減速の運動指令が与えられたときの通常動作のトルク制限の状態(b)とぶつかり時のトルク制限の状態(c)を示している。ここでは簡単に上限値のみを示している。図10(b)では、まず、速度指令(一定時間当たりの位置指令)がないときにはモード0として、トルク出力(図8のトルク制限部204の出力)を0にする。このような運動指令がない場合でも図8のトルク制限演算203の結果は上記で述べたように適度な幅を持っているので、位置偏差が生じた場合にはそれを解消するような方向にある程度のトルクが出力される。従ってロボットアームが指令を待っている状態で停止しているときに作業者の手でアームを押す際にはトルク制限の幅の分以上の力で押さなければならない。
【0025】
しかしながら、このとき上述のようにモード0としてトルク出力を強制的に0にすれば、人間の手で軽く動かすことができる。このときにも、図8のように後段で重力補償106が施されるので、重力方向にアームが落下するようなことはない。これは、例えば、操作ミスにより作業者の腕がワークとロボットの間に挟まれて止まった場合などに有効であり、簡単にアームを手で押して回避させ、脱出することが可能である。このような場合、従来では操作者自身や共同作業者が非常停止ボタンを押すか、モータが過負荷状態になって非常停止が作用するまでロボットは動き続けることになる。非常停止が働くと、モータの供給電源を遮断すると共に、ブレーキが作動しロボットは運動を停止する。ブレーキが作動するとロボットは機械的にロックされた状態になり、挟みこまれた教示者は自力では脱出できなかった。速度指令区間では図9で説明したようにモード1としてトルク制限演算203で計算されたトルク制限を施す。速度指令区間後ある一定時間を減速区間、モード2とする。この区間では速度指令はないが、減速しながら最終的な指令位置に行き着くまで動作している。この区間では図9のようにトルク制限演算203の結果でトルク制限してもよいし、図10(b)のように一定のトルク制限を施してもよい。このときはモード1のトルク制限値をそのまま用いたり、あるいは、予め測定しておいた摩擦分のトルクをトルク制限値として用いる。すなわち最終的な位置決めに必要な最低限のトルク制限をしておき、この区間として十分指令位置へ行き着く時間を設定しておけば、運動指令に対しての追従性は確保される。また、一定時間後はモード0へ移行する。
【0026】
ロボットアームが動作中に周辺の物体51に接触した場合は、図10(c)のように、モード1でトルク制限値にかかるが、このとき一定時間このトルク制限値にかかり続ければ、ぶつかったと判断してトルク出力(図8のトルク制限部204の出力)を0にする。ぶつかりを検出した場合は強制的にモード3へ移行し、トルク出力を0にするとともに、アラームを発生させ作業者にこれを知らせる。このとき仮に教示者がロボットアームの接触に気がつかず、JOGキーを押し続けており、速度指令が発生している場合でも、トルク出力(図8のトルク制限部204の出力)は0となっているので、周辺物体への接触力は十分小さいものとなる。またこのぶつかりを検出する一定時間内でも、トルク制限ブロック204により速度を維持するためのトルクにある程度の幅を持たせたトルクのみが発生トルクであるため、衝撃は十分小さいものになる。ぶつかりを検出後、教示者がJOGキーを離して速度指令がなくなればモード0へ移行する。ぶつかりを検出する時間は短ければ短いほどよいが、上述したように指令トルクと発生トルクとの誤差や時間的なずれのために、ぶつかってもいないのに誤ってぶつかったと判断されないように適度に調整する必要がある。ロボットアームが周辺物体に接触した後や、さらにその後ロボットアームを作業者の手で回避させた後では大きな位置偏差を生じる。例えば図8のサーボ系201ではこのとき位置偏差が大きくなっている。しかし、軌道発生ブロック10からの指令がなければモード0でトルク出力(図8のトルク制限部204の出力)は0になっているので、ロボットアームが動くことはない。ただし、教示者が再びJOGキーを押して指令が発生した場合にはその指令に応じたトルクに加えて、位置偏差分のトルクも発生してしまうので大変危険である。ここで、ぶつかりを検出した際に残った位置偏差や過去の偏差の積算値をクリアすることでこのような危険が回避できる。
【0027】
しかしながら、これだけでは図11(b)のように軌道発生ブロック10で指令した位置と現在の位置(エンコーダ値)とは矛盾が生じたままであり、そのまま続けて動作させてもこの指令値と現在値との差は残ったままである。特に、直線補間をさせながらロボットアームの先端を直線移動させるような場合では、この差のために座標系が歪んでしまい、思った通りの直線動作ができなくなってしまう。そこで、軌道発生ブロック10で保持している指令値をエンコーダ34の現在の値で再生成すれば、このような矛盾を解消でき、ぶつかった後でも再び正確な直線動作が可能となる。このような指令値の再生成のタイミングとしては例えば、指令値と現在値との比較によって、大きな偏差を検出したときに行ったり、モード0のときに行ってもよい。あるいはモード0で指令値と現在値との大きな偏差を検出したときに行ってもよい。また、大きな偏差が生じたときやぶつかりを検出した際にアラームを発生し、操作者がアラームリセットを行うときに指令値の再生成を行っても良い。ロボットアームの動作中は常に指令値と現在値との定常的な偏差が存在するのでこれは停止中に行うべきである。以上の説明はティーチングペンダントで教示を行う場合を例にとって説明をおこなったが、プレイバックの状態でも当然用いることができる。プレイバック時にはティーチペンダントのかわりにメモリから軌道生成ブロックにデータの情報が払い出される。メモリにはあらかじめ教示されたロボットの位置、姿勢の情報が保存されている。
【0028】
さて、ブロック203で演算されたトルク制限値がロボットの運動で必要となるトルクからのずれが大きく生ずることがありうる。このような状態は先端の負荷の重力の正確な情報が得られない場合などに起こり得る。したがって、指令通りの正確な運動が必要とされるプレイバック動作では制御ブロック202を用いず、教示モードでのみブロック202が機能するよう切り替えることができる。図7では切り替えスイッチ23がこの部分の働きを行う。教示モードにおいても負荷の変動等、必ずしも指令通りにロボットの動きが行われない場合が起こり得る。このような場合、エンコーダなど現在のロボットの関節の変位量を教示データとしてメモリ13に保存することで、教示者の意図したポイントの位置及び姿勢が登録されることになる。また、本実施例はロボットに力センサを取け付け、操作者が加える力を計測しロボットを誘導するタイプの、いわゆるダイレクトティーチングのロボットにも適用が可能であり、教示者の安全を確保する上で有効に作用する。ダイレクトティーチングではロボット近傍での作業となるため、本実施例は特に有効である。
【0029】
図12は上記実施例のハードウェア構成を示している。図7の軌道発生ブロック10と軌道生成部14と運動制御ブロック11がそれぞれ図12のシステム制御基板601とティーチングペンダント602、演算基板611、サーボ基板621とサーボアンプ626に対応している。それぞれの基板は共有のバスによって接続されている。軌道発生ブロック600において、ティーチングペンダント602で教示したデータは不揮発性メモリ606に記憶される。また、ロボットの機構的、制御的なパラメータもこの不揮発性メモリ606に記憶されており、バスで共有化されている。軌道発生の機能はROM604に格納されたプログラムをCPU603が実行することによって実現される。軌道生成ブロック610においては、軌道生成や座標変換の機能はROM613に格納されたプログラムをCPU612が実行することによって実現される。図8における制御ブロックは運動制御ブロック620のサーボ基板621の中のROM623にプログラムされている。このプログラムをCPU622が読み込んで実行することによって実際にトルク制限処理が行われ、その結果がサーボアンプ626に出力される。さらにダイレクトティーチングを行う場合は、センサブロック630を追加することによって実現可能となる。センサ基板631では力センサ637の値をAD変換部633で読み込み、インピーダンス制御などの力制御手段によって位置修正量等が出力される。
【0030】
以上説明したように、第3実施例によれば、従来のロボットのモータの制御系に動作指令から生成される新たなブロックを付け加え、ロボットの関節を駆動するモータの発生トルクを制限することで、ロボットの運転中に外部環境にロボットアームが衝突する、あるいはロボットアームに外部の機械等が衝突するなどした場合、ロボットが柔軟に変形することで、ロボットやワーク、あるいは外部の機械が損傷することがなくなる。また、教示中の操作者の安全が守られるなど従来のロボットでは実現が不可能であった安全な制御機能を具備することが可能となる。また、衝突があった場合、ぶつかりが検出されトルク出力(トルク制限部の出力)を0にするモードによって接触力を十分小さくすることができ、ロボットアームを人間の力で安全な位置・姿勢に軽く回避させることができる。あるいは衝突がなくても、ロボットアームが停止しているときにも人間の力で軽く動かすことができる。このようにトルク出力が0であっても、重力トルク分は常に加算されており、アームが落下することはない。さらに、減速区間で最終位置決めに必要な最低限のトルクを出力することによって最終的な指令値まで行き着くことが可能である。このように柔軟な性能を持ちながら、指令に対する追従性を確保できる。また、ぶつかった後や人間の力でロボットアームを動かした場合でも制御偏差をクリアし、エンコーダの現在値から指令値を再生成することによって、サーボ電源を落とさずにそのまま正確な直線動作など、教示作業を続けることが可能となる。
【0031】
【発明の効果】
以上説明したように、本発明によれば、ロボットの運転中にロボットが外部環境に衝突したり、ロボットアームに外部の機械が衝突した場合、ロボットやワークあるいは外部の機械の損傷がなくなり、また、教示中の操作者の安全が守られるなど、従来のロボットでは実現が不可能であった安全な制御機能が可能となる。
【図面の簡単な説明】
【図1】 本発明の第1実施例を示すブロック図である。
【図2】 第1実施例のサーボ制御部のブロック図である。
【図3】 第1実施例の制御部の詳細を示すブロック図である。
【図4】 本発明の第2実施例を示すブロック図である。
【図5】 第2実施例の制御部の詳細を示すブロック図である。
【図6】 教示状態表示器の例を示す説明図である。
【図7】 本発明の第3実施例を示すブロック図である。
【図8】 第3実施例のサーボ系制御ブロック図である。
【図9】 第3実施例の作用を示すグラフである。
【図10】 第3実施例の各状態を示すグラフである。
【図11】 第3実施例のアームの状態を示す図である。
【図12】 第3実施例におけるハードウェア構成を示す図である。
【図13】 従来の制御装置の信号の流れを示すブロック図である。
【図14】 従来のモータのサーボ制御部のブロック図である。
【図15】 従来の教示モード確認方法を示す説明図である。
Claims (1)
- 位置及び速度の状態フィードバックループを有し、各関節を駆動するモータの制御回路を備えたロボットの制御装置であって、
モータの動作指令値からモータの加速トルク及びモータの速度を維持するための速度 維持トルクを算出する手段と、
前記加速トルクと速度維持トルクを加算してモータの運動に必要な仮想トルク指令を算出する手段と、
前記算出結果に基づいてロボットの発生トルクを制限する手段とを有するロボットの制御装置において、
前記ロボットの発生トルクを制限する手段によって制限されたトルクに前記ロボットに作用する重力トルクを補償するトルクを加える重力補償手段を有し、
前記ロボットの発生トルクを制限する手段が、
ロボットヘの位置指令や速度指令の動作指令の状態によって前記動作指令を加速・等速、減速、指令なしの3つのモードに分類し前記モードに応じて発生トルクの制限方法を切り替える手段と、前記トルク制限に一定時間かかった際に接触や衝突が発生したと判断して動作を停止する手段とからなり、
前記ロボットの発生トルクを制限する手段は、前記指令なしモードおよび接触や衝突が発生したと判断した時点から前記指令なしモードに至るまでの間においてはトルク制限を0にすることを特徴とするロボットの制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03141498A JP4055090B2 (ja) | 1997-07-08 | 1998-02-13 | ロボットの制御装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9-182879 | 1997-07-08 | ||
JP18287997 | 1997-07-08 | ||
JP03141498A JP4055090B2 (ja) | 1997-07-08 | 1998-02-13 | ロボットの制御装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007051061A Division JP4513071B2 (ja) | 1997-07-08 | 2007-03-01 | ロボットの制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1177580A JPH1177580A (ja) | 1999-03-23 |
JP4055090B2 true JP4055090B2 (ja) | 2008-03-05 |
Family
ID=26369872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03141498A Expired - Fee Related JP4055090B2 (ja) | 1997-07-08 | 1998-02-13 | ロボットの制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4055090B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE513900C2 (sv) * | 1999-01-19 | 2000-11-20 | Abb Ab | Anordning för övervakning av driften av en drivinrättning |
JP4639417B2 (ja) * | 2000-01-21 | 2011-02-23 | 株式会社安川電機 | ロボットの制御装置 |
JP3594016B2 (ja) | 2001-01-30 | 2004-11-24 | 日本電気株式会社 | ロボットのプログラム実行方法、ロボットシステムおよびプログラム処理装置 |
JP5464406B2 (ja) * | 2009-04-27 | 2014-04-09 | 独立行政法人科学技術振興機構 | 姿勢データ入力装置 |
PL3017920T3 (pl) * | 2014-11-07 | 2018-02-28 | Comau S.P.A. | Robot przemysłowy i sposób sterowania robotem przemysłowym |
JPWO2017187794A1 (ja) * | 2016-04-26 | 2019-02-28 | シャープ株式会社 | ロボット、ロボットの制御方法、制御プログラム、及び記録媒体 |
JP6934173B2 (ja) * | 2017-07-12 | 2021-09-15 | 国立大学法人九州大学 | 力制御装置、力制御方法及び力制御プログラム |
US11850751B2 (en) | 2018-07-17 | 2023-12-26 | Sony Corporation | Control device, control method, and control system |
JP2019061715A (ja) * | 2018-12-17 | 2019-04-18 | ファナック株式会社 | 可動部を直接手動で操作可能な数値制御工作機械 |
JP7310194B2 (ja) | 2019-03-20 | 2023-07-19 | 株式会社デンソーウェーブ | ロボットシステム |
JP7364371B2 (ja) * | 2019-06-28 | 2023-10-18 | 川崎重工業株式会社 | 基板搬送ロボット及び基板搬送ロボットの制御方法 |
CN111409079B (zh) * | 2020-05-19 | 2023-08-01 | 路邦科技授权有限公司 | 一种工业级机械臂的多联及互联控制*** |
CN112830231A (zh) * | 2020-12-30 | 2021-05-25 | 深圳市华星光电半导体显示技术有限公司 | 显示面板的夹取方法及装置 |
-
1998
- 1998-02-13 JP JP03141498A patent/JP4055090B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1177580A (ja) | 1999-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100439466B1 (ko) | 로봇제어장치 | |
JP4055090B2 (ja) | ロボットの制御装置 | |
CN106393097B (zh) | 工业用机器人***及其控制方法 | |
CN111479660B (zh) | 包括确保停止时间和距离的安全***的机器人 | |
US8335591B2 (en) | Robot apparatus and method of controlling the same | |
WO2017073052A1 (ja) | ロボットシステムの監視装置 | |
JP2000190262A (ja) | ロボットの制御装置 | |
JP3752758B2 (ja) | ロボットアームの制御装置 | |
JP3286842B2 (ja) | ロボットの柔軟制御装置 | |
WO2007046257A1 (ja) | モータ制御装置及び方法及びプログラム記憶媒体 | |
JPH048190B2 (ja) | ||
JP2004364396A (ja) | モータの制御装置および制御方法 | |
JP5371882B2 (ja) | 力制御装置 | |
JP4639417B2 (ja) | ロボットの制御装置 | |
JP2619227B2 (ja) | ロボットの制御方法および装置 | |
JP4483047B2 (ja) | ロボットの制御装置 | |
EP0386791B1 (en) | Apparatus for and method of controlling positioning of movable member | |
JP4524729B2 (ja) | 遠隔操縦ロボットの制御装置 | |
JP3327205B2 (ja) | ロボットの制御方法および装置 | |
JPH11245191A (ja) | 産業用ロボットの駆動軸制御方法及びその装置 | |
JPH11345010A (ja) | ロボットの制御装置 | |
JP3997405B2 (ja) | 移動マニピュレータの制御装置および移動マニピュレータ | |
JPH1142577A (ja) | ロボットの制御方法および装置 | |
JPH02279285A (ja) | マスタ・スレーブマニピュレータの制御方法及び装置 | |
JP2830205B2 (ja) | ロボットの制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050118 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070518 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070713 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071129 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101221 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101221 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111221 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121221 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131221 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |