(57)【特許請求の範囲】
【請求項１】
第１のリンク、第２のリンク、及びこれら２つのリンクを相対回転運動可能に結合する関節とからなる構成を少なくとも１つ備えた移動ロボットにおいて、
前記関節に設けられて前記2つのリンクを特定の相対回転角度となる方向に付勢する付勢手段と、
前記関節の角度の目標値と現在値との差分を検知する差分検知手段と、
この差分検知手段の出力に関連したエネルギーが供給されて前記関節に前記相対回転運動を促すトルクを発生するモータと、
前記関節が実質的に前記特定の相対回転角度に位置しており、かつ静止状態にあることを検知する静止状態検知手段と、
この静止状態検知手段の出力に関連付けて前記エネルギーの量を減らす調節手段と、
を備えたことを特徴とする移動ロボットの関節制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、移動ロボットの関節を制御する制御装置において、特にロボットが静止状態に保っているとき、関節が消費するエネルギーの量を節約できるように制御する移動ロボットの関節制御装置に関する。
【０００２】
【従来の技術】
関節脚式の移動ロボットは、静止している間でも自分の体重を支えるのに少なからずエネルギーを消費するという動物に似た特徴を持っている。この移動ロボットは、車輪式の移動ロボットが静止している間はエネルギーを消費しないのに比べて、上記特徴は大きな欠点であり、段階や段差があっても移動できる脚式の利点はあるものの、その実用化を阻む原因の一つになっている。
【０００３】
工学的な立場では、静止状態のロボットは外部にしている仕事は零なので、これらのエネルギーは本来消費する必要がないものであり、何らかの改善が求められていた。
【０００４】
ところで、歩行ロボットの関節構成としては、例えば特許公報第２５９２３４０号公報に開示されているような関節構造がある。この脚式歩行ロボットの関節には、電動モータとその出力を減速増力可能な減速機が組合わされて使われている。
【０００５】
また、この特許公報に開示されている構成では、ロボットが起立しているときに関節の起立位置が物理的に不安定な点になっているために、自分の体重を支えるべく脚関節のモータに電流を流し続ける所謂サーボロックをかけておく必要がある。
【０００６】
また、公知のサーボロックは、指令値（又は目標値）である目標関節角度に対して現在の関節角度が一致していれば、モータに供給する電流値は０になるが、上述したように起立姿勢時の関節角度は元々が不安定なため、両者が一致することはあり得ず、両者の差分に決められた比例定数を乗じた量の電流値が増幅器からモータに供給され、これが消費エネルギーの元になっていた。
【０００７】
一方、移動ロボットのエネルギー消費状況を調べてみると、移動そのものに使うエネルギーと、立ち止まっている間に使うエネルギーの２つがあることが分かる。ロボットを移動させる目的の多くが移動した先で何らかの作業をさせることにあり、その作業を遂行している間の姿勢は起立姿勢とする場合が多いことから、歩行中のエネルギーを削減すると共に、起立静止時のエネルギーを削減することは非常に重要な課題である。
【０００８】
また、現在の知能の技術水準では、移動中と言えどもしばしば立ち止まって、自分がいる現在地を確認するのに長時間を要することから、作業遂行の全時間の占める起立姿勢の時間は相当に長いものとなる。従って、静止起立時のエネルギーの節約が大切である理由がそこにある。
【０００９】
さらに、ロボットには脚関節以外にも上体に多くの関節があり、例えば本発明者等が先に開示した特開平８−１９７４６７号公報には関節の配置構成が概念的に示されている。因みに、この公開公報の図１には肘の関節がｂ（ｉ）の記号で示されている。
【００１０】
更にまた、腕にも重力がかかるので、エネルギーを節約する立場から言えば腕を真っ直ぐ下ろした姿勢で保持されることが理想であるが、腕の表面全体に感触を持つ人間とは違い、現在のロボットのセンサは貧弱であり、歩行中に腕が同じ環境下にある他の物体と干渉することを避けるため、通常腕は肘で曲げられた状態で保持され、歩行を行なっている。
【００１１】
このような目的で腕を曲げた状態に保つにも、極めて多くのエネルギーを消費している。
【００１２】
また、技術の進歩により腕を下向きに下ろした状態で歩行することが可能になったとしても、従来技術では加減速に伴う加速度Ｇに対応してその姿勢を維持するのにサーボロックを行なうことから、エネルギー消費が基本的に必要である。
【００１３】
さらに、電気エネルギーが必要なサーボロックをせずに脚関節を所望の位置に固定する技術も他の先行技術の中に見ることができる。例えば脚関節を駆動するのにモータの出力を直動型のネジを介して関節に伝えて駆動する方法である。この方法は、ロボットの体重による外力ではネジがセルフロック状態になって変位を許さず、結局ロボットはエネルギーの供給を受けることなく静止姿勢を保つことができる。
【００１４】
しかし、ネジをモータの減速機に使う方法は、ネジの伝達効率が極めて悪く、肝心の歩行時に消費するエネルギーが増大するという欠点があり、一連の作業行為を遂行すると言う視点から見ると省エネには向かない。
【００１５】
更にまた、他の先行技術の中に、関節にブレーキをかけてロックする技術がある。産業用ロボットでは、電源が切れたときにロボットの落下により人身事故になることを防止する目的で、関節構造と並列に電磁クラッチを設けている。通常は電流を流して電磁クラッチを切っておき、停電などで電源が故障したときには電磁クラッチがバネの力で関節をロックする、と言う概念である。
【００１６】
この概念が歩行ロボットの省エネ対策として使えないことは、正常時に無駄な電流を流して置かなければならないことや、電磁クラッチそのものが非常に重たいこと等を想起すれば自明のことである。
【００１７】
従って、従来提案されたどの技術も、消費エネルギーの削減と言ったテーマには不向きであり、その制御方法についても搭載エネルギーを節約すると言う視点が欠落していた。
【００１８】
【発明が解決しようとする課題】
従来の関節制御技術は、目標関節角度と現在の関節角度の差分を計算し、その差分に一定の比例定数を乗じて操作量とし、その比例定数を最大の負荷が加わる場合にも良好な追従性を保証するように大きめに設定するようにしていた。
【００１９】
従って、関節駆動のモータが消費するエネルギーの量はこの操作量によって決まり、同時にそれは関節に加わる外部からの負荷モーメントに応じたモータトルクを生ずるための電流値に等しい筈である。
【００２０】
ここで、関節の静止時を考えると、この比例定数を大きく設定すると、目標関節角度と現在の関節角度との差分が小さくなり、また逆に小さく設定すると当該差分は大きくなって、結果的には消費するエネルギー（モータへ供給する電流値）は変わらないことになる。つまり、比例定数を変えても消費エネルギーは理論的に変わらないことになっている。
【００２１】
この理由は、あくまで摩擦の影響がない理想的な関節を想定したものであるが、現実の関節には無視できない摩擦がある。しかもこの摩擦は比較的少ないと言われているハーモニック減速機でも相当に大きな摩擦量を示している。
【００２２】
更に、関節には減速機だけでなく、シール材による摩擦や軸受による摩擦もあるので、関節全体としては相当に大きな摩擦を持っている。
【００２３】
次に無視できない摩擦があるときの消費エネルギーを考察して見る。
【００２４】
上記制御系に従って関節はモータによって目標値に近付くべく駆動されるが、実際の関節角度が目標値に近付くにつれて、上記操作量も減少し、結果的にモータへ供給される電流値も減少し、モータトルクは低下する。
【００２５】
すると、低下したモータトルクでは関節の摩擦に対抗できず、静止姿勢では目標値と現在値との間には摩擦に応じた差分が制御偏差として残る。この制御偏差は摩擦が大きいほど大きくなる。この偏差を小さくするには、上記の比例定数を更に大きな量として、モータトルクを増大しなければならない。このように摩擦力は消費エネルギーを増大させる要因にもなっていた。
【００２６】
一方、見方を変えて摩擦の大きい関節が静止している状態から考えて見る。摩擦が大きければ、重量が関節を座屈させようとして働く外部の負荷モーメント（これはほぼ一定値である）の一部が摩擦力で拮抗しているので、モータが負担するモーメント（換言すればモータトルク）はその分少なくしても、関節が座屈することなく静止状態を維持できる。
【００２７】
つまり、静止姿勢でいるときには、厄介物であった摩擦は省エネのための貴重な保持トルクになり得る。摩擦が大きい関節ほど、静止のときには少ないエネルギーで姿勢を維持できると言うことになる。前述のネジを減速機に利用した関節では、この摩擦力が非常に大きいので、静止時に使うエネルギーが０となる。
【００２８】
従って、もし稼働時間に占める静止時間が大きい用途のロボットならば、関節の構造は摩擦が多少あっても、総合的には省エネ向きの構成となり得る場合がある。
【００２９】
本発明は、移動ロボットの関節に内在する摩擦力を利用して静止姿勢を維持する力の一部とし、それに見合ってモータへの供給電流値を低下させることにより、簡単且つ安価にして省エネを図ることができる移動ロボットの関節制御装置を提供することを目的とする。
【００３０】
【課題を解決するための手段】
本発明は上記の目的を達成するため、次のような手段により移動ロボットの関節制御を行うものである。
【００３１】
（１）第１のリンク、第２のリンク、及びこれら２つのリンクを相対回転運動可能に結合する関節とからなる構成を少なくとも１つ備えた移動ロボットにおいて、
前記関節に設けられて前記2つのリンクを特定の相対回転角度となる方向に付勢する付勢手段と、
前記関節の角度の目標値と現在値との差分を検知する差分検知手段と、
この差分検知手段の出力に関連したエネルギーが供給されて前記関節に前記相対回転運動を促すトルクを発生するモータと、
前記関節が実質的に前記特定の相対回転角度に位置しており、かつ静止状態にあることを検知する静止状態検知手段と、
この静止状態検知手段の出力に関連付けて前記エネルギーの量を減らす調節手段と、
を備えたもの。
【００３２】
上記（１）のような移動ロボットの関節制御装置によれば、付勢手段の付勢力と摩擦力とを関節角度の維持力の一部に当てることができるので、関節の消費エネルギーを合理的に且つ大幅に削減し、もって所定の搭載エネルギーで従来よりも長時間の作業遂行能力をロボットに与えることができる。
また、上記（１）のような移動ロボットの関節制御装置によれば、関節に存する摩擦力を利用して静止姿勢を維持する力の一部とすることで、これに見合う分だけモータへの供給電流値を低下させることが可能となり、省エネを図ることができる。
【００４３】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
【００４４】
図１は本発明を適用する移動ロボットとして２足歩行ロボットの概略構成を示す骨格図である。
【００４５】
図１において、この２足歩行ロボットは左右それぞれの脚に６個の関節軸を備えている。これら６個の関節軸は、図示上方から順に、脚部回転用の関節軸１０、股部のピッチ方向の関節軸１２、同ロール方向の関節軸１４、膝部のピッチ方向の関節軸１６、足首部のピッチ方向の関節軸１８、同ロール方向の関節軸２０からなり、その下部には６軸力センサ２２を介して足部２４が備えられている。
【００４６】
ここで、右脚と左脚とは鏡像の関係にあり、対称形状であることから、各々の符合に付されているＲ，Ｌは右、左を意味している。
【００４７】
また、最上部には人体の骨盤に相当する腰板リンク２６が用意されている。この腰板リンク２６には関節の制御に必要な図示しない電源やアンプ及び歩行空間に対するロボットの傾斜を検知して電気信号として出力する傾斜計２８などが搭載されている。
【００４８】
股関節は図示するように３つの関節軸１０，１２，１４から構成されており、足関節と膝関節との結合には大腿リンク３０が使用されている。また、足関節も図示するように２つの関節軸１８，２０から構成されており、足関節と膝関節との結合にはスネリンク３２が使用されている。
【００４９】
足関節と足部２４との間には、床反力Ｆの垂直方向成分Ｆｚ、横方向成分Ｆｙ及び床反力によって生ずるモーメントＮの垂直方向成分Ｎｚ、進行方向成分Ｎｘ、横方向成分Ｎｙを各々独立に分離して検出できる６軸力センサ２２が設けられる。
【００５０】
この６軸力センサも公知であり、これを足部と足関節との間に装着することも公知であるから、ここではその説明を省略する。
【００５１】
図２（ａ）には、本発明の説明に最も適した膝関節の側面を概念図として示したものである。膝関節が起立姿勢をとるとき、大腿リンク２３０とスネリンク２３２とは概ね図示のように一直線となる位置を占めている。二つのリンクは適切な軸受によって互いに回転可能に結合されており、図示しないモータによって回転駆動されるものとする。
【００５２】
また、このときのロボット全体の重心をＣＧとすれば、重心は一般に回転軸２１６の真上に位置することはなく、膝関節の回転中心２１６よりも進行方向前方Ｌだけ離れた位置にある。従って、重力は絶えずスネリンク２３２に対して大腿リンク２３０を図示のモーメントＭの方向に回転させようと働いている。その負荷モーメントの大きさは、
Ｍ＝ｍｇ×Ｌ
で与えられる。ロボットの静止状態を考えれば、慣性力はないから、関節にかかる負荷はこのモーメントだけである。
【００５３】
関節の摩擦力が無視できるほどに小さければ、モータはこのモーメントＭに対抗して図示位置を維持するトルクを発生することで、ロボットは起立姿勢を保つ。
【００５４】
また、図２（ｂ）には肘関節が前腕を前に出した状態の様子を概念図として示すものである。この姿勢では前腕の質量ｍ´がその重心に重力として働き、重心から肘関節までの距離をＬ´とおけば、重力によるモーメントＭ´が前腕を反時計方向に回そうとして働き、そのモーメントＭ´の大きさは、
Ｍ´＝ｍ´ｇ×Ｌ´
で示される。肘関節のモータに必要なトルクは、摩擦力がなければこのモーメントに対抗する大きさである。
【００５５】
以上のことから、所定の姿勢角度を維持するのに必要なモータのトルクがどれだけ必要なのかが明らかである。モータのトルクと流す電流値との間には比例関係があり、このときの比例定数をトルク定数と呼ぶ。
【００５６】
このトルクをモータが負担するには、減速機の速度比が大きく関与する。速度比が大きければモータのトルクはそれだけ小さくて済むが、速度比は運動条件を考慮して決めるので、静止時の条件だけで決めるわけではない。本発明は速度比とは関係なく省エネを図る点に特徴がある。
【００５７】
次に従来の技術では上記の必要トルク以上のトルク発生をモータに強いている理由を述べる。
【００５８】
関節には必ず摩擦力が発生していて減速機の内部摩擦力がその大部分を占めている。関節角度を所望の角度にしたいとき、公知の制御技術では次のようにモータ供給電流値を決めている。
【００５９】
図３は従来及び本発明の実施の形態と共通な関節制御システムを示す構成図である。
【００６０】
関節角度の目標値の創生には従来種々の方法が提案されているが、ここでは説明を簡潔にするため、予め歩行に適した関節角度を時系列データとして計算し、メモリに蓄えておく方法について説明する。
【００６１】
脚関節に関して言えば、図１に示す構造では左右６関節づつ合計１２の関節があることから、ｊ番目の関節に関する量にはｊの添字を付けて区別することにする。また、コンピュータは決められたサイクル毎に起動して所定のプログラムをこなし、その結果をモータの増幅器に出力するので、時刻ｔのときの量にはｔという添字を付けて他のサイクルとは区別することにする。
【００６２】
また、関節角度と角速度のうち、目標として与える指令値にはＤの添字を付け、現在値にはＲの添字を付けてある。そして、関節角度をθ、角度を時間で微分した角速度をωとする。また、モータへ供給する電流をｉとし、その結果モータが出力するトルクをτとする。
【００６３】
図３において、メモリ装置３１０には歩行に必要な目標関節角度の時系列データが格納されているものとする。コンピュータ（ＣＰＵ）３１２は、メモリ装置３１０からこの時系列データを取込んで、時刻ｔのときの１２個の目標関節角度データＤθｊを読取るものとする。
【００６４】
ここでは、時刻ｔのときの説明なので、添字ｔを省略してある。
【００６５】
また、同時に実際の１２個の関節角度Ｒθｊを関節駆動用のモータ３１４と同軸に結合されている角度計３１６から、出力信号として受取る。両者の差分を計算して、その差分に比例定数Ｋを乗じた量を増幅器３１８に角速度指令値Ｄωｊとして出力する。すなわち、
Ｄωｊ＝Ｋ×（Ｄθｊ−Ｒθｊ）
同図で、増幅器３１８は速度型の増幅器であり、コンピュータの出力である目標角速度Ｄωｊが入力されると同時に角度計３１６で求められた実際の角速度Ｒωｊが入力されると、両者の間に存在する差分に比例した電流値ｉｊをモータ３１４に与える。このときの比例定数をＡとすると、
ｉｊ＝Ａ×（Ｄωｊ−Ｒωｊ）
で表される。
【００６６】
モータ３１４は上記の電流値ｉｊが供給されると、回転トルクτｊを発生してそのときの負荷に応じた角速度Ｒωｊで回転し、このモータ３１４に結合されたリンク３２０を回わす。従って、リンク３２０は目標関節角度Ｄθｊに追従して回転することになる。
【００６７】
また、コンピュータ３１２に操作に必要な信号を入力する入力装置３２２及びコンピュータ（ＣＰＵ）３１２からシステムの現状を把握するための情報を取込んで表示する表示装置３２４が設けられている。
【００６８】
さらに、必要に応じて外界センサ３２６により検出された外界情報をコンピュータ（ＣＰＵ）３１２に取込んでロボットの行動を自律的に変えられるようにしてもよい。この場合、外界センサとしては前述の傾斜計や６軸力センサなどがある。
【００６９】
図４は図３の制御系の一例を示すブロック図である。
【００７０】
ここで、制御ブロック図の記述方法は、情報量をラプラス変換した後の量で表示するのが決まりなので、ここでもその決まりに従って表してある。即ち、ラプラス変換前の量を小文字で表示し、またラプラス変換後の量を大文字で表示している。例えば関節角度がθならば、ラプラス変換後はΘとして表示している。
【００７１】
コンピュータ（ＣＰＵ）は目標関節角度ＤΘｊと現在の関節角度ＲΘｊとの差分を計算して、その差分に比例定数Ｋを乗じた量を改めて関節の角度指令値ＤΩｊとして出力する。
【００７２】
また、増幅器３１８はこの角速度指令値ＤΩｊが実現するように現在の角速度ＲΩｊを参照して両者の差分（ＤΩｊ−ＲΩｊ）に比例定数Ａを乗じた電流Ｉｊをモータ３１４に入力する。
【００７３】
すると、このモータ３１４はモータのトルク定数を掛けたモータトルクを発生して回転し、モータの出力軸は負荷の慣性モーメントや粘性抵抗などで決まる角速度ＲΩｊで回転し、目標角度ＤΩｊに追従する運動を始める。
【００７４】
ここで、本当に目標角速度が達成されているかどうかを調べ、もし不足していればさらに電流値を高めるべく、モータの出力軸の回転速度ＲΩｊは増幅器３１８にフィードバックされて、確実性を増す。
【００７５】
モータの回転軸の角速度はエンコーダでパルス数に変換されていることから、このパルス数をカウンターで数えることで、関節角度ＲΘｊに変換され、この関節角度ＲΘｊに変換され、この関節角度ＲΘｊもフィードバックされてコンピューに戻される。
【００７６】
この制御系には摩擦力が考慮されていないので、実際の関節制御では摩擦力を考慮した電流値を供給する必要がある。目標角度ＤΘｊが変化して追従運動が起きるとき、現実の角度ＲΘｊがある程度目標角度ＤΘｊに近付くと、目標角速度ＤΩｊも小さくなり、従って実際の角速度ＲΩｊとの差分も縮まるようになる。
【００７７】
これにより、モータ電流値も小さくなるので、その電流値で発生するモータトルクも小さくなり、やがて摩擦力の方が大きくなる。従って、制御偏差（ＤΘｊ−ＲΘｊ）を残したまま、関節角度は静止し、目標関節角度と実際の関節角度とは一致しない。
【００７８】
この制御偏差を少なくするには、比例ゲインＫまたは増幅器の増幅度Ａを大きく設定し、僅かな偏差でも大きなモータトルクを発生して（消費エネルギーを増加させて）偏差を少なくするしかない。このようにすれば、追従性は向上するものの、それでも偏差を零にすることはできない。
【００７９】
ここで、摩擦力による偏差が生じて静止しているときのエネルギー消費の内訳を説明すると、前記重力による負荷モーメントに対抗するモータトルクと、この摩擦力に抗して偏差を解消する方向に出力するトルクの二つに分かれる。つまり、静止しているときでも、重力モーメントに対抗する電流値以外に、この摩擦力を克服するための電流値が余計に必要となる。
【００８０】
そこで、考え方を変えて、静止姿勢のときには目標角度と実際の角度との間に偏差の存在を是認し、モータトルクを減少させていくと、摩擦力は絶えず運動の方向とは逆向きに作用する性質があるため、今度は摩擦力の方向が逆向きに変わって、負荷モーメントに対抗する方向に働き出す。
【００８１】
本発明では、摩擦力を克服するために電流値を増大させてきた従来の考え方を改め、静止姿勢をとるときには逆に摩擦力を利用して省エネ化を図ろうとするものである。
【００８２】
以下本発明の実施の形態を図５に示す可変定数Ｋの特性を決定する特性図に基いて説明する。
【００８３】
図４において、コンピュータ（ＣＰＵ）は目標関節角度ＤΘｊと現在の関節角度Ｒθｊとの差分を計算し、その差分に定数Ｋを乗じた量を求めて関節角速度指令値ＤΩｊとして増幅器に出力する。
【００８４】
ここで、従来の制御系では定数Ｋを一定の定数としていたが、本発明ではこれを次のような規則で変更可能な可変定数とするもので、増幅器以降の制御系は従来と同様である。
【００８５】
可変定数Ｋを次の式で定義する。
【００８６】
Ｋ＝αｋ      但し、ｋは定数
ここで、αの特性を示すと図５の通りである。図５において、横軸に関節が静止したときからの時間ｔを、また縦軸にはαをプロットしている。
【００８７】
この特性は、関節角度指令値が変動しているときは、αを１とする。関節が静止してから微小な時間ｔ１まではαも変化させない。この時間ｔ１は例えば０．５秒などと設定する。
【００８８】
以上図５の特性から明かなように、Ｋの値は時刻ｔ１までは一定値ｋを示すが、その後は徐々に低下して行き、時刻ｔ２以降はα０ｋと言う低い値に固定するすることが分かる。
【００８９】
次に本発明による移動ロボットの関節制御装置の作用を説明する。
【００９０】
図６は本発明に基く制御アルゴリズムの第１の例を示すものである。
【００９１】
コンピュータは所定の時間ごとに起動され、図６に示されたプロセスを処理するものとする。ここでは、所定の時間２ミリ秒として説明する。
【００９２】
また、図示しないが、コンピュータを最初に立ち上げるときに初期化を行い、その初期化の段階で制御に必要な各種のパラメータを設定できるものとする。パラメータとしては、α＝１，α０，Ｆｌａｇ−ＥＳ＝０，Ｆｌａｇ−ＷＴ＝０，Ｃｔ＝０，ｋ＝ｋ等がある。
【００９３】
STEP-111でタイマーの割込みが行われると、コンピュータはSTEP-112でメモリから関節データを読込み、これらを関節角度の目標値と定める。例えば脚部について言えば、１２個の関節目標値が決まる。次に関節角度計の示す現在の角度をSTEP-113で読取り、STEP-114に進む。STEP-114では計画上の角速度の計算を次の式に基いて行う。
【００９４】
δθｊｐ＝Ｄθｊｔ−Ｄθｊ（ｔ−１）
ここで、δθｊｐはメモリに収納されている関節角度のうち、一回前の時刻の角度から今回の角度をどれだけ増やすべきかを表す量である。コンピュータの起動時間が２ミリ秒と定めていることから、この量は関節角速度と見なし得る。初回の場合にはＤθｊ（ｔ−１）＝Ｄθｊｔとして扱う。
【００９５】
STEP-115では、この計画角速度δθｊｐが０かどうかを判定する。つまり、計画上で関節が静止している状態なのかどうかの判別を行っている。初回の場合、δθｊｐは０である。
【００９６】
STEP-115での判定結果がＮｏのときはSTEP-116に進んで、Flag-ESのビットを０とし、更にSTEP-117に進んでFlag-Wtのビットも０にしておく。STEP-118に進み、αの値を１と決め、STEP-150に進む。
【００９７】
STEP-115の判定結果がＹｅｓのときは、STEP-120に進み、Flag-ESが１か否かを判定する。初回はFlag-ESが０なのでＮｏに進み、STEP-121で今度はFlag-Wtが１か否かを判定する。
【００９８】
初回はやはりFlag-Wt＝０なのでＮｏに進み、STEP-122でこのビットを１に変更する。これから時間ｔ１のカウントを開始するため、STEP-123でカウンターの設定値Ｃｔを２５０に設定する。２ミリ秒ごとに起動されるためにＣｔの２５０は０．５秒に相当する。その後はSTEP-118に進み、αの値を１に決める。
【００９９】
次の回からはFlag-Wtのビットは１になっている筈なので、STEP-121の判定結果はＹｅｓになってSTEP-124に進み、ここでカウンターの値を１だけ減じてSTEP-126に進む。
【０１００】
STEP-126では１だけ減じた結果カウンターの値が０になったか否かを判定する。最初の内はカウンターの値は０にはならないため、Ｎｏであり、STEP-118でαを１とする。しかし、２５０回カウンター値の減少が続いたときは（０．５秒経過したときは）、STEP-126の結果が０になるので、STEP-127に進み、Flag-ESのビットを１にしてαの減少モードに入る。
【０１０１】
次の回からは、先のSTEP-120での結果がＹｅｓになる筈なのでSTEP-130に進み、ここで実際の角速度δθｊＲの算出を次式により行う。
【０１０２】
δθｊＲ＝Ｒθｊｔ−Ｒθｊ（ｔ−１）
この量が角速度になるのは、すでにδθｊｐの項で説明したのと同じ理由である。
【０１０３】
次にSTEP-131ではδθｊＲが０、即ち現実に関節は動いていないか否かを判定する。その判定結果がＹｅｓならばSTEP-132に進み、前回のαの値α（ｔ−１）から微小量δαだけ減じた量αｔを算出する。なお、初回のときはα（ｔ−１）＝１である。
【０１０４】
次にSTEP-133に進み、δαだけ減じた結果αｔが最小値α０を割り込んでいないかどうかを判定する。初回はあり得ないからＮｏに進みSTEP-134に進んでこのαｔをもってαと定義し、STEP-150に進む。
【０１０５】
しかし、何回かこの処理を繰返すとαの値もΔαづつ減少していくので、何時かはSTEP-133の判定結果がＹｅｓになるときがくる。その時はSTEP-134に進み、α０をもってαと定義する。
【０１０６】
また、先のSTEP-131の判定結果がＮｏのときは計画上の角速度が０であるにも関わらず現実の角速度が生じているので、モータトルクを低下し過ぎているわけで、このときはSTEP-140に進んでαｔを緊急避難的に増大する。この例ではΔαの４倍の量を前回のαに加えてαｔとしている。
【０１０７】
STEP-150ではαに基いてＫを算出し、STEP-151に進み、角速度指令値を算出する。STEP-152ではその角速度指令値を増幅器に出力し、次のSTEP-153に進む。
【０１０８】
STEP-153では添字ｔをｔ＋１に書換えてこのプロセスを終え、STEP-154で元に戻してタイマーの割込みを待つ。
【０１０９】
このようなアルゴリズムに基いて移動ロボットの関節制御を行うことにより、次のような作用効果を得ることができる。
【０１１０】
同じ姿勢を継続していれば、可変定数Ｋが小さくなるので、従来よりも当該関節での消費エネルギーを節約できる。脚部について言えば、起立姿勢の関節角度は元々負荷モーメントが小さくなる角度であるから、摩擦力でも負荷モーメントの相当な部分を担えることになる。
【０１１１】
可変定数Ｋの低下は、静止状態が所定の時間続かなければ始まらないようにしている。このことは極めて短い時間関節が所定の角度に止どまるようなことがあっても、それは無視してＫを低下させないことになる。
【０１１２】
何か急にロボットを停止させたいときに、急停止をかけると急停止直後はロボットの姿勢が安定していないので、モータへの供給電流値を低下させることは良くないが、この短時間の猶予であればその問題を解消できる。
【０１１３】
さらに、また運動中に短時間だけある角度を保持するようなことがあっても、モータへの供給電流値は低下しないので、引き続き追従性の高い運動を継続することができる。
【０１１４】
本発明のハード構成は基本的に従来のシステムと異ならないため、製作コストを上昇させることなく、経済的に有利であるなどの優れた利点がある。
【０１１５】
図５及び図６は本発明の実施の形態の一例に過ぎず、本発明の要旨を逸脱しない範囲で種々の応用が可能である。例えば図５ではαの特性を直線的に変化させているが、これに限定されるものではなく、曲線的に変化させても良いことは言うまでもない。また、図５の時間ｔ１を設けることも必要条件ではなく、この時間帯を省いても何ら発明の本質を損なうものではない。さらに、図６のSTEP-131ではδθｊＲが０か否かを判別するようにしたが、角度の目標値と実角度との差分が縮まる方向ならδθｊＲは０でなくても良い。
【０１１６】
図７は本発明に基く制御アルゴリズムの第２の例を示すもので、図６と同一処理部分には同一符合を付してその説明を省略し、ここでは特徴のある処理部についてのみ述べる。
【０１１７】
図７において、第１の例ではSTEP-140でαｔを緊急避難的に増大させているが、その後現実の関節角速度が静止したとしても、次のサイクルタイムが来れば同じようにαを低減するルーチンに入り、やがて現実の角速度は有意の量として観測され、再度緊急避難的にαを増大させなければならない。
【０１１８】
つまり、このαの値の近辺では何度も同じようなことが起こり、ロボットの関節が静止したり、動いたりのハンチング現象を繰返す。
【０１１９】
第２の例では、この欠点を除去するため、STEP-140とSTEP-134との間に図示点線で囲んで示すSTEP-210を設け、このSTEP-210によりαの最小値α０の値をこのときのαｔとする処理を行うものである。これ以外はすべて第１の例と同じである。
【０１２０】
このような処理を行うことにより、次回からはαを低減するルーチンに入ったとしても、STEP-132を経てSTEP-133に進んだとき、Ｙｅｓに進むようになり、αは新しいα０に固定され、上記の欠点である現象が避けられる。
【０１２１】
図８は本発明が適用される移動ロボットの関節として、付勢手段が付加された膝関節の構成を模式的に示す側面図である。
【０１２２】
この膝関節に付加された付勢手段は、２つのリンクが所定の角度をとるようにするためのもので、この付勢手段については本出願人が先に出願した特許（特願平２０００−２２０９３６号）と同じなので、ここではその要点だけを簡潔に述べる。
【０１２３】
いま、リンク８３０を大腿リンク、リンク８３２をスネリンクとする。スネリンクの一部には凹所８３４が存し、この凹所８３４に図示の起立姿勢の一でバネ８３６で押圧されるボール８３８が設けられている。このバネとボールは大腿リンク側に設けられ、適切なガイドにより図示横方向に移動できないようにその動きを規制するものである。
【０１２４】
この状態から例えばスネリンクが反時計方向に回転を始めるとボールはバネの力に抗して上方に持上げられ、スネリンクを図示位置に戻そうとするトルクを発生することになる。
【０１２５】
即ち、図示位置を起立時の目標角度に設定すれば、その角度を保持するモータのトルクはバネで生じたトルクの分だけ小さなトルクで済むことになる。従って、モータの消費するエネルギーを小さく設定することが可能となる。
【０１２６】
ここで注目すべきことは、前述した第１及び第２の例の関節制御と同じく関節には摩擦力が存在し、この摩擦力と前記バネによる付勢力とが関節角度を目標関節角度の近辺に保持していることである。敢えて近辺にと述べたのは、摩擦力のために目標関節角度と実際の関節角度との間には前述のように制御偏差があって一致しないためである。
【０１２７】
さらに注目すべきことは、前記目標関節角度の近辺から、関節角度が上記偏差を増やす方向に動いた場合、モータへの供給電流値も制御系から増えるし、付勢力もバネが押し縮められて増えることから、再び重力によるモーメントと保持力とが釣り合い、安定することである。
【０１２８】
この事実はモータへの供給電流値が低下し、関節が重力に耐えきれなくなって動き始めても、付勢力が増える分、モータへの供給電流値をそれほど増やす必要がないことを示し、また動きが少なければ、放置しておいてもロボットが倒れることはない。従って、前述の付勢手段を備えた関節では、更に一層のモータ電流値の低減を行うことができることになる。
【０１２９】
図９はかかる移動ロボットの関節を制御するための本発明に基く制御アルゴリズムの第３の例を示すもので、図６と同一処理部分には同一符合を付してその説明を省略し、ここでは特徴のある処理部についてのみ述べる。
【０１３０】
図９において、STEP-130で現実の角速度を計算し、STEP-131ではその速度が静止しているか否かを判定するが、その判定結果がＮｏであればSTEP-305に進み、関節角度の目標値に対する現在の角度の差分が微小な角度Δθを超えているか否かを判定する。もし超えていなければＮｏに進み、STEP-132で引き続きαの値を微小量Δαだけ減少させる。
【０１３１】
STEP-305での判定結果がＹｅｓであれば、αの値が下げ過ぎなので、前述した第１の例及び第２の例と同様にSTEP-140で緊急避難的にαを増大する。このときはSTEP-310で第２の例と同じく、αの下限値（最小値）α０をこの時αｔに書換えて、今後はこの新しいα０以下にならないようにする。
【０１３２】
このようなアルゴリズムによる関節の制御において、付勢手段の付勢力は関節角度の目標値が静止角度である場合、その目標値に追従制御が行われているときは、関節の摩擦力に対抗して目標値と現在値とが一致する方向に作用する。従って、上記の制御偏差は一層小さくなり、静止姿勢における関節角度は目標関節角度により近付くことになる。
【０１３３】
その結果、偏差に比例した電流値をモータに供給するシステムの特性から、モータの消費するエネルギーが削減されることになる。ここまでは付勢手段の効果である。
【０１３４】
しかし、静止した後では、この付勢力は関節の摩擦力に加担して、関節角度を現在の静止姿勢の角度に保持すべく作用する。外部からの負荷モーメントが何らかの理由で増加し、現在の関節角度が維持できなくなり、関節が多少動いたとする。
【０１３５】
システムはこの増加した偏差に比例した電流値をモータに送り、偏差が縮小されるように制御する。また付勢手段も付勢力を増やすので、偏差が止めどもなく拡大することはない。
【０１３６】
次に外部からの負荷モーメントが増加することなく、一定の場合を考える。αの値を小さくするとモータへの供給電流値が小さくなり、摩擦力と付勢力とモータトルクとの３つの量の和が負荷モーメントより小さくなると、関節角度が微小量増大し、その結果モータへの供給電流値が増えると共に、付勢力も増大するので、偏差の拡大が阻止され、偏差がある程度増加した時点で釣り合うことになる。このときロボットは決められた静止姿勢がほんの僅か崩れるが、実害はない。
【０１３７】
また、制御が決められている静止角度（例えば起立時の膝関節角度）と、付勢手段が機械的に決めている起立位置とが、完全に一致することはあり得ず、角度にして数秒〜数十秒程度の食い違いがおきることが考えられる。
【０１３８】
従来ではこのような場合、制御システムがこの食い違いを制御偏差として捉え、偏差量に見合った電流値を流し続けることになるが、第３の例ではこのような起立時の食い違いに対して電流値を下げるようにしているので、モータへ流す電流値が合理的に低減され、エネルギーの浪費を抑制できる。
【０１３９】
なお、本発明は上記し且つ図面に示す実施の形態に限定されるものではなく、例えばファジー理論を用いても前述と同様に移動ロボットの関節制御を行うことができる等、その要旨を変更しない範囲で種々変形して実施できることは言うまでもない。
【０１４０】
【発明の効果】
以上述べたように本発明によれば、移動ロボットの関節に内在する摩擦力を利用して静止姿勢を維持する力の一部とし、それに見合ってモータへの供給電流値を低下させるようにしたので、簡単且つ安価にして省エネを図ることができる移動ロボットの関節制御装置を提供できる。
【図面の簡単な説明】
【図１】移動ロボットとして２足歩行ロボットを示す概略構成図。
【図２】（ａ）は同移動ロボットの膝関節の側面を示す概念図、（ｂ）は肘関節が前腕を前に出した状態の様子を示す概念図。
【図３】本発明による移動ロボットの膝関節制御装置の実施の形態を示すシステム構成図。
【図４】同実施の形態を示す制御ブロック図。
【図５】図４に示す比例ゲインとして可変定数Ｋの特性を決定する特性図。
【図６】同実施の形態において、膝関節を制御するＣＰＵの処理内容の第１の例を示す制御アルゴリズム。
【図７】同実施の形態において、膝関節を制御するＣＰＵの処理内容の第２の例を示す制御アルゴリズム。
【図８】移動ロボットの膝関節として付勢手段が付加された膝関節の構成を模式的に示す側面図。
【図９】同実施の形態において、図８の膝関節を制御するＣＰＵの処理内容の第３の例を示すアルゴリズム。
【符号の説明】
３１０…メモリ
３１２…ＣＰＵ
３１４…モータ
３１６…角度計
３１８…増幅器
３２０…リンク
３２４…表示装置
３２２…入力装置
【図１】
0004625910.tif 000002
【図２】
0004625910.tif 000003
【図３】
0004625910.tif 000004
【図４】
0004625910.tif 000005
【図５】
0004625910.tif 000006
【図６】
0004625910.tif 000007
【図７】
0004625910.tif 000008
【図８】
0004625910.tif 000009
【図９】
0004625910.tif 000010