(57)【要約】駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、機械的な改造や付加を行なうことなしに、バックラッシュが補償された動作を行なわさせることを目的とし、ロボットの動作の一周期内における第１の期間中、所定の第１の動作制御値に補正値を繰返し累積加算することにより、その第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、その一周期内における第２の期間中、上記の第２の動作制御値に補正値を繰返し累積減算することにより、その第２の期間をかけて漸次第１の動作制御値に戻すことにより、ロボットの動作を制御するための動作制御値を生成し、このようにして生成された動作制御値に基づいてロボットの動作を制御する。
2004103649.tif 000002
【特許請求の範囲】
【請求項１】
駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、該バックラッシュが補償された動作を行なわさせるバックラッシュ補償制御方法において、
前記ロボットの動作の一周期内における前記バックラッシュに起因する不良動作が生じ得る所定の第１の期間中、所定の第１の動作制御値に所定の第１の補正値を繰返し累積加算することにより、該第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、該一周期内における前記バックラッシュに起因する不良動作が生じ得る所定の第２の期間中、該第２の動作制御値に所定の第２の補正値を繰返し累積減算することにより、該第２の期間をかけて漸次所定の第１の動作制御値に戻すことにより、前記ロボットの動作を制御するための動作制御値を生成する第１ステップと、
このようにして生成された動作制御値に基づいて前記ロボットの動作を制御する第２ステップとを有することを特徴とするバックラッシュ補償制御方法。
【請求項２】
前記第１の動作制御値および第２の動作制御値は、時間的に変化する動作制御値であることを特徴とする請求項１記載のバックラッシュ補償制御方法。
【請求項３】
前記第１の期間および第２の期間は相互に同一の時間幅を有する期間であって、前記第１の補正値および第２の補正値は相互に同一の補正値であることを特徴とする請求項１記載のバックラッシュ補償制御方法。
【請求項４】
前記第１ステップにおける動作制御値生成アルゴリズムと同一のアルゴリズムを用いるとともに該第１ステップにおける前記第１の補正値に対応する補正値として相互に異なる複数の補正値それぞれを用いて前記ロボットの動作試験を行なうことにより、補正値と前記バックラッシュの補償の程度との間の対応関係を求める第３ステップと、
前記対応関係に基づいて、前記バックラッシュの補償が適正に行なわれる補正値を求める第４ステップとを有し、
第１ステップでは、前記第４ステップで求められた補正値を前記第１の補正値として採用することを特徴とする請求項１記載のバックラッシュ補償制御方法。
【請求項５】
駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、該バックラッシュが補償された動作を行なわさせるバックラッシュ補償制御装置において、
前記ロボットの動作の一周期内における前記バックラッシュに起因する不良動作が生じ得る所定の第１の期間中、所定の第１の動作制御値に所定の第１の補正値を繰返し累積加算することにより、該第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、該一周期内における前記バックラッシュに起因する不良動作が生じ得る所定の第２の期間中、該第２の動作制御値に所定の第２の補正値を繰返し累積減算することにより、該第２の期間をかけて漸次所定の第１の動作制御値に戻すことにより、前記ロボットの動作を制御するための動作制御値を生成する動作制御値生成部と、
前記動作制御値生成部で生成された動作制御値に基づいて前記ロボットの動作を制御する動作制御部とを備えたことを特徴とするバックラッシュ補償制御装置。
【請求項６】
プログラムを実行するコンピュータ内で実行され、該コンピュータを、駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、該バックラッシュが補償された動作を行なわさせるバックラッシュ補償制御装置として動作させるバックラッシュ補償制御プログラムにおいて、
前記コンピュータを、
前記ロボットの動作の一周期内における前記バックラッシュに起因する不良動作が生じ得る所定の第１の期間中、所定の第１の動作制御値に所定の第１の補正値を繰返し累積加算することにより、該第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、該一周期内における前記バックラッシュに起因する不良動作が生じ得る所定の第２の期間中、該第２の動作制御値に所定の第２の補正値を繰返し累積減算することにより、該第２の期間をかけて漸次所定の第１の動作制御値に戻すことにより、前記ロボットの動作を制御するための動作制御値を生成する動作制御値生成部と、
前記動作制御値生成部で生成された動作制御値に基づいて前記ロボットの動作を制御する動作制御部とを備えたバックラッシュ補償制御装置として動作させることを特徴とするバックラッシュ補償制御プログラム。
【発明の詳細な説明】
【技術分野】  本発明は、駆動源からの駆動力をバックラッシュを伴って伝達する、例えばギア等からなる駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、バックラッシュが補償された動作を行なわさせるバックラッシュ補償制御方法、バックラッシュ補償制御装置、およびプログラムを実行するコンピュータをそのようなバックラッシュ補償制御装置として動作させるバックラッシュ補償制御プログラムに関する。
【背景技術】  近年、ロボットの関節の動作制御用のアクチュエータとして電気モータが広範に利用されている。また、ロボットを十分なパワーで駆動するために、ロボット機構システム内では電気モータの駆動力を伝達する駆動力伝達系として様々なギアシステムが広く採用されている。ここで、ギアとギアとの間には隙き間が存在し、したがってギアを利用した駆動力伝達系には、バックラッシュが存在する。ところが、例えば二足歩行ロボット等多くのロボットにおいては、関節の動作方向（回転方向）が正逆方向に変化し、バックラッシュのために非線形の望ましからざる動作が発生し、一般的に、このことがロボット関節の位置（姿勢）制御の精度限界となっている。特に二足歩行ロボットの二足歩行制御の場合、関節のバックラッシュは位置（姿勢）制御に影響を及ぼすことから、歩行動作の安定性を著しく悪化させることになる。
上記のバックラッシュの問題に関しては、特許文献１に、バックラッシュの大きさを検出するセンサを備えてバックラッシュを計測し、ギアの経年変化による摩耗によりバックラッシュが増加した場合に通知するという技術が提案されている。また、特許文献２には、ロボットの移動部分の原点位置を検出する原点センサを備え、機械的原点位置を精度よく求めてバックラッシュの影響を低減する技術が開示されている。
【特許文献１】      特開平８−７１９６６号公報
【特許文献２】      特開平１０−７６４８８号公報
上記のとおり、ギア等によるバックラッシュは高精度の位置制御を行なう場合に動作の不安定さを引き起こし、例えば二足歩行ロボットの場合、動作が不安定なために僅かな外乱で転倒してしまうなど、所期の動作を行ない得ない場合もある。
これに対し、上記の特許文献１は、バックラッシュ計測しようというものに過ぎず、正常な状態におけるバックラッシュを小さく押えるという技術ではない。また、引用文献２は、原点位置を検出しようとするもので、外乱のない動作制御には有効な場合もあるが、外力を受ける場合、例えば二足歩行ロボットの二足歩行制御など、電気モータからの駆動力のほか、床に足を衝いたり床から足を引き上げたりなど床からの反力が変化する場合などは、いくら原点位置を検出してみてもバックラッシュの存在と外力の変化とにより、不用意、不規則な動作が生じてしまうことを免がれることはできない。
また、上記の特許文献１ではバックラッシュを測定するセンサ、特許文献２では原点センサを組み込む必要があり、ハードウェア上の変更が必要となる。
本発明は、上記事情に鑑み、駆動力伝達系がバックラッシュを有していても、そのバックラッシュが動作にあらわれるのを抑制し、バックラッシュが補償された動作制御を行なうことのできるバックラッシュ補償制御方法、バックラッシュ補償制御装置、およびコンピュータをそのようなバックラッシュ補償制御装置として動作させるバックラッシュ補償制御プログラムを提供することを目的とする。
【発明の開示】
上記目的を達成する本発明のバックラッシュ補償制御方法は、駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、バックラッシュが補償された動作を行なわさせるバックラッシュ補償制御方法において、
ロボットの動作の一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第１の期間中、所定の第１の動作制御値に所定の第１の補正値を繰返し累積加算することにより、その第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、その一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第２の期間中、上記の第２の動作制御値に所定の第２の補正値を繰返し累積減算することにより、その第２の期間をかけて漸次所定の第１の動作制御値に戻すことにより、ロボットの動作を制御するための動作制御値を生成する第１ステップと、
このようにして生成された動作制御値に基づいてロボットの動作を制御する第２ステップとを有することを特徴とする。
ここで、上記の第１の動作制御値および第２の動作制御値は、ロボットの動作を制御するための動作制御値であり、典型的には時間的に変化する動作制御値である。
また、上記の第１の期間および第２の期間は、相互に同一の時間幅を有する期間であって、それに伴い、上記の第１の補正値および第２の補正値は相互に同一の補正値であってもよい。
ここで、上記の「ロボット」は、「駆動源からの駆動力を伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なう」ものであればよく、例えばこの定義に合致するマニピュレータ等もここでいうロボットに該当する。本発明は、この定義に合致するロボットのうち、「駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボット」を制御対象とするものである。
本発明のバックラッシュ補償制御方法は、バックラッシュに起因する不良動作が生じ得る所定の第１の期間および第２の期間、それぞれ、補正値を累積加算および累積減算することにより、後述する実施形態に示すようにバックラッシュが有効に補償され、安定した動作が可能となる。しかも、本発明のバックラッシュ補償制御方法は、ロボットの機構上の改造は不用であり、安価な制御が可能である。
ここで、上記本発明のバックラッシュ補償制御方法において、
上記第１ステップにおける動作制御値生成アルゴリズムと同一のアルゴリズムを用いるとともにその第１ステップにおける第１の補正値に対応する補正値として相互に異なる複数の補正値それぞれを用いてロボットの動作試験を行なうことにより、補正値とバックラッシュの補償の程度との間の対応関係を求める第３ステップと、
上記対応関係に基づいて、バックラッシュの補償が適正に行なわれる補正値を求める第４ステップとを有し、
前述の第１ステップでは、第４ステップで求められた補正値を上記第１の補正値として採用することが好ましい。
ここでいう「動作試験」は、その制御対象のロボット自体で行なってもよいが、かならずしもその制御対象のロボット自体で行なう必要はなく、多数製造される同種のロボットのうちの典型的な１台のロボット、例えばプロトタイプのロボットで行なってもよく、あるいは、実際に組み立てられたロボットではなくコンピュータ内にデータ上で構築されたロボットの動作シミュレーションによる動作試験を行なってもよい。
バックラッシュを補償するための補正値はトライアンドエラーで適正な補正値を探してもよいが、上記の第３および第４ステップにより、適正な補正値を容易に求めることができ、第１ステップでその補正値を採用することで、バックラッシュを有効に補償することができる。
また、上記目的を達成する本発明のバックラッシュ補償制御装置は、駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、バックラッシュが補償された動作を行なわさせるバックラッシュ補償制御装置において、
ロボットの動作の一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第１の期間中、所定の第１の動作制御値に所定の第１の補正値を繰返し累積加算することにより、その第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、その一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第２の期間中、上記第２の動作制御値に所定の第２の補正値を繰返し累積減算することにより、その第２の期間をかけて漸次所定の第１の動作制御値に戻すことにより、ロボットの動作を制御するための動作制御値を生成する動作制御値生成部と、
動作制御値生成部で生成された動作制御値に基づいてロボットの動作を制御する動作制御部とを備えたことを特徴とする。
さらに、上記目的を達成する本発明のバックラッシュ補償制御プログラムは、
プログラムを実行するコンピュータ内で実行され、そのコンピュータを、駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、バックラッシュが補償された動作を行なわさせるバックラッシュ補償制御装置として動作させるバックラッシュ補償制御プログラムにおいて、
コンピュータを、
ロボットの動作の一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第１の期間中、所定の第１の動作制御値に所定の第１の補正値を繰返し累積加算することにより、その第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第２の期間中、上記第２の動作制御値に所定の第２の補正値を繰返し累積減算することにより、その第２の期間をかけて漸次所定の第１の動作制御値に戻すことにより、ロボットの動作を制御するための動作制御値を生成する動作制御値生成部と、
動作制御値生成部で生成された動作制御値に基づいてロボットの動作を制御する動作制御部とを備えたバックラッシュ補償制御装置として動作させることを特徴とする。
【図面の簡単な説明】  図１は、コンピュータと、そのコンピュータとの間で通信を行なうロボットの外観図である。
図２は、図１に示したコンピュータのハードウェア構成図である。
図３は、本発明のバックラッシュ補償制御方法の一実施形態を示すフローチャートである。
図４は、本発明のバックラッシュ補償制御プログラムの一実施形態の概要を示す模式図である。
図５は、本発明のバックラッシュ補償制御装置の一実施形態を示すブロック図である。
図６は、図１に示すロボット２００の両足のモデルを示した図である。
図７は、図６のロボットの二足歩行の各フェーズを示した図である。
図８は、図７に模式的に示した二足歩行時における、右足の、図６に示すヒップロールジョイントおよびアンクルロールジョイントの制御角を示した図である。
図９は、バックラッシュによる胴体の傾きを示す模式図である。
図１０は、図６の右足の足裏に配置された圧力センサ（図示せず）により測定された、二足歩行時の圧力変化を示した図である。
図１１は、バックラッシュを無視したときのロボット制御アルゴリズムの概要を示したフローチャートである。
図１２は、バックラッシュを考慮したときの、ロボット制御アルゴリズムを示すフローチャートである。
図１３は、ロボットの二足歩行動作の一周期内の各変数あるいは定数の意味を表わした模式図である。
図１４は、上記のようにして求めた。補正値Ｃとロボットの傾きθ（図９参照）との対応関係を示すグラフである。
図１５は、補正値Ｃｍｉｎの決定アルゴリズムを示すフローチャートである。
図１６は、図６に示す右足のヒップロールジョイントの角度を示す図である。
図１７は、バックラッシュ補償前後の右足のヒップロールジョイントの角度を示す図である。
図１８は右足裏の圧力センサの、補正前後の圧力変化を示す図である。
図１９は、本発明のバックラッシュ補償制御装置の一実施形態を内蔵したロボットの外観図である。
図２０は、図１９のロボットの構成を示すブロック図である。
【発明を実施するための最良の形態】  以下、本発明の実施形態について説明する。
以下に説明する本発明の一実施形態としてのバックラッシュ補償制御装置は、一台のコンピュータと、そのコンピュータ内で動作する、本発明の一実施形態としてのバックラッシュ補償制御プログラムとの組合せにより構成されたものであり、また本発明の一実施形態としてのバックラッシュ補償制御方法は、そのコンピュータを利用して実行されるものである。
そこで、以下では先ず、本発明の一実施形態としてのバックラッシュ補償制御装置を構成するコンピュータのハードウェアについて説明する。
図１は、コンピュータと、そのコンピュータとの間で通信を行なうロボットの外観図である。
この図１に示すコンピュータ１００は、ＣＰＵ（中央処理装置）、ＲＡＭ（ランダムアクセスメモリ）、ハードディスク、通信ボード等が内蔵された本体部１０１、本体部１０１からの指示により表示画面１０２ａ上に画像や文字列を表示する表示装置１０２、コンピュータ１００に操作者の指示を入力するためのキーボード１０３、表示画面１０２ａ上の任意の位置を指定することにより、その指定時にその位置に表示されていたアイコン等に応じた指示を入力するマウス１０４、およびロボット２００との間で通信を行なうためのアンテナ１０５を備えている。
本体部１０１は、さらに外観上、フレキシブルディスク（図示せず）、ＣＤ−ＲＯＭ３００がそれぞれ装填されるＦＤ装填口１０１ａ、ＣＤ−ＲＯＭ装填口１０１ｂを有しており、それらの内部には、それらの装填口１０１ａ，１０１ｂから装填されたフレキシブルディスク（ＦＤ）やＣＤ−ＲＯＭ３００をドライブしてアクセスするＦＤドライブやＣＤ−ＲＯＭドライブも内蔵されている。
一方、ロボット２００は、人体に似せた形状を有し、人間の躰の関節に相当する部分に２つの部材どうしの間の角度の調節が自在な関節を有し、さらに人間の目に対応する部分にカメラ、人間の耳に対応する部分にマイクロホン、人間の手先に相当する部分に接触センサを備えるなど、このロボットには各種のセンサが備えられている。また、このロボットには通信設備が内蔵されており、コンピュータ１００との間で通信を行ない、コンピュータ１００に向けて各種センサの情報を送信し、コンピュータ１００からは制御信号を受信してその制御信号に基づいて二足歩行などの動作を行なうように構成されている。
尚、このコンピュータ１００には、ロボット２００に相当する、アルゴリズム上で構築したロボットが内蔵されており、ロボット２００の動作を制御するための制御アルゴリズムは、直ちにロボット２００の動作制御に用いるのではなく、先ずは、コンピュータ１００内に構築されたアルゴリズムとしてのロボットをその制御アルゴリズムで動作させることにより動作シミュレーションが行なわれ、意図した通りの動作を行なうことが確認された後、その制御アルゴリズムが、ハードウェア的に製作されたロボット２００に適用される。
図２は、図１に示したコンピュータのハードウェア構成図である。
このハードウェア構成図には、ＣＰＵ１１１、ＲＡＭ１１２、ハードディスクコントローラ１１３、ＦＤドライブ１１４、ＣＤ−ＲＯＭドライブ１１５、マウスコントローラ１１６、キーボードコントローラ１１７、ディスプレイコントローラ１１８、および、ロボット２００（図１参照）との間で通信を行なうための通信ボード１１９が示されており、それらはバス１１０で相互に接続されている。
ＦＤドライブ１１４、ＣＤ−ＲＯＭドライブ１１５は、図１を参照して説明したように、それぞれＦＤ装填口１０１ａおよびＣＤ−ＲＯＭ装填口１０１ｂから装填されたＦＤ３１０、ＣＤ−ＲＯＭ３００をアクセスするものである。通信ボード１１９はアンテナ１０５を介して、ロボット２００と通信を行なう。
また、図２には、ハードディスクコントローラ１１３によりアクセスされるハードディスク１２０、マウスコントローラ１１６により制御されるマウス１０４、キーボードコントローラ１１７により制御されるキーボード１０３、およびディスプレイコントローラ１１８により制御される表示装置１０２も示されている。
図３は、本発明のバックラッシュ補償制御方法の一実施形態を示すフローチャートである。
この図３のフローチャートに示すバックラッシュ補償制御方法は、対応関係生成ステップ（ステップ（ａ））と、補正値算出ステップ（ステップ（ｂ））と、動作制御値生成ステップ（ステップ（ｃ））と、動作制御ステップ（ステップ（ｄ））とで構成されている。
ここでは、各ステップ（ａ）〜（ｄ）についてはその概要のみ説明し、詳細は本発明のバックラッシュ補償制御装置およびバックラッシュ補償制御プログラムの説明とともに後述する。また、ここでは、説明の都合上、動作制御値生成ステップ（ステップ（ｃ））と、動作制御ステップ（ステップ（ｄ））を先に説明する。
この図３のフローチャートに示すバックラッシュ補償制御方法は、図１に示すロボットに、バックラッシュが補償された動作を行なわさせる方法である。
このバックラッシュ補償制御方法の動作制御値生成ステップ（ステップ（ｃ））では、ロボットの動作の一周期内における、バックラッシュに起因する不良動作が生じ得る所定の第１の期間中、所定の第１の動作制御値に所定の第１の補正値を繰返し累積加算することにより、その第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、その一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第２の期間中、上記の第２の動作制御値に所定の第２の補正値を繰返し累積減算することにより、その第２の期間をかけて漸次所定の第１の動作制御値に戻すことにより、ロボットの動作を制御するための動作制御値が生成される。
また、動作制御ステップ（ステップ（ｄ））では、動作制御値生成ステップ（ステップ（ｃ））で生成された動作制御値に基づいて、ロボット２００の動作が制御される。
ここで、典型的には、上記第１の動作制御値および第２の動作制御値は、時間的に変化する動作制御値である。
また、本実施形態は、上記第１の期間および上記第２の期間は相互に同一の時間幅を有する期間であって、第１の補正値および第２の補正値は相互に同一の補正値である。
上記のステップ（ｃ）とステップ（ｄ）は、ステップ（ｃ）の動作制御値の生成が一周期分全て生成された後にステップ（ｄ）が実行される、いわゆるシーケンス制御であってもよいが、ここでは、ステップ（ｃ）でその時点の動作制御値を生成してステップ（ｄ）でその時点の動作制御を行なう処理がある短かい単位時間間隔で繰り返される（ステップ（ｅ））、いわゆるオンライン制御であってもよい。
また、図３のフローチャートに示すバックラッシュ補償制御方法の、対応関係生成ステップ（ステップ（ａ））および補正値算出ステップ（ステップ（ｂ））は、ロボットを実際に制御する前の準備段階で実行されるステップである。
ここで、ステップ（ａ）の対応関係生成ステップでは、ステップ（ｃ）の動作制御値生成ステップにおける動作制御値生成アルゴリズムと同一のアルゴリズムを用いるとともに、ステップ（ｃ）における第１の補正値（本実施形態では第２の補正値も同じ値）に対応する補正値として相互に異なる複数の補正値それぞれを用いてロボットの動作試験を行なうことにより、補正値とバックラッシュの補償の程度との間の対応関係がを求められる。
ここでの動作試験は、図１に示すロボット２００自体で行なってもよいが、本実施形態では、コンピュータ１００の内部にデータ上で構築されたアルゴリズムとしてのロボットの動作シミュレーションによる動作試験が行なわれる。
また、ステップ（ｂ）の補正値算出ステップでは、上記の対応関係に基づいて、バックラッシュの補償が適切に行なわれる補正値が求められる。
上述したステップ（ｃ）ではこのようにして求められた補正値が採用される。
図３のフローチャートの各ステップ（ａ）〜（ｄ）の詳細については後述する。
図４は、本発明のバックラッシュ補償制御プログラムの一実施形態の概要を示す模式図である。
ここでは、このバックラッシュ補償制御プログラム４００は、ＣＤ−ＲＯＭ３００に記憶されており、このＣＤ−ＲＯＭ３００が図１に示すＣＤ−ＲＯＭ装填口１０１ｂから装填され図２のＣＤ−ＲＯＭドライブ１１５によりアクセスされて、そのＣＤ−ＲＯＭ３００に記憶されているバックラッシュ補償制御プログラム４００が、図１，図２に示すコンピュータ１００にインストールされる。そのコンピュータ１００内にインストールされたバックラッシュ補償制御プログラム４００がそのコンピュータ１００内で実行されると、そのコンピュータ１００は、本発明のバックラッシュ補償制御装置の一実施形態として動作する。
尚、このバックラッシュ補償制御プログラム４００は、ここではＣＤ−ＲＯＭ３００に記憶されている例を示したが、ＣＤ−ＲＯＭに記憶されている必要はなく、例えばＦＤ等他の可搬型記憶媒体に記憶されてコンピュータ１００にインストールされてもよく、あるいは、他の装置等から通信網（図示せず）を介してコンピュータ１００にインストールされてもよく、あるいは、そのコンピュータ１００のハードディスク（図２参照）等にはじめから記憶されていてもよく、最終的にコンピュータで実行可能となるものであればどのように保存あるいは記憶されていてもよい。
図４に示すバックラッシュ補償制御プログラム４００は、動作制御値生成部４０１と、動作制御部４０２と、対応関係生成部４０３と、補正値算出部４０４とから構成されている。このバックラッシュ補償制御プログラム４００の各部４０１〜４０４の作用は、図５の説明と合わせて説明する。
図５は、本発明のバックラッシュ補償制御装置の一実施形態を示すブロック図である。
このバックラッシュ補償制御装置４１０は、図１，図２に示すコンピュータ１００内で図４に示すバックラッシュ補償制御プログラム４００が実行されることにより、図１，図２に示すコンピュータ１００内に実現するものである。
この図５のバックラッシュ補償制御装置４１０は、動作制御値生成部４１１と、動作制御部４１２と、対応関係生成部４１３と、補正値演算部４１４とから構成されている。これら各部４１１〜４１４は、図４に示すバックラッシュ補償制御プログラム４００を構成する各部４０１〜４０４にそれぞれ対応するが、図５のバックラッシュ補償制御装置４１０の各部４１１〜４１４は、図１，図２に示すコンピュータ１００のハードウェアおよびそのコンピュータ１００内で実行されるオペレーティングシステム（ＯＳ）と、そのＯＳ上で動作する、図４に示すバックラッシュ補償制御プログラム４００の各部４０１〜４０４との結合で構成されているのに対し、図５に示すバックラッシュ補償制御プログラム４００の各部４０１〜４０４は、それらの複合のうちのアプリケーションプログラムの部分のみで構成されている。図５に示すバックラッシュ補償制御プログラム４００を構成する各部４０１〜４０４の、このバックラッシュ補償制御プログラム４００が図１，図２のコンピュータ１００内で実行されたときの作用は、図５に示すバックラッシュ補償制御装置４１０を構成する各部４１１〜４１４の作用そのものであり、以下、図５のバックラッシュ補償制御装置４１０の各部４１１〜４１４の作用を説明することで、図４のバックラッシュ補償制御プログラム４００の各部４０１〜４０４の作用の説明を兼ねるものとする。
ただし、ここでも先ずは、概要説明にとどめ、その後、本発明の更に詳細な実施形態を説明する。
図５に示すバックラッシュ補償制御装置４１０は、図１に示すロボット２００、すなわち、駆動源からの駆動力をバックラッシュを伴って伝達する駆動力伝達系を介して伝達されてきた駆動力を受けて周期的な動作を行なうロボットに、バックラッシュが補償された動作を行なわさせるバックラッシュ補償制御装置である。
このバックラッシュ補償制御装置４１０の動作制御値生成部４１１では、ロボットの動作の一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第１の期間中、所定の時間的に変化する第１の動作制御値に所定の第１の補正値を繰返し累積加算することにより、その第１の期間をかけて漸次所定の第２の動作制御値に偏倚させるとともに、その一周期内におけるバックラッシュに起因する不良動作が生じ得る所定の第２の期間中（本実施形態では、この第２の期間は上記の第１の期間と同じ時間幅を有する期間である）、その第２の動作制御値に所定の第２の補正値（本実施形態では、この第２の補正値は上記の第１の補正値と同じ値）を繰返し累積減算することにより、その第２の期間をかけて漸次所定の第１の動作制御値に戻すことにより、ロボットの動作を制御するための動作制御値が生成される。
動作制御部４１２では、その動作制御値生成部４１１で生成された動作制御値に基づいてロボット２００の動作が制御される。
また、対応関係生成部４１３および補正値算出部４１４は、ロボットを制御する段階ではなく、その制御の準備段階で実行されるものであり、対応関係生成部４１３では、動作制御値生成部４１１で用いられる上記の動作制御値生成アルゴリズムと同一のアルゴリズムが用いられるとともに、その動作制御値生成部４１１で用いられる第１の補正値（本実施形態では第２の補正値も同じ値である）に対応する補正値として相互に異なる複数の補正値それぞれを用いてロボットの動作試験を行なうことにより、補正値とバックラッシュの補償の程度との間の対応関係がを求められる。
補正値算出部４１４では、その対応関係生成部４１３で生成された対応関係に基づいて、バックラッシュの補償が適正に行なわれる補正値が求められ、ロボットの実際の制御にあたり、動作制御値生成部４１１では、そのようにして求められた補正値が採用される。
上記のロボットの動作試験としては、コンピュータ１００内に構築されたデータ上のロボットの動作シミュレーションによる動作試験が行なわれる。
以下、本発明の更に詳細な実施形態を説明する。
図６は、図１に示すロボット２００の両足のモデルを示した図である。
この図６には、実線で右足２１０が示されるとともに破線で左足２２０が示されている。右足２１０と左足２２０は左右対称の構造を有しており、ここでは右足２１０を中心に説明する。右足２１０には、５つの関節２１１〜２１５が配備されている。それら５つの関節のうちの３つの関節２１２，２１３，２１４は、図６に矢印で示す進行方向の動き、すなわちＸ−Ｚ平面内の動き（これを‘ピッチ’と称する）を担っており、残りの２つの関節２１１，２１５は、進行方向に直角な、Ｙ−Ｚ平面内の動き（これを‘ロール’と称する）を担っている。関節２１１は、人体に例えると腰の動きを担う関節であって、以下この関節２１１をヒップロールジョイント２１１と称する。また、関節２１５は、人体に例えると足首の動きを担う関節であって、以下、この関節２１５をアンクルロールジョイント２１５と称する。
図７は、図６のロボットの二足歩行の各フェーズを示した図である。
先ずは、左右両足２１０，２２０が床に着地した両足サポートのフェーズから出発し、その後右足２１０の片足でサポートして左足２２０を前後に移動させる（このように足を前後に移動させることを‘スイング’と称する）フェーズに移行し、その後再び、左右両足２１０，２２０が着地した両足サポートのフェーズとなり、次に今度は左足２２０一本でサポートして右足２１０をスイングさせるフェーズに移行し、以下これを繰り返すことにより二足歩行が行なわれる。右足２１０の一本でサポートして左足をスイングするフェーズでは、重心は右足側に移動し、左足一本でサポートして右足をスイングするフェーズでは、重心は左足側に移動する。このとき、ロボットの胴体は斜めにならずに垂直に起立した状態を保っていることが重要である。この点については後述する。
図８は、図７に模式的に示した二足歩行時における、右足の、図６に示すヒップロールジョイント２１１およびアンクルロールジョイント２１５の制御角を示した図である。
ここでは、図示の一周期で二歩（左右の足それぞれ一歩ずつ）の歩行が行なわれ、その間、右足のヒップロールジョイント２１１およびアンクルロールジョイント２１５は、図８の、それぞれ実線、破線で示す各角度に制御され、これにより、図７（Ｂ）に示すように、胴体を垂直に保ったまま左右への重心の移動が行なわれる。ただし、このとき各ジョイント２１１，２１５のバックラッシュが問題となる。
図９は、バックラッシュによる胴体の傾きを示す模式図である。
図９（Ａ）は、バックラッシュが存在しない理想状態を示した図であり、胴体は垂直に起立している。
これに対し図９（Ｂ）は、バックラッシュが存在する状態を示した図であり、バックラッシュに起因して胴体が角度θだけ傾いている。このような傾きθが存在すると、重心も期待した位置とは別の位置に外れてしまい、胴体が左右に振れてしまい、安定した二足歩行が不能となる。そこで、ここでは、バックラッシュに起因したこの胴体が傾きθを抑制する。
図１０は、図６の右足２１０の足裏に配置された圧力センサ（図示せず）により測定された、二足歩行時の圧力変化を示した図である。
図に示す２つの楕円Ａ，Ｂのうち、楕円Ａは、右足を持ち上げるタイミングに相当し、主に左足のバックラッシュに起因して、右足裏が一旦床から離れて、再度右足裏が床に着いた後、持ち上げられていることが分かる。また、楕円Ｂは、スイング動作の後の右足が床に着地するタイミングを表わしており、主に右足自身のバックラッシュに起因して右足裏の圧力が激しくランダムに変化しており、不安定な動作になっていることが分かる。
図１１は、バックラッシュを無視したときのロボット制御アルゴリズムの概要を示したフローチャート。
ここでは、図１２を参照して後で説明する本実施形態のフローチャートとの対比のために、バックラッシュを無視した理想状態におけるロボット制御アルゴリズムを説明しておく。
ここでは、先ず、時間計測用の変数ｒｔを０．０に初期化し（ステップ（ｓ１））、その時点（ｒｔの時点。ここでは初期化直後のｒｔ＝０．０の時点）における、ロボットの動作を制御するための動作制御値Ｖｄを算出し（ステップ（ｓ２））、その動作制御値Ｖｄに基づいてロボットの動作を制御する（ステップ（ｓ３））。尚、図１あるいは図６に示すロボットには、制御すべき多数の関節が存在するが、ここでは、各関節の具体的な動作制御値を問題としているのではないため、１つの動作制御値Ｖｄで代表させている。
ステップＳ４では、時間変数ｒｔがΔｔだけ進められ、ステップ（ｓ５）では、時間変数ｒｔの値がロボットの動作を停止すべき時刻Ｔｓｔｏｐに達したか否かが判定される。ｒｔが未だＴｓｔｏｐに達していないときは、ステップ（ｓ２）〜（ｓ４）を繰り返し実行し、ｒｔがＴｓｔｏｐに達するとこのルーチンを終了する。
図１２は、バックラッシュを考慮したときの、ロボット制御アルゴリズムを示すフローチャートである。
この図１２のフローチャートにおいて、ステップ（ｃ１）〜（ｃ９）、およびステップ（ｄ１）は、図３のバックラッシュ補償制御方法のフローチャートにおけるステップ（ｃ）の動作制御値生成ステップ、およびステップ（ｄ）の動作制御ステップにそれぞれ相当するとともに、図４のバックラッシュ補償制御プログラム４００における動作制御値生成部４０１、および動作制御部４０２の各作用、並びに図５のバックラッシュ補償制御装置４１０の動作制御値生成部４１１および動作制御部４１２の各作用にも相当する。
図１２のフローチャートのステップ（ｅ１），（ｅ２）は、動作制御値の生成と動作制御とを繰り返し行なわさせるためのステップである。
図１２のフローチャートのステップ（ｃ１）では、各変数Ｖｃｍｐ，ｒｔ，ｒｔｃが全て０．０に初期化される。ここで変数Ｖｃｍｐは、動作制御値Ｖｄ（ステップ（ｃ８）参照）を補正する（ステップ（ｃ９）参照）ための補正値の累積値（ステップ（ｃ４）参照）を表わす変数である。また、変数ｒｔは、図１１のフローチャートでも説明したとおり、経過時間を表わす変数である。さらに、ｒｔｃは、ロボットの動作の一周期、すなわち、ここでは、図６のロボットの二足歩行を念頭に置いており、図７に示す、両足サポートのフェーズから左足を持ち上げて左足を一歩前進させる左足スイングフェーズ、再び両足でサポートするフェーズ、さらに今度は右足を持ち上げて右足を一歩前進させる右足スイングフェーズまでの一連の二歩の歩行からなる一周期中の時刻を表わす変数である。例えば、この一周期が２秒であるとすると、ｒｔｃは、０．０から進行し、２．０に達した瞬間に再び０．０に戻り、それを繰り返す変数である。
図１２のフローチャートのステップ（ｃ２）では、変数ｒｔと、一周期の時間幅を表わすＣＴとに基づいて、変数ｒｔｃの値が求められ、ステップ（ｃ３），（ｃ５）ではそれぞれ、変数ｒｔｃがＴｃｍｐ１≦ｒｔｃ≦Ｔｃｍｐ２であるか否か、Ｔｃｍｐ３≦ｒｔｃ≦Ｔｃｍｐ４であるか否かが判定される。
図１３は、ロボットの二足歩行動作の一周期内の各変数あるいは定数の意味を表わした模式図である。
横軸は時間変数ｒｔを表わしており、ＣＴはその中の１つの周期を表わしている。また、変数ｒｔｃは一周期ＣＴ内の経過時間を表わしている。
また、Ｔｃｍｐ１，Ｔｃｍｐ２は、一周期ＣＴ内の第１の期間の始点，終点の各時刻を表わしており、Ｔｃｍｐ３，Ｔｃｍｐ４は、一周期ＣＴ内の第２の期間の始点，終点の各時刻を表わしている。
ここで、２つの変数Ｔｃｍｐ１，Ｔｃｍｐ２で規定される第１の期間は、一周期ＣＴ内における、例えば図１０に楕円Ａで示したような、バックラッシュの影響が強く表われる期間を表わしており、２つの変数Ｔｃｍｐ３，Ｔｃｍｐ４で規定される第２の期間は、一周期ＣＴ内における、例えば図１０に楕円Ｂで示したような、バックラッシュの影響が強く表われるもう１つの期間を表わしている。ここでは、二足歩行のような周期的な動作を予定しており、バックラッシュの影響は、典型的には図１０に示すように、一周期内の２つの期間に表われる。本実施形態では、第１の期間と第２の期間は同一の時間幅に設定されている。
図１２に戻って説明を続ける。
図１２のステップ（ｃ３）では、Ｔｃｍｐ１≦ｒｔｃ≦Ｔｃｍｐ２であるか否か、すなわち、現在、第１の期間内の時刻であるか否かが判定され、第１の期間内の時刻であるときは、補正値Ｃの累積値を表わす変数Ｖｃｍｐに補正値Ｃが加算される（ステップ（ｃ４））。また、図１２のステップ（ｃ５）では、Ｔｃｍｐ３≦ｒｔｃ≦Ｔｃｍｐ４であるか否か、すなわち、現在、第２の期間内の時刻であるか否かが判定され、第２の期間内の時刻であるときは、変数Ｖｃｍｐから補正値Ｃが減算される（ステップ（ｃ６））。現在が、第１の期間内でも第２の期間内でもないときは、変数Ｖｃｍｐの値はそのまま保存される（ステップ（ｃ７））。
以上の、補正値の累積値Ｖｃｍｐの算出を経た後は、現在の動作制御値Ｖｄが算出され（ステップ（ｃ８））、算出された動作制御値Ｖｄに変数Ｖｃｍｐが加算されることにより新たな動作制御値Ｖｄが求められ（ステップ（ｃ９））、このようにして求められた新たな動作制御値Ｖｄに基づいてロボットの動作が制御される（ステップ（ｄ１））。
その後、時間変数ｒｔがΔｔだけ進められ（ステップ（ｅ１））、動作停止時刻Ｔｓｔｏｐに達するまで（ステップ（ｅ２））、ステップ（ｃ２）〜（ｅ１）の処理が繰り返される。
ここで、時間を進める単位時間Δｔは、ロボットが十分に滑らかに動作することのできる微小時間であり、その微小時間Δｔごとにステップ（ｃ２）〜（ｅ１）が繰り返される。したがって、変数ＶｃｍｐはΔｔ時間ごとに第１の期間内においては補正値Ｃが累積加算され、第２の期間内においては補正値Ｃが累積減算される。ここでは、第１の期間と第２の期間は相互に同一の時間幅を持った期間であり、したがって、第２の期間の終点では、補正値Ｃを加算する前の状態Ｖｃｍｐ＝０．０）に戻ることになる。
ここで、本発明との対比では、ステップ（ｃ８）で計算しただけの動作制御値Ｖｄを本発明では第１の動作制御値と称しており、第１の期間内に補正値が累積加算された後の変数Ｖｃｍｐが加算された後の動作制御値を本発明では第２の動作制御値と称している。すなわち、ステップ（ｄ１）では、直前の一周期の第２の期間の終点から今回の一周期の第１の期間の始点までの間は、補正されない（ステップ（ｃ９）で変数Ｖｃｍｐ＝０．０が加算された）第１の動作制御値に基づいてロボットの動作が制御され、第１の期間の終点から第２の期間の始点での間は、最大限に補正された（ステップ（ｃ９）で変数Ｖｃｍｐの最大値が加算された）第２の動作制御値に基づいてロボット動作が制御され、第１の期間中は、第１の動作制御値から第２の動作制御値へと時間的に順次変化する動作制御値に基づいてロボットの動作が制御され、第２の期間中は、第２の動作制御値から第１の動作制御値へと時間的に順次変化する動作制御値に基づいてロボットの動作が制御される。
ここで問題となるのは、第１の期間および第２の期間の各始点Ｔｃｍｐ１，Ｔｐ３、および各終点Ｔｃｍｐ２，Ｔｃｍｐ４と、補正値Ｃの決め方である。
第１の期間と第２の期間の始点と終点Ｔｃｍｐ１〜Ｔｃｍｐ４は、例えば図１０に示すようなデータから決定することができる。この決定は、オペレータが行ないコンピュータ１００（図１参照）に入力してもよいが、圧力等のデータが大きく変動する期間を捉えて、あるいはバックラッシュを直接に検出して、自動的に行なってもよい。図１０の楕円Ａに示す、バックラッシュの悪影響が表われている時間幅と、図１０の楕円Ｂに示す、バックラッシュの悪影響が表われている時間幅は相互に異なっているが、第１の期間と第２の期間は相互に同一の時間幅に設定することができる。あるいは、第１の期間と第２の期間は相互に別々の時間幅に設定してもよいが、そのときには第２の期間の終点でＶｃｍｐ＝０．０となるように、図１２のステップ（ｃ４）の補正値Ｃとステップ（ｃ６）の補正値Ｃとを異ならせる必要がある。
次に補正値Ｃの決定方法について説明する。
ここでは、図１２のフローチャートに示すアルゴリズムと同一のアルゴリズムを採用し、かつ補正値Ｃとして様々な値を用いてロボットの動作制御を行なう。ただし、ここでは、図１のコンピュータ１００内に構築されたデータ上でのロボットの動作制御（動作シミュレーション）を行なう、以下のようにして補正値Ｃの適正値が決定される。その適正値を確認する目的で、あるいは、より高精度の適正値を探す目的で、その補正値をそのシミュレーションにより求めた適正値に近い値で変化させて、実際のロボットの動作制御を行なってもよい。
ここでは、図示は省略するが、図１２のフローチャートに示すアルゴリズムと同一のアルゴリズムを採用し図１２の補正値Ｃを様々に変化させて、シミュレーション上でロボットを動作させ、ロボットの胴体の傾き角度θ（図９参照）を測定することが、図３のバックラッシュ補償制御方法のステップ（ａ）の対応関係生成ステップに相当し、また、図４のバックラッシュ補償制御プログラム４００の対応関係生成部４０３および図５のバックラッシュ補償制御装置４１０の対応関係制御部４１３の作用に相当する。
図１４は、上記のようにして求めた。補正値Ｃとロボットの傾きθ（図９参照）との対応関係を示すグラフである。
ここでは、この図１４に示すグラフに基づいて、＋ε≦θ≦−εである補正値Ｃｍｉｎが求められ、ロボットの動作を実際に制御する際、図１２の補正値Ｃとして、その求められた補正値Ｃｍｉｎが用いられる。
図１５は、補正値Ｃｍｉｎの決定アルゴリズムを示すフローチャートである。
この図１５のフローチャートは、図３のバックラッシュ補償制御方法におけるステップ（ｂ）の補正値算出ステップに相当するとともに、図４のバックラッシュ補償制御プログラム４００の補正値算出部４０４および図５のバックラッシュ補償制御装置４１０の補正値算出部４１４の作用に相当する。
図１５のステップ（ｂ１）では、図１４の関数をθ＝ｆ（Ｃ）で表わしたとき、
ｆ（ｃａ）・ｆ（ｃｂ）＜０                      …（１）
となる２つの補正値変数ｃａ，ｃｂが選び出され、ステップ（ｂ２）でそれら２つの変数ｃａ，ｃｂの平均値としての変数
Ｃ０＝（ｃａ＋ｃｂ）／２                        …（２）
が求められ、ステップ（ｂ３）で、その平均値としての変数Ｃ０に対応する傾き角度
θ０＝ｆ（Ｃ０）                                …（３）
が求められる。
ステップ（ｂ４）では、このようにして求めた傾き角度θ０が、
−ε≦θ０≦ε０                                …（４）
の範囲内にあるか否かが判定され、θ０がこの範囲から外れているときは、ステップ（ｂ５）において、
ｆ（Ｃａ）・θ０＜０                            …（５）
か否かが判定される。（５）式を満足するときはステップ（ｂ６）に進んで変数Ｃｂとして変数Ｃ０が採用され、あるいは（５）式を満足しないときはステップ（ｂ７）に進んで変数Ｃａとして変数Ｃ０が採用されてステップ（ｂ２）に戻り、再び（２）式に従って新たな平均値Ｃ０が求められる。
これを繰り返すと、ステップ（ｂ３）で求められる傾き角度θ０は、θ０＝０に向けて収束し、ステップ（ｂ４）で上記の（４）式の条件を満足するまで収束したθ０が求められると、そのθ０に対応するＣ０（ステップｂ３）、（３）式参照）が、補正値Ｃｍｉｎとして求められる（ステップ（ｂ８））。
このようにして求めた補正値Ｃｍｉｎは、図１２に示すフローチャートに従ってロボットの動作を制御したときにロボットの傾き角度θ（図９参照）をほぼ０．０にする補正値であり、図１２に示すフローチャートに従ってロボットの動作を制御するにあたっては、その図１２中の補正値Ｃとして上記のようにして求められた補正値Ｃｍｉｎが採用される。
以下、上記の動作制御によりバックラッシュの悪影響が有効に低減されることを示す実験結果について説明する。
ここに示す実験結果は、図６に示す概略構造の二足歩行ロボットの二足歩行制御を行なった結果である。
図１６は、図６に示す右足２１０のヒップロールジョイント２１１の角度を示す図である。
ここでは、左右一歩ずつ二歩歩いたことに相当する一周期ＣＴはＣＴ＝２．８５秒であり、第１の期間の始点Ｔｃｍｐ１および終点Ｔｃｍｐ２、第２の期間の始点Ｔｃｍｐ３および終点Ｔｃｍｐ４は、時間定数Ｃｄｐ＝０．７３秒を定義したとき、それぞれ
Ｔｃｍｐ１＝０．０秒
Ｔｃｍｐ２＝Ｃｄｐ／４＝０．１８２５秒
Ｔｃｍｐ３＝ＣＴ／２−Ｃｄｐ／４＝１．２４５５秒
Ｔｃｍｐ４＝ＣＴ／２＝１．４２５秒
と設定した。その後、上述のアルゴリズムに従って補正値Ｃ＝Ｃｍｉｎを決定した。その結果、補正値Ｃは
Ｃ＝０．００１
と決定された。ここで、リアルタイムコントロールサイクルΔｔ（図１２のステップ（ｅ１）参照）は、Δｔ＝１．０（ミリ秒）である。
このようにして求めた補正値Ｃを用い図１２のアルゴリズムに従ってロボットの動作制御を行なった。尚、図１６は、右足のヒップロールジョイント２１１のの角度を示すものであるが、左足についても同様にバックラッシュ補償制御を行なった。
図１７は、バックラッシュ補償前後の右足のヒップロールジョイント２１１の角度を示す図である。
補正前（実線）のグラフは、図１６と同じグラフであり、破線で示す補正後の角度を示すグラフでは、バックラッシュに起因する分が抑えられていることが分かる。
図１８は右足裏の圧力センサの、補正前後の圧力変化を示す図である。
この図１８から、圧力変動は補正前（破線）の方が大きく、補正後（実線）はその圧力変動が穏やかになっていることが分かる。
図１９は、本発明のバックラッシュ補償制御装置の一実施形態を内蔵したロボットの外観図である。
このロボット６００は、図１のコンピュータ１００で実現しているバックラッシュ補償制御装置を図６に示すロボット２００自身の内部に備えたものに相当する。
すなわち、このロボット６００は、このロボット自身を制御するバックラッシュ補償制御装置６１０を内蔵している。
図２０は、図１９のロボット６００の構成を示すブロック図である。
このロボット６００は、バックラッシュ補償制御装置６１０と、そのバックラッシュ補償制御装置６１０により動作が制御される関節６２０と、その関節の動作を計測するセンサ６３０を備えている。
このロボット６００のバックラッシュ補償制御装置６１０は、動作制御値生成部６１１と動作制御部６１２とから構成されている。
このバックラッシュ補償制御装置６１０には、図５に示すバックラッシュ補償制御装置４１０には備えられている対応関係生成部４１３および補正値算出部４１４に相当する構成は備えられておらず、図２０のバックラッシュ補償制御装置６１０の動作制御値生成部６１１で採用される各種変数や定数は上述のアルゴリズムに従ってあらかじめ求められて、動作制御値生成部６１１にあらかじめ格納されており、この図２０のバックラッシュ補償制御装置６１０は、あらかじめ格納されている各種の値を用い、図１２のフローチャートに示すアルゴリズムに従ってこのバックラッシュ補償制御装置６１０を内蔵しているロボット６００（図１９参照）の動作を制御する。
このように、バックラッシュ補償制御装置６１０はロボットを制御する段階では、動作制御値生成部６１１と動作制御部６１２とを備えていればよく、図５に示すバックラッシュ補償制御装置４１０における対応関係生成部４１３および補正値算出部４１４に相当する構成は不要である。バックラッシュ補償制御プログラムの場合も同様であり、ロボットの動作制御のみを行なうためのバックラッシュ補償制御プログラムの場合、図４に示すバックラッシュ補償制御プログラム４００のうちの対応関係生成部４０３および補正値算出部４０４は不要である。
また、バックラッシュ補償制御装置は、図１に示すように制御対象のロボットとは別体に構成してもよく、あるいは、図１９に示すように制御対象のロボットに内蔵されていてもよい。
【図１】
2004103649.tif 000003
【図２】
2004103649.tif 000004
【図３】
2004103649.tif 000005
【図４】
2004103649.tif 000006
【図５】
2004103649.tif 000007
【図６】
2004103649.tif 000008
【図７】
2004103649.tif 000009
【図８】
2004103649.tif 000010
【図９】
2004103649.tif 000011
【図１０】
2004103649.tif 000012
【図１１】
2004103649.tif 000013
【図１２】
2004103649.tif 000014
【図１３】
2004103649.tif 000015
【図１４】
2004103649.tif 000016
【図１５】
2004103649.tif 000017
【図１６】
2004103649.tif 000018
【図１７】
2004103649.tif 000019
【図１８】
2004103649.tif 000020
【図１９】
2004103649.tif 000021
【図２０】
2004103649.tif 000022
【国際調査報告】
2004103649.tif 000023
2004103649.tif 000024
2004103649.tif 000025
2004103649.tif 000026