(57)【要約】【課題】  急激な動作を防止することにより、安全性を向上させる。【解決手段】  制御装置１１は、比例ゲインを変更する際、ＣＰＵ３２により、比例ゲインを変更したことにより生じる出力の変化を相殺するように、誤差積分を算出し更新する。制御装置１１は出力更新周期が経過すると、誤差、比例ゲインの最新値、積分時間の最新値および誤差積分の最新値を併用して、位置および速度のいずれかの出力値を算出する演算回路４０と、出力値を出力する出力端子３８とを含む。【選択図】        図１
2006344149.tif 000002
【特許請求の範囲】
【請求項１】
位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
比例ゲインを記憶するための比例ゲイン用の記憶手段と、
比例ゲインを変更するための比例ゲイン用の変更手段と、
前記誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、
前記比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第１の誤差積分の最新値を元に第３の誤差積分を算出するための換算手段と、
前記換算手段が第３の誤差積分を算出すると、前記第３の誤差積分を第１の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、
前記積分手段が第２の誤差積分を算出するたびに、前記積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、比例ゲインの変更手段が変更した比例ゲインの最新値、および積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。
【請求項２】
請求項１に記載のロボット制御装置であって、
前記換算手段および換算手段用の制御手段は、前記比例ゲイン用の変更手段が比例ゲインを変更した後、前記積分手段が第２の誤差積分を算出する前に、前記第３の誤差積分の算出と前記第１の誤差積分の更新とを完了するための手段を含む、ロボット制御装置。
【請求項３】
請求項１に記載のロボット制御装置であって、
前記ロボット制御装置は、前記比例ゲインの変更を行なう間、前記第３の誤差積分の算出を行なう間、および前記第３の誤差積分を用いて第１の誤差積分を更新する間は、時間の経過の検出を停止するように、前記検出手段を制御するための検出用の制御手段をさらに含む、ロボット制御装置。
【請求項４】
位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
積分時間を変更するための積分時間用の変更手段と、
積分時間を記憶するための積分時間用の記憶手段と、
前記誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、
前記積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第１の誤差積分の最新値を元に第３の誤差積分を算出するための換算手段と、
前記換算手段が第３の誤差積分を算出すると、前記第３の誤差積分を第１の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、
前記積分手段が第２の誤差積分を算出するたびに、前記積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、前記積分時間用の変更手段が変更した積分時間の最新値、および積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。
【請求項５】
請求項４に記載のロボット制御装置であって、
前記換算手段および換算手段用の制御手段は、前記積分時間用の変更手段が積分時間を変更した後、前記積分手段が第２の誤差積分を算出する前に、前記第３の誤差積分の算出と前記第１の誤差積分の更新とを完了するための手段を含む、ロボット制御装置。
【請求項６】
請求項４に記載のロボット制御装置であって、
前記ロボット制御装置は、前記積分時間の変更を行なう間、前記第３の誤差積分の算出を行なう間、および前記第３の誤差積分を用いて第１の誤差積分を更新する間は、時間の経過の検出を停止するように、前記検出手段を制御するための検出用の制御手段をさらに含む、ロボット制御装置。
【請求項７】
請求項１〜６の記載のいずれかに当たるロボット制御装置であって、
前記出力手段は、前記出力値を、前記アクチュエータを駆動する信号として出力する事を特徴とする、ロボット制御装置。
【請求項８】
請求項１〜６の記載のいずれかに当たるロボット制御装置であって、
前記出力手段は、前記出力値を、トルク制御型のロボット制御装置の目標トルクとして出力する事を特徴とする、ロボット制御装置。
【請求項９】
請求項１〜６の記載のいずれかに当たるロボット制御装置であって、
前記実測値はアクチュエータ出力部における位置の実測値であって、
前記目標値は目標位置であって、
前記出力手段は、前記出力値を、速度制御型のロボット制御装置の目標速度として出力するための手段である、ロボット制御装置。
【請求項１０】
位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
比例ゲインを記憶するための比例ゲイン用の記憶手段と、
複数の比例ゲインごとに最短の積分時間を記憶するための最短用の記憶手段と、
比例ゲインを変更するための比例ゲイン用の変更手段と、
前記比例ゲインが変更された場合に比例ゲインの更新値に対応する最短の積分時間を選択するための選択手段と、
積分時間を、少なくとも前記選択手段が選択した最短の積分時間より長くなるように設定するための積分時間用の設定手段と、
積分時間を記憶するための積分時間用の記憶手段と、
前記誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、
前記比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに前記積分時間用の設定手段が積分時間を設定したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第１の誤差積分を元に第３の誤差積分を算出するための換算手段と、
前記換算手段が第３の誤差積分を算出すると、前記第３の誤差積分を第１の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、
前記積分手段が第２の誤差積分を算出するたびに、前記積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、比例ゲインの最新値、前記積分時間用の変更手段が変更した積分時間の最新値、および前記積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。
【請求項１１】
位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
比例ゲインを記憶するための比例ゲイン用の記憶手段と、
複数の比例ゲインの値に対応して予め決めた標準の積分時間を記憶するための標準用の記憶手段と、
比例ゲインを変更するための比例ゲイン用の変更手段と、
前記比例ゲインが変更された場合に比例ゲインの更新値に対応する標準の積分時間を選択するための選択手段と、
積分時間を、前記選択手段が選択した標準の積分時間へと変更するための積分時間用の変更手段と、
積分時間を記憶するための積分時間用の記憶手段と、
前記誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、
前記比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに前記積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第１の誤差積分を元に第３の誤差積分を算出するための換算手段と、
前記換算手段が第３の誤差積分を算出すると、前記第３の誤差積分を第１の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、
前記積分手段が第２の誤差積分を算出するたびに、前記積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、比例ゲインの最新値、前記積分時間用の変更手段が変更した積分時間の最新値、および前記積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。
【請求項１２】
位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置であって、
ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、
前記位置および速度のいずれかの目標値の入力を受付けるための目標値用の受付手段と、
前記位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、
前記実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、
前記目標値が変化しない期間を測定するための測定手段と、
前記目標値が変化しない期間が任意のしきい値を超えたか否かを判断するための判断手段と、
前記目標値が変化しない期間は任意のしきい値を超えたと前記判断手段が判断した場合に、前記目標値が変化しない期間が任意のしきい値を超えたと判断した基準の時点の、比例ゲイン、積分時間、および目標値を記憶するための待機状態用のパラメータ記憶手段と、
比例ゲインを記憶するための比例ゲイン用の記憶手段と、
前記目標値が変化しない期間は任意のしきい値を超えたと前記判断手段が判断した場合に、比例ゲインを前記基準の時点の値よりも小さな値に変更するための比例ゲイン用の変更手段と、
積分時間を記憶するための積分時間用の記憶手段と、
前記目標値が変化しない期間は任意のしきい値を超えたと前記判断手段が判断した場合に、積分時間を前記基準の時点の値よりも大きな値に変更するための積分時間用の変更手段と、
前記誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、
前記比例ゲイン用の変更手段が比例ゲインを変更することにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに前記積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、前記第１の誤差積分を元に第３の誤差積分を算出するための換算手段と、
前記換算手段が第３の誤差積分を算出すると、前記第３の誤差積分を第１の誤差積分の更新値として記憶するように、前記誤差積分用の記憶手段を制御するための換算手段用の制御手段と、
時間の経過を検出するための検出手段と、
所定の周期で、前記誤差用の算出手段が算出した誤差、および前記第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、
前記積分手段が第２の誤差積分を算出するたびに、前記積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、
前記積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、前記誤差用の算出手段が算出した誤差、比例ゲインの最新値、前記積分手段用の制御手段が変更した第１の誤差積分の最新値、および前記積分時間用の変更手段が変更した積分時間の最新値を併用して、出力値を算出するための出力値用の算出手段と、
前記出力値を出力するための出力手段とを含む、ロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置に関し、特に、位置のＰＩ制御（proportional  plus  integral  control）を含む制御ループを持つロボット（多関節のマニピュレータなど）制御装置に関する。
【背景技術】
【０００２】
従来のロボットの制御装置は、過大な力を発生させることがある。そのような過大な力は、ロボットの先端が障害物などに接触する際に発生する。そのような過大な力を発生させないために、多数の発明が提案されている。
【０００３】
特許文献１は、そのような多数の発明の一種を開示する。特許文献１が開示する発明は、位置制御のＰ（proportional）ゲインを変更することにより、サーボ系の柔軟性を変化させる（高剛性・高精度の位置制御モードと低剛性の柔軟制御モードとを切り替える）。
【０００４】
この発明によると、フローティング機構などの機械的な装置を追加することなく、ロボットの先端に柔軟性を与えることができる。
【０００５】
特許文献２に開示された発明は、ロボットが動作している間に位置制御と柔軟制御を切り替える回路を有するロボットの制御装置において、位置制御から柔軟制御に移行するとき、速度制御系の積分動作を中止するとともに、その積分動作の出力値を実際のロボットアームの関節角度、ロボットのリンク質量、および重心位置に基づいて算出された重力補償値に置き換えることを特徴とする。
【０００６】
この発明によると、次の処理によりロボットの急激な動作を抑制できる。その第１の処理は、位置制御から柔軟制御に移行する際、重力を補償する出力オフセット量（予め計算シミュレーションで求められている）を出力に加えることで重力との釣り合いを保つ処理である。第２の処理は、柔軟制御から位置制御に移る際、その時点での実位置をロボットの目標位置へと上書きする処理である。
【０００７】
しかし、前述の特許文献１に開示された発明には、安全面での問題点がある。ゲイン変更の際、変更前のゲインに応じた出力から変更後のゲインに応じた出力へと、位置制御ループの出力が急変する。これによる問題は例えば、重力との釣り合い状態にあったロボットが、急激に上昇したり下降したりする（重力方向に動く）ことである。トルク出力と重力とが釣り合わなくなるからである。もう一つの例は、目標位置と実際の位置の誤差が大きい状態で柔軟制御から位置制御に切り替えた場合、ロボットが、大きな加速をすることである。ロボットの出力が、瞬間的に増加するためである。このように加速することは危険である。
【０００８】
特許文献２の技術には、次の問題点がある。問題点の第１は、位置制御および柔軟制御を切り替えるため、制御系を２つ必要とする（その結果、装置が高価になる）点である。問題点の第２点は、ロボットが危険な動作をするという問題点である。目標位置が上書きされる場合、本来の目標位置生成装置は、そのことを把握していない。目標位置を上書きした後、本来の目標位置生成装置が、元の目標位置を起点とする新しい動きを生成する可能性がある。これが、ロボットの危険な動作の原因である。
【０００９】
また特許文献３のように、適応制御という、ロボットが先端に物を把持した時の動特性の変化に対して制御ゲイン（比例ゲイン、積分時間、微分時間）をそれぞれ自動的に変化させる手法が使われている場合、動作中に各制御ゲインを変更する際に出力が急変し、急激な動作を発生する恐れがあるため、ゲインの変化量を小さな値に制限する必要があった。したがって調整に長い時間を必要としていた。
【特許文献１】特開平６−３３２５３８号公報
【特許文献２】特開平９−７６１８４号公報
【特許文献３】特開平４−１０９３０４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は上述の問題点を解決するためになされたものであって、その目的は、急激な動作を防止することにより、安全性を向上させたロボット制御装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明のある局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、比例ゲインを記憶するための比例ゲイン用の記憶手段と、比例ゲインを変更するための比例ゲイン用の変更手段と、誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、積分手段が第２の誤差積分を算出するたびに、積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、比例ゲインの変更手段が変更した比例ゲインの最新値、および積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
【００１２】
これに加えて、ロボット制御装置は、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第１の誤差積分の最新値を元に第３の誤差積分を算出するための換算手段と、換算手段が第３の誤差積分を算出すると、第３の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段とを持つ。
【００１３】
すなわち、検出手段は、時間の経過を検出する。換算手段は、比例ゲイン用の変更手段が比例ゲインを変更すると、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第３の誤差積分を算出する。積分手段は、所定の周期で、誤差用の算出手段が算出した誤差、および第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出する。積分手段用の制御手段は積分手段が第２の誤差積分を算出するたびに、第２の誤差積分を第１の誤差積分の更新値として誤差積分用の記憶手段に記憶させる。出力値用の算出手段は、積分手段用の制御手段が第２の誤差積分を第１の誤差積分の更新値として誤差積分用の記憶手段に記憶させるたびに、誤差用の算出手段が算出した誤差、比例ゲイン用の変更手段が変更した比例ゲインの最新値、および第１の誤差積分を併用して、出力値を算出する。比例ゲインを変更したことにより生じる出力の変化は、第３の誤差積分を用いて第１の誤差積分を更新したことにより生じる出力の変化によって相殺される。出力の変化が相殺されるので、ロボットが急激に動作することが防止される。その結果、急激な動作を防止することにより、安全性を向上させることができるロボット制御装置を提供することができる。
【００１４】
上述の換算手段および換算手段用の制御手段は、比例ゲイン用の変更手段が比例ゲインを変更した後、積分手段が第２の誤差積分を算出する前に、第３の誤差積分の算出と第１の誤差積分の更新とを完了するための手段を含むことが望ましい。
【００１５】
すなわち、換算手段は、比例ゲイン用の変更手段が比例ゲインを変更すると、積分手段が第２の誤差積分を算出する前に、第３の誤差積分を算出する。換算手段用の制御手段は、換算手段が第３の誤差積分を算出すると、積分手段が第２の誤差積分を算出する前に、第３の誤差積分を用いて第１の誤差積分を更新する。これにより、比例ゲインを変更した後、第３の誤差積分を用いて第１の誤差積分が更新される前に第２の誤差積分の算出とそれに続く出力値の算出とが行なわれたために、出力の変化が相殺されないことにより急激な動作がおきるという危険を、より適切に防止する。その結果、より適切に急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
【００１６】
または、ロボット制御装置は、比例ゲインの変更を行なう間、第３の誤差積分の算出を行なう間、および第３の誤差積分を用いて第１の誤差積分を更新する間は、時間の経過の検出を停止するように、検出手段を制御するための検出用の制御手段をさらに含むことが望ましい。
【００１７】
すなわち、比例ゲインの変更を行なう間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。第３の誤差積分の算出を行なう間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。第３の誤差積分を用いて第１の誤差積分を更新する間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。これにより、比例ゲインを変更した後、第３の誤差積分を用いて第１の誤差積分が更新される前に第２の誤差積分の算出と出力値の算出とが行なわれることはなくなる。第２の誤差積分の算出と出力値の算出とが行なわれないので、第３の誤差積分を用いて第１の誤差積分が更新される前にロボットが急激に動作することはほとんど無くなる。その結果、急激な動作をほとんど防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
【００１８】
本発明の別の局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、積分時間を記憶するための積分時間用の記憶手段と、積分時間を変更するための積分時間用の変更手段と、誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、積分手段が第２の誤差積分を算出するたびに、積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、積分時間用の変更手段が変更した積分時間の最新値、および積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
【００１９】
これに加えて、ロボット制御装置は、積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第１の誤差積分の最新値を元に第３の誤差積分を算出するための換算手段と、換算手段が第３の誤差積分を算出すると、第３の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段とを含む。
【００２０】
すなわち、検出手段は、時間の経過を検出する。換算手段は、積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する出力の変化を相殺するように、第３の誤差積分を算出する。積分手段は、所定の周期で、誤差用の算出手段が算出した誤差、および第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出する。積分手段用の制御手段は、積分手段が第２の誤差積分を算出するたびに、第２の誤差積分を第１の誤差積分の更新値として誤差積分用の記憶手段に記憶させる。出力値用の算出手段は、積分手段用の制御手段が第２の誤差積分を第１の誤差積分の更新値として誤差積分用の記憶手段に記憶させるたびに、誤差用の算出手段が算出した誤差、積分時間用の変更手段が変更した積分時間の最新値（積分時間用の変更手段が積分時間を変更した場合、この最新値は変更した後の積分時間である）、および積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出する。これにより、積分時間を変更したことにより生じる出力の変化が、第３の誤差積分を用いて第１の誤差積分を更新したことにより生じる出力の変化により相殺される。出力の変化が相殺されるので、ロボットが急激に動作することが防止される。その結果、急激な動作を防止することにより、安全性を向上させることができるロボット制御装置を提供することができる。
【００２１】
上述の換算手段および換算手段用の制御手段は、積分時間用の変更手段が積分時間を変更した後、積分手段が第２の誤差積分を算出する前に、第３の誤差積分の算出と第１の誤差積分の更新とを完了するための手段を含むことが望ましい。
【００２２】
すなわち、換算手段は、積分時間用の変更手段が積分時間を変更すると、積分手段が第２の誤差積分を算出する前に、第３の誤差積分を算出する。換算手段用の制御手段は、換算手段が第３の誤差積分を算出すると、積分手段が第２の誤差積分値を算出する前に、第３の誤差積分を用いて第１の誤差積分を更新する。これにより、積分時間を変更した後、第３の誤差積分を用いて第１の誤差積分が更新される前に第２の誤差積分の算出とそれに続く出力値の算出が行なわれたために出力の変化が相殺されないことにより急激な動作がおきるという危険を、より適切に防止する。その結果、より適切に急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
【００２３】
または、ロボット制御装置は、積分時間の変更を行なう間、第３の誤差積分の算出を行なう間、および第３の誤差積分を用いて第１の誤差積分を更新する間は、時間の経過の検出を停止するように、検出手段を制御するための検出用の制御手段をさらに含むことが望ましい。
【００２４】
すなわち、積分時間の変更を行なう間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。第３の誤差積分の算出を行なう間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。第３の誤差積分を用いて第１の誤差積分を更新する間、検出用の制御手段は、時間の経過の検出を停止するように、検出手段を制御する。これにより、積分時間を変更した後、第３の誤差積分を用いて第１の誤差積分を更新する前に第２の誤差積分の算出と出力値の算出とが行なわれることはなくなる。第２の誤差積分の算出と出力値の算出とが行なわれないので、第３の誤差積分を用いて第１の誤差積分が更新されないことが原因でロボットが急激に動作することはほとんど無くなる。その結果、急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
【００２５】
また、上述した出力手段は、出力値を、アクチュエータを駆動する信号として出力する事を特徴とすることが望ましい。
【００２６】
または、上述した出力手段は、出力値を、トルク制御型のロボット制御装置の目標トルクとして出力する事を特徴とすることが望ましい。
【００２７】
すなわち、出力値用の算出手段は、トルク制御型のロボット制御装置の目標トルクとして、出力値を算出する。これにより、比例ゲインの変更または積分時間の変更により生じる出力の変化は相殺される。出力の変化が相殺されるので、トルク制御型のロボット制御装置が変更の影響を受けることは防止される。トルク制御型のロボット制御装置が変更の影響を受けることが防止されるので、カスケード制御（多段制御）においても、ロボットが急激に動作することが防止される。その結果、カスケード制御においても、急激な動作を防止することにより、安全性を向上させることができる、ロボット制御装置を提供する。
【００２８】
また、上述した実測値はアクチュエータ出力部における位置の実測値であってもよい。目標値は目標位置であってもよい。出力手段は、出力値を、速度制御型のロボット制御装置の目標速度として出力するための手段であってもよい。
【００２９】
すなわち、出力値用の算出手段は、速度制御型のロボット制御装置の目標速度として、出力値を算出する。これにより、比例ゲインの変更または積分時間の変更により生じる出力の変化は相殺される。出力の変化が相殺されるので、速度制御型のロボット制御装置が変更の影響を受けることは防止される。速度制御型のロボット制御装置が変更の影響を受けることが防止されるので、カスケード制御においても、ロボットが急激に動作することが防止される。その結果、カスケード制御においても、急激な動作を防止することにより、安全性を向上させることができる、ロボット制御装置を提供することができる。
【００３０】
上記目的を達成するために、本発明の別の局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、比例ゲインを記憶するための比例ゲイン用の記憶手段と、比例ゲインを変更するための比例ゲイン用の変更手段と、積分時間を記憶するための積分時間用の記憶手段と、誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、積分手段が第２の誤差積分を算出するたびに、積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、比例ゲインの最新値、積分時間用の変更手段が変更した積分時間の最新値、および積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
【００３１】
これに加えて、ロボット制御装置は、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第１の誤差積分を元に第３の誤差積分を算出するための換算手段と、換算手段が第３の誤差積分を算出すると、第３の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段とを含む。
【００３２】
また、上述のロボット制御装置は、複数の比例ゲインの値に対応して予め決めた標準の積分時間を記憶するための標準用の記憶手段と、比例ゲインが変更された場合に比例ゲインの更新値に対応する標準の積分時間を選択するための選択手段と、積分時間を、選択手段が選択した標準の積分時間へと変更するための積分時間用の変更手段とを含む。
【００３３】
すなわち、比例ゲイン用の変更手段は、比例ゲインを変更する。比例ゲインが変更されると、選択手段が、比例ゲインの更新値に対応する標準の積分時間を選択する。積分時間用の変更手段は、積分時間を、選択手段が選択した標準の積分時間に変更する。比例ゲインが変更され、かつ積分時間が標準の積分時間に変更されると、換算手段は、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる出力の変化および積分時間用の変更手段が積分時間を変更したことにより生じる出力の変化を相殺するように、第３の誤差積分を算出する。換算手段用の制御手段は、換算手段が第３の誤差積分を算出すると、第３の誤差積分を用いて第１の誤差積分を更新する。
【００３４】
これにより、積分時間は比例ゲインに合ったより適正な値となり、不適当な積分時間の設定によるロボットの振動を防止できる。その結果、ロボットの振動および急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
【００３５】
上記目的を達成するために、本発明の別の局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、比例ゲインを記憶するための比例ゲイン用の記憶手段と、複数の比例ゲインごとに最短の積分時間を記憶するための最短用の記憶手段と、比例ゲインを変更するための比例ゲイン用の変更手段と、比例ゲインが変更された場合に比例ゲインの更新値に対応する最短の積分時間を選択するための選択手段と、積分時間を、少なくとも選択手段が選択した最短の積分時間より長くなるように設定するための積分時間用の設定手段と、積分時間を記憶するための積分時間用の記憶手段と、誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第１の誤差積分を元に第３の誤差積分を算出するための換算手段と、換算手段が第３の誤差積分を算出すると、第３の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、積分手段が第２の誤差積分を算出するたびに、積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、比例ゲインの最新値、積分時間用の設定手段が設定した積分時間の最新値、および積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
【００３６】
すなわち、比例ゲイン用の変更手段は、比例ゲインを変更する。比例ゲインが変更されると、選択手段が、比例ゲインの更新値に対応する最短の積分時間を選択する。積分時間用の設定手段は、積分時間を少なくとも選択手段が選択した最短の積分時間より長くなるように設定する。
【００３７】
これにより、比例ゲインの更新値に対して積分時間が短すぎることによるロボットの振動を防止できる。その結果、ロボットの振動および急激な動作を防止することにより、安全性をより向上させることができるロボット制御装置を提供することができる。
【００３８】
本発明の他の局面にしたがうと、ロボット制御装置は、位置および速度のいずれかに関してＰＩ制御を行なうロボット制御装置である。ロボット制御装置は、ロボットのアクチュエータ出力部の出力部の位置および速度のいずれかの実測値を受付けるための実測値用の受付手段と、位置および速度のいずれかの目標値を記憶するための目標値用の記憶手段と、位置および速度のいずれかの目標値の入力を受付けるための目標値用の受付手段と、実測値と目標値との差に対応する誤差を算出するための誤差用の算出手段と、目標値が変化しない期間は任意のしきい値を超えたと判断手段が判断した場合に、比例ゲインを基準の時点の値よりも小さな値に変更するための比例ゲイン用の変更手段と、比例ゲインを記憶するための比例ゲイン用の記憶手段と、目標値が変化しない期間は任意のしきい値を超えたと判断手段が判断した場合に、積分時間を基準の時点の値よりも大きな値に変更するための積分時間用の変更手段と、積分時間を記憶するための積分時間用の記憶手段と、誤差を積分した値である第１の誤差積分を記憶するための誤差積分用の記憶手段と、時間の経過を検出するための検出手段と、所定の周期で、誤差用の算出手段が算出した誤差、および第１の誤差積分の最新値を用いて、積分により第２の誤差積分を算出するための積分手段と、積分手段が第２の誤差積分を算出するたびに、積分手段が算出した第２の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための積分手段用の制御手段と、積分手段用の制御手段が誤差積分用の記憶手段を制御するたびに、誤差用の算出手段が算出した誤差、比例ゲインの最新値、積分時間用の変更手段が変更した積分時間の最新値、および積分手段用の制御手段が変更した第１の誤差積分の最新値を併用して、出力値を算出するための出力値用の算出手段と、出力値を出力するための出力手段とを含む。
【００３９】
これに加えて、ロボット制御装置は目標値が変化しない期間を測定するための測定手段と、目標値が変化しない期間が任意のしきい値を超えたか否かを判断するための判断手段と、目標値が変化しない期間は任意のしきい値を超えたと判断手段が判断した場合に、目標値が変化しない期間が任意のしきい値を超えたと判断した基準の時点の、比例ゲイン、積分時間、および目標値を記憶するための待機状態用のパラメータ記憶手段と、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化、ならびに積分時間用の変更手段が積分時間を変更したことにより生じる、位置および速度のいずれかに関する制御の出力の変化を相殺するように、第１の誤差積分を元に第３の誤差積分を算出するための換算手段と、換算手段が第３の誤差積分を算出すると、第３の誤差積分を第１の誤差積分の更新値として記憶するように、誤差積分用の記憶手段を制御するための換算手段用の制御手段とを含む。
【００４０】
すなわち、目標値が変化しない期間が任意のしきい値を超えたと判断手段が判断した場合に、待機状態用のパラメータ記憶手段は、目標値が変化しない期間が任意のしきい値を超えたと判断した基準の時点の、比例ゲイン、積分時間、および目標値を記憶する。比例ゲイン用の変更手段は、比例ゲインを基準の時点の値よりも小さな値に変更する。積分時間用の変更手段は、積分時間を基準の時点の値よりも大きな値に変更する。換算手段は、比例ゲイン用の変更手段が比例ゲインを変更したことにより生じる出力の変化および積分時間用の変更手段が積分時間を変更したことにより生じる出力の変化を相殺するように、第３の誤差積分を算出する。換算手段用の制御手段は、換算手段が第３の誤差積分を算出すると、第３の誤差積分を用いて第１の誤差積分を更新する。これにより、誤差が増大しても、出力値の変化がきわめて少なくなる。
【００４１】
その結果、急激な動作を防止することによって、安全性を向上させることができるロボット制御装置を提供することができる。
【発明の効果】
【００４２】
本発明に係るロボット制御装置は、急激な動作を防止することにより、安全性を向上させることができる。
【発明を実施するための最良の形態】
【００４３】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同一である。したがって、それらについての詳細な説明は繰返さない。
【００４４】
＜第１の実施の形態＞
以下、本発明の第１の実施の形態に係るロボットについて説明する。図１を参照して、本実施の形態に係るロボット１０は、制御装置１１と、制御装置１１に接続された本体（図示しないマニピュレータを有する）１２と、目標値生成部２０とを含む。制御装置１１は、本体１２に対し、位置に関してＰＩ制御を行なうロボット制御装置である。本体１２は、マニピュレータを用いて仕事をする。目標値生成部２０は、目標値（目標位置）を制御装置１１に出力することにより、動作の指令を生成する。
【００４５】
制御装置１１は、本体１２に持続されるデジタルサーボ回路１４と、デジタルサーボ回路１４に接続されるコンピュータ１６と、コンピュータ１６に接続され、表示用のディスプレイおよびキーボードなどを持つユーザインタフェース１８と、コンピュータ１６に接続され、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）５０から情報を読取るＣＤ−ＲＯＭ駆動装置２２とを含む。
【００４６】
制御装置１１の動作の一部（どの一部かは後述する）は、コンピュータ１６のハードウェアとＣＰＵ３２により実行されるソフトウェアとにより実現される。一般的にこうしたソフトウェアは、ＣＤ−ＲＯＭ５０などの記録媒体に格納されて流通し、ＣＤ−ＲＯＭ駆動装置２２などにより記録媒体から読取られてメモリ３４に読出されて、上述したＣＰＵ３２により実行される。制御装置１１の動作の一部（コンピュータ１６のハードウェアとＣＰＵ３２により実行されるソフトウェアとにより実現される動作以外の一部）は、デジタルサーボ回路１４のハードウェアと演算回路４０により実行されるプログラムとにより実現される。デジタルサーボ回路１４により実行されるプログラムはデジタルサーボ回路１４が内蔵する不揮発性メモリ３９に記録され、デジタルサーボ回路１４内のメモリ４１に読み出されて実行される。上述したコンピュータ１６やデジタルサーボ回路１４のハードウェア自体は一般的なものである。したがって、本発明の最も本質的な部分は、ＣＤ−ＲＯＭ５０や不揮発性メモリ３９などの記録媒体に記録されたソフトウェアである。なお、コンピュータ自体の動作は周知であるので、ここではその詳細な説明は繰返さない。
【００４７】
デジタルサーボ回路１４は、本体１２のマニピュレータの位置を、ＰＩ制御により制御する。コンピュータ１６は、ＰＩ制御に用いられる各パラメータを書き換える。ユーザインタフェース１８は、ユーザからのパラメータの変更の指令を受付ける。デジタルサーボ回路１４は、検出器４４に接続された受付端子３６と、コンピュータ１６および目標値生成部２０に接続されたサーボ用インタフェース３７と、モータ４２に接続された出力端子３８と、演算回路４０に接続された不揮発性メモリ３９と、受付端子３６、サーボ用インタフェース３７、出力端子３８、不揮発性メモリ３９、およびメモリ４１に接続された演算回路４０と、メモリ４１とを含む。受付端子３６は、マニピュレータ（すなわちロボットのアクチュエータ出力部）の位置の実測値の入力を受付ける。サーボ用インタフェース３７は、コンピュータ１６との間で情報を交換する。出力端子３８は、マニピュレータを駆動するモータ４２に、演算回路４０が算出した出力値を、マニピュレータ（すなわちアクチュエータ）を駆動する信号として出力する。不揮発性メモリ３９は、演算回路４０が実行するプログラムを記憶させる。演算回路４０は、複数の処理を並行して行なう。演算回路４０は、メモリ４１に記憶されたパラメータを使って、後述するＰＩ制御を実現する。演算回路４０は、検出器４４から入力されたモータ４２の位置の実測値をメモリ４１に書き込む。演算回路４０は、モータ４２の位置の、実測値と目標値との差に対応する誤差を算出し、メモリ４１に書き込む。演算回路４０は、出力更新タイマー４３を含む。出力更新タイマー４３の役割については後述する。メモリ４１は比例ゲイン、積分時間、位置の実測値、位置の目標値、誤差、誤差を積分した値である誤差積分を記憶する。メモリ４１は、これらの値をそれぞれ異なる領域に記憶することとする。このうち比例ゲイン、積分時間、誤差積分はＣＰＵ３２に読出され、かつＣＰＵ３２が任意の値に書き換え得ることとする。目標値は目標値生成部２０が任意の値に書き換え得ることとする。
【００４８】
コンピュータ１６は、ＣＰＵ３２と、ＣＰＵ３２に接続されるメモリ３４とを含む。ＣＰＵ３２は比例ゲインを変更する際、次の処理を実施する。その第１の処理は、変更前の比例ゲインなどのパラメータをメモリ４１から読み出す処理である。第２の処理は、ＣＰＵ３２が比例ゲインを変更したことにより生じる出力の変化を相殺するように、誤差積分を換算する処理である。この処理の具体的な内容は後述する。第３の処理は、変更後の比例ゲインなどのパラメータをメモリ４１に書き込む処理である。メモリ３４は、パラメータやパラメータの変更に必要な値を記憶する。メモリ３４は複数のブロックを持つ。これらのブロックは、それぞれ利用する目的が異なるパラメータや値を記憶する。メモリ３４は標準積分時間用のブロックに、複数の比例ゲインに対応して予め決めた標準の積分時間を記憶させる。メモリ３４は待機状態用のパラメータ記憶ブロックに、後述する待機状態に入る前のパラメータなどを記憶させる。
【００４９】
本体１２は、モータ４２と、検出器４４とを含む。モータ４２は、マニピュレータを駆動する。検出器４４はモータ４２と接続され、モータ４２の位置の実測値を検出する。
【００５０】
図２を参照して、ロボット１０が実施するＰＩ制御について説明する。演算回路４０は内蔵する出力更新タイマー４３の動作に基づき、一定の出力更新周期ごとに以下の式(１)の計算を行ない、出力値を更新している。図２において、「Ｅ」は誤差を表わす。「ＯＴ」は出力を表わす。「Ｋ」は比例ゲインを表わす。「ＴＩ」は積分時間を表わす。「Ｐ」は位置の実測値を表わす。制御式は、式(１)のようになる。
【００５１】
ＯＴ＝Ｋ（Ｅ＋ＥＩ／ＴＩ）・・・式(１)
ここで出力ＯＴのＰ制御分ＯＰとＩ制御分ＯＩとは、式(２)〜式(４)で表わされる。
【００５２】
ＯＰ＝Ｋ×Ｅ              ・・・式(２)
ＯＩ＝Ｋ×ＥＩ／ＴＩ      ・・・式(３)
ＯＴ＝ＯＰ＋ＯＩ          ・・・式(４)
「ＥＩ」は誤差積分（誤差Ｅを積分した値）を表わす。
【００５３】
演算回路４０は、誤差Ｅを、以下の式により求める。
Ｅ  ＝Ｄ−Ｐ              ・・・式(５)
「Ｄ」は目標値を表わす。これにより、演算回路４０が、実測値と目標値との差に対応する誤差を算出することとなる。
【００５４】
デジタルサーボ回路１４の演算回路４０は、複数の演算を行なう演算回路である。演算回路４０は、出力更新タイマー４３を内蔵する。出力更新タイマー４３は、時間の経過を検出する。所定の周期（以下「出力更新周期」と称する）ごとに、演算回路４０は、以下の処理を行なう。演算回路４０は式(５)により算出した誤差の最新値をデジタルサーボ回路１４内のメモリ４１に記憶させる。演算回路４０は上記誤差の最新値とメモリ４１に記憶されている誤差積分ＥＩとをもとに積分処理を行ない、メモリ４１に記憶されている誤差積分ＥＩを更新する。演算回路４０はメモリ４１に記憶されている上記誤差の最新値、比例ゲイン、積分時間および誤差積分を併用して、式(１)により出力値を算出する。ＣＰＵ３２の処理によってメモリ４１に記憶されている比例ゲインの変更と誤差積分の換算とが行なわれた後も、演算回路４０は前回の出力計算から出力更新周期が経過した時点で、上記手順で出力値を算出する。
【００５５】
図４を参照して、ロボット１０で実行されるプログラムは、比例ゲインの変更に関し、以下のような処理構造を有する。
【００５６】
ステップ４０（以下、ステップをＳと略す。）にて、ＣＰＵ３２は変更前の比例ゲインＫＯＬＤ、誤差積分ＥＩＯＬＤ、積分時間ＴＩ、誤差Ｅをメモリ４１から読み込む。本実施の形態の場合、ＣＰＵ３２は、これらの値をメモリ４１から直接読込み、かつメモリ４１へ書込むことができる。
【００５７】
Ｓ４２にて、ＣＰＵ３２は、次の式（６）により、比例ゲインの変更にあわせた誤差積分の更新値ＥＩＮＥＷを算出する。ＣＰＵ３２は、ＣＰＵ３２自身が比例ゲインを変更したことにより生じる出力の変化を相殺するように、誤差積分の更新値ＥＩＮＥＷを算出することとなる。
【００５８】
ＥＩＮＥＷ＝（ＫＯＬＤ／ＫＮＥＷ−１）×Ｅ×ＴＩ
＋ＫＯＬＤ／ＫＮＥＷ×ＥＩＯＬＤ      ・・・式(６)
式（６）において、ＫＯＬＤは比例ゲインの変更前の比例ゲインを表わす。ＫＮＥＷは変更後の比例ゲインを表わす。ＥＩＯＬＤは変更前の誤差積分を表わす。式（６）は、比例ゲインＫを変更した時の出力の変化が、誤差積分ＥＩを変更した時の出力の変化により相殺されるという条件から導出される。式（６）の導出式は以下の通りである。
【００５９】
ゲイン変更前後の出力を等しくするという条件、および式(１)から、
ＫＯＬＤ（Ｅ＋ＥＩＯＬＤ／ＴＩ）＝ＫＮＥＷ（Ｅ＋ＥＩＮＥＷ／ＴＩ）・・・式(７)
式（７）を変形して、
ＫＯＬＤ／ＫＮＥＷ×（Ｅ＋ＥＩＯＬＤ／ＴＩ）＝Ｅ+ＥＩＮＥＷ／ＴＩ
ＥＩＮＥＷ／ＴＩ＝ＫＯＬＤ／ＫＮＥＷ×（Ｅ＋ＥＩＯＬＤ／ＴＩ）−Ｅ
ＥＩＮＥＷ／ＴＩ＝（ＫＯＬＤ／ＫＮＥＷ−１）×Ｅ
＋ＫＯＬＤ／ＫＮＥＷ×ＥＩＯＬＤ／ＴＩ
ＥＩＮＥＷ      ＝（ＫＯＬＤ／ＫＮＥＷ−１）×Ｅ×ＴＩ
＋ＫＯＬＤ／ＫＮＥＷ×ＥＩＯＬＤ                ・・・式（６）
Ｓ４４にて、ＣＰＵ３２は、変更後の比例ゲインと誤差積分とを、メモリ４１に書き込む。これにより、ＣＰＵ３２は、比例ゲインを変更することとなる。ＣＰＵ３２は、自らが算出した誤差積分ＥＩＮＥＷを誤差積分ＥＩとして記憶するように、メモリ４１を制御することとなる。比例ゲインと誤差積分値との更新後、前回出力値ＯＴを計算した時刻から出力更新周期と同一の長さの時間が経過すると、演算回路４０は誤差の算出、誤差積分の算出および出力計算を行なう。出力更新周期（上述したように、時間の経過は、出力更新タイマー４３により検出される）で、演算回路４０は、誤差の最新値を算出し、メモリ４１に書き込む。演算回路４０は、出力更新周期で、自らが算出した誤差、および誤差積分の最新値ＥＩＮＥＷ（メモリ４１に書き込まれたＣＰＵ３２が変更した値）を用いて、積分により誤差積分の更新値を算出してメモリ４１に書き込む。これにより、演算回路４０は、自らが誤差積分を積分するたびに、自らが積分した誤差積分を誤差積分の更新値として記憶するように、メモリ４１を制御することとなる。演算回路４０は、自らが誤差積分を更新するたびに、メモリ４１に書き込まれた、自ら算出した誤差、誤差積分、ＣＰＵ３２が変更した比例ゲインの最新値、および積分時間を併用して、式（１）により出力値ＯＴを算出する。出力値ＯＴが算出されると、出力端子３８は、出力値ＯＴを本体１２（すなわちロボット）のモータ４２に出力する。
【００６０】
比例ゲインと誤差積分の更新中に演算回路４０による出力の更新が行なわれることは避ける必要がある。比例ゲインと誤差積分のどちらか一方しか変更していない時点で出力計算が行なわれると、出力の変化を相殺する効果が発揮されないからである。そこで、ＣＰＵ３２は、出力更新タイマー４３の動作に合わせて、出力計算（出力計算は誤差積分の積分に続いて実施される）が行なわれる直前または直後に比例ゲインと誤差積分とを変更し、演算回路４０による出力計算（出力計算は誤差積分の積分に続いて実施される）が開始される前に比例ゲインと誤差積分との変更を完了するものとする。これにより、変更前の比例ゲインＫＯＬＤは変更後の比例ゲインＫＮＥＷに変更される。変更前の誤差積分ＥＩＯＬＤは変更後の誤差積分ＥＩＮＥＷに変更される。デジタルサーボ回路１４から見ると、比例ゲインおよび誤差積分は同時に変更されるように見える。上述したように、比例ゲインなどが変更された前後で、比例ゲイン変更に起因する出力値の変化は「０」になる。実測値の変化分に基づくは出力変化は発生するが、これは比例ゲイン変更と無関係なＰＩ制御動作に基づくものなので、急激な動作にはならない。したがってロボットは何ら急激な動きを生じることは無い。
【００６１】
ユーザインタフェース１８が比例ゲインの変更指示を受けた場合には、上記比例ゲインの変更手順を含む、後述の比例ゲインと積分時間の変更処理を行なう。
【００６２】
図５を参照して、ロボット１０で実行されるプログラムは、積分時間の変更に関し、以下のような制御構造を有する。
【００６３】
Ｓ５０にて、ＣＰＵ３２は変更前の積分時間ＴＩＯＬＤ、誤差積分ＥＩＯＬＤ、誤差Ｅをメモリ４１から読み込む。Ｓ５２にて、ＣＰＵ３２は、次の式（８）により、積分時間の変更にあわせた誤差積分の更新値ＥＩＮＥＷを算出する。ＣＰＵ３２は、ＣＰＵ３２自身が積分時間を変更したことにより生じる出力の変化を相殺するように、誤差積分の更新値ＥＩＮＥＷを算出することとなる。
【００６４】
ＥＩＮＥＷ＝ＥＩＯＬＤ×ＴＩＮＥＷ／ＴＩＯＬＤ                  ・・・式(８)
式（８）において、ＥＩＯＬＤは積分時間の変更前の誤差積分を表わす。ＴＩＮＥＷは変更後の積分時間を表わす。ＴＩＯＬＤは変更前の積分時間を表わす。式（８）は、積分時間ＴＩを変更する前後のＩ制御の出力を等しくする（瞬間的なＩ制御の出力の変化を「０」にする）という条件から算出される。積分時間ＴＩを変更する前後のＩ制御の出力を等しくするという条件、および式(３)から、
Ｋ／ＴＩＯＬＤ×ＥＩＯＬＤ＝Ｋ／ＴＩＮＥＷ×ＥＩＮＥＷ          ・・・式(９)
式（９）を変形して、
ＥＩＮＥＷ＝ＥＩＯＬＤ×ＴＩＮＥＷ／ＴＩＯＬＤ                  ・・・式(８)
Ｓ５４にて、ＣＰＵ３２は、積分時間と誤差積分の更新値を、メモリ４１に書き込む。これにより、ＣＰＵ３２は、積分時間を変更することとなる。メモリ４１は、積分時間を記憶することとなる。ＣＰＵ３２は、自らが算出した誤差積分ＥＩＮＥＷを誤差積分ＥＩとして記憶するように、メモリ４１を制御することとなる。積分時間と誤差積分値の更新後、前回出力値ＯＴを計算した時刻から出力更新周期と同一の長さの時間が経過すると、演算回路４０は、メモリ４１に書き込まれた自らが算出した誤差と、誤差積分の最新値（すなわちＣＰＵ３２が変更した誤差積分）とを元に積分処理を行ない、誤差積分を更新してメモリ４１に書き込む。演算回路４０は、メモリ４１に書き込まれた自ら算出した誤差と誤差積分、ＣＰＵ３２が変更した積分時間、および比例ゲインを併用して、式（１）により出力値ＯＴを算出する。
【００６５】
本実施の形態において、ユーザインタフェース１８が積分時間を変更する旨の入力を受付けた場合、積分時間ＴＩＮＥＷは、ユーザインタフェース１８が受付けた値である。後述する比例ゲインＫの変更に伴って積分時間を変更する場合、積分時間ＴＩＮＥＷは比例ゲインＫに合わせた標準積分時間ＴＩＳＴＤである。積分時間ＴＩＮＥＷを標準積分時間ＴＩＳＴＤに変更するために、ＣＰＵ３２は、比例ゲインＫが変更された場合、予め比例ゲインＫの更新値に対応する標準積分時間ＴＩＳＴＤを選択しておく。この選択は、Ｓ５０にて実施する。その他、ＣＰＵ３２から積分時間を変更する場合、ＴＩＮＥＷはＣＰＵ３２が指示する値である。
【００６６】
積分時間と誤差積分の更新中に演算回路４０による出力の更新が行なわれることは避ける必要がある。積分時間と誤差積分のどちらか一方しか変更していない時点で出力計算が行なわれると、出力の変化を相殺する効果が発揮されないからである。そこで、ＣＰＵ３２は、出力更新タイマー４３の動作に合わせて、出力計算が行なわれる直前または直後に積分時間の変更と誤差積分の換算とを行なう。ＣＰＵ３２は、演算回路４０による出力計算が開始される前に、積分時間と誤差積分との変更を完了するものとする。これにより、変更前の積分時間ＴＩＯＬＤは変更後の積分時間ＴＩＮＥＷに変更される。変更前の誤差積分ＥＩＯＬＤは変更後の誤差積分ＥＩＮＥＷに変更される。デジタルサーボ回路１４から見ると、積分時間および誤差積分は同時に変更されるように見える。上述したように、積分時間ＴＩなどが変更された前後で、積分時間ＴＩの変更に起因する出力値の変化は「０」になる。実測値の変化分に基づく出力変化は発生するが、これは積分時間変更とは無関係なＰＩ制御動作に基づくもので、急激な動作にはならない。したがってロボットは何ら急激な動きを生じることは無い。
【００６７】
Ｉ制御の収束特性は積分時間ＴＩによって決まる。積分時間ＴＩが短ければＩ制御の出力は素早く変化する。積分時間ＴＩが長ければＩ制御の出力の変化は遅くなる。積分時間ＴＩが非常に長い時間であればほとんど出力が変化しない。これにより、非常に長い積分時間ＴＩを設定した状態でのＩ制御出力は、出力値のオフセットのような働きをする。したがって、ＣＰＵ３２は、積分時間を変更することにより収束特性を制御できる。本実施の形態に係るメモリ３４は、標準積分時間用のブロックを有する。標準積分時間用のブロックは、ロボットの各軸に対応する標準積分時間を記憶する。メモリ３４に記憶させておく標準積分時間は、比例ゲインＫの値に対応するように記憶される。本実施の形態の場合、標準積分時間として記憶される積分時間は、比例ゲインごとの最適値である。
【００６８】
図３のフローを参照して、ユーザインタフェース１８から比例ゲイン変更の指示があったときの動作手順を説明する。Ｓ３０にて、ユーザインタフェース１８からの入力によって比例ゲインの変更が指示されると、ＣＰＵ３２は比例ゲインをユーザインタフェース１８から入力された値へと変更する。具体的には、前述のＳ４０〜Ｓ４４の処理を実施する。続いて、Ｓ３２にて、ＣＰＵ３２は積分時間の変更を行なう。ＣＰＵ３２は変更後の比例ゲインＫＮＥＷに対応する標準積分時間ＴＩＳＴＤをメモリ３４内の標準積分時間用のブロックから読み出す。比例ゲインの値は無段階に変化するのに対して標準積分時間用のブロック内のデータは予め記憶された値のいずれかなので、標準積分時間用のブロック内のＫの値からＫＮＥＷに最も近いのＫの値を選択し、このＫに対応する積分時間ＴＩＳＴＤを使用する。Ｓ３４にて、ＣＰＵ３２はデジタルサーボ回路１４内のメモリ４１の積分時間をこのＴＩＳＴＤへと変更する。具体的には、前述のＳ５０〜Ｓ５４の処理を実施する。
【００６９】
本実施の形態に係るメモリ３４は、待機状態用のパラメータ記憶ブロックを有する。待機状態用の記憶ブロックは待機状態用のパラメータ変更を行なう前の比例ゲインと積分時間を記憶する。待機状態用の記憶ブロックは待機状態に入るときの目標値を記憶する。待機状態用の記憶ブロックは待機状態にあるかどうかを示す待機状態フラグを記憶する。
【００７０】
図６のフローを参照して、本ロボット制御装置１１が待機状態に移行する手順を説明する。まず、Ｓ１５０にて、ＣＰＵ３２は、待機状態フラグがオンかどうか調べる。待機状態フラグがオフだった場合（Ｓ１５０にてＮＯ）、処理はＳ１５２に進む。Ｓ１５２にて、ＣＰＵ３２は、デジタルサーボ回路１４内のメモリ４１の目標値が変化しない期間を測定する。Ｓ１５２にて、ＣＰＵ３２は、目標値が変化しない期間が、任意のしきい値を超えたか否かを判断する。任意のしきい値を超えたと判断した場合（Ｓ１５２にてＹＥＳ）、処理はＳ１５４へと移される。もしそうでないと（Ｓ１５２にてＮＯ）、処理はＳ１５０へと移される。Ｓ１５４にて、ＣＰＵ３２は、メモリ４１から比例ゲインＫを読み出し、メモリ３４内の待機状態用のパラメータ記憶ブロックに比例ゲインＫＮＯＲＭＡＬとして記憶させる。ＣＰＵ３２は、メモリ４１から積分時間ＴＩを読み出し、メモリ３４内の待機状態用のパラメータ記憶ブロックに積分時間ＴＩＮＯＲＭＡＬとして記憶させる。ＣＰＵ３２は、メモリ４１から目標値Ｄを読み出し、メモリ３４内の待機状態用のパラメータ記憶ブロックに目標値ＤＷＡＩＴとして記憶させる。Ｓ１５６にて、ＣＰＵ３２などはメモリ４１が記憶した比例ゲインをＫＮＯＲＭＡＬの１/１００の値に変更する。具体的には、前述のＳ４０〜Ｓ４４の処理を実施する。これにより、ＣＰＵ３２は、自らが比例ゲインを変更した後、演算回路４０が誤差積分を積分し出力値ＯＴを算出する前に、誤差積分を換算することとなる。続いて、Ｓ１５８にて、ＣＰＵ３２はメモリ３４内の標準積分時間用のブロックから、変更後の比例ゲインに最も近いＫに対応する積分時間ＴＩＳＴＤを選択する。続いて、Ｓ１６０にて、ＣＰＵ３２などはメモリ４１の積分時間ＴＩをＴＩＳＴＤの１００倍の値に変更する。具体的には、前述のＳ５０〜Ｓ５４の処理を実施する。Ｓ１６２にて、ＣＰＵ３２は待機状態フラグをオンにする。
【００７１】
Ｓ１５０にて待機フラグがオンだった場合（Ｓ１５０にてＹＥＳ）、処理はＳ１７０へ進む。Ｓ１７０にて、ＣＰＵ３２はメモリ４１から目標値Ｄを読み取り、目標値Ｄが待機状態用のパラメータ記憶ブロックに記憶されているＤＷＡＩＴに等しいかどうか調べる。目標値ＤがＤＷＡＩＴに等しくない場合（すなわち目標値が変化した場合）（Ｓ１７０にてＮＯ）、処理はＳ１７４に進む。目標値ＤがＤＷＡＩＴに等しい場合（すなわち目標値が変化していない場合）（Ｓ１７０にてＹＥＳ）、処理はＳ１７２に進む。Ｓ１７２にて、ＣＰＵ３２はユーザインタフェース１８がユーザから制御装置１１の待機状態を解除するための指令である待機状態解除指令を受けていないかどうか調べる。待機状態解除指令が入力されていた場合（Ｓ１７２にてＹＥＳ）、処理はＳ１７４に進む。待機状態解除指令が入力されていなかった場合（Ｓ１７２にてＮＯ）、処理は終了する。Ｓ１７４にて、ＣＰＵ３２は待機状態用のパラメータ記憶ブロックから通常状態用の比例ゲインＫＮＯＲＭＡＬを読み出す。ＣＰＵ３２は待機状態用のパラメータ記憶ブロックから通常状態用の積分時間ＴＩＮＯＲＭＡＬを読み出す。Ｓ１７６にて、ＣＰＵ３２はメモリ４１の比例ゲインをＫＮＯＲＭＡＬに変更する。具体的には、前述のＳ４０〜Ｓ４４の処理を実施する。Ｓ１７８にて、メモリ４１の積分時間をＴＩＮＯＲＭＡＬに変更する。具体的には、前述のＳ５０〜Ｓ５４の処理を実施する。Ｓ１８０にて、ＣＰＵ３２は待機状態フラグをオフにする。
【００７２】
上記Ｓ１５０〜１８０のフローは、ユーザインタフェース１８からの指令の確認と並行して進められている。すなわち、任意の時点でユーザインタフェース１８からの指令を受け付ける。ユーザインタフェース１８が比例ゲイン変更の指令を受け付けた場合、ＣＰＵ３２は待機状態をオフに書き換える。ＣＰＵ３２はＳ３０〜３４の処理で比例ゲインを入力された値に変更するなどの処理を行なう。なお、本実施の形態の場合、ロボット１０は、ユーザインタフェース１８が待機状態に移行すべき旨の指令を受付けた場合にも、待機状態への移行処理を行なう。具体的には、Ｓ１５４〜Ｓ１６２の処理を行なう。
【００７３】
以上のような構造およびフローチャートに基づく、ロボット１０が障害物に衝突した際の動作について説明する。
【００７４】
図７（Ａ）は、ロボット１０が停止中の、本体１２の外観を、概念的に示す。このとき、本体１２は、目標値生成部２０がメモリ４１に書き込む位置の目標値が変化しないため、停止した状態にある。この時点で、待機状態フラグはオフである。ＣＰＵ３２は、次の処理を経ることにより、ロボット１０が待機中か否か判断する。ＣＰＵ３２は、本体１２に対する目標値が変化しない期間を測定する（Ｓ１５２）。本体１２に対する目標値の入力は、目標値生成部２０から、サーボ用インタフェース３７が受付ける。目標値が変化しない期間が測定されると、ＣＰＵ３２は、目標値が変化しない期間が、任意のしきい値（本実施の形態の場合、しきい値は「５分」であることとする）を超えたか否かを調べ、超えた場合に、待機中であると判断する（Ｓ１５２）。なお、本実施の形態の場合、ロボット１０は、ユーザインタフェース１８が待機状態に移行すべき旨の指令を受付けた場合にも、ロボット１０が待機中であると判断する。ＣＰＵ３２がロボット１０は待機中であると判断すると（Ｓ１５２にてＹＥＳ）、ＣＰＵ３２は、メモリ４１から、比例ゲインＫを読み出し、コンピュータ１６内のメモリ３４の通常時パラメータ用のブロックに通常時ゲインＫＮＯＲＭＡＬとして記憶させる（Ｓ１５４）。このとき、ＣＰＵ３２は、上述した目標値も読み出し、コンピュータ１６内のメモリ３４の通常時パラメータ用のブロックに目標値ＤＷＡＩＴとして記憶させる。ＣＰＵ３２は、メモリ４１から、積分時間ＴＩを読み出し、コンピュータ１６内のメモリ３４の通常時パラメータ用のブロックに通常時用の積分時間ＴＩＮＯＲＭＡＬとして記憶させる（Ｓ１５４）。これにより、メモリ３４の通常時パラメータ用のブロックは、目標値が変化しない期間は任意のしきい値を超えたとＣＰＵ３２が判断した場合に、目標値が変化しない期間が任意のしきい値を超えたと判断した基準の時点の、比例ゲイン、積分時間、および目標値を記憶することとなる。続いて、ＣＰＵ３２は比例ゲインをＫＮＯＲＭＡＬの１/１００の値ＫＮＥＷに変更する（Ｓ１５６からＳ４０へ移行）。これにより、ＣＰＵ３２は、目標値が変化しない期間は任意のしきい値を超えたと自らが判断した場合に、比例ゲインを基準の時点の値よりも小さな値に変更することとなる。ＣＰＵ３２は、自らが比例ゲインを変更することにより生じる出力の変化を相殺するように、比例ゲインの変更後の誤差積分ＥＩＮＥＷを算出する（Ｓ４２）。ＣＰＵ３２は、式（６）により、誤差積分を換算する。ＣＰＵ３２はメモリ４１内の比例ゲインの値をＫＮＥＷに、誤差積分をＥＩＮＥＷに変更する（Ｓ４４）。これにより、ＣＰＵ３２は、自らが誤差積分を換算すると、自らが換算した値を誤差積分として記憶するように、メモリ４１を制御することとなる。続いて、ＣＰＵ３２は、メモリ３４の標準積分時間用のブロックから比例ゲインＫＮＥＷに最も近い比例ゲインＫを選択し、この比例ゲインＫに対応する積分時間ＴＩＳＴＤを得る（Ｓ１５８）。ＣＰＵ３２は、変更後の積分時間ＴＩＮＥＷをＴＩＳＴＤの１００倍の値として算出する（Ｓ１６０）。これにより、ＣＰＵ３２は、目標値が変化しない期間は任意のしきい値を超えたと自らが判断した場合に、積��時間を基準の時点の値よりも大きくかつ自らが選択した標準の積分時間に対応する値に変更することとなる。ＣＰＵ３２は、自らが積分時間をＴＩＮＥＷに変更することにより生じる出力の変化を相殺するように、積分時間の変更後の誤差積分ＥＩＮＥＷを換算する（Ｓ５２）。これにより、ＣＰＵ３２は、ＣＰＵ３２自身が積分時間を変更した後、演算回路４０が誤差積分ＥＩを積分する前に、誤差積分ＥＩＮＥＷを換算することとなる。また、ＣＰＵ３２は、ＣＰＵ３２自身が比例ゲインを変更したことにより生じる出力の変化、ならびにＣＰＵ３２自身が積分時間を変更したことにより生じる出力の変化を相殺するように、メモリ３４が記憶した誤差積分を換算することとなる。ＣＰＵ３２は、式（８）により、誤差積分を換算する。ＣＰＵ３２はメモリ４１内の積分時間の値をＴＩＮＥＷに、誤差積分をＥＩＮＥＷに変更する（Ｓ５４）。
【００７５】
以上の処理が終了後、前回の出力計算時点から出力更新周期が経過すると、演算回路４０は、メモリ４１から、自らが算出した誤差の最新値、およびＣＰＵ３２が算出した誤差積分の最新値を読み出し、積分処理により誤差積分ＥＩを算出する。演算回路４０は、メモリ４１から、自らが算出した誤差の最新値、ＣＰＵ３２が変更した比例ゲインの最新値、自らが算出した誤差積分の最新値、および積分時間の最新値を読み出し、式（１）により出力値ＯＴを算出する。メモリ４１内の比例ゲインＫは、待機時用の比例ゲイン（上述の通り、本実施の形態の場合、待機時用の比例ゲインＫは、変更前の比例ゲインの１/１００）に変更されている。メモリ４１内の積分時間ＴＩは、待機状態用の積分時間（上述の通り、本実施の形態の場合、積分時間ＴＩは、待機時用の比例ゲインＫに対応する標準積分時間ＴＩＳＴＤの１００倍）に変更されている。この状態で、ロボット１０が障害物と衝突した場合、本体１２は障害物に押された方向に大きく動く。比例ゲインが下げられているからである。また、この状態で時間が経過しても押し戻す抵抗力が増加しにくい。積分時間が非常に長くなっているためである。図７（Ｂ）は、このときの本体１２の姿勢を示す図である。これにより、本体１２は、過負荷の発生を避けることができる。
【００７６】
その後、障害物が取り除かれると（図７（Ｃ）参照）、ロボットは弱い復元力で、徐々に目標位置に戻ろうとする。
【００７７】
待機状態で目標値が変化した場合、ロボットは待機状態を解除する（Ｓ１７０）。具体的にはＳ１７４〜１８０の処理により、比例ゲインと積分時間を待機状態適用前の値に戻し、待機状態フラグをオフにする。目標値が変化しなくても、ユーザインタフェース１８が待機状態を解除する指令を受けた場合、ロボットは待機状態を解除する（Ｓ１７２）。これを利用して、ユーザは障害物が取り除かれた時点で待機状態を解除する指令を入力して、ロボットを素早く目標位置に復帰させることができる。
【００７８】
図８（Ａ）および図８（Ｂ）を参照して、比例ゲインを変更した場合の、ロボット１０の制御の結果について説明する。図８（Ａ）は、誤差積分ＥＩを変更させなかった場合の、出力ＯＴ、モータ位置（ひいてはマニピュレータの位置）Ｐ、そして誤差積分ＥＩを積分時間ＴＩで割った値ＥＩ／ＴＩの変化を表わす図である。図８（Ｂ）は、比例ゲインを変更する（時刻が約５００ミリ秒経過した時点で比例ゲインＫを１６倍に増加させる）と同時に誤差積分ＥＩを変更させた場合の、出力ＯＴ、モータ位置Ｐ、そして誤差積分ＥＩを積分時間ＴＩで割った値ＥＩ／ＴＩの変化を表わす図である。ロボット１０のデジタルサーボ回路１４に設定された目標位置は「０」であることとする。
【００７９】
図８（Ａ）の場合、時刻が約５００ミリ秒経過した時点で、比例ゲインＫが１６倍に増加すると、出力ＯＴは瞬間的に最大値へと増加する。出力ＯＴの増加は、比例ゲインＫの変更された直後の出力算出計算から発生する。その後、７０ミリ秒程度の短時間の間に、モータ位置Ｐは急激に目標位置へ収束する。これに対し、図８（Ｂ）の場合、時刻が約５００ミリ秒経過した時点で、比例ゲインＫが１６倍に増加すると、ＣＰＵ３２は、上述した式（６）により比例ゲインの変更後の誤差積分ＥＩＮＥＷを換算する。誤差積分ＥＩＮＥＷが換算されると、ＣＰＵ３２は、デジタルサーボ回路１４のパラメータのうち、比例ゲインＫおよび誤差積分ＥＩを、見かけ上同時に変更させる。これにより、比例ゲインを変更したことによる出力の変化が、誤差積分を変更したことによる出力の変化によって相殺される。その結果、比例ゲインの変更後、積分時間に応じた長い時間をかけて出力が変化することになる。長い時間をかけて出力が変化するので、出力ＯＴとモータ位置Ｐとはロボットに負担のかからない程度の低速度で動き、モータ位置Ｐは目標位置へと収束する。目標位置が「０」の時、出力ＯＴはＥＩ／ＴＩとモータ位置Ｐとの差に比例ゲインＫを掛けた量であり、比例ゲインＫが増加した際、ＥＩ／ＴＩとモータ位置Ｐとの差を減少させたことにより、出力ＯＴの変化はキャンセルされているからである。
【００８０】
以上のようにして、本案施の形態に係るロボット１０は、比例ゲインを変更しても、急激な動作の発生を防止することができる。ロボット１０は、瞬間的な出力の変化を積分時間に応じた長時間の変化に置き換えることができるからである。このような出力の置換えが可能なので、比例ゲインを変更しても、目標位置を変える必要がない。目標位置を変える必要がないため、目標値生成部２０が生成した目標位置の値とデジタルサーボ回路１４に設定された目標位置とは一致したままである。目標位置が一致したままなので、誤動作の恐れが少ない。誤動作の恐れが少ないので、安全である。
【００８１】
また、本案施の形態に係るロボット１０は、積分時間を変更しても、急激な動作の発生を防止することができる。ロボット１０は、瞬間的な出力の変化を積分時間に応じた長時間の変化に置き換えることができるからである。このような出力の置換えが可能なので、積分時間を変更しても、目標位置を変える必要がない。目標位置を変える必要がないため、目標値生成部２０が生成した目標位置の値とデジタルサーボ回路１４に設定された目標位置とは一致したままである。目標位置が一致したままなので、誤動作の恐れが少ない。誤動作の恐れが少ないので、安全である。
【００８２】
その結果、急激な動作を防止することにより、安全性を向上させることができるロボットの制御装置を提供できる。さらに、比例ゲインを変更した後の処理は、比例ゲインが増加したか減少したかに関わらず同じである（従来の技術の場合、比例ゲインを変更した後の処理は、比例ゲインが増加したか否かに応じて異なる）。処理が同じなので、ソフトウェアの構造が簡単になる。ソフトウェアの構造が簡単になるので、信頼性が高められる。その結果、ソフトウェアの構造が簡単で、信頼性が高いロボットの制御装置を提供できる。
【００８３】
さらに、本実施の形態に係るロボット１０は、比例ゲインを変更する際、積分時間を最適値へと変更できる。これにより、本体の動作は標準化される。その結果、良好な制御性能を維持しながら比例ゲインを変更できるロボットの制御装置を提供できる。
【００８４】
さらに、本実施の形態に係るロボット１０のマニピュレータは、動作中は高剛性となるように、待機中（サーボ保持により停止している間）は低剛性となるように、それぞれ制御される。これにより、障害物と不意に衝突しても、ロボット１０には過負荷が生じない（障害物に押されて柔軟に動く）。その結果、待機中は障害物に押されて柔軟に動くロボットを提供できる。
【００８５】
＜第１の実施の形態  変形例１＞
図７（Ａ）の処理において、ユーザインタフェース１８がユーザから待機状態への移行指令を受けた場合には、ロボットが動作中か停止中かによらず、ＣＰＵ３２は待機状態への移行処理を行なう。具体的には、ＣＰＵ３２はＳ４０〜Ｓ４４の処理を経て比例ゲインを待機状態用の比例ゲインへと変更し、Ｓ５０〜Ｓ５４の処理を経て積分時間を待機状態用の積分時間へと変更する。
【００８６】
比例ゲインを変更する手順を以下のようにする。ＣＰＵ３２は、Ｓ４２にて誤差積分の更新値を算出する前に、デジタルサーボ回路１４内の出力更新タイマー４３を停止させる。出力更新タイマー４３が停止すると、誤差積分算出と出力更新が行なわれなくなる。ＣＰＵ３２はＳ４２で誤差積分の更新値を算出し、Ｓ４４で比例ゲインと誤差積分の更新値をデジタルサーボ回路内のメモリ４１に書き込む。その後、ＣＰＵ３２はデジタルサーボ回路内の出力更新タイマー４３を動作再開させる。これにより、ＣＰＵ３２は、比例ゲインの変更を行なう間、および誤差積分の更新値を算出する間、および誤差積分の変更を行なう間は、時間の経過の検出を停止するように、出力更新タイマー４３を制御することとなる。比例ゲイン変更と誤差積分更新値の算出と誤差積分変更とを行なう間に出力計算が行なわれることが無いため、出力の急激な変化が完全に防止される。出力の急激な変化が完全に防止されるため、安全性を高めるロボット制御装置を提供できる。
【００８７】
積分時間を変更する手順を以下のようにする。ＣＰＵ３２は、Ｓ５２にて誤差積分の更新値を算出する前に、出力更新タイマー４３を停止させる。出力更新タイマー４３が停止すると、誤差積分の積分と出力更新が行なわれなくなる。ＣＰＵ３２はＳ５２で誤差積分の更新値を算出し、Ｓ５４で積分時間と誤差積分の更新値をデジタルサーボ回路１４内のメモリ４１に書き込む。その後、ＣＰＵ３２は出力更新タイマー４３を動作再開させる。これにより、ＣＰＵ３２は、積分時間の変更を行なう間、および誤差積分の更新値を算出する間、および誤差積分の変更を行なう間は、時間の経過の検出を停止するように、出力更新タイマー４３を制御することとなる。積分時間変更と誤差積分更新値の算出と誤差積分変更とを行なう間に出力計算が行なわれることが無いため、出力の急激な変化が完全に防止される。出力の急激な変化がほとんど防止されるため、安全性を高めるロボット制御装置を提供できる。
【００８８】
このように、出力の変化を防止しつつ安全に待機状態用のパラメータへと移行できるので、動作中または停止中にユーザが待機状態への移行を指示することで、ロボットの破損を防止することができ、より安全性を高めるロボット制御装置を提供できる。
【００８９】
＜第１の実施の形態  変形例２＞
第１の実施の形態にかかるロボット制御装置を、速度制御を行なうロボット制御装置とするには、Ｓ１５４における目標値Ｄとして目標速度を入力し、Ｓ４４にて検出器４４が検出する実測値を速度の実測値とすればよい。この場合、出力値は、より下位に接続された別のロボット制御装置に対する目標値として、またはアクチュエータを直接駆動する信号として、出力されることとなる。
【００９０】
＜第２の実施の形態＞
以下、本発明の第２の実施の形態に係るロボットについて説明する。
【００９１】
本実施の形態に係るメモリ３４は、標準積分時間用のブロックに代えて、最短積分時間用のブロックを有する。最短積分時間用のブロックは、複数の比例ゲインＫごとに複数の最短積分時間を記憶する。積分時間ＴＩには、サーボ系の特性（比例ゲイン、機械的時定数など）から決まる最短時間ＴＩＭＩＮがある。積分時間ＴＩがこの最短時間ＴＩＭＩＮより短くなると、サーボ系（本実施の形態の場合、制御装置１１と本体１２の組み合わせを指す）が振動する。サーボ系が振動するので、最短時間ＴＩＭＩＮより短い積分時間ＴＩは使用に適さない。この最短時間ＴＩＭＩＮは、厳密に求められる必要がない時間である。本実施の形態の場合、短い積分時間を積極的に使うことがないからである。そこで本実施の形態の場合、通常使う速度および加速度の範囲内ならば振動せず、かつなるべく短い積分時間を、コンピュータ１６のメモリ３４にリストとして記憶させておく。本実施の形態の場合、メモリ３４に記憶させておく最短積分時間は、実験的に予め求められる。
【００９２】
図９を参照して、ロボット１０で実行されるプログラムは、ユーザインタフェース１８が比例ゲインの変更指令を受けたときの、積分時間ＴＩの選択に関し、以下のような制御構造を有する。Ｓ８０にて、ＣＰＵ３２は比例ゲインを変更する。具体的にはＳ４０〜Ｓ４４の処理を行なう。続いて、ＣＰＵ３２は、積分時間の変更が必要かどうかの判定を行なう。Ｓ８２にて、ＣＰＵ３２は、変更後の比例ゲインＫＮＥＷに対応する最短積分時間ＴＩＮＥＷを求める。具体的には、メモリ３４に記憶されている、比例ゲインＫに対応する最短積分時間ＴＩＭＩＮのリストから、変更後の比例ゲインＫＮＥＷに最も近いＫに対応するＴＩＭＩＮを読み出す。これにより、ＣＰＵ３２は、比例ゲインが変更された場合に比例ゲインの更新値に対応する最短の積分時間を選択することとなる。Ｓ８４にて、ＣＰＵ３２は、デジタルサーボ回路１４内のメモリ４１に記憶されている、現在利用中の積分時間ＴＩがメモリ３４から読出された最短時間ＴＩＭＩＮ未満か否かを判断する。積分時間ＴＩが最短時間ＴＩＭＩＮ未満と判断した場合には（Ｓ８４にてＹＥＳ）、処理はＳ８６へ移される。もしそうでないと（Ｓ８４にてＮＯ）、処理は終了する。Ｓ８６にて、ＣＰＵ３２は、積分時間ＴＩの値を最短時間ＴＩＭＩＮに等しくなるように変更する。具体的には、前述のＳ５０〜Ｓ５４の処理を実施する。これにより、ＣＰＵ３２は、積分時間を、少なくとも自らが選択した最短の積分時間より長くなるように設定することとなる。
【００９３】
なお、その他のハードウェア構成および処理フローについては前述の第１の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【００９４】
以上のようにして、本実施の形態に係るロボット１０は、比例ゲインを変更しても、急激な動作の発生を防止することができる。急激な動作を防止することにより、安全性を向上させることができるロボットの制御装置を提供できる。さらに、本実施の形態に係るロボット１０は、比例ゲインを変更した際、積分時間が最短積分時間より短いか否か判定し、短い場合積分時間を最短積分時間に等しくなるように変更する。これにより、本体１２が振動することを回避できる。その結果、安定した動作を実現するロボットの制御装置を提供することができる。
【００９５】
＜第２の実施の形態  変形例＞
適応制御を行ない比例ゲインと積分時間を自動的に変化させる制御装置を実現するために、外部のゲイン算出装置によってゲインまたは積分時間の更新値を算出し、算出した比例ゲインまたは積分時間の更新値を、ユーザインタフェース１８から比例ゲインまたは積分時間の変更入力で変更する構造とする。これにより、出力の急激な変化を防止しつつ比例ゲインと積分時間とをそれぞれ個別に変更することができる。出力の急激な変化を防止することにより、急激な動作を防止する。急激な動作を防止するため、適応制御で大きなゲインの変更が行なわれた場合にも安全であり、ゲイン変化量を制限せずに済む。ゲイン変化量を制限せずに済むため、素早くゲインを最適化させることができる。
【００９６】
＜第３の実施の形態＞
以下、本発明の第３の実施の形態に係るロボットについて説明する。
【００９７】
本実施の形態に係るロボット制御装置６０の構成は図１１のようになる。ロボット制御装置６０は位置制御を担当する位置用のデジタルサーボ回路６２と、速度制御を担当する速度用のデジタルサーボ回路６４とを持つ。位置用のデジタルサーボ回路６２は、内蔵する出力更新タイマー４３の働きにより、位置についての出力を更新する周期である位置出力更新周期ごとに出力の更新を行なう。速度用のデジタルサーボ回路６４は、内蔵する出力更新タイマー４３の働きにより、速度についての出力を更新する周期である速度出力更新周期ごとに出力の更新を行なう。位置用のデジタルサーボ回路６２の出力端子は速度用のデジタルサーボ回路６４のサーボ用インタフェース端子に接続される。検出器６６は、モータ４２の位置を検出する。検出器６６は位置用のデジタルサーボ回路６２の受付端子に接続されている。検出器６８は、モータ４２の速度を検出する。検出器６８は速度用のデジタルサーボ回路６４の受付端子に接続されている。本実施の形態に係るコンピュータ１６内のメモリ３４は、位置用と速度用のそれぞれの、標準積分時間用のブロックを持つ。本実施の形態に係る位置用のデジタルサーボ回路６２の出力は、速度用のデジタルサーボ回路６４の目標値となる。すなわち、位置の制御のための出力が目標速度となる。位置用のデジタルサーボ回路６２の目標値は、目標位置についての値である。この値は、位置用のデジタルサーボ回路６２のメモリ４１に記憶されている。なお、その他のハードウェア構成については前述の第１の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【００９８】
図１０を参照して、デジタルサーボ回路１４および本体１２が実施するＰＩ制御について説明する。図１０は、本実施の形態における制御ブロック図である。図１０は位置用のデジタルサーボ回路６２と速度用のデジタルサーボ回路６４の制御ブロック図を統合したものである。位置用のデジタルサーボ回路６２の出力が速度用のデジタルサーボ回路６４への入力となり、速度用のデジタルサーボ回路６４の出力がモータへの入力となる。この場合、位置制御のための出力は、速度指令値（すなわち目標速度）とみなされる。図１０において、「ＥＰ」は位置の誤差（位置の目標値から位置の実測値を引いた値）を表わす。「ＫＰ」は位置用の比例ゲインを表わす。「ＥＩＰ」は位置用の誤差積分（誤差ＥＰを積分した値）を表わす。「ＴＩＰ」は位置用の積分時間を表わす。「ＥＶ」は速度の誤差（速度の目標値から速度の実測値を引いた値）を表わす。「ＫＶ」は速度用の比例ゲインを表わす。「ＥＩＶ」は速度用の誤差積分（誤差ＥＶを不定積分した値）を表わす。「ＴＩＶ」は速度用の積分時間を表わす。
【００９９】
位置用の出力値を「ＯＴＰ」と表わす場合、次の式(１０)が成立する。式（１０）は、式（１）と同様の過程により導き出される。
【０１００】
ＯＴＰ＝ＫＰ（ＥＰ＋ＥＩＰ／ＴＩＰ）  ・・・式(１０)
速度用の出力値を「ＯＴＶ」と表わす場合、次の式(１４)が成立する。式（１４）は、式（１）と同様の過程により導き出される。
【０１０１】
ＯＴＶ＝ＫＶ（ＥＶ＋ＥＩＶ／ＴＩＶ）・・・式(１４)
位置出力更新タイマーは位置出力更新周期ごとに演算回路４０に式(１０)を計算させる。これによって位置用の出力値ＯＴＰ（速度制御用の目標速度となる）が更新される。速度出力更新タイマーは速度出力更新周期ごとに演算回路４０に式(１４)を計算させる。これによって速度用の出力値ＯＴＶが更新される。
【０１０２】
なお、その他のハードウェア構成については前述の第１の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【０１０３】
すなわち、ユーザインタフェース１８が位置制御の比例ゲインの変更の指令を受けると、ＣＰＵ３２は位置用のデジタルサーボ回路６２の比例ゲインを変更する。あわせて位置用のデジタルサーボ回路６２の積分時間の変更を行なう。具体的には、Ｓ３０〜Ｓ３４の処理を行なう。ユーザインタフェース１８から速度制御の比例ゲインの変更の指令を受けると、ＣＰＵ３２は速度用のデジタルサーボ回路６４の比例ゲインを変更する。あわせて速度用のデジタルサーボ回路６４の積分時間の変更を行なう。具体的には、Ｓ３０〜Ｓ３４の処理を行なう。
【０１０４】
なお、その他の処理フローについては前述の第１の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【０１０５】
以上のようにして、本実施の形態に係るロボットは、位置制御の比例ゲインＫＰを変更できる。また速度制御の比例ゲインＫＶも変更できる。これにより、本実施の形態に係るロボットは、位置制御または速度制御のみのゲインを変えるものに比べ、柔軟性を大きく変化させることができる。さらに、本実施の形態に係るロボットは、位置制御についても速度制御についても誤差積分と積分時間とを変更する。これにより、本実施の形態に係るロボットは、急激な動作を抑制し、良好な制御性を維持することができる。その結果、急激な動作を防止することにより、安全性を向上させることができる、ロボットの制御装置を提供できる。
【０１０６】
＜第３の実施の形態  変形例＞
なお、メモリ３４は、標準積分時間用のブロックに代えて、最短積分時間用のブロックを有してもよい。最短積分時間用のブロックは、複数の比例ゲインごとに最短の積分時間を記憶する（本実施の形態の場合、最短積分時間用のブロックは、比例ゲインごとに実験的に得た最短時間を記憶する）。この場合、ユーザインタフェース１８が位置の比例ゲイン変更の指令を受けると、ＣＰＵ３２は、位置のデジタルサーボ回路６２の比例ゲインを変更するのに合わせて、位置のデジタルサーボ回路６２の積分時間の変更が必要か判断し、必要ならば積分時間を変更する。具体的には、Ｓ８０〜Ｓ８６の処理を行なう。ユーザインタフェース１８が速度の比例ゲイン変更の指令を受けると、ＣＰＵ３２は、速度のデジタルサーボ回路６４の比例ゲインを変更するのに合わせて、速度のデジタルサーボ回路６４の積分時間の変更が必要か判断し、必要ならば積分時間を変更する。具体的には、Ｓ８０〜Ｓ８６の処理を行なう。
【０１０７】
また、図１１において、速度制御の出力をモータに入力する代わりに、トルク制御型の制御装置へと入力し（速度制御の出力を目標トルクとする）、トルク制御型の制御装置によってモータをトルク制御する構成としてもよい。
【０１０８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１０９】
【図１】本発明の第１の実施の形態に係るロボットとロボット制御装置の構成を表わす図である。
【図２】本発明の第１の実施の形態に係るデジタルサーボ回路の制御ブロック図である。
【図３】本発明の第１の実施の形態に係るユーザインタフェースからの入力による比例ゲインの変更時の制御の手順を示すフローチャートである。
【図４】本発明の第１の実施の形態に係る比例ゲインの変更処理の制御の手順を示すフローチャートである。
【図５】本発明の第１の実施の形態に係る積分時間の変更処理の制御の手順を示すフローチャートである。
【図６】本発明の第１の実施の形態に係る待機状態のパラメータ変更の制御の手順を示すフローチャートである。
【図７】本発明の第１の実施の形態に係るロボットの本体に障害物が接触した場合の動作を表わす図である。
【図８】本発明の第１の実施の形態に係る測定値の推移を表わす図である。
【図９】本発明の第２の実施の形態に係る積分時間の選択処理の制御の手順を示すフローチャートである。
【図１０】本発明の第３の実施の形態に係るデジタルサーボ回路の制御ブロック図である。
【図１１】本発明の第３の実施の形態に係るロボットとロボット制御装置の構成を表わす図である。
【符号の説明】
【０１１０】
１０  ロボット、１１，６０  制御装置、１２  本体、１４  デジタルサーボ回路、１６  コンピュータ、１８  ユーザインタフェース、２０  目標値生成部、２２  ＣＤ−ＲＯＭ駆動装置、３２  ＣＰＵ、３４，４１  メモリ、３６  受付端子、３７  サーボ用インタフェース、３８  出力端子、３９  不揮発性メモリ、４０  演算回路、４２  モータ、４３  出力更新タイマー、４４，６６，６８  検出器、５０  ＣＤ−ＲＯＭ、６２  位置用のデジタルサーボ回路、６４  速度用のデジタルサーボ回路。
【図１】
2006344149.tif 000003
【図２】
2006344149.tif 000004
【図３】
2006344149.tif 000005
【図４】
2006344149.tif 000006
【図５】
2006344149.tif 000007
【図６】
2006344149.tif 000008
【図７】
2006344149.tif 000009
【図８】
2006344149.tif 000010
【図９】
2006344149.tif 000011
【図１０】
2006344149.tif 000012
【図１１】
2006344149.tif 000013