JP2006344149A - ロボット制御装置 - Google Patents
ロボット制御装置 Download PDFInfo
- Publication number
- JP2006344149A JP2006344149A JP2005171212A JP2005171212A JP2006344149A JP 2006344149 A JP2006344149 A JP 2006344149A JP 2005171212 A JP2005171212 A JP 2005171212A JP 2005171212 A JP2005171212 A JP 2005171212A JP 2006344149 A JP2006344149 A JP 2006344149A
- Authority
- JP
- Japan
- Prior art keywords
- error
- integration
- value
- proportional gain
- output
- 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.)
- Withdrawn
Links
Images
Landscapes
- Manipulator (AREA)
- Feedback Control In General (AREA)
Abstract
【課題】 急激な動作を防止することにより、安全性を向上させる。
【解決手段】 制御装置11は、比例ゲインを変更する際、CPU32により、比例ゲインを変更したことにより生じる出力の変化を相殺するように、誤差積分を算出し更新する。制御装置11は出力更新周期が経過すると、誤差、比例ゲインの最新値、積分時間の最新値および誤差積分の最新値を併用して、位置および速度のいずれかの出力値を算出する演算回路40と、出力値を出力する出力端子38とを含む。
【選択図】 図1
【解決手段】 制御装置11は、比例ゲインを変更する際、CPU32により、比例ゲインを変更したことにより生じる出力の変化を相殺するように、誤差積分を算出し更新する。制御装置11は出力更新周期が経過すると、誤差、比例ゲインの最新値、積分時間の最新値および誤差積分の最新値を併用して、位置および速度のいずれかの出力値を算出する演算回路40と、出力値を出力する出力端子38とを含む。
【選択図】 図1
Description
本発明は、ロボット制御装置に関し、特に、位置のPI制御(proportional plus integral control)を含む制御ループを持つロボット(多関節のマニピュレータなど)制御装置に関する。
従来のロボットの制御装置は、過大な力を発生させることがある。そのような過大な力は、ロボットの先端が障害物などに接触する際に発生する。そのような過大な力を発生させないために、多数の発明が提案されている。
特許文献1は、そのような多数の発明の一種を開示する。特許文献1が開示する発明は、位置制御のP(proportional)ゲインを変更することにより、サーボ系の柔軟性を変化させる(高剛性・高精度の位置制御モードと低剛性の柔軟制御モードとを切り替える)。
この発明によると、フローティング機構などの機械的な装置を追加することなく、ロボットの先端に柔軟性を与えることができる。
特許文献2に開示された発明は、ロボットが動作している間に位置制御と柔軟制御を切り替える回路を有するロボットの制御装置において、位置制御から柔軟制御に移行するとき、速度制御系の積分動作を中止するとともに、その積分動作の出力値を実際のロボットアームの関節角度、ロボットのリンク質量、および重心位置に基づいて算出された重力補償値に置き換えることを特徴とする。
この発明によると、次の処理によりロボットの急激な動作を抑制できる。その第1の処理は、位置制御から柔軟制御に移行する際、重力を補償する出力オフセット量(予め計算シミュレーションで求められている)を出力に加えることで重力との釣り合いを保つ処理である。第2の処理は、柔軟制御から位置制御に移る際、その時点での実位置をロボットの目標位置へと上書きする処理である。
しかし、前述の特許文献1に開示された発明には、安全面での問題点がある。ゲイン変更の際、変更前のゲインに応じた出力から変更後のゲインに応じた出力へと、位置制御ループの出力が急変する。これによる問題は例えば、重力との釣り合い状態にあったロボットが、急激に上昇したり下降したりする(重力方向に動く)ことである。トルク出力と重力とが釣り合わなくなるからである。もう一つの例は、目標位置と実際の位置の誤差が大きい状態で柔軟制御から位置制御に切り替えた場合、ロボットが、大きな加速をすることである。ロボットの出力が、瞬間的に増加するためである。このように加速することは危険である。
特許文献2の技術には、次の問題点がある。問題点の第1は、位置制御および柔軟制御を切り替えるため、制御系を2つ必要とする(その結果、装置が高価になる)点である。問題点の第2点は、ロボットが危険な動作をするという問題点である。目標位置が上書きされる場合、本来の目標位置生成装置は、そのことを把握していない。目標位置を上書きした後、本来の目標位置生成装置が、元の目標位置を起点とする新しい動きを生成する可能性がある。これが、ロボットの危険な動作の原因である。
また特許文献3のように、適応制御という、ロボットが先端に物を把持した時の動特性の変化に対して制御ゲイン(比例ゲイン、積分時間、微分時間)をそれぞれ自動的に変化させる手法が使われている場合、動作中に各制御ゲインを変更する際に出力が急変し、急激な動作を発生する恐れがあるため、ゲインの変化量を小さな値に制限する必要があった。したがって調整に長い時間を必要としていた。
特開平6−332538号公報
特開平9−76184号公報
特開平4−109304号公報
本発明は上述の問題点を解決するためになされたものであって、その目的は、急激な動作を防止することにより、安全性を向上させたロボット制御装置を提供することにある。
本発明のある局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してPI制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、比例ゲインを記憶するための比例ゲイン用の記憶手段と、比例ゲインを変更するための比例ゲイン用の変更手段と、誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、積分手段が第2の誤差積分を算出するたびに、積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、比例ゲインの変更手段が変更した比例ゲインの最新値、および積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
これに加えて、ロボット制御装置は、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第1の誤差積分の最新値を元に第3の誤差積分を算出するための換算手段と、換算手段が第3の誤差積分を算出すると、第3の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段とを持つ。
すなわち、検出手段は、時間の経過を検出する。換算手段は、比例ゲイン用の変更手段が比例ゲインを変更すると、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第3の誤差積分を算出する。積分手段は、所定の周期で、誤差用の算出手段が算出した誤差、および第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出する。積分手段用の制御手段は積分手段が第2の誤差積分を算出するたびに、第2の誤差積分を第1の誤差積分の更新値として誤差積分用の記憶手段に記憶させる。出力値用の算出手段は、積分手段用の制御手段が第2の誤差積分を第1の誤差積分の更新値として誤差積分用の記憶手段に記憶させるたびに、誤差用の算出手段が算出した誤差、比例ゲイン用の変更手段が変更した比例ゲインの最新値、および第1の誤差積分を併用して、出力値を算出する。比例ゲインを変更したことにより生じる出力の変化は、第3の誤差積分を用いて第1の誤差積分を更新したことにより生じる出力の変化によって相殺される。出力の変化が相殺されるので、ロボットが急激に動作することが防止される。その結果、急激な動作を防止することにより、安全性を向上させることができるロボット制御装置を提供することができる。
上述の換算手段および換算手段用の制御手段は、比例ゲイン用の変更手段が比例ゲインを変更した後、積分手段が第2の誤差積分を算出する前に、第3の誤差積分の算出と第1の誤差積分の更新とを完了するための手段を含むことが望ましい。
すなわち、換算手段は、比例ゲイン用の変更手段が比例ゲインを変更すると、積分手段が第2の誤差積分を算出する前に、第3の誤差積分を算出する。換算手段用の制御手段は、換算手段が第3の誤差積分を算出すると、積分手段が第2の誤差積分を算出する前に、第3の誤差積分を用いて第1の誤差積分を更新する。これにより、比例ゲインを変更した後、第3の誤差積分を用いて第1の誤差積分が更新される前に第2の誤差積分の算出とそれに続く出力値の算出とが行なわれたために、出力の変化が相殺されないことにより急激な動作がおきるという危険を、より適切に防止する。その結果、より適切に急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
または、ロボット制御装置は、比例ゲインの変更を行なう間、第3の誤差積分の算出を行なう間、および第3の誤差積分を用いて第1の誤差積分を更新する間は、時間の経過の検出を停止するように、検出手段を制御するための検出用の制御手段をさらに含むことが望ましい。
すなわち、比例ゲインの変更を行なう間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。第3の誤差積分の算出を行なう間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。第3の誤差積分を用いて第1の誤差積分を更新する間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。これにより、比例ゲインを変更した後、第3の誤差積分を用いて第1の誤差積分が更新される前に第2の誤差積分の算出と出力値の算出とが行なわれることはなくなる。第2の誤差積分の算出と出力値の算出とが行なわれないので、第3の誤差積分を用いて第1の誤差積分が更新される前にロボットが急激に動作することはほとんど無くなる。その結果、急激な動作をほとんど防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
本発明の別の局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してPI制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、積分時間を記憶するための積分時間用の記憶手段と、積分時間を変更するための積分時間用の変更手段と、誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、積分手段が第2の誤差積分を算出するたびに、積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、積分時間用の変更手段が変更した積分時間の最新値、および積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
これに加えて、ロボット制御装置は、積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第1の誤差積分の最新値を元に第3の誤差積分を算出するための換算手段と、換算手段が第3の誤差積分を算出すると、第3の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段とを含む。
すなわち、検出手段は、時間の経過を検出する。換算手段は、積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する出力の変化を相殺するように、第3の誤差積分を算出する。積分手段は、所定の周期で、誤差用の算出手段が算出した誤差、および第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出する。積分手段用の制御手段は、積分手段が第2の誤差積分を算出するたびに、第2の誤差積分を第1の誤差積分の更新値として誤差積分用の記憶手段に記憶させる。出力値用の算出手段は、積分手段用の制御手段が第2の誤差積分を第1の誤差積分の更新値として誤差積分用の記憶手段に記憶させるたびに、誤差用の算出手段が算出した誤差、積分時間用の変更手段が変更した積分時間の最新値(積分時間用の変更手段が積分時間を変更した場合、この最新値は変更した後の積分時間である)、および積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出する。これにより、積分時間を変更したことにより生じる出力の変化が、第3の誤差積分を用いて第1の誤差積分を更新したことにより生じる出力の変化により相殺される。出力の変化が相殺されるので、ロボットが急激に動作することが防止される。その結果、急激な動作を防止することにより、安全性を向上させることができるロボット制御装置を提供することができる。
上述の換算手段および換算手段用の制御手段は、積分時間用の変更手段が積分時間を変更した後、積分手段が第2の誤差積分を算出する前に、第3の誤差積分の算出と第1の誤差積分の更新とを完了するための手段を含むことが望ましい。
すなわち、換算手段は、積分時間用の変更手段が積分時間を変更すると、積分手段が第2の誤差積分を算出する前に、第3の誤差積分を算出する。換算手段用の制御手段は、換算手段が第3の誤差積分を算出すると、積分手段が第2の誤差積分値を算出する前に、第3の誤差積分を用いて第1の誤差積分を更新する。これにより、積分時間を変更した後、第3の誤差積分を用いて第1の誤差積分が更新される前に第2の誤差積分の算出とそれに続く出力値の算出が行なわれたために出力の変化が相殺されないことにより急激な動作がおきるという危険を、より適切に防止する。その結果、より適切に急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
または、ロボット制御装置は、積分時間の変更を行なう間、第3の誤差積分の算出を行なう間、および第3の誤差積分を用いて第1の誤差積分を更新する間は、時間の経過の検出を停止するように、検出手段を制御するための検出用の制御手段をさらに含むことが望ましい。
すなわち、積分時間の変更を行なう間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。第3の誤差積分の算出を行なう間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。第3の誤差積分を用いて第1の誤差積分を更新する間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。これにより、積分時間を変更した後、第3の誤差積分を用いて第1の誤差積分を更新する前に第2の誤差積分の算出と出力値の算出とが行なわれることはなくなる。第2の誤差積分の算出と出力値の算出とが行なわれないので、第3の誤差積分を用いて第1の誤差積分が更新されないことが原因でロボットが急激に動作することはほとんど無くなる。その結果、急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
また、上述した出力手段は、出力値を、アクチュエータを駆動する信号として出力する事を特徴とすることが望ましい。
または、上述した出力手段は、出力値を、トルク制御型のロボット制御装置の目標トルクとして出力する事を特徴とすることが望ましい。
すなわち、出力値用の算出手段は、トルク制御型のロボット制御装置の目標トルクとして、出力値を算出する。これにより、比例ゲインの変更または積分時間の変更により生じる出力の変化は相殺される。出力の変化が相殺されるので、トルク制御型のロボット制御装置が変更の影響を受けることは防止される。トルク制御型のロボット制御装置が変更の影響を受けることが防止されるので、カスケード制御(多段制御)においても、ロボットが急激に動作することが防止される。その結果、カスケード制御においても、急激な動作を防止することにより、安全性を向上させることができる、ロボット制御装置を提供する。
また、上述した実測値はアクチュエータ出力部における位置の実測値であってもよい。目標値は目標位置であってもよい。出力手段は、出力値を、速度制御型のロボット制御装置の目標速度として出力するための手段であってもよい。
すなわち、出力値用の算出手段は、速度制御型のロボット制御装置の目標速度として、出力値を算出する。これにより、比例ゲインの変更または積分時間の変更により生じる出力の変化は相殺される。出力の変化が相殺されるので、速度制御型のロボット制御装置が変更の影響を受けることは防止される。速度制御型のロボット制御装置が変更の影響を受けることが防止されるので、カスケード制御においても、ロボットが急激に動作することが防止される。その結果、カスケード制御においても、急激な動作を防止することにより、安全性を向上させることができる、ロボット制御装置を提供することができる。
上記目的を達成するために、本発明の別の局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してPI制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、比例ゲインを記憶するための比例ゲイン用の記憶手段と、比例ゲインを変更するための比例ゲイン用の変更手段と、積分時間を記憶するための積分時間用の記憶手段と、誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、積分手段が第2の誤差積分を算出するたびに、積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、比例ゲインの最新値、積分時間用の変更手段が変更した積分時間の最新値、および積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
これに加えて、ロボット制御装置は、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第1の誤差積分を元に第3の誤差積分を算出するための換算手段と、換算手段が第3の誤差積分を算出すると、第3の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段とを含む。
また、上述のロボット制御装置は、複数の比例ゲインの値に対応して予め決めた標準の積分時間を記憶するための標準用の記憶手段と、比例ゲインが変更された場合に比例ゲインの更新値に対応する標準の積分時間を選択するための選択手段と、積分時間を、選択手段が選択した標準の積分時間へと変更するための積分時間用の変更手段とを含む。
すなわち、比例ゲイン用の変更手段は、比例ゲインを変更する。比例ゲインが変更されると、選択手段が、比例ゲインの更新値に対応する標準の積分時間を選択する。積分時間用の変更手段は、積分時間を、選択手段が選択した標準の積分時間に変更する。比例ゲインが変更され、かつ積分時間が標準の積分時間に変更されると、換算手段は、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる出力の変化および積分時間用の変更手段が積分時間を変更したことにより生じる出力の変化を相殺するように、第3の誤差積分を算出する。換算手段用の制御手段は、換算手段が第3の誤差積分を算出すると、第3の誤差積分を用いて第1の誤差積分を更新する。
これにより、積分時間は比例ゲインに合ったより適正な値となり、不適当な積分時間の設定によるロボットの振動を防止できる。その結果、ロボットの振動および急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
上記目的を達成するために、本発明の別の局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してPI制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、比例ゲインを記憶するための比例ゲイン用の記憶手段と、複数の比例ゲインごとに最短の積分時間を記憶するための最短用の記憶手段と、比例ゲインを変更するための比例ゲイン用の変更手段と、比例ゲインが変更された場合に比例ゲインの更新値に対応する最短の積分時間を選択するための選択手段と、積分時間を、少なくとも選択手段が選択した最短の積分時間より長くなるように設定するための積分時間用の設定手段と、積分時間を記憶するための積分時間用の記憶手段と、誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第1の誤差積分を元に第3の誤差積分を算出するための換算手段と、換算手段が第3の誤差積分を算出すると、第3の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、積分手段が第2の誤差積分を算出するたびに、積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、比例ゲインの最新値、積分時間用の設定手段が設定した積分時間の最新値、および積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
すなわち、比例ゲイン用の変更手段は、比例ゲインを変更する。比例ゲインが変更されると、選択手段が、比例ゲインの更新値に対応する最短の積分時間を選択する。積分時間用の設定手段は、積分時間を少なくとも選択手段が選択した最短の積分時間より長くなるように設定する。
これにより、比例ゲインの更新値に対して積分時間が短すぎることによるロボットの振動を防止できる。その結果、ロボットの振動および急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
本発明の他の局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してPI制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、位置および速度のいずれかの目標値の入力を受付けるための目標値用の受付手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、目標値が変化しない期間は任意のしきい値を超えたと判断手段が判断した場合に、比例ゲインを基準の時点の値よりも小さな値に変更するための比例ゲイン用の変更手段と、比例ゲインを記憶するための比例ゲイン用の記憶手段と、目標値が変化しない期間は任意のしきい値を超えたと判断手段が判断した場合に、積分時間を基準の時点の値よりも大きな値に変更するための積分時間用の変更手段と、積分時間を記憶するための積分時間用の記憶手段と、誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、積分手段が第2の誤差積分を算出するたびに、積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、比例ゲインの最新値、積分時間用の変更手段が変更した積分時間の最新値、および積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
これに加えて、ロボット制御装置は目標値が変化しない期間を測定するための測定手段と、目標値が変化しない期間が任意のしきい値を超えたか否かを判断するための判断手段と、目標値が変化しない期間は任意のしきい値を超えたと判断手段が判断した場合に、目標値が変化しない期間が任意のしきい値を超えたと判断した基準の時点の、比例ゲイン、積分時間、および目標値を記憶するための待機状態用のパラメータ記憶手段と、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第1の誤差積分を元に第3の誤差積分を算出するための換算手段と、換算手段が第3の誤差積分を算出すると、第3の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段とを含む。
すなわち、目標値が変化しない期間が任意のしきい値を超えたと判断手段が判断した場合に、待機状態用のパラメータ記憶手段は、目標値が変化しない期間が任意のしきい値を超えたと判断した基準の時点の、比例ゲイン、積分時間、および目標値を記憶する。比例ゲイン用の変更手段は、比例ゲインを基準の時点の値よりも小さな値に変更する。積分時間用の変更手段は、積分時間を基準の時点の値よりも大きな値に変更する。換算手段は、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる出力の変化および積分時間用の変更手段が積分時間を変更したことにより生じる出力の変化を相殺するように、第3の誤差積分を算出する。換算手段用の制御手段は、換算手段が第3の誤差積分を算出すると、第3の誤差積分を用いて第1の誤差積分を更新する。これにより、誤差が増大しても、出力値の変化がきわめて少なくなる。
その結果、急激な動作を防止することによって、安全性を向上させることができるロボット制御装置を提供することができる。
本発明に係るロボット制御装置は、急激な動作を防止することにより、安全性を向上させることができる。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同一である。したがって、それらについての詳細な説明は繰返さない。
<第1の実施の形態>
以下、本発明の第1の実施の形態に係るロボットについて説明する。図1を参照して、本実施の形態に係るロボット10は、制御装置11と、制御装置11に接続された本体(図示しないマニピュレータを有する)12と、目標値生成部20とを含む。制御装置11は、本体12に対し、位置に関してPI制御を行なうロボット制御装置である。本体12は、マニピュレータを用いて仕事をする。目標値生成部20は、目標値(目標位置)を制御装置11に出力することにより、動作の指令を生成する。
以下、本発明の第1の実施の形態に係るロボットについて説明する。図1を参照して、本実施の形態に係るロボット10は、制御装置11と、制御装置11に接続された本体(図示しないマニピュレータを有する)12と、目標値生成部20とを含む。制御装置11は、本体12に対し、位置に関してPI制御を行なうロボット制御装置である。本体12は、マニピュレータを用いて仕事をする。目標値生成部20は、目標値(目標位置)を制御装置11に出力することにより、動作の指令を生成する。
制御装置11は、本体12に持続されるデジタルサーボ回路14と、デジタルサーボ回路14に接続されるコンピュータ16と、コンピュータ16に接続され、表示用のディスプレイおよびキーボードなどを持つユーザインタフェース18と、コンピュータ16に接続され、CD−ROM(Compact Disk Read Only Memory)50から情報を読取るCD−ROM駆動装置22とを含む。
制御装置11の動作の一部(どの一部かは後述する)は、コンピュータ16のハードウェアとCPU32により実行されるソフトウェアとにより実現される。一般的にこうしたソフトウェアは、CD−ROM50などの記録媒体に格納されて流通し、CD−ROM駆動装置22などにより記録媒体から読取られてメモリ34に読出されて、上述したCPU32により実行される。制御装置11の動作の一部(コンピュータ16のハードウェアとCPU32により実行されるソフトウェアとにより実現される動作以外の一部)は、デジタルサーボ回路14のハードウェアと演算回路40により実行されるプログラムとにより実現される。デジタルサーボ回路14により実行されるプログラムはデジタルサーボ回路14が内蔵する不揮発性メモリ39に記録され、デジタルサーボ回路14内のメモリ41に読み出されて実行される。上述したコンピュータ16やデジタルサーボ回路14のハードウェア自体は一般的なものである。したがって、本発明の最も本質的な部分は、CD−ROM50や不揮発性メモリ39などの記録媒体に記録されたソフトウェアである。なお、コンピュータ自体の動作は周知であるので、ここではその詳細な説明は繰返さない。
デジタルサーボ回路14は、本体12のマニピュレータの位置を、PI制御により制御する。コンピュータ16は、PI制御に用いられる各パラメータを書き換える。ユーザインタフェース18は、ユーザからのパラメータの変更の指令を受付ける。デジタルサーボ回路14は、検出器44に接続された受付端子36と、コンピュータ16および目標値生成部20に接続されたサーボ用インタフェース37と、モータ42に接続された出力端子38と、演算回路40に接続された不揮発性メモリ39と、受付端子36、サーボ用インタフェース37、出力端子38、不揮発性メモリ39、およびメモリ41に接続された演算回路40と、メモリ41とを含む。受付端子36は、マニピュレータ(すなわちロボットのアクチュエータ出力部)の位置の実測値の入力を受付ける。サーボ用インタフェース37は、コンピュータ16との間で情報を交換する。出力端子38は、マニピュレータを駆動するモータ42に、演算回路40が算出した出力値を、マニピュレータ(すなわちアクチュエータ)を駆動する信号として出力する。不揮発性メモリ39は、演算回路40が実行するプログラムを記憶させる。演算回路40は、複数の処理を並行して行なう。演算回路40は、メモリ41に記憶されたパラメータを使って、後述するPI制御を実現する。演算回路40は、検出器44から入力されたモータ42の位置の実測値をメモリ41に書き込む。演算回路40は、モータ42の位置の、実測値と目標値との差に対応する誤差を算出し、メモリ41に書き込む。演算回路40は、出力更新タイマー43を含む。出力更新タイマー43の役割については後述する。メモリ41は比例ゲイン、積分時間、位置の実測値、位置の目標値、誤差、誤差を積分した値である誤差積分を記憶する。メモリ41は、これらの値をそれぞれ異なる領域に記憶することとする。このうち比例ゲイン、積分時間、誤差積分はCPU32に読出され、かつCPU32が任意の値に書き換え得ることとする。目標値は目標値生成部20が任意の値に書き換え得ることとする。
コンピュータ16は、CPU32と、CPU32に接続されるメモリ34とを含む。CPU32は比例ゲインを変更する際、次の処理を実施する。その第1の処理は、変更前の比例ゲインなどのパラメータをメモリ41から読み出す処理である。第2の処理は、CPU32が比例ゲインを変更したことにより生じる出力の変化を相殺するように、誤差積分を換算する処理である。この処理の具体的な内容は後述する。第3の処理は、変更後の比例ゲインなどのパラメータをメモリ41に書き込む処理である。メモリ34は、パラメータやパラメータの変更に必要な値を記憶する。メモリ34は複数のブロックを持つ。これらのブロックは、それぞれ利用する目的が異なるパラメータや値を記憶する。メモリ34は標準積分時間用のブロックに、複数の比例ゲインに対応して予め決めた標準の積分時間を記憶させる。メモリ34は待機状態用のパラメータ記憶ブロックに、後述する待機状態に入る前のパラメータなどを記憶させる。
本体12は、モータ42と、検出器44とを含む。モータ42は、マニピュレータを駆動する。検出器44はモータ42と接続され、モータ42の位置の実測値を検出する。
図2を参照して、ロボット10が実施するPI制御について説明する。演算回路40は内蔵する出力更新タイマー43の動作に基づき、一定の出力更新周期ごとに以下の式(1)の計算を行ない、出力値を更新している。図2において、「E」は誤差を表わす。「OT」は出力を表わす。「K」は比例ゲインを表わす。「TI」は積分時間を表わす。「P」は位置の実測値を表わす。制御式は、式(1)のようになる。
OT=K(E+EI/TI)・・・式(1)
ここで出力OTのP制御分OPとI制御分OIとは、式(2)〜式(4)で表わされる。
ここで出力OTのP制御分OPとI制御分OIとは、式(2)〜式(4)で表わされる。
OP=K×E ・・・式(2)
OI=K×EI/TI ・・・式(3)
OT=OP+OI ・・・式(4)
「EI」は誤差積分(誤差Eを積分した値)を表わす。
OI=K×EI/TI ・・・式(3)
OT=OP+OI ・・・式(4)
「EI」は誤差積分(誤差Eを積分した値)を表わす。
演算回路40は、誤差Eを、以下の式により求める。
E =D−P ・・・式(5)
「D」は目標値を表わす。これにより、演算回路40が、実測値と目標値との差に対応する誤差を算出することとなる。
E =D−P ・・・式(5)
「D」は目標値を表わす。これにより、演算回路40が、実測値と目標値との差に対応する誤差を算出することとなる。
デジタルサーボ回路14の演算回路40は、複数の演算を行なう演算回路である。演算回路40は、出力更新タイマー43を内蔵する。出力更新タイマー43は、時間の経過を検出する。所定の周期(以下「出力更新周期」と称する)ごとに、演算回路40は、以下の処理を行なう。演算回路40は式(5)により算出した誤差の最新値をデジタルサーボ回路14内のメモリ41に記憶させる。演算回路40は上記誤差の最新値とメモリ41に記憶されている誤差積分EIとをもとに積分処理を行ない、メモリ41に記憶されている誤差積分EIを更新する。演算回路40はメモリ41に記憶されている上記誤差の最新値、比例ゲイン、積分時間および誤差積分を併用して、式(1)により出力値を算出する。CPU32の処理によってメモリ41に記憶されている比例ゲインの変更と誤差積分の換算とが行なわれた後も、演算回路40は前回の出力計算から出力更新周期が経過した時点で、上記手順で出力値を算出する。
図4を参照して、ロボット10で実行されるプログラムは、比例ゲインの変更に関し、以下のような処理構造を有する。
ステップ40(以下、ステップをSと略す。)にて、CPU32は変更前の比例ゲインKOLD、誤差積分EIOLD、積分時間TI、誤差Eをメモリ41から読み込む。本実施の形態の場合、CPU32は、これらの値をメモリ41から直接読込み、かつメモリ41へ書込むことができる。
S42にて、CPU32は、次の式(6)により、比例ゲインの変更にあわせた誤差積分の更新値EINEWを算出する。CPU32は、CPU32自身が比例ゲインを変更したことにより生じる出力の変化を相殺するように、誤差積分の更新値EINEWを算出することとなる。
EINEW=(KOLD/KNEW−1)×E×TI
+KOLD/KNEW×EIOLD ・・・式(6)
式(6)において、KOLDは比例ゲインの変更前の比例ゲインを表わす。KNEWは変更後の比例ゲインを表わす。EIOLDは変更前の誤差積分を表わす。式(6)は、比例ゲインKを変更した時の出力の変化が、誤差積分EIを変更した時の出力の変化により相殺されるという条件から導出される。式(6)の導出式は以下の通りである。
+KOLD/KNEW×EIOLD ・・・式(6)
式(6)において、KOLDは比例ゲインの変更前の比例ゲインを表わす。KNEWは変更後の比例ゲインを表わす。EIOLDは変更前の誤差積分を表わす。式(6)は、比例ゲインKを変更した時の出力の変化が、誤差積分EIを変更した時の出力の変化により相殺されるという条件から導出される。式(6)の導出式は以下の通りである。
ゲイン変更前後の出力を等しくするという条件、および式(1)から、
KOLD(E+EIOLD/TI)=KNEW(E+EINEW/TI)・・・式(7)
式(7)を変形して、
KOLD/KNEW×(E+EIOLD/TI)=E+EINEW/TI
EINEW/TI=KOLD/KNEW×(E+EIOLD/TI)−E
EINEW/TI=(KOLD/KNEW−1)×E
+KOLD/KNEW×EIOLD/TI
EINEW =(KOLD/KNEW−1)×E×TI
+KOLD/KNEW×EIOLD ・・・式(6)
S44にて、CPU32は、変更後の比例ゲインと誤差積分とを、メモリ41に書き込む。これにより、CPU32は、比例ゲインを変更することとなる。CPU32は、自らが算出した誤差積分EINEWを誤差積分EIとして記憶するように、メモリ41を制御することとなる。比例ゲインと誤差積分値との更新後、前回出力値OTを計算した時刻から出力更新周期と同一の長さの時間が経過すると、演算回路40は誤差の算出、誤差積分の算出および出力計算を行なう。出力更新周期(上述したように、時間の経過は、出力更新タイマー43により検出される)で、演算回路40は、誤差の最新値を算出し、メモリ41に書き込む。演算回路40は、出力更新周期で、自らが算出した誤差、および誤差積分の最新値EINEW(メモリ41に書き込まれたCPU32が変更した値)を用いて、積分により誤差積分の更新値を算出してメモリ41に書き込む。これにより、演算回路40は、自らが誤差積分を積分するたびに、自らが積分した誤差積分を誤差積分の更新値として記憶するように、メモリ41を制御することとなる。演算回路40は、自らが誤差積分を更新するたびに、メモリ41に書き込まれた、自ら算出した誤差、誤差積分、CPU32が変更した比例ゲインの最新値、および積分時間を併用して、式(1)により出力値OTを算出する。出力値OTが算出されると、出力端子38は、出力値OTを本体12(すなわちロボット)のモータ42に出力する。
KOLD(E+EIOLD/TI)=KNEW(E+EINEW/TI)・・・式(7)
式(7)を変形して、
KOLD/KNEW×(E+EIOLD/TI)=E+EINEW/TI
EINEW/TI=KOLD/KNEW×(E+EIOLD/TI)−E
EINEW/TI=(KOLD/KNEW−1)×E
+KOLD/KNEW×EIOLD/TI
EINEW =(KOLD/KNEW−1)×E×TI
+KOLD/KNEW×EIOLD ・・・式(6)
S44にて、CPU32は、変更後の比例ゲインと誤差積分とを、メモリ41に書き込む。これにより、CPU32は、比例ゲインを変更することとなる。CPU32は、自らが算出した誤差積分EINEWを誤差積分EIとして記憶するように、メモリ41を制御することとなる。比例ゲインと誤差積分値との更新後、前回出力値OTを計算した時刻から出力更新周期と同一の長さの時間が経過すると、演算回路40は誤差の算出、誤差積分の算出および出力計算を行なう。出力更新周期(上述したように、時間の経過は、出力更新タイマー43により検出される)で、演算回路40は、誤差の最新値を算出し、メモリ41に書き込む。演算回路40は、出力更新周期で、自らが算出した誤差、および誤差積分の最新値EINEW(メモリ41に書き込まれたCPU32が変更した値)を用いて、積分により誤差積分の更新値を算出してメモリ41に書き込む。これにより、演算回路40は、自らが誤差積分を積分するたびに、自らが積分した誤差積分を誤差積分の更新値として記憶するように、メモリ41を制御することとなる。演算回路40は、自らが誤差積分を更新するたびに、メモリ41に書き込まれた、自ら算出した誤差、誤差積分、CPU32が変更した比例ゲインの最新値、および積分時間を併用して、式(1)により出力値OTを算出する。出力値OTが算出されると、出力端子38は、出力値OTを本体12(すなわちロボット)のモータ42に出力する。
比例ゲインと誤差積分の更新中に演算回路40による出力の更新が行なわれることは避ける必要がある。比例ゲインと誤差積分のどちらか一方しか変更していない時点で出力計算が行なわれると、出力の変化を相殺する効果が発揮されないからである。そこで、CPU32は、出力更新タイマー43の動作に合わせて、出力計算(出力計算は誤差積分の積分に続いて実施される)が行なわれる直前または直後に比例ゲインと誤差積分とを変更し、演算回路40による出力計算(出力計算は誤差積分の積分に続いて実施される)が開始される前に比例ゲインと誤差積分との変更を完了するものとする。これにより、変更前の比例ゲインKOLDは変更後の比例ゲインKNEWに変更される。変更前の誤差積分EIOLDは変更後の誤差積分EINEWに変更される。デジタルサーボ回路14から見ると、比例ゲインおよび誤差積分は同時に変更されるように見える。上述したように、比例ゲインなどが変更された前後で、比例ゲイン変更に起因する出力値の変化は「0」になる。実測値の変化分に基づくは出力変化は発生するが、これは比例ゲイン変更と無関係なPI制御動作に基づくものなので、急激な動作にはならない。したがってロボットは何ら急激な動きを生じることは無い。
ユーザインタフェース18が比例ゲインの変更指示を受けた場合には、上記比例ゲインの変更手順を含む、後述の比例ゲインと積分時間の変更処理を行なう。
図5を参照して、ロボット10で実行されるプログラムは、積分時間の変更に関し、以下のような制御構造を有する。
S50にて、CPU32は変更前の積分時間TIOLD、誤差積分EIOLD、誤差Eをメモリ41から読み込む。S52にて、CPU32は、次の式(8)により、積分時間の変更にあわせた誤差積分の更新値EINEWを算出する。CPU32は、CPU32自身が積分時間を変更したことにより生じる出力の変化を相殺するように、誤差積分の更新値EINEWを算出することとなる。
EINEW=EIOLD×TINEW/TIOLD ・・・式(8)
式(8)において、EIOLDは積分時間の変更前の誤差積分を表わす。TINEWは変更後の積分時間を表わす。TIOLDは変更前の積分時間を表わす。式(8)は、積分時間TIを変更する前後のI制御の出力を等しくする(瞬間的なI制御の出力の変化を「0」にする)という条件から算出される。積分時間TIを変更する前後のI制御の出力を等しくするという条件、および式(3)から、
K/TIOLD×EIOLD=K/TINEW×EINEW ・・・式(9)
式(9)を変形して、
EINEW=EIOLD×TINEW/TIOLD ・・・式(8)
S54にて、CPU32は、積分時間と誤差積分の更新値を、メモリ41に書き込む。これにより、CPU32は、積分時間を変更することとなる。メモリ41は、積分時間を記憶することとなる。CPU32は、自らが算出した誤差積分EINEWを誤差積分EIとして記憶するように、メモリ41を制御することとなる。積分時間と誤差積分値の更新後、前回出力値OTを計算した時刻から出力更新周期と同一の長さの時間が経過すると、演算回路40は、メモリ41に書き込まれた自らが算出した誤差と、誤差積分の最新値(すなわちCPU32が変更した誤差積分)とを元に積分処理を行ない、誤差積分を更新してメモリ41に書き込む。演算回路40は、メモリ41に書き込まれた自ら算出した誤差と誤差積分、CPU32が変更した積分時間、および比例ゲインを併用して、式(1)により出力値OTを算出する。
式(8)において、EIOLDは積分時間の変更前の誤差積分を表わす。TINEWは変更後の積分時間を表わす。TIOLDは変更前の積分時間を表わす。式(8)は、積分時間TIを変更する前後のI制御の出力を等しくする(瞬間的なI制御の出力の変化を「0」にする)という条件から算出される。積分時間TIを変更する前後のI制御の出力を等しくするという条件、および式(3)から、
K/TIOLD×EIOLD=K/TINEW×EINEW ・・・式(9)
式(9)を変形して、
EINEW=EIOLD×TINEW/TIOLD ・・・式(8)
S54にて、CPU32は、積分時間と誤差積分の更新値を、メモリ41に書き込む。これにより、CPU32は、積分時間を変更することとなる。メモリ41は、積分時間を記憶することとなる。CPU32は、自らが算出した誤差積分EINEWを誤差積分EIとして記憶するように、メモリ41を制御することとなる。積分時間と誤差積分値の更新後、前回出力値OTを計算した時刻から出力更新周期と同一の長さの時間が経過すると、演算回路40は、メモリ41に書き込まれた自らが算出した誤差と、誤差積分の最新値(すなわちCPU32が変更した誤差積分)とを元に積分処理を行ない、誤差積分を更新してメモリ41に書き込む。演算回路40は、メモリ41に書き込まれた自ら算出した誤差と誤差積分、CPU32が変更した積分時間、および比例ゲインを併用して、式(1)により出力値OTを算出する。
本実施の形態において、ユーザインタフェース18が積分時間を変更する旨の入力を受付けた場合、積分時間TINEWは、ユーザインタフェース18が受付けた値である。後述する比例ゲインKの変更に伴って積分時間を変更する場合、積分時間TINEWは比例ゲインKに合わせた標準積分時間TISTDである。積分時間TINEWを標準積分時間TISTDに変更するために、CPU32は、比例ゲインKが変更された場合、予め比例ゲインKの更新値に対応する標準積分時間TISTDを選択しておく。この選択は、S50にて実施する。その他、CPU32から積分時間を変更する場合、TINEWはCPU32が指示する値である。
積分時間と誤差積分の更新中に演算回路40による出力の更新が行なわれることは避ける必要がある。積分時間と誤差積分のどちらか一方しか変更していない時点で出力計算が行なわれると、出力の変化を相殺する効果が発揮されないからである。そこで、CPU32は、出力更新タイマー43の動作に合わせて、出力計算が行なわれる直前または直後に積分時間の変更と誤差積分の換算とを行なう。CPU32は、演算回路40による出力計算が開始される前に、積分時間と誤差積分との変更を完了するものとする。これにより、変更前の積分時間TIOLDは変更後の積分時間TINEWに変更される。変更前の誤差積分EIOLDは変更後の誤差積分EINEWに変更される。デジタルサーボ回路14から見ると、積分時間および誤差積分は同時に変更されるように見える。上述したように、積分時間TIなどが変更された前後で、積分時間TIの変更に起因する出力値の変化は「0」になる。実測値の変化分に基づく出力変化は発生するが、これは積分時間変更とは無関係なPI制御動作に基づくもので、急激な動作にはならない。したがってロボットは何ら急激な動きを生じることは無い。
I制御の収束特性は積分時間TIによって決まる。積分時間TIが短ければI制御の出力は素早く変化する。積分時間TIが長ければI制御の出力の変化は遅くなる。積分時間TIが非常に長い時間であればほとんど出力が変化しない。これにより、非常に長い積分時間TIを設定した状態でのI制御出力は、出力値のオフセットのような働きをする。したがって、CPU32は、積分時間を変更することにより収束特性を制御できる。本実施の形態に係るメモリ34は、標準積分時間用のブロックを有する。標準積分時間用のブロックは、ロボットの各軸に対応する標準積分時間を記憶する。メモリ34に記憶させておく標準積分時間は、比例ゲインKの値に対応するように記憶される。本実施の形態の場合、標準積分時間として記憶される積分時間は、比例ゲインごとの最適値である。
図3のフローを参照して、ユーザインタフェース18から比例ゲイン変更の指示があったときの動作手順を説明する。S30にて、ユーザインタフェース18からの入力によって比例ゲインの変更が指示されると、CPU32は比例ゲインをユーザインタフェース18から入力された値へと変更する。具体的には、前述のS40〜S44の処理を実施する。続いて、S32にて、CPU32は積分時間の変更を行なう。CPU32は変更後の比例ゲインKNEWに対応する標準積分時間TISTDをメモリ34内の標準積分時間用のブロックから読み出す。比例ゲインの値は無段階に変化するのに対して標準積分時間用のブロック内のデータは予め記憶された値のいずれかなので、標準積分時間用のブロック内のKの値からKNEWに最も近いのKの値を選択し、このKに対応する積分時間TISTDを使用する。S34にて、CPU32はデジタルサーボ回路14内のメモリ41の積分時間をこのTISTDへと変更する。具体的には、前述のS50〜S54の処理を実施する。
本実施の形態に係るメモリ34は、待機状態用のパラメータ記憶ブロックを有する。待機状態用の記憶ブロックは待機状態用のパラメータ変更を行なう前の比例ゲインと積分時間を記憶する。待機状態用の記憶ブロックは待機状態に入るときの目標値を記憶する。待機状態用の記憶ブロックは待機状態にあるかどうかを示す待機状態フラグを記憶する。
図6のフローを参照して、本ロボット制御装置11が待機状態に移行する手順を説明する。まず、S150にて、CPU32は、待機状態フラグがオンかどうか調べる。待機状態フラグがオフだった場合(S150にてNO)、処理はS152に進む。S152にて、CPU32は、デジタルサーボ回路14内のメモリ41の目標値が変化しない期間を測定する。S152にて、CPU32は、目標値が変化しない期間が、任意のしきい値を超えたか否かを判断する。任意のしきい値を超えたと判断した場合(S152にてYES)、処理はS154へと移される。もしそうでないと(S152にてNO)、処理はS150へと移される。S154にて、CPU32は、メモリ41から比例ゲインKを読み出し、メモリ34内の待機状態用のパラメータ記憶ブロックに比例ゲインKNORMALとして記憶させる。CPU32は、メモリ41から積分時間TIを読み出し、メモリ34内の待機状態用のパラメータ記憶ブロックに積分時間TINORMALとして記憶させる。CPU32は、メモリ41から目標値Dを読み出し、メモリ34内の待機状態用のパラメータ記憶ブロックに目標値DWAITとして記憶させる。S156にて、CPU32などはメモリ41が記憶した比例ゲインをKNORMALの1/100の値に変更する。具体的には、前述のS40〜S44の処理を実施する。これにより、CPU32は、自らが比例ゲインを変更した後、演算回路40が誤差積分を積分し出力値OTを算出する前に、誤差積分を換算することとなる。続いて、S158にて、CPU32はメモリ34内の標準積分時間用のブロックから、変更後の比例ゲインに最も近いKに対応する積分時間TISTDを選択する。続いて、S160にて、CPU32などはメモリ41の積分時間TIをTISTDの100倍の値に変更する。具体的には、前述のS50〜S54の処理を実施する。S162にて、CPU32は待機状態フラグをオンにする。
S150にて待機フラグがオンだった場合(S150にてYES)、処理はS170へ進む。S170にて、CPU32はメモリ41から目標値Dを読み取り、目標値Dが待機状態用のパラメータ記憶ブロックに記憶されているDWAITに等しいかどうか調べる。目標値DがDWAITに等しくない場合(すなわち目標値が変化した場合)(S170にてNO)、処理はS174に進む。目標値DがDWAITに等しい場合(すなわち目標値が変化していない場合)(S170にてYES)、処理はS172に進む。S172にて、CPU32はユーザインタフェース18がユーザから制御装置11の待機状態を解除するための指令である待機状態解除指令を受けていないかどうか調べる。待機状態解除指令が入力されていた場合(S172にてYES)、処理はS174に進む。待機状態解除指令が入力されていなかった場合(S172にてNO)、処理は終了する。S174にて、CPU32は待機状態用のパラメータ記憶ブロックから通常状態用の比例ゲインKNORMALを読み出す。CPU32は待機状態用のパラメータ記憶ブロックから通常状態用の積分時間TINORMALを読み出す。S176にて、CPU32はメモリ41の比例ゲインをKNORMALに変更する。具体的には、前述のS40〜S44の処理を実施する。S178にて、メモリ41の積分時間をTINORMALに変更する。具体的には、前述のS50〜S54の処理を実施する。S180にて、CPU32は待機状態フラグをオフにする。
上記S150〜180のフローは、ユーザインタフェース18からの指令の確認と並行して進められている。すなわち、任意の時点でユーザインタフェース18からの指令を受け付ける。ユーザインタフェース18が比例ゲイン変更の指令を受け付けた場合、CPU32は待機状態をオフに書き換える。CPU32はS30〜34の処理で比例ゲインを入力された値に変更するなどの処理を行なう。なお、本実施の形態の場合、ロボット10は、ユーザインタフェース18が待機状態に移行すべき旨の指令を受付けた場合にも、待機状態への移行処理を行なう。具体的には、S154〜S162の処理を行なう。
以上のような構造およびフローチャートに基づく、ロボット10が障害物に衝突した際の動作について説明する。
図7(A)は、ロボット10が停止中の、本体12の外観を、概念的に示す。このとき、本体12は、目標値生成部20がメモリ41に書き込む位置の目標値が変化しないため、停止した状態にある。この時点で、待機状態フラグはオフである。CPU32は、次の処理を経ることにより、ロボット10が待機中か否か判断する。CPU32は、本体12に対する目標値が変化しない期間を測定する(S152)。本体12に対する目標値の入力は、目標値生成部20から、サーボ用インタフェース37が受付ける。目標値が変化しない期間が測定されると、CPU32は、目標値が変化しない期間が、任意のしきい値(本実施の形態の場合、しきい値は「5分」であることとする)を超えたか否かを調べ、超えた場合に、待機中であると判断する(S152)。なお、本実施の形態の場合、ロボット10は、ユーザインタフェース18が待機状態に移行すべき旨の指令を受付けた場合にも、ロボット10が待機中であると判断する。CPU32がロボット10は待機中であると判断すると(S152にてYES)、CPU32は、メモリ41から、比例ゲインKを読み出し、コンピュータ16内のメモリ34の通常時パラメータ用のブロックに通常時ゲインKNORMALとして記憶させる(S154)。このとき、CPU32は、上述した目標値も読み出し、コンピュータ16内のメモリ34の通常時パラメータ用のブロックに目標値DWAITとして記憶させる。CPU32は、メモリ41から、積分時間TIを読み出し、コンピュータ16内のメモリ34の通常時パラメータ用のブロックに通常時用の積分時間TINORMALとして記憶させる(S154)。これにより、メモリ34の通常時パラメータ用のブロックは、目標値が変化しない期間は任意のしきい値を超えたとCPU32が判断した場合に、目標値が変化しない期間が任意のしきい値を超えたと判断した基準の時点の、比例ゲイン、積分時間、および目標値を記憶することとなる。続いて、CPU32は比例ゲインをKNORMALの1/100の値KNEWに変更する(S156からS40へ移行)。これにより、CPU32は、目標値が変化しない期間は任意のしきい値を超えたと自らが判断した場合に、比例ゲインを基準の時点の値よりも小さな値に変更することとなる。CPU32は、自らが比例ゲインを変更することにより生じる出力の変化を相殺するように、比例ゲインの変更後の誤差積分EINEWを算出する(S42)。CPU32は、式(6)により、誤差積分を換算する。CPU32はメモリ41内の比例ゲインの値をKNEWに、誤差積分をEINEWに変更する(S44)。これにより、CPU32は、自らが誤差積分を換算すると、自らが換算した値を誤差積分として記憶するように、メモリ41を制御することとなる。続いて、CPU32は、メモリ34の標準積分時間用のブロックから比例ゲインKNEWに最も近い比例ゲインKを選択し、この比例ゲインKに対応する積分時間TISTDを得る(S158)。CPU32は、変更後の積分時間TINEWをTISTDの100倍の値として算出する(S160)。これにより、CPU32は、目標値が変化しない期間は任意のしきい値を超えたと自らが判断した場合に、積分時間を基準の時点の値よりも大きくかつ自らが選択した標準の積分時間に対応する値に変更することとなる。CPU32は、自らが積分時間をTINEWに変更することにより生じる出力の変化を相殺するように、積分時間の変更後の誤差積分EINEWを換算する(S52)。これにより、CPU32は、CPU32自身が積分時間を変更した後、演算回路40が誤差積分EIを積分する前に、誤差積分EINEWを換算することとなる。また、CPU32は、CPU32自身が比例ゲインを変更したことにより生じる出力の変化、ならびにCPU32自身が積分時間を変更したことにより生じる出力の変化を相殺するように、メモリ34が記憶した誤差積分を換算することとなる。CPU32は、式(8)により、誤差積分を換算する。CPU32はメモリ41内の積分時間の値をTINEWに、誤差積分をEINEWに変更する(S54)。
以上の処理が終了後、前回の出力計算時点から出力更新周期が経過すると、演算回路40は、メモリ41から、自らが算出した誤差の最新値、およびCPU32が算出した誤差積分の最新値を読み出し、積分処理により誤差積分EIを算出する。演算回路40は、メモリ41から、自らが算出した誤差の最新値、CPU32が変更した比例ゲインの最新値、自らが算出した誤差積分の最新値、および積分時間の最新値を読み出し、式(1)により出力値OTを算出する。メモリ41内の比例ゲインKは、待機時用の比例ゲイン(上述の通り、本実施の形態の場合、待機時用の比例ゲインKは、変更前の比例ゲインの1/100)に変更されている。メモリ41内の積分時間TIは、待機状態用の積分時間(上述の通り、本実施の形態の場合、積分時間TIは、待機時用の比例ゲインKに対応する標準積分時間TISTDの100倍)に変更されている。この状態で、ロボット10が障害物と衝突した場合、本体12は障害物に押された方向に大きく動く。比例ゲインが下げられているからである。また、この状態で時間が経過しても押し戻す抵抗力が増加しにくい。積分時間が非常に長くなっているためである。図7(B)は、このときの本体12の姿勢を示す図である。これにより、本体12は、過負荷の発生を避けることができる。
その後、障害物が取り除かれると(図7(C)参照)、ロボットは弱い復元力で、徐々に目標位置に戻ろうとする。
待機状態で目標値が変化した場合、ロボットは待機状態を解除する(S170)。具体的にはS174〜180の処理により、比例ゲインと積分時間を待機状態適用前の値に戻し、待機状態フラグをオフにする。目標値が変化しなくても、ユーザインタフェース18が待機状態を解除する指令を受けた場合、ロボットは待機状態を解除する(S172)。これを利用して、ユーザは障害物が取り除かれた時点で待機状態を解除する指令を入力して、ロボットを素早く目標位置に復帰させることができる。
図8(A)および図8(B)を参照して、比例ゲインを変更した場合の、ロボット10の制御の結果について説明する。図8(A)は、誤差積分EIを変更させなかった場合の、出力OT、モータ位置(ひいてはマニピュレータの位置)P、そして誤差積分EIを積分時間TIで割った値EI/TIの変化を表わす図である。図8(B)は、比例ゲインを変更する(時刻が約500ミリ秒経過した時点で比例ゲインKを16倍に増加させる)と同時に誤差積分EIを変更させた場合の、出力OT、モータ位置P、そして誤差積分EIを積分時間TIで割った値EI/TIの変化を表わす図である。ロボット10のデジタルサーボ回路14に設定された目標位置は「0」であることとする。
図8(A)の場合、時刻が約500ミリ秒経過した時点で、比例ゲインKが16倍に増加すると、出力OTは瞬間的に最大値へと増加する。出力OTの増加は、比例ゲインKの変更された直後の出力算出計算から発生する。その後、70ミリ秒程度の短時間の間に、モータ位置Pは急激に目標位置へ収束する。これに対し、図8(B)の場合、時刻が約500ミリ秒経過した時点で、比例ゲインKが16倍に増加すると、CPU32は、上述した式(6)により比例ゲインの変更後の誤差積分EINEWを換算する。誤差積分EINEWが換算されると、CPU32は、デジタルサーボ回路14のパラメータのうち、比例ゲインKおよび誤差積分EIを、見かけ上同時に変更させる。これにより、比例ゲインを変更したことによる出力の変化が、誤差積分を変更したことによる出力の変化によって相殺される。その結果、比例ゲインの変更後、積分時間に応じた長い時間をかけて出力が変化することになる。長い時間をかけて出力が変化するので、出力OTとモータ位置Pとはロボットに負担のかからない程度の低速度で動き、モータ位置Pは目標位置へと収束する。目標位置が「0」の時、出力OTはEI/TIとモータ位置Pとの差に比例ゲインKを掛けた量であり、比例ゲインKが増加した際、EI/TIとモータ位置Pとの差を減少させたことにより、出力OTの変化はキャンセルされているからである。
以上のようにして、本案施の形態に係るロボット10は、比例ゲインを変更しても、急激な動作の発生を防止することができる。ロボット10は、瞬間的な出力の変化を積分時間に応じた長時間の変化に置き換えることができるからである。このような出力の置換えが可能なので、比例ゲインを変更しても、目標位置を変える必要がない。目標位置を変える必要がないため、目標値生成部20が生成した目標位置の値とデジタルサーボ回路14に設定された目標位置とは一致したままである。目標位置が一致したままなので、誤動作の恐れが少ない。誤動作の恐れが少ないので、安全である。
また、本案施の形態に係るロボット10は、積分時間を変更しても、急激な動作の発生を防止することができる。ロボット10は、瞬間的な出力の変化を積分時間に応じた長時間の変化に置き換えることができるからである。このような出力の置換えが可能なので、積分時間を変更しても、目標位置を変える必要がない。目標位置を変える必要がないため、目標値生成部20が生成した目標位置の値とデジタルサーボ回路14に設定された目標位置とは一致したままである。目標位置が一致したままなので、誤動作の恐れが少ない。誤動作の恐れが少ないので、安全である。
その結果、急激な動作を防止することにより、安全性を向上させることができるロボットの制御装置を提供できる。さらに、比例ゲインを変更した後の処理は、比例ゲインが増加したか減少したかに関わらず同じである(従来の技術の場合、比例ゲインを変更した後の処理は、比例ゲインが増加したか否かに応じて異なる)。処理が同じなので、ソフトウェアの構造が簡単になる。ソフトウェアの構造が簡単になるので、信頼性が高められる。その結果、ソフトウェアの構造が簡単で、信頼性が高いロボットの制御装置を提供できる。
さらに、本実施の形態に係るロボット10は、比例ゲインを変更する際、積分時間を最適値へと変更できる。これにより、本体の動作は標準化される。その結果、良好な制御性能を維持しながら比例ゲインを変更できるロボットの制御装置を提供できる。
さらに、本実施の形態に係るロボット10のマニピュレータは、動作中は高剛性となるように、待機中(サーボ保持により停止している間)は低剛性となるように、それぞれ制御される。これにより、障害物と不意に衝突しても、ロボット10には過負荷が生じない(障害物に押されて柔軟に動く)。その結果、待機中は障害物に押されて柔軟に動くロボットを提供できる。
<第1の実施の形態 変形例1>
図7(A)の処理において、ユーザインタフェース18がユーザから待機状態への移行指令を受けた場合には、ロボットが動作中か停止中かによらず、CPU32は待機状態への移行処理を行なう。具体的には、CPU32はS40〜S44の処理を経て比例ゲインを待機状態用の比例ゲインへと変更し、S50〜S54の処理を経て積分時間を待機状態用の積分時間へと変更する。
図7(A)の処理において、ユーザインタフェース18がユーザから待機状態への移行指令を受けた場合には、ロボットが動作中か停止中かによらず、CPU32は待機状態への移行処理を行なう。具体的には、CPU32はS40〜S44の処理を経て比例ゲインを待機状態用の比例ゲインへと変更し、S50〜S54の処理を経て積分時間を待機状態用の積分時間へと変更する。
比例ゲインを変更する手順を以下のようにする。CPU32は、S42にて誤差積分の更新値を算出する前に、デジタルサーボ回路14内の出力更新タイマー43を停止させる。出力更新タイマー43が停止すると、誤差積分算出と出力更新が行なわれなくなる。CPU32はS42で誤差積分の更新値を算出し、S44で比例ゲインと誤差積分の更新値をデジタルサーボ回路内のメモリ41に書き込む。その後、CPU32はデジタルサーボ回路内の出力更新タイマー43を動作再開させる。これにより、CPU32は、比例ゲインの変更を行なう間、および誤差積分の更新値を算出する間、および誤差積分の変更を行なう間は、時間の経過の検出を停止するように、出力更新タイマー43を制御することとなる。比例ゲイン変更と誤差積分更新値の算出と誤差積分変更とを行なう間に出力計算が行なわれることが無いため、出力の急激な変化が完全に防止される。出力の急激な変化が完全に防止されるため、安全性を高めるロボット制御装置を提供できる。
積分時間を変更する手順を以下のようにする。CPU32は、S52にて誤差積分の更新値を算出する前に、出力更新タイマー43を停止させる。出力更新タイマー43が停止すると、誤差積分の積分と出力更新が行なわれなくなる。CPU32はS52で誤差積分の更新値を算出し、S54で積分時間と誤差積分の更新値をデジタルサーボ回路14内のメモリ41に書き込む。その後、CPU32は出力更新タイマー43を動作再開させる。これにより、CPU32は、積分時間の変更を行なう間、および誤差積分の更新値を算出する間、および誤差積分の変更を行なう間は、時間の経過の検出を停止するように、出力更新タイマー43を制御することとなる。積分時間変更と誤差積分更新値の算出と誤差積分変更とを行なう間に出力計算が行なわれることが無いため、出力の急激な変化が完全に防止される。出力の急激な変化がほとんど防止されるため、安全性を高めるロボット制御装置を提供できる。
このように、出力の変化を防止しつつ安全に待機状態用のパラメータへと移行できるので、動作中または停止中にユーザが待機状態への移行を指示することで、ロボットの破損を防止することができ、より安全性を高めるロボット制御装置を提供できる。
<第1の実施の形態 変形例2>
第1の実施の形態にかかるロボット制御装置を、速度制御を行なうロボット制御装置とするには、S154における目標値Dとして目標速度を入力し、S44にて検出器44が検出する実測値を速度の実測値とすればよい。この場合、出力値は、より下位に接続された別のロボット制御装置に対する目標値として、またはアクチュエータを直接駆動する信号として、出力されることとなる。
第1の実施の形態にかかるロボット制御装置を、速度制御を行なうロボット制御装置とするには、S154における目標値Dとして目標速度を入力し、S44にて検出器44が検出する実測値を速度の実測値とすればよい。この場合、出力値は、より下位に接続された別のロボット制御装置に対する目標値として、またはアクチュエータを直接駆動する信号として、出力されることとなる。
<第2の実施の形態>
以下、本発明の第2の実施の形態に係るロボットについて説明する。
以下、本発明の第2の実施の形態に係るロボットについて説明する。
本実施の形態に係るメモリ34は、標準積分時間用のブロックに代えて、最短積分時間用のブロックを有する。最短積分時間用のブロックは、複数の比例ゲインKごとに複数の最短積分時間を記憶する。積分時間TIには、サーボ系の特性(比例ゲイン、機械的時定数など)から決まる最短時間TIMINがある。積分時間TIがこの最短時間TIMINより短くなると、サーボ系(本実施の形態の場合、制御装置11と本体12の組み合わせを指す)が振動する。サーボ系が振動するので、最短時間TIMINより短い積分時間TIは使用に適さない。この最短時間TIMINは、厳密に求められる必要がない時間である。本実施の形態の場合、短い積分時間を積極的に使うことがないからである。そこで本実施の形態の場合、通常使う速度および加速度の範囲内ならば振動せず、かつなるべく短い積分時間を、コンピュータ16のメモリ34にリストとして記憶させておく。本実施の形態の場合、メモリ34に記憶させておく最短積分時間は、実験的に予め求められる。
図9を参照して、ロボット10で実行されるプログラムは、ユーザインタフェース18が比例ゲインの変更指令を受けたときの、積分時間TIの選択に関し、以下のような制御構造を有する。S80にて、CPU32は比例ゲインを変更する。具体的にはS40〜S44の処理を行なう。続いて、CPU32は、積分時間の変更が必要かどうかの判定を行なう。S82にて、CPU32は、変更後の比例ゲインKNEWに対応する最短積分時間TINEWを求める。具体的には、メモリ34に記憶されている、比例ゲインKに対応する最短積分時間TIMINのリストから、変更後の比例ゲインKNEWに最も近いKに対応するTIMINを読み出す。これにより、CPU32は、比例ゲインが変更された場合に比例ゲインの更新値に対応する最短の積分時間を選択することとなる。S84にて、CPU32は、デジタルサーボ回路14内のメモリ41に記憶されている、現在利用中の積分時間TIがメモリ34から読出された最短時間TIMIN未満か否かを判断する。積分時間TIが最短時間TIMIN未満と判断した場合には(S84にてYES)、処理はS86へ移される。もしそうでないと(S84にてNO)、処理は終了する。S86にて、CPU32は、積分時間TIの値を最短時間TIMINに等しくなるように変更する。具体的には、前述のS50〜S54の処理を実施する。これにより、CPU32は、積分時間を、少なくとも自らが選択した最短の積分時間より長くなるように設定することとなる。
なお、その他のハードウェア構成および処理フローについては前述の第1の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
以上のようにして、本実施の形態に係るロボット10は、比例ゲインを変更しても、急激な動作の発生を防止することができる。急激な動作を防止することにより、安全性を向上させることができるロボットの制御装置を提供できる。さらに、本実施の形態に係るロボット10は、比例ゲインを変更した際、積分時間が最短積分時間より短いか否か判定し、短い場合積分時間を最短積分時間に等しくなるように変更する。これにより、本体12が振動することを回避できる。その結果、安定した動作を実現するロボットの制御装置を提供することができる。
<第2の実施の形態 変形例>
適応制御を行ない比例ゲインと積分時間を自動的に変化させる制御装置を実現するために、外部のゲイン算出装置によってゲインまたは積分時間の更新値を算出し、算出した比例ゲインまたは積分時間の更新値を、ユーザインタフェース18から比例ゲインまたは積分時間の変更入力で変更する構造とする。これにより、出力の急激な変化を防止しつつ比例ゲインと積分時間とをそれぞれ個別に変更することができる。出力の急激な変化を防止することにより、急激な動作を防止する。急激な動作を防止するため、適応制御で大きなゲインの変更が行なわれた場合にも安全であり、ゲイン変化量を制限せずに済む。ゲイン変化量を制限せずに済むため、素早くゲインを最適化させることができる。
適応制御を行ない比例ゲインと積分時間を自動的に変化させる制御装置を実現するために、外部のゲイン算出装置によってゲインまたは積分時間の更新値を算出し、算出した比例ゲインまたは積分時間の更新値を、ユーザインタフェース18から比例ゲインまたは積分時間の変更入力で変更する構造とする。これにより、出力の急激な変化を防止しつつ比例ゲインと積分時間とをそれぞれ個別に変更することができる。出力の急激な変化を防止することにより、急激な動作を防止する。急激な動作を防止するため、適応制御で大きなゲインの変更が行なわれた場合にも安全であり、ゲイン変化量を制限せずに済む。ゲイン変化量を制限せずに済むため、素早くゲインを最適化させることができる。
<第3の実施の形態>
以下、本発明の第3の実施の形態に係るロボットについて説明する。
以下、本発明の第3の実施の形態に係るロボットについて説明する。
本実施の形態に係るロボット制御装置60の構成は図11のようになる。ロボット制御装置60は位置制御を担当する位置用のデジタルサーボ回路62と、速度制御を担当する速度用のデジタルサーボ回路64とを持つ。位置用のデジタルサーボ回路62は、内蔵する出力更新タイマー43の働きにより、位置についての出力を更新する周期である位置出力更新周期ごとに出力の更新を行なう。速度用のデジタルサーボ回路64は、内蔵する出力更新タイマー43の働きにより、速度についての出力を更新する周期である速度出力更新周期ごとに出力の更新を行なう。位置用のデジタルサーボ回路62の出力端子は速度用のデジタルサーボ回路64のサーボ用インタフェース端子に接続される。検出器66は、モータ42の位置を検出する。検出器66は位置用のデジタルサーボ回路62の受付端子に接続されている。検出器68は、モータ42の速度を検出する。検出器68は速度用のデジタルサーボ回路64の受付端子に接続されている。本実施の形態に係るコンピュータ16内のメモリ34は、位置用と速度用のそれぞれの、標準積分時間用のブロックを持つ。本実施の形態に係る位置用のデジタルサーボ回路62の出力は、速度用のデジタルサーボ回路64の目標値となる。すなわち、位置の制御のための出力が目標速度となる。位置用のデジタルサーボ回路62の目標値は、目標位置についての値である。この値は、位置用のデジタルサーボ回路62のメモリ41に記憶されている。なお、その他のハードウェア構成については前述の第1の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
図10を参照して、デジタルサーボ回路14および本体12が実施するPI制御について説明する。図10は、本実施の形態における制御ブロック図である。図10は位置用のデジタルサーボ回路62と速度用のデジタルサーボ回路64の制御ブロック図を統合したものである。位置用のデジタルサーボ回路62の出力が速度用のデジタルサーボ回路64への入力となり、速度用のデジタルサーボ回路64の出力がモータへの入力となる。この場合、位置制御のための出力は、速度指令値(すなわち目標速度)とみなされる。図10において、「EP」は位置の誤差(位置の目標値から位置の実測値を引いた値)を表わす。「KP」は位置用の比例ゲインを表わす。「EIP」は位置用の誤差積分(誤差EPを積分した値)を表わす。「TIP」は位置用の積分時間を表わす。「EV」は速度の誤差(速度の目標値から速度の実測値を引いた値)を表わす。「KV」は速度用の比例ゲインを表わす。「EIV」は速度用の誤差積分(誤差EVを不定積分した値)を表わす。「TIV」は速度用の積分時間を表わす。
位置用の出力値を「OTP」と表わす場合、次の式(10)が成立する。式(10)は、式(1)と同様の過程により導き出される。
OTP=KP(EP+EIP/TIP) ・・・式(10)
速度用の出力値を「OTV」と表わす場合、次の式(14)が成立する。式(14)は、式(1)と同様の過程により導き出される。
速度用の出力値を「OTV」と表わす場合、次の式(14)が成立する。式(14)は、式(1)と同様の過程により導き出される。
OTV=KV(EV+EIV/TIV)・・・式(14)
位置出力更新タイマーは位置出力更新周期ごとに演算回路40に式(10)を計算させる。これによって位置用の出力値OTP(速度制御用の目標速度となる)が更新される。速度出力更新タイマーは速度出力更新周期ごとに演算回路40に式(14)を計算させる。これによって速度用の出力値OTVが更新される。
位置出力更新タイマーは位置出力更新周期ごとに演算回路40に式(10)を計算させる。これによって位置用の出力値OTP(速度制御用の目標速度となる)が更新される。速度出力更新タイマーは速度出力更新周期ごとに演算回路40に式(14)を計算させる。これによって速度用の出力値OTVが更新される。
なお、その他のハードウェア構成については前述の第1の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
すなわち、ユーザインタフェース18が位置制御の比例ゲインの変更の指令を受けると、CPU32は位置用のデジタルサーボ回路62の比例ゲインを変更する。あわせて位置用のデジタルサーボ回路62の積分時間の変更を行なう。具体的には、S30〜S34の処理を行なう。ユーザインタフェース18から速度制御の比例ゲインの変更の指令を受けると、CPU32は速度用のデジタルサーボ回路64の比例ゲインを変更する。あわせて速度用のデジタルサーボ回路64の積分時間の変更を行なう。具体的には、S30〜S34の処理を行なう。
なお、その他の処理フローについては前述の第1の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
以上のようにして、本実施の形態に係るロボットは、位置制御の比例ゲインKPを変更できる。また速度制御の比例ゲインKVも変更できる。これにより、本実施の形態に係るロボットは、位置制御または速度制御のみのゲインを変えるものに比べ、柔軟性を大きく変化させることができる。さらに、本実施の形態に係るロボットは、位置制御についても速度制御についても誤差積分と積分時間とを変更する。これにより、本実施の形態に係るロボットは、急激な動作を抑制し、良好な制御性を維持することができる。その結果、急激な動作を防止することにより、安全性を向上させることができる、ロボットの制御装置を提供できる。
<第3の実施の形態 変形例>
なお、メモリ34は、標準積分時間用のブロックに代えて、最短積分時間用のブロックを有してもよい。最短積分時間用のブロックは、複数の比例ゲインごとに最短の積分時間を記憶する(本実施の形態の場合、最短積分時間用のブロックは、比例ゲインごとに実験的に得た最短時間を記憶する)。この場合、ユーザインタフェース18が位置の比例ゲイン変更の指令を受けると、CPU32は、位置のデジタルサーボ回路62の比例ゲインを変更するのに合わせて、位置のデジタルサーボ回路62の積分時間の変更が必要か判断し、必要ならば積分時間を変更する。具体的には、S80〜S86の処理を行なう。ユーザインタフェース18が速度の比例ゲイン変更の指令を受けると、CPU32は、速度のデジタルサーボ回路64の比例ゲインを変更するのに合わせて、速度のデジタルサーボ回路64の積分時間の変更が必要か判断し、必要ならば積分時間を変更する。具体的には、S80〜S86の処理を行なう。
なお、メモリ34は、標準積分時間用のブロックに代えて、最短積分時間用のブロックを有してもよい。最短積分時間用のブロックは、複数の比例ゲインごとに最短の積分時間を記憶する(本実施の形態の場合、最短積分時間用のブロックは、比例ゲインごとに実験的に得た最短時間を記憶する)。この場合、ユーザインタフェース18が位置の比例ゲイン変更の指令を受けると、CPU32は、位置のデジタルサーボ回路62の比例ゲインを変更するのに合わせて、位置のデジタルサーボ回路62の積分時間の変更が必要か判断し、必要ならば積分時間を変更する。具体的には、S80〜S86の処理を行なう。ユーザインタフェース18が速度の比例ゲイン変更の指令を受けると、CPU32は、速度のデジタルサーボ回路64の比例ゲインを変更するのに合わせて、速度のデジタルサーボ回路64の積分時間の変更が必要か判断し、必要ならば積分時間を変更する。具体的には、S80〜S86の処理を行なう。
また、図11において、速度制御の出力をモータに入力する代わりに、トルク制御型の制御装置へと入力し(速度制御の出力を目標トルクとする)、トルク制御型の制御装置によってモータをトルク制御する構成としてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10 ロボット、11,60 制御装置、12 本体、14 デジタルサーボ回路、16 コンピュータ、18 ユーザインタフェース、20 目標値生成部、22 CD−ROM駆動装置、32 CPU、34,41 メモリ、36 受付端子、37 サーボ用インタフェース、38 出力端子、39 不揮発性メモリ、40 演算回路、42 モータ、43 出力更新タイマー、44,66,68 検出器、50 CD−ROM、62 位置用のデジタルサーボ回路、64 速度用のデジタルサーボ回路。
Claims (12)
- 位置および速度のいずれかに関してPI制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
比例ゲインを記憶するための比例ゲイン用の記憶手段と、
比例ゲインを変更するための比例ゲイン用の変更手段と、
前記誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、
前記比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第1の誤差積分の最新値を元に第3の誤差積分を算出するための換算手段と、
前記換算手段が第3の誤差積分を算出すると、前記第3の誤差積分を第1の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、
前記積分手段が第2の誤差積分を算出するたびに、前記積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、比例ゲインの変更手段が変更した比例ゲインの最新値、および積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。 - 請求項1に記載のロボット制御装置であって、
前記換算手段および換算手段用の制御手段は、前記比例ゲイン用の変更手段が比例ゲインを変更した後、前記積分手段が第2の誤差積分を算出する前に、前記第3の誤差積分の算出と前記第1の誤差積分の更新とを完了するための手段を含む、ロボット制御装置。 - 請求項1に記載のロボット制御装置であって、
前記ロボット制御装置は、前記比例ゲインの変更を行なう間、前記第3の誤差積分の算出を行なう間、および前記第3の誤差積分を用いて第1の誤差積分を更新する間は、時間の経過の検出を停止するように、前記検出手段を制御するための検出用の制御手段をさらに含む、ロボット制御装置。 - 位置および速度のいずれかに関してPI制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
積分時間を変更するための積分時間用の変更手段と、
積分時間を記憶するための積分時間用の記憶手段と、
前記誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、
前記積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第1の誤差積分の最新値を元に第3の誤差積分を算出するための換算手段と、
前記換算手段が第3の誤差積分を算出すると、前記第3の誤差積分を第1の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、
前記積分手段が第2の誤差積分を算出するたびに、前記積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、前記積分時間用の変更手段が変更した積分時間の最新値、および積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。 - 請求項4に記載のロボット制御装置であって、
前記換算手段および換算手段用の制御手段は、前記積分時間用の変更手段が積分時間を変更した後、前記積分手段が第2の誤差積分を算出する前に、前記第3の誤差積分の算出と前記第1の誤差積分の更新とを完了するための手段を含む、ロボット制御装置。 - 請求項4に記載のロボット制御装置であって、
前記ロボット制御装置は、前記積分時間の変更を行なう間、前記第3の誤差積分の算出を行なう間、および前記第3の誤差積分を用いて第1の誤差積分を更新する間は、時間の経過の検出を停止するように、前記検出手段を制御するための検出用の制御手段をさらに含む、ロボット制御装置。 - 請求項1〜6の記載のいずれかに当たるロボット制御装置であって、
前記出力手段は、前記出力値を、前記アクチュエータを駆動する信号として出力する事を特徴とする、ロボット制御装置。 - 請求項1〜6の記載のいずれかに当たるロボット制御装置であって、
前記出力手段は、前記出力値を、トルク制御型のロボット制御装置の目標トルクとして出力する事を特徴とする、ロボット制御装置。 - 請求項1〜6の記載のいずれかに当たるロボット制御装置であって、
前記実測値はアクチュエータ出力部における位置の実測値であって、
前記目標値は目標位置であって、
前記出力手段は、前記出力値を、速度制御型のロボット制御装置の目標速度として出力するための手段である、ロボット制御装置。 - 位置および速度のいずれかに関してPI制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
比例ゲインを記憶するための比例ゲイン用の記憶手段と、
複数の比例ゲインごとに最短の積分時間を記憶するための最短用の記憶手段と、
比例ゲインを変更するための比例ゲイン用の変更手段と、
前記比例ゲインが変更された場合に比例ゲインの更新値に対応する最短の積分時間を選択するための選択手段と、
積分時間を、少なくとも前記選択手段が選択した最短の積分時間より長くなるように設定するための積分時間用の設定手段と、
積分時間を記憶するための積分時間用の記憶手段と、
前記誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、
前記比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに前記積分時間用の設定手段が積分時間を設定したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第1の誤差積分を元に第3の誤差積分を算出するための換算手段と、
前記換算手段が第3の誤差積分を算出すると、前記第3の誤差積分を第1の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、
前記積分手段が第2の誤差積分を算出するたびに、前記積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、比例ゲインの最新値、前記積分時間用の変更手段が変更した積分時間の最新値、および前記積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。 - 位置および速度のいずれかに関してPI制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
比例ゲインを記憶するための比例ゲイン用の記憶手段と、
複数の比例ゲインの値に対応して予め決めた標準の積分時間を記憶するための標準用の記憶手段と、
比例ゲインを変更するための比例ゲイン用の変更手段と、
前記比例ゲインが変更された場合に比例ゲインの更新値に対応する標準の積分時間を選択するための選択手段と、
積分時間を、前記選択手段が選択した標準の積分時間へと変更するための積分時間用の変更手段と、
積分時間を記憶するための積分時間用の記憶手段と、
前記誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、
前記比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに前記積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第1の誤差積分を元に第3の誤差積分を算出するための換算手段と、
前記換算手段が第3の誤差積分を算出すると、前記第3の誤差積分を第1の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、
前記積分手段が第2の誤差積分を算出するたびに、前記積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、比例ゲインの最新値、前記積分時間用の変更手段が変更した積分時間の最新値、および前記積分手段用の制御手段が変更した第1の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。 - 位置および速度のいずれかに関してPI制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値の入力を受付けるための目標値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
前記目標値が変化しない期間を測定するための測定手段と、
前記目標値が変化しない期間が任意のしきい値を超えたか否かを判断するための判断手段と、
前記目標値が変化しない期間は任意のしきい値を超えたと前記判断手段が判断した場合に、前記目標値が変化しない期間が任意のしきい値を超えたと判断した基準の時点の、比例ゲイン、積分時間、および目標値を記憶するための待機状態用のパラメータ記憶手段と、
比例ゲインを記憶するための比例ゲイン用の記憶手段と、
前記目標値が変化しない期間は任意のしきい値を超えたと前記判断手段が判断した場合に、比例ゲインを前記基準の時点の値よりも小さな値に変更するための比例ゲイン用の変更手段と、
積分時間を記憶するための積分時間用の記憶手段と、
前記目標値が変化しない期間は任意のしきい値を超えたと前記判断手段が判断した場合に、積分時間を前記基準の時点の値よりも大きな値に変更するための積分時間用の変更手段と、
前記誤差を積分した値である第1の誤差積分を記憶するための誤差積分用の記憶手段と、
前記比例ゲイン用の変更手段が比例ゲインを変更することにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに前記積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第1の誤差積分を元に第3の誤差積分を算出するための換算手段と、
前記換算手段が第3の誤差積分を算出すると、前記第3の誤差積分を第1の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第1の誤差積分の最新値を用いて、積分により第2の誤差積分を算出するための積分手段と、
前記積分手段が第2の誤差積分を算出するたびに、前記積分手段が算出した第2の誤差積分を第1の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、比例ゲインの最新値、前記積分手段用の制御手段が変更した第1の誤差積分の最新値、および前記積分時間用の変更手段が変更した積分時間の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005171212A JP2006344149A (ja) | 2005-06-10 | 2005-06-10 | ロボット制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005171212A JP2006344149A (ja) | 2005-06-10 | 2005-06-10 | ロボット制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006344149A true JP2006344149A (ja) | 2006-12-21 |
Family
ID=37641049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005171212A Withdrawn JP2006344149A (ja) | 2005-06-10 | 2005-06-10 | ロボット制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006344149A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010119248A (ja) * | 2008-11-14 | 2010-05-27 | Fuji Electric Systems Co Ltd | 発電システム |
-
2005
- 2005-06-10 JP JP2005171212A patent/JP2006344149A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010119248A (ja) * | 2008-11-14 | 2010-05-27 | Fuji Electric Systems Co Ltd | 発電システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9421687B2 (en) | Robot control apparatus and robot control method | |
JP5962020B2 (ja) | ロボット制御装置、ロボットシステム、ロボット及びロボット制御方法 | |
JP5375062B2 (ja) | ロボットシステムおよび制御方法 | |
WO2010050119A1 (en) | Robot control apparatus | |
JP5231935B2 (ja) | ロボット制御装置 | |
CN109562518B (zh) | 并联连杆机构的控制装置 | |
WO2017098713A1 (ja) | ロボットシステム及びその運転方法 | |
WO2011161765A1 (ja) | ロボット制御装置 | |
JP6472214B2 (ja) | ロボット装置の制御方法及びロボット装置 | |
JP2008188722A (ja) | ロボット制御装置 | |
JP2010284758A (ja) | ロボットの制御装置、及びロボットの制御方法 | |
JP2007044865A (ja) | 方向付け/位置決めシステム制御方法 | |
JP5436160B2 (ja) | 力制御装置 | |
JP2006344149A (ja) | ロボット制御装置 | |
JP3911258B2 (ja) | 制御装置による駆動装置の制御方法および制御装置 | |
WO2020161880A1 (ja) | 動作モデル算出装置、制御装置、関節機構、動作モデル算出方法、プログラムが記録された記録媒体 | |
JP2013146792A (ja) | ロボット制御装置、ロボットシステム、センサー情報処理装置及びロボット制御方法 | |
JP2003216243A (ja) | ロボットの制御装置 | |
JP2006167820A (ja) | ロボットアームの制御方法 | |
US20190361421A1 (en) | Servo control device | |
JP2006320055A (ja) | モータ制御装置 | |
CN110147891B (zh) | 应用于强化学习训练过程的方法、装置及电子设备 | |
JP2022091462A (ja) | 装着型ロボット | |
JP7246906B2 (ja) | 操作装置、レンズ装置、および撮像装置 | |
WO2021199931A1 (ja) | 教示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080902 |