以下、図面を参照しながら本発明の実施形態について詳解する。
A.本実施の形態によるロボットの構成
図1及び図2には、本発明の一実施形態に係る脚式移動ロボットの全体構成を示している。また、図3には、ロボットの自由度構成を模式的に示している。参照番号1は2足歩行型のロボット全体を示している。ロボット1の胴体部ユニット2の上部に頭部ユニット3が配設されるとともに、胴体部ユニット2の上部左右にそれぞれ同じ構成の腕部ユニット4A、4Bがそれぞれ配設され、且つ胴体部ユニット2の下部左右に同じ構成の脚部ユニット5A、5Bがそれぞれ所定位置に取り付けられている。
胴体部ユニット2は、体幹上部を形成するフレーム10及び体幹下部を形成する腰ベース11が腰関節機構12を介して連結することにより構成されている。そして、体幹下部の腰ベース11に固定された腰関節機構12の各アクチュエータA1、A2をそれぞれ駆動することによって、体幹上部を図3に示す直交するロール軸13及びピッチ軸14の回りにそれぞれ独立して回転させることができる。
また、頭部ユニット3は、フレーム10の上端に固定された肩ベース15の上面中央部に首関節機構16を介して取り付けられている。そして、首関節機構16の各アクチュエータA3、A4をそれぞれ駆動することによって、図3に示す直交するピッチ軸17及びヨー軸18の回りにそれぞれ独立に回転させることができる。
また、各腕部ユニット4A、4Bは、それぞれ肩関節機構19を介して肩ベース15の左右に取り付けられている。そして、左右それぞれ対応する肩関節機構19の各アクチュエータA5、A6並びにA9、A10をそれぞれ駆動することによって、図3に示す直交するピッチ軸20及びロール軸21の回りにそれぞれ独立に回転させることができる。
図示の例では、左右各腕部ユニット4A、4Bは、それぞれ上腕部を形成するアクチュエータA7並びにA11の出力軸に肘関節機構22を介して前腕部を形成するアクチュエータA8並びにA12が連結され、前腕部の先端に手部23が取り付けられている。左右の各腕部ユニット4A、4Bでは、各アクチュエータA7並びにA11を駆動することによって、前腕部を図3に示すヨー軸24の回りに回転させることができる。また、各アクチュエータA8並びにA12を駆動することによって、前腕部を図3に示すピッチ軸25の回りに回転させることができる。
また、各脚部ユニット5A、5Bは、股関節機構26を介して体幹下部の腰ベース11にそれぞれ取り付けられている。そして、左右それぞれに対応する股関節機構26の各アクチュエータA13〜A18並びにA19〜A24を駆動することによって、図3に示す互いに直交するヨー軸27、ロール軸28及びピッチ軸29の回りにそれぞれ独立に回転させることができる。
図示の例では、各脚部ユニット5A、5Bは、それぞれ大腿部を形成するフレーム30の下端に膝関節機構31を介して下腿部を形成するフレーム32が連結されるとともに、フレーム32の下端に足首関節機構33を介して足部34が連結されている。左右の各脚部ユニット5A、5Bでは、膝関節機構31を形成するアクチュエータA16又はA22を駆動することによって、下腿部を図3に示すピッチ軸35の回りに回転させることができる。また、左右の足首関節機構33のアクチュエータA17、A18又はA23、A24をそれぞれ駆動することによって、足部34を図3に示す直交するピッチ軸36及びロール軸37の回りにそれぞれ独立して回転させることができる。
図4には、本実施形態に係る脚式移動ロボット1の制御構成を模式的に示している。胴体部ユニット2の体幹下部を形成する腰ベース11の背面側には、ロボット1全体の動作制御を司るメイン制御部40と、電源回路及び通信回路などの周辺回路41と、バッテリ45となどが収納されてなる制御ユニット42が配設されている。
また、図5には、制御ユニット42の内部構成を模式的に示している。制御ユニット42は、各構成ユニット(胴体部ユニット2、頭部ユニット3、各腕部ユニット4A、4B及び各脚部ユニット5A、5B)内にそれぞれ配設された各サブ制御部43A〜43Dと接続しており、これらサブ制御部43A〜43Dに対して必要な電源電圧を供給したり、これらサブ制御部43A〜43Dとデータ通信を行なったりすることができる。
各サブ制御部43A〜43Dは、それぞれ対応する構成ユニット内の各アクチュエータA1〜A24と接続しており、構成ユニット内の各アクチュエータA1〜A24をメイン制御部40から与えられる各種制御コマンドに基づいて指定された状態に駆動する。
頭部ユニット3には、図5に示すように、このロボット1の「目」として機能するCCD(Charge Coupled Device:電荷結合素子)カメラ50や、「耳」として機能するマイクロホン51などの各種外部センサと、「口」として機能するスピーカ52となどの出力装置がそれぞれ所定位置に配設されている。また、手部23の表面や足部34の底面部などには、外部センサとしてのタッチ・センサ53が配設されている。さらに、制御ユニット42内には、バッテリ・センサ54や、加速度センサ55など、各種の内部センサが配設されている。
CCDカメラ50は、周囲の状況を撮像し、得られた画像信号S1Aをメイン制御部に送出する。また、マイクロホン51は、各種外部音を集音し、得られた音声信号S1Bをメイン制御部40に送出する。また、タッチ・センサ53は、ユーザからの物理的な働きかけや、外部との物理的な接触を検出し、検出結果を圧力検出信号S1Cとしてメイン制御部40に送出する。また、バッテリ・センサ54は、主電源としてのバッテリ45の残量を所定周期毎に検出し、バッテリ残量検出信号S2Aとしてメイン制御部40に送出する。また、加速度センサ56は、3軸方向(x軸、y軸及びz軸)の加速度を所定周期毎に検出し、加速度検出信号S2Bとしてメイン制御部40に送出する。
メイン制御部40は、CCDカメラ50、マイクロホン51、タッチ・センサ53などからそれぞれ供給される外部センサ出力としての画像信号S1A、音声信号S1B及び圧力検出信号S1Cなどと、バッテリ・センサ54や加速度センサ55などからそれぞれ供給される内部センサ出力としてのバッテリ残量検出信号S2A及び加速度検出信号S2Bなどに基づいて、ロボット1の周囲及び内部の状況や、外部物体との接触などを判断する。
そして、メイン制御部40は、この判断結果と、あらかじめ内部メモリ40Aに格納されている制御プログラムと、そのとき装填されている外部メモリ56に格納されている各種制御パラメータとに基づいて続く行動を決定し、決定結果に基づく制御コマンドを対応するサブ制御部43A〜43Dに送出する。この結果、この制御コマンドに基づき、そのサブ制御部43A〜43Dの制御の下に、対応するアクチュエータA1〜A24が駆動され、かくして頭部ユニット3を上下左右に揺動させたり、腕部ユニット4A、4Bを上にあげたり、歩行するなどの行動がロボット1により発現されることとなる。
また、メイン制御部40は、音声信号S1Bに基づく音声認識処理によりユーザの発話内容を認識するとともに、認識結果に応じた音声信号S3をスピーカ52に与えることにより、ユーザと対話するための合成音声を外部に出力させる。
このようにして、ロボット1は、周囲及び内部の状況などに基づいて自律的に行動することができ、またユーザと対話することもができる。
図6には、本実施形態に係る脚式移動ロボット1上で稼動するソフトウェア制御構成を模式的に示している。
同図に示すように、ロボット制御用のソフトウェアは、複数層のソフトウェアで構成される階層構造を備え、制御用ソフトウェアにはオブジェクト指向プログラミングを採り入れることができる。各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。
最下層のデバイス・ドライバは、各関節アクチュエータの駆動やセンサ出力の受信などハードウェアに対して直接アクセスすることを許容されたオブジェクトであり、ハードウェアからの割り込み要求に応答して該当する処理を行なう。
仮想ロボットは、各種デバイス・ドライバと所定のオブジェクト間通信プロトコルに基づいて動作するオブジェクトとの仲介となるオブジェクトである。脚式移動ロボット1を構成する各ハードウェア装置へのアクセスは、この仮想ロボットを介して行なわれる。
サービス・マネージャは、コネクション・ファイルに記述されたオブジェクト間の接続情報を基に、各オブジェクトに接続を促すシステム・オブジェクトである。
システム層(OS)より上位のソフトウェアは、オブジェクト(プロセス)毎にモジュール化されており、必要な機能毎にオブジェクトを選択して置換容易な構成になっている。したがって、コネクション・ファイルを書き換えることで、データ型が一致するオブジェクトの入出力を自由に接続することができる。
デバイス・ドライバ層とシステム層以外のソフトウェア・モジュールは、ミドルウェア層とアプリケーション層に大別される。
図7には、ミドルウェア層の内部構成を模式的に図解している。
ミドルウェア層は、脚式移動ロボット1の基本的な機能を提供するソフトウェア・モジュールの集まりであり、各モジュールの構成は脚式移動ロボット1の機械的・電気的な特性や仕様、形状などハードウェア属性の影響を受ける。このミドルウェア層は、機能的に、認識系のミドルウェア(図7の左半分)と、出力系のミドルウエア(図7の右半分)に分けることができる。
認識系のミドルウェアでは、画像データや音声データ、その他のセンサから得られる検出データなど、ハードウェアから供給される生データを仮想ロボット経由で受け取ってこれらを処理する。例えば、各種入力情報に基づき、音声認識、距離検出、姿勢検出、接触、動き検出、色認識などの処理を行ない、認識結果を得る(例えば、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「(動く物体を)検出した」、「(障害物を)検出した」、「(障害物を)認識した」など)。認識結果は、入力セマンティクス・コンバータを介して上位のアプリケーション層に通知され、その後の行動計画や学習などに利用される。
一方、出力系のミドルウェアでは、歩行、動きの再生、出力音の合成、目に相当するLEDの点灯制御などの機能を提供する。すなわち、アプリケーション層において立案された行動計画を出力セマンティクス・コンバータ経由で受信処理し、脚式移動ロボット1の機能毎にロボットの各ジョイントのサーボ指令値や出力音、出力光(LED)、出力音声などを生成し、仮想ロボットを介して脚式移動ロボット1の機体動作として発現する。また、本実施形態では、複数のアクチュエータ・モータの総体での過負荷状態を検出する負荷監視モジュール部や、かかる過負荷状態の検出に応答して機体保護動作を実行するモジュール部などを含んでいる(後述)。
図8には、アプリケーション層の内部構成を模式的に図解している。アプリケーション層は、脚式移動ロボット1の機体動作や本能・感情などの内部状態を制御する1以上のアプリケーション・ソフトウェアで構成される。
アプリケーションは、入力セマンティクス・コンバータ経由で受け取った認識結果を使って、脚式移動ロボット1の行動計画を決定して、出力セマンティクス・コンバータ経由で決定された行動を返す。
アプリケーションは、ロボットの感情をモデル化した感情モデルと、本能をモデル化した本能モデルと、外部事象を逐次記憶していく学習モジュールと、行動パターンをモデル化した行動モデルと、行動モデルによって決定された行動の出力先を切り替える行動切替部とで構成される。
入力セマンティクス・コンバータ経由で入力される認識結果は、感情モデル、本能モデル、行動モデルに入力されるとともに、学習モジュールには学習教示信号として入力される。
行動モデルによって決定された脚式移動ロボット1の行動は、行動切替部並びに出力セマンティクス・コンバータ経由でミドルウェアに送信され、脚式移動ロボット1の機体上で実行される。あるいは、行動切替部を介して、行動履歴として感情モデル、本能モデル、学習モジュールに、行動履歴として供給される。
感情モデルと本能モデルは、それぞれ認識結果と行動履歴を入力に持ち、感情値と本能値を管理している。行動モデルは、これら感情値や本能値を参照することができる。また、学習モジュールは、学習教示信号に基づいて行動選択確率を更新して、更新内容を行動モデルに供給する。
B.アクチュエータA 1 〜A 24 の構成
既に述べたように、本実施形態に係る脚式移動ロボット1の各関節自由度は、アクチュエータA1〜A24によって実現される。
図9には、アクチュエータA1〜A24の内部構成を示している。同図に示すように、アクチュエータA1〜A24は、回転トルクを発生させるモータ部60と、当該モータ部60において発生された回転トルクを増幅して出力するトルク増幅部61で構成されている。
モータ部60においては、金属等の導電材からなるモータ・ケース62の内部に回転軸受け63A、63Bにより回転自在に枢支されたロータ軸64が設けられている。図10には、ロータ軸64及びロータ軸磁極角度センサの構成を示している。同図に示すように、ロータ軸64にロータ基体65が2極に着磁されたリング状の永久磁石でなるロータ・マグネット65が同軸に一体化されることによりロータ66が形成されている。
また、図11には、ロータ66及びステータス鉄心67A〜67Fの位置関係を図解している。モータ・ケース62の内側には、同図に示すように、ロータ66を取り囲むように6つのステータ鉄心67A〜67Fが等間隔(60°間隔)で固着されている。これら各ステータ鉄心67(67A〜67F)には、それぞれ巻線が施され、3相のコイル68(68u、68v、68w)を構成している。
図示のように、3組のそれぞれ対向する2つのコイル68をそれぞれu相、v相、及びw相とする。そして、これらu相、v相及びw相の各コイル68にそれぞれ120度ずつ位相がずれたコイル電流を印加し、各コイル68に駆動電流の電流値に応じた強さの磁界を発生させることによって、ロータ66を介してコイル電流の電流値に応じた大きさの回転トルクをロータ66に発生させることができる。
図12には、トルク増幅部61の構成を示している。図6並びに図9から分かるように、トルク増幅部61においては、モータ・ケース62の先端部に着脱自在に固定されたギア・ケース69を有する。そして、ギア・ケース69の内部には、ギア・ケース69の内側面に固定された環状の内歯車70と、ロータ軸64の先端部に固定された太陽歯車71と、内歯車70及び太陽歯車71間に120度の間隔で配置された第1〜第3の遊星歯車72A〜72Cからなる遊星歯車機構73が設けられている。
また、遊星歯車機構73を構成する第1〜第3の遊星歯車72A〜72Cの各軸74A〜74Cは、それぞれギア・ケース69の先端に回転自在に配置された出力軸75に固定されている。これにより、トルク増幅部61においては、モータ部60からロータ軸64を介して与えられる回転トルクを、遊星歯車機構73を介して増幅して出力軸75に伝達し、当該出力軸75を介して外部に出力することができる。
また、モータ部60のモータ・ケース62の内部には、ロータ軸64の回転一を検出するエンコーダ76と、外部の上位コントローラ(対応するサブ制御部43A〜43D)からの動作指令に基づいて出力軸64の回転角度、回転トルクなどを制御する制御基板77が収納されている(図9を参照のこと)。
この場合、エンコーダ76は、ロータ66のロータ基体65の前端面に固着された、2極に着磁された樹脂マグネット78と、第1及び第2のホール素子79A、79Bで構成されている(図10(C)を参照のこと)。図13には制御基板77の構成を示している。同図(B)に示すように、第1及び第2のホール素子79A、79Bは、ロータ軸64と同心円状に90度の位相差を以って位置するように制御基板77に搭載されている。
また、エンコーダ76は、ロータ66のロータ基体65の前端面に固着された、2極に着磁された樹脂マグネット78と、第1及び第2のホール素子79A、79Bで構成されている(図10(C)を参照のこと)。図13及び図14には、制御基板77の構成を示している。同図(B)に示すように、第1及び第2のホール素子79A、79Bは、ロータ軸64と同心円状に90度の位相差を以って位置するように制御基板77に搭載されている。このような構成により、エンコーダ76においては、ロータ軸64の回転位置を、ローラ軸64と一体に回転する樹脂マグネット78の回転に伴また、本実施形態では、複数のアクチュエータ・モータの総体での過負荷状態を検出する負荷監視モジュール部や、かかる過負荷状態の検出に応答して機体保護動作を実行するモジュール部などを含んでいる(後述)。第1及び第2のホール素子79A、79Bの配設位置における磁束密度の変化として検出することができる。
また、図14に示すように、制御基板77においては、環状に形成されたプリント配線板の一面側に、制御IC80が搭載されるとともに、制御IC80の制御の下にモータ部60の各コイル68u、68v、68wに駆動電流Iu、Iv、Iwを供給する駆動回路81が形成されることにより構成されている。制御IC80は、第1及び第2のホール素子79A、79Bの出力をそれぞれ第1及び第2の位置検出信号S10A、S10Bとして入力し、これら入力値に基づいてロータ軸64の回転位置を検出することができる。
また、制御基板77においては、ケーブル83(図9を参照のこと)を通じて上位コントローラ(対応するサブ制御部)と接続されており、かくして制御IC80がこのケーブル83経由で上位コントローラと通信し、且つ電源電圧VCCを入力する。
制御IC80は、ケーブル83を介して上位コントローラから与えられる動作指定COMと、第1及び第2の位置検出信号S10A、S10Bに基づいて駆動回路81を制御することにより、モータ部60のu相、v相及びw相の各コイル68に対してそれぞれ対応する電流値の駆動電流Iu、Iv、Iwを印加する。これにより、上位コントローラからの動作指令COMに応じた回転角度又は回転トルクとなるようにモータ部60を回転駆動させることができる。
C.制御IC80及び駆動回路81の具体的構成
図15には、制御IC80及び駆動回路81の構成を示している、同図に示すように、制御IC80は、演算処理部90、PWM制御部91及び付加論理回路92から構成されている。
演算処理部90は、CPU、ROM及びRAMなどを含むマイクロコンピュータ構成でなり、上位コントローラからの動作指令COMに基づくモータ部60のロータ軸64の目標とすべき回転位置と、このときエンコーダ76から与えられる第1及び第2の位置検出信号S10A、S10Bに基づき算出される現在のロータ軸64の回転位置との差分を演算するとともに、この差分を解消するために目標とすべき出力トルク(以下、これを目標トルクと呼ぶ)を演算し、当該演算結果をトルク指令信号S12としてPWM制御部91に送出する。
PWM制御部91は、供給されるトルク指令信号S12に基づいて、モータ部60の出力トルクとして目標トルクを得られるように、付加論理回路92を介して駆動回路81をPWM制御する。
駆動回路81は、u相用の一対のPNP型トランジスタTRu1及びNPN型トランジスタTRu2と、v相用の一対のPNP型トランジスタTRv1及びNPN型トランジスタTRv2と、w相用の一対のPNP型トランジスタTRw1及びNPN型トランジスタTRw2で構成されている。
各PNP型トランジスタTRu1、TRv1、TRw1は、それぞれエミッタが電源電圧VCCに接続されるとともに、コレクタがそれぞれ対をなすNPN型トランジスタTRu2、TRv2、TRw2のコレクタと接続され、各NPN型トランジスタTRu2、TRv2、TRw2は、それぞれエミッタが接地されている。また、各PNP型トランジスタTRu1、TRv1、TRw1のコレクタと、これと対をなすNPN型トランジスタTRu2、TRv2、TRw2のコレクタとの各接続中点P1〜P3は、u相用のコイル68u及びw相用のコイル68wの接続中点P4、u相用のコイル68u及びv相用のコイル68vの接続中点P6、並びにv相用のコイル68v及びw相用のコイル68wの接続中点P6とそれぞれ接続されている。
駆動回路81におけるu相用のPNP型トランジスタTRu1及びv相用のNPN型トランジスタTRv2をオンにするとともに、u相用のNPN型トランジスタTRu2及びv相用のPNP型トランジスタTRv1をオフにすることによって、u相のコイル68uを通電状態とさせて矢印方向に駆動電流Iuを流すことができる。また、u相用及びv相用の各PNP型トランジスタTRu1、TRv1をオフ、u相用及びv相用の各NPN型トランジスタTRu2、TRv2をオフとすることによって、端子P4、P5をオープン状態とし、u相のコイル68uの非通電状態とすることができる。
同様に、駆動回路81におけるv相用のPNP型トランジスタTRv1及びw相用のNPN型トランジスタTRw2をオンにするとともに、v相用のNPN型トランジスタTRv2及びw相用のPNP型トランジスタTRw1をオフにすることによって、v相のコイル68vを通電状態とさせて矢印方向に駆動電流Ivを流すことができる。また、v相用及びw相用の各PNP型トランジスタTRv1、TRw1をオフ、各NPN型トランジスタTRv2、TRw2をオフとすることによって、端子P5、P6をオープン状態とし、v相のコイル68vの非通電状態とすることができる。
また同様に、駆動回路81におけるw相用のPNP型トランジスタTRw1及びu相用のNPN型トランジスタTRu2をオンにするとともに、w相用のNPN型トランジスタTRw2及びu相用のPNP型トランジスタTRu1をオフにすることによってw相のコイル68wを通電状態とさせて矢印方向に駆動電流Iwを流すことができる。また、w相用及びu相用の各PNP型トランジスタTRw1、TRu1をオフ、各NPN型トランジスタTRw2、TRu2をオフとすることによって、端子P6、P4をオープン状態とし、w相のコイル68wの非通電状態とすることができる。
このようにして、PWM制御部91は、駆動回路81のu相用、v相用及びw相用の各PNP型トランジスタTRu1、TRv1、TRw1及び各NPN型トランジスタTRu2、TRv2、TRw2のベースに対してトルク指令信号S12に基づいて得られる目標トルクに応じた第1〜第6のPWM信号S13u1、S13u2、S13v1、S13v2、S13w1、S13w2を印加することにより、u相、v相及びw相の各コイル68u、68v、68wをそれぞれ所定のタイミングで通電状態及び非通電状態に順次切り換え、これによりモータ部60を回転駆動させることができる。
なお、このようなPWM制御によりモータ部60の位置制御を行なう場合、コイル68u、68v、68wの非通電時に当該コイル68u、68v、68wの端子P4、P5、P6をオープン状態とすると、モータ部60に通電された電流(厳密には電荷)が抜けてしまうことによるトルク・ロスの発生や、コギングによるトルクむらの影響を受け易くなるという問題が生じる。
本実施形態では、コイル68u、68v、68wの非通電時、コイル68u、68v、68wの端子P4、P5、P6をオープン状態とせずに短絡(ショート)状態とすることにより、コイル68u、68v、68wに通電された電流(厳密には電荷)が抜け難くなるという性質を利用することで、このトルク・ロスの問題を解決するようにしている。図16には、コイルの終端をオープン状態並びに短絡状態にした場合におけるコイル電流の過渡応答特性を示しているが、短絡状態にした方が過渡特性の整定時間が長くなり、コイル電流が抜けにくくなることが分かる
これは、コイル68u、68v、68wの端子P4、P5、P6を短絡状態とすることによって、モータ部60のコイル68u、68v、68wの直流抵抗とインダクタンスに起因する過渡応答の時間遅れを利用したものである。またその短絡状態により、モータ部60のコイル68u、68v、68wにロータ・マグネット65からの磁束密度により逆起電力が発生する。この逆起電力によりロータ66の回転方向の逆方向に力が作用し、外力による回転に対する粘性抵抗を作り出すことができ、ブレーキに類似した効果を得ることができる。このようなモータ部60への粘性係数を作り出すことによる粘性抵抗により、トルク・ロスがなくコギングによるトルクむらの影響を軽減できる。
但し、このようにコイル68u、68v、68wの端子P4、P5、P6の短絡状態を形成した場合、上述のようにモータ部60に一種の粘性抵抗を与えることとなり、コイル68u、68v、68wの端子P4、P5、P6の短絡によるブレーキの影響を受けてモータ部60のコンプライアンス(機械的受動性)がなくなる問題を招来する。
そこで、本実施形態では、コイル68u、68v、68wの非通電状態の期間、コイル68u、68v、68wの端子P4、P5、P6をオープン状態と短絡状態とに順次交互に切り換えるとともに、この際オープン状態の期間と短絡状態の期間との比率を所望するコンプライアンスとなるように調整することによって、コイル68u、68v、68wの端子P4、P5、P6をオープン状態とすることによるトルク・ロスなどの問題と、コイル68u、68v、68wの端子P4、P5、P6を短絡状態とすることによるコンプライアンスの低下という問題とをともに解決するようにしている。
実際上、各コイル68u、68v、68wの端子P4、P5、P6をオープン状態と短絡状態とに順次切り換える手段として、PWM制御部91の後段に付加論理回路92が設けられている。付加論理回路92には、あらかじめ設定されたコイル68u、68v、68wの端子P4、P5、P6におけるオープン状態及び短絡状態の各期間の比率に応じてPWM変調された矩形波状のBRAKE_PWM制御信号S14が、第1〜第6のPWM信号S13u1、S13u2、S13v1、S13v2、S13w1、S13w2とともにPWM制御部91から与えられる。図17には、BRAKE_PWM制御信号の波形例を示している。
付加論理回路92は、コイル68u、68v、68wの非通電時であって、BRAKE_PWM制御信号S14が論理「1」レベルの期間は、コイル68u、68v、68wの端子P4、P5、P6を短絡させるように対応する第1〜第6のPWM信号PWM信号S13u1、S13u2、S13v1、S13v2、S13w1、S13w2の論理レベルを必要に応じて切り換えるようになっている。
具体的には、通常のコイル非通電時には、PWM制御部91からは、u相のコイル68uの端子P4、P5をオープン状態にするため、u相用のPNP型トランジスタTRu1及びv相用のPNP型トランジスタTRv1をオフ、u相用のNPN型トランジスタTRu2及びv相用のNPN型トランジスタTRv2をオフにする第1〜第4のPWM信号S13u1、S13u2、S13v1、S13v2が出力される。これに対し、付加論理回路92は、BRAKE_PWM制御信号S14が論理「1」レベルの期間は、オフ状態のu相用のPNP型トランジスタTRu1、並びにv相用のPNP型トランジスタTRv1をそれぞれオンに転じて、u相のコイル68uの端子P4及びP5の短絡状態を間歇的に形成する。
同様に、通常のコイル非通電時には、PWM制御部91からは、v相のコイル68vの端子P5、P6をオープン状態にするため、v相用のPNP型トランジスタTRv1及びw相用のPNP型トランジスタTRw1をオフ、v相用のNPN型トランジスタTRv2及びw相用のNPN型トランジスタTRw2をオフにする第3〜第6のPWM信号S13v1、S13v2、S13w1、S13w2が出力される。これに対し、付加論理回路92は、BRAKE_PWM制御信号S14が論理「1」レベルの期間は、オフ状態のv相用のPNP型トランジスタTRv1、並びにw相用のPNP型トランジスタTRw1をそれぞれオンに転じて、v相のコイル68vの端子P5及びP6の短絡状態を間歇的に形成する。
また同様に、通常のコイル非通電時、PWM制御部91からは、w相のコイル68wの端子P6、P4をオープン状態にするため、w相用のPNP型トランジスタTRw1及びu相用のPNP型トランジスタTRu1をオフ、w相用のNPN型トランジスタTRw2及びu相用のNPN型トランジスタTRu2をオフにする第1、第2、第5及び第6のPWM信号S13u1、S13u2、S13w1、S13w2が出力される。これに対し、付加論理回路92は、BRAKE_PWM制御信号S14が論理「1」レベルの期間は、オフ状態のw相用のPNP型トランジスタTRw1、並びにu相用のPNP型トランジスタTRu1をそれぞれオンに転じて、w相のコイル68wの端子P6及びP4の短絡状態を間歇的に形成する。
一方、付加論理回路92は、通常のコイル非通電時、BRAKE_PWM制御信号S14が論理「0」レベルのときには、PWM制御部91からの第1〜第6のPWM信号S13u1、S13u2、S13v1、S13v2、S13w1、S13w2を、切り替えることなくそのまま出力する。したがって、論理「0」レベルの期間には、u相、v相及びw相の各コイル68u、68v、68wの端子P4、P5、P6はそれぞれオープン状態のままとなる。
図18には、付加論理回路92の具体的構成を示している。図示の付加論理回路92においては、PWM制御部91からの第1のPWM信号S13u1、第3のPWM信号S13v1及び第5のPWM信号S13w1の論理積がAND回路100で演算されるとともに、第2のPWM信号S13u2、第4のPWM信号S13v2及び第6のPWM信号S13w2の排他的論理和がNOR回路101において演算される。
また、これらAND回路100の出力と、NOR回路101の出力との論理積の反転がNAND回路102Bにおいて演算され、このNAND回路102Bの出力と、BRAKE_PWM制御信号S14の反転信号が102Aから出力された結果との論理和がOR回路103において演算される。
さらに、このOR回路103の出力と、元の第1〜第6のPWM信号S13u1、S13u2、S13v1、S13v2、S13w1、S13w2との論理積が第1〜第6のAND回路104A〜104Fにおいてそれぞれ演算される。そして、これら第1〜第6のAND回路104A〜104Fの出力がそれぞれ上述のようにu相用のPNP型トランジスタTRu1及びNPN型トランジスタTRu2と、v相用のPNP型トランジスタTRv1及びNPN型トランジスタTRv2と、w相用のPNP型トランジスタTRw1及びNPN型トランジスタTRw2にそれぞれ与えられる。
ここで、コイル非通電時にコイル68u、68v、68wの端子P4、P5、P6を短絡状態にすると、図16を参照しながら説明したしたように、過渡応答により、コイル68u、68v、68wの駆動電流Iu、Iv、Iwがゼロに戻るまでの時間が長くなる。したがって、オープン状態と短絡状態のスイッチング動作を繰り返した場合、コイル68u、68v、68wの非通電時に駆動電流Iu、Iv、Iwがゼロに戻る前に次の通電が開始される。
これによりコイル68u、68v、68wに供給される駆動電流Iu、Iv、Iwの最大値は、コイル68u、68v、68wの通電及び非通電の動作の度に逐次上昇していくが、その上昇傾向はデューティ比すなわちBRAKE_PWM制御信号S14が論理「1」レベルとなる比率にほぼ比例する。同様に、コイル68u、68v、68wの駆動電流Iu、Iv、Iwの実効値も徐々に増加していくことになるが、その上昇傾向はデューティ比すなわちBRAKE_PWM制御信号S14が論理「1」レベルとなる比率にほぼ比例する。
また、モータ部60の出力トルクは、コイル68u、68v、68wに供給する駆動電流Iu、Iv、Iwの値の和にモータ部60のトルク定数Ktを乗じた値となるので、コイル68u、68v、68wの通電状態及び非通電状態を繰り返したとき、駆動電流Iu、Iv、Iwの値の和の増大に伴って、モータ部60の出力トルクの実効値は増大していく。
このときの上昇傾向は、BRAKE_PWM制御信号S14のデューティ比すなわち当該BRAKE_PWM制御信号S14が論理「1」レベルとなる比率にほぼ比例する。そして、モータ部60の出力トルクの出力が上昇していく傾きの大小が、モータ部60の粘性係数の大きさに比例する。言い換えれば、BRAKE_PWM制御信号S14のデューティ比によってモータ部60の粘性係数を、デューティの分解能の範囲で動的に任意に設定することができる。
したがって、BRAKE_PWM制御信号S14のデューティ比を変化させることによって、モータ部60の粘性係数を制御できる。また、u相、v相及びw相の各コイル68u、68v、68wの非通電時において、当該コイル68u、68v、68wに入る電流(電荷の量)を制御できる。
このとき、粘性係数が大きくなるようにBRAKE_PWM制御信号S14のデューティ比を設定すると、モータ部60の保持力が向上し、コギングなどのトルクの外乱が減る。また外力へのコンプライアンス量を制御することができる。
このように、PWM制御部91が付加論理回路92に供給するBRAKE_PWM制御信号S14のデューティ比をPWM制御することにより、非通電時におけるコイル68u、68v、68wの端子P4、P5、P6オープン状態と短絡状態の期間の比率を調整することにより、所望のコンプライアンスを得ることができる。図19には、BRAKE_PWM制御信号S14のデューティ比とモータ部60の粘性係数の関係を示している。
D.アクチュエータA 1 〜A 24 の負荷吸収機構
高度な脚式移動ロボットは、歩行やその他の脚式作業を例えば自立的に行なう。さらにうつ伏せや仰向けなどの床上姿勢からの起き上がり動作や、腕を利用した物体の把持・運搬といった動作を行なうことができる。他方、転倒や進行途上の物体との衝突、あるいは計画軌道上で異物の挟み込みなどによって、過大な負荷が関節アクチュエータに印加されるケースが想定される。このような過負荷によって、機体が破損したり、あるいは塑性変形を起こしてしまったりするなど、致命的な損傷を被ることがある。このため、関節アクチュエータを構成する各モータにおいて負荷吸収のための機構を採り入れることが重要である。
この項では、このロボット1の関節駆動に用いられる各アクチュエータA1〜A24に搭載された負荷吸収機能について説明する。
本発明者らは、関節アクチュエータ用のモータに印加される負荷トルクを、衝突などによりリンクなどの部材の破壊に至る歪みエネルギを被るインパルス的な、いわば「衝撃負荷」と、このような衝撃負荷ほど高いトルクではないが、比較的高い負荷トルクが一定時間以上継続して(すなわち定常的に)印加され部材の塑性変形を招来する、いわば「定常負荷」に大別して取り扱うことにした(図20を参照のこと)。後者の定常的な負荷トルク値は、例えば使用するモータのストール・トルク近傍、あるいは回路保護の限界などの閾値である。本発明者らは、衝撃負荷を負荷トルクのAC成分、定常負荷を負荷トルクのDC成分として位置付けている。
定常負荷すなわち負荷トルクのDC成分に関しては、アクチュエータ・モータの出力軸に連結されたリンクに静的に印加される負荷トルクとアクチュエータ・モータ自身による発生トルクの絶対値の和に基づいて検出することができる。そして、そのトルク和が所定時間以上継続して塑性変形に至る閾値を越えたことに応答して、負荷のDC成分が過大であることを認識することができる。モータの発生トルクはモータ電流に比例するという性質から、モータ電流を電流−電圧変換することを経てトルクを計測することができる。
例えば、図21に示すように、一端部がアクチュエータ110の出力軸111に連結されたリンク112の他端部(出力軸111から距離L1の位置)が壁や物体などに当たるなどしてリンク112が動かないように保持された状態になった時に当該リンク112の他端部に壁や物体から外力F1が与えられ、アクチュエータ110が新たに増えた負荷分のトルクを発生している場合を考える。
この場合、アクチュエータ110が最初に発生している発生トルクをTORG、アクチュエータ110の出力軸111に与えられると当該アクチュエータ110が壊れる負荷トルクの値をTBRKとして、アクチュエータ110に破損が生じない条件は、次式に示すように、外力F1による新たに増えた負荷トルクとアクチュエータ110の発生トルクTORGとの絶対値の和の値Toutが所定時間以上TBRKを越えないことである。
このような負荷トルクTOUTは、負荷のDC成分に相当し、以下では「静的な負荷トルク」とも呼ぶ。上式(1)より、次式を満たすようにアクチュエータ110の発生トルクT ORG を制御することによって、アクチュエータ110に破損が生じるのを未然に防止することができる。
アクチュエータ110の発生トルクT ORG は、アクチュエータ110へ供給するコイル電流として検出することができる。ここで、負荷トルクの閾値をコイル電流に置き換えた値を2.5Aとし、この閾値が継続する時間の限界を2.0秒とし、図25にはトルクの検出結果を示している。継続して電流値をサンプリングする場合、チャタリングの問題がある。すなわち、実質的には2.5Aを越える期間が2.0秒継続していても、チャタリングにより閾値を下回る度にカウンタがリセットされて、検出タイミングを逸しかねない。そこで、閾値を下回る期間が非常に短い(例えば4.0ミリ秒以内)であれば、これを無視して閾値以上であるとしてカウンタ実行を継続するようにしても良い。
一方、衝撃負荷すなわち負荷のAC成分に関しては、本発明者らは、モータの出力軸に与えられる運動エネルギの変化量がモータに印加されるトルクと角速度の積に比例するという性質を導出した。またその運動エネルギが出力軸部材に加わる歪みエネルギとほぼ等しいという性質があるため、この性質を利用して運動エネルギ変化量に基づいて衝撃に対する負荷トルクを検出し、この負荷トルクが部材の破壊に至るような閾値を越えたことに応答して、負荷のAC成分が過大であることを認識することができる。
例えば、図22に示すように、リンク112の他端部出力軸111から距離L2の位置)に物体が落下するなどして、この他端部にリンク112を回転させるような衝撃に対する負荷トルクが与えられた場合について考える。このような負荷トルクは、負荷のAC成分に相当し、以下では「動的な負荷トルク」とも呼ぶ。
このときのこの動的な負荷トルクによりリンク112に与えられる運動エネルギをKE、これにより回転するリンク112の回転角度をφ、リンク112の慣性モーメントをJとすると、これらは次式を満たす。
そして、この運動エネルギKEがすべて出力軸111を通してアクチュエータ110に伝わり、歪みエネルギに変換されるものとして、その歪みエネルギがアクチュエータ110において各部材の歪みとして吸収可能な弾性範囲内であればアクチュエータ110に破損が生じず、これに対して弾性範囲を越えて塑性範囲となるとアクチュエータ110に破損が生じることとなる。
そこで、このように歪みエネルギがアクチュエータ110における各部材の弾性範囲を越える大きさのものであったときに、アクチュエータ110の発生トルクT ORG を下げるように制御することにより、かかる動的な負荷トルクによる当該アクチュエータ110の破損を防止することができる。
ここで、リンク112に与えられた動的な負荷トルクの運動エネルギKEの変化量を検出するため上式(3)を時間tについて1階微分すると、次式のようになる。
上式(4)において、τは前述の通りアクチュエータ110の出力トルクT OUT を表す。すなわち、エネルギの変化量はモータに印加されるトルクと角速度の積に比例するので、エネルギ変化量に基づいて負荷トルクを検出し、この負荷トルクが部材の破壊に至る閾値を越えたことに応答して、負荷のAC成分が過大であることを認識することができる。
ここで、負荷トルクのAC成分に関しては、インパルス的な性質を持つことから(図20を参照のこと)、瞬時に過負荷域に到達してしまい、負荷吸収動作が間に合わない、という可能性がある。上述したように、エネルギの変化量がモータに印加されるトルクと角速度の積に比例するという性質に直接的に基づいた場合、トルクが過負荷域に到達するまで待たなければ過負荷を検出することができないが、これでは応答性に問題がある。
そこで、単にエネルギの変化量を計測するのではなく、エネルギを時間軸上で2階微分して、変化量の傾きをみて、この傾きが所定値以上であれば過負荷域に到達することを予測し、応答性よく負荷吸収動作を実行する。上式(4)を時間軸上でさらに微分すると(すなわち、エネルギに関する上式(3)を時間tで2階微分すると)、下式のようになる。
上式(5)は、運動エネルギKEの変化の加速度を表すものである。式(5)における右辺の演算結果がアクチュエータ110における各部材の弾性範囲から塑性範囲の境界となる所定の閾値以上となった場合に、アクチュエータ110の発生トルクT ORG を下げるように制御することにより、アクチュエータ110の破損を未然に防止することができる。
但し、上式(5)式における右辺第2項のような2次微分演算は演算処理が煩雑となる。また、本発明者らによる実験の結果、右辺第2項は演算結果への寄与が小さいことが判明している。そこで、式(5)の右辺第2項を省略し、右辺の第1項に所定の比例定数GKを乗算したものと近似し、次式に示す評価関数f(t)を導入することにする。
この評価関数f(t)の演算結果が上述の閾値以上となった場合に、アクチュエータ110の発生トルクT ORG を下げるように制御することで、より容易な演算処理でアクチュエータ110の破損を未然に防止することができる。図32には、運動エネルギKEの変化量をみた場合と、評価関数f(t)を導入した場合における負荷吸収機構の応答特性を比較している。同図からも分かるように、後者の方が、発生トルクの低い段階で、しかもより応答性よく過負荷状態を検出することができる。
制御基板77は、上述したような原理に基づいて、図21並びに図22を参照しながら説明した静的及び動的な負荷トルクによるアクチュエータA1〜A24の破損を防止するための負荷吸収手段として作用する。図14に示すように、制御基板77におけるプリント配線板の一面側には、駆動回路81に対する電源供給ラインLINを流れる電流IR1の大きさを電圧Viとして検出する電圧検出部82が設けられている。
電圧検出部82は、駆動回路81に対する電源供給ラインLINの一部に設けられた第1の抵抗R1と、第2〜第5の抵抗R2〜R5及びオペアンプ83からなる差動増幅器84とから形成され、第1の抵抗R1による降下電圧Viを差動増幅器84において検出し、この検出結果を電圧検出信号S11として制御IC80に送出する。
電圧Viは第1の抵抗R1を流れる電流IR1に比例し、また、電流IR1は、上式(1)の左辺に比例することから、この電圧Viも上式(1)式の左辺に比例する。ここで、KViを比例定数として次式が成り立つものとする。
そして、常に次式を満足するように、PWM制御部91を制御することによって、静的な負荷トルクによるアクチュエータA1〜A24の破損を防止することができる。
図23には、制御IC80の演算処理部90が実行する、第1の負荷吸収処理手順RT1をフローチャートの形式で示している。演算処理部90は、同処理手順RT1に従って、電圧検出部82から供給される電圧検出信号S11を基に、電圧Viが、あらかじめ設定された所定の第1の閾値SH1(上式(8)のTBRK/KVi)を超えないようにPWM制御部91を制御することにより、対応するリンクに静的な負荷トルクすなわち負荷のDC成分が与えられた場合のアクチュエータA1〜A24の破損を防止する。
演算処理部90は、上述のような上位コントローラから与えられる動作指令COMに基づく対応するモータ部60に対する位置制御と並行してこの第1の負荷吸収処理手順RT1をステップSP0において開始し、続くステップSP1において、電圧検出部82から与えられる電圧検出信号S11に基づき得られる電圧Viが第1の閾値SH1以上となったか否かを判断する。そして演算処理部90は、このステップSP1において否定結果を得ると、肯定結果を得るまでこのステップSP1を繰り返す。
そして、演算処理部90は、この後対応するリンクが壁や外部物体に当たるなどして当該リンクに静的な負荷トルクが与えられることによりステップSP1において肯定結果を得ると、ステップSP2に進んでPWM制御部91を制御してBRAKE_PWM制御信号S14のデューティ比を0〔mN−m/(rad/s)〕に変更させることにより対応するモータ部60のコンプライアンスを増加させ、続くステップSP3において、モータ部60の各コイル68u、68v、68wに流れる電流の実行値が小さくなるようにPWM制御部91を制御し、発生トルクT ORG が小さくなるようにする。
続いて、演算処理部90は、ステップSP4に進んで、上位コントローラに対して負荷吸収処理(ステップSP2及びステップSP3)を実行した旨を通知し、この後ステップSP5に進んで、上位コントローラからその衝撃吸収処理を解除すべき旨の通知があるのを待ち受ける。
そして、演算処理部90は、やがて上位コントローラからこの通知を受けることによりステップSP5において肯定結果を得ると、ステップSP6に進んで、PWM制御部91を制御してBRAKE_PWM制御信号S14のデューティ比、すなわちモータ粘性係数を元の値に戻させることによりモータ部60のコンプライアンスを衝撃検出前の状態に戻した後、ステップSP7に進んで、モータ部60の各コイル68u、68v、68wに印加する駆動電流Iu、Iv、Iwの実効値を元に戻すようにPWM制御部91を制御し、発生トルクT ORG が所定の値をとるようにする。そして演算処理部90は、その後ステップSP1に戻り、同様の処理繰り返す。
このようにして、演算処理部90は、対応するリンクに静的な負荷トルクが与えられたときに、これに応じて対応するアクチュエータA1〜A14におけるモータ部60のモータ粘性係数及び発生トルクT ORG を制御する。
一方、上式(6)において、アクチュエータA1〜A24の出力トルクτは、電圧検出部82における抵抗R1を流れる電流IR1に比例し、また電流IR1は、上述のように第1の抵抗R1による降下電圧Viと比例することから、比例定数をKi、Kθとして、式(6)を次式のように変形することができる。
上式(9)からも明らかなように、上式(6)で与えられる評価関数f(x)の時々刻々の値は、電圧検出部82により検出される電圧Viの時間的変化量に比例定数Kiを乗算した乗算結果と、エンコーダ76により検出されるモータ部60のロータ軸64の回転位置φの時間的変化量に比例定数Kθを乗算した乗算結果との積として求めることができる。
図24には、制御IC80内の演算処理部90が実行する、第2の負荷吸収処理手順RT2をフローチャートの形式で示している。演算処理部90は、この処理手順RT2に従って、電圧検出部82から与えられる電圧検出信号S11に基づき得られる電圧Viと、エンコーダ76から与えられる第1及び第2の位置検出信号S10A、S10Bから得られるモータ部60のロータ軸64の回転位置φに基づいて、評価関数f(t)があらかじめ設定された所定の第2の閾値SH2を超えないようにPWM制御部91を制御することにより、対応するリンクに動的な負荷トルクすなわち負荷のAC成分が与えられた場合のアクチュエータA1〜A24の破損を防止する。
演算処理部90は、第1の負荷吸収処理手順RT1と並行して第2の負荷吸収処理手順RT2をステップSP10において開始する。続くステップSP11において、電圧検出部82からの電圧検出信号S11及びエンコーダ76からの位置検出信号S10A、S10Bに基づいて上式(9)の演算処理を実行するとともに、この演算結果が第2の閾値SH2以上となったか否かを判断する。なお、上式(9)におけるKiは1.0、Kθは4.0に設定されており、また第2の閾値SH2は実験結果より最適と考えられる1.3〜4.0〔 mN−m・rad/S2〕の範囲で設定されている。そして、演算処理部90は、肯定結果を得るまでこのステップSP11を繰り返す。
そして、演算処理部90は、やがて対応するリンクが衝撃を受けることによりステップSP11において肯定結果を得ると、ステップSP12に進んで、PWM制御部91を制御してBRAKE_PWM制御信号S14のデューティ比を0〔mN−m/(rad/s)〕に変更させることによりモータ部60のコンプライアンスを増加させる。続くステップSP13において、上位コントローラからの動作指令等に基づき算出される目標トルクの最大値を本来算出される値の10〜20〔%〕となるようにPWM制御部91を制御して発生トルクT ORG を発生させる。
続いて、演算処理部90は、ステップSP14に進んで、上位コントローラに対して負荷吸収処理(ステップSP12及びステップSP13)を実行した旨を通知する。その後、ステップSP15に進んで、上位コントローラからその衝撃吸収処理を解除すべき旨の通知があるのを待ち受ける。
そして、演算処理部90は、やがて上位コントローラからこの通知を受けることによりステップSP15において肯定結果を得ると、ステップSP16に進んで、PWM制御部91を制御してBRAKE_PWM制御信号S14のデューティ比、すなわちモータ粘性係数を元の値に戻させることにより、モータ部60のコンプライアンスを衝撃検出前の状態に戻す。その後、ステップSP17に進んで、モータ部60の各コイル68u、68v、68wに印加する駆動電流Iu、Iv、Iwの実効値を元に戻すようにPWM制御部91を制御し、発生トルクT ORG を所定の値に戻す。そして演算処理部90は、この後ステップSP11に戻り、この後は同様の処理繰り返す。
このようにして、演算処理部90は、対応するリンクに動的な負荷トルクが与えられたときに、これに応じて対応するアクチュエータA1〜A24におけるモータ部60のモータ粘性係数及び発生トルクを制御する。
以上の構成において、このロボット1では、各アクチュエータA1〜A24の出力軸75と連結されたリンクに対してアクチュエータが破壊するおそれのある静的又は動的な負荷トルクが与えられた場合、アクチュエータA1〜A24のコンプライアンスが向上するとともに、アクチュエータA1〜A24の出力トルクが下がることにより、負荷トルクに応じて倣うようにそのリンクが変位する。
例えば図33に示した従来のトルク・リミッタ130を用いた場合と同様に衝撃によるアクチュエータA1〜A24の破損を未然に防止することができる一方、かかる負荷吸収が電気的なアクチュエータA1〜A24に対する制御のみによって行なわれる。従来のメカ的な構成を有するトルク・リミッタ130を用いる場合に比べ、本発明に係る負荷吸収に関するアクチュエータA1〜A24の特性に大きなばらつきは生じ難く、また温度による影響も少ない。
また、かかる負荷吸収の制御をアクチュエータA1〜A24の通常の位置制御を行なう制御IC80により併せて行なうことができる。すなわち、新たな部品を必要としないため、従来のメカ的な構成を有するトルク・リミッタ130を用いる場合に比してアクチュエータA1〜A24全体としての構成を簡易化及び小型軽量化させることができる。
以上の構成によれば、アクチュエータA1〜A24の出力軸75に連結されたリンクに新たに与えられた静的な負荷トルクと、アクチュエータA1〜A24の発生トルクとの絶対値の和を電圧Viとして検出し、当該和分が所定の第1の閾値SH1以上となったときに、発生トルクを下げるようにアクチュエータA1〜A24を制御する。一方、当該リンクに与えられた動的な負荷トルクのエネルギ変化量を検出し、検出したエネルギ変化量が所定の第2の閾値SH2以上となったときに、発生トルクを下げるようにアクチュエータA1〜A24を制御する。従来のメカ的な構成を有するトルク・リミッタ130を用いる場合に比べ、本発明に係る負荷吸収に関するアクチュエータA1〜A24の特性に大きなばらつきは生じ難く、また温度による影響も少なくすることができ、使い勝手の良い負荷吸収装置を構築することができる。
また、本発明に係る負荷吸収装置を構築したことにより、従来のメカ的な構成を有するトルク・リミッタ130を用いる場合に比し、アクチュエータA1〜A24全体すなわちシステム全体としての構成を簡易化及び小型軽量化させることができる。
E.ロボット全体での負荷吸収機構
上述したようなアクチュエータA1〜A24の負荷吸収機構によれば、アクチュエータ・モータ単軸に対して過負荷が印加された場合には、負荷のAC成分並びにDC成分を好適に吸収し、モータや、モータの出力軸に印加されたリンクなどの部材の破損を回避し、被害が他の部材へと拡大するのを防止することができる。
他方、脚式移動ロボットを始めとする多関節型ロボットは、関節アクチュエータ用の複数のモータと、これらモータの出力軸に連結されたリンクで構成される。このような場合、各モータ単体では過負荷を回避した状態であっても、複数のモータの総体で判断すると過負荷状態に陥っている場合も想定される。このような場合には、モータ毎の負荷吸収動作とは別に、機体全体としての負荷回避オペレーションが必要であると思料される。
そこで、本実施形態に係るロボット1においては、個々のアクチュエータ・モータ単体での静的並びに動的な負荷トルクの吸収を実行するのに並行して、2以上のモータにおける負荷状態の合計が過負荷状態かどうかを監視し、モータ単体では過負荷状態ではなくても、腕部や脚部などの所定の部位単位、あるいは機体全体として過負荷状態に陥っているかどうかを検出することができる。
そして、複数のモータの合計として過負荷が検出された場合には、モータ単体としての負荷吸収動作ではなく、機体全体として過負荷状態を取り除く機体保護オペレーションを実行する。ここで言う機体保護オペレーションとしては、例えば、該当するモータ群又は機体全体のモータへの電源遮断や、該当するモータ群又は機体全体のモータの脱力などが挙げられる。モータの脱力は、発生トルクをゼロにしたり、ゲイン調整などによりモータの粘性抵抗を低減したりすることにより実現する。
例えば、ロボット1がうつ伏せの状態から起き上がろうとする動作の途上で、図26に示すように、両脚が図中破線で示した障害物に接触し、そのまま動作を続けると実線矢印の方向に反力が加わる。この結果、右肩ピッチ、右腿ロール、右腿ピッチ、右足首ピッチの部位に負荷が加わる。このとき、各軸単軸では破損に至る負荷にはならないが、機体そのもののフレーム部分の塑性変形やカバー部分の破損に至る場合がある。
このような状態を検知するために、各関節単軸のアクチュエータ負荷を消費する電流を検知することで検出し、それらを上位制御系で合計して機体全体の総合負荷として監視する。
より具体的に説明するならば、各モータ単軸での負荷トルクTは、上式(7)によりT=Kvi・Viすなわちモータへの印加電圧により監視されている。したがって、k番目のアクチュエータAk(但し、本実施形態では1≦k≦24)とし、その負荷トルクをTkとすると、負荷トルク機体全体での負荷トルクの合計Tsumは下式で表される。
図26に示すようにうつ伏せ姿勢から両手を床に着いて起き上がる動作を行なう場合には、左右の肩関節ピッチ軸アクチュエータA5及びA9、左右の股関節ロール軸A14及びA20、股関節ピッチ軸A15及びA21、左右の足首関節ロール軸A17及びA23に大きな負荷がかかり、上式(10)は以下のように表される。そして、残りの関節アクチュエータにおける負荷トルクの合計O(TK)を無視することができる。
そして、その総合負荷の値Tsumが設定した閾値を一定時間以上超えた場合、機体の破損を回避するために、シャットダウンなどの機体保護シーケンスに入る。
図27には、アクチュエータ・モータ単軸での衝撃負荷並びに定常負荷の検出、複数軸における過大な負荷の検出、並びにそれぞれの負荷検出に応答した機体保護オペレーションを行なうための処理手順をフローチャートの形式で示している。
まず、ある関節単軸において、破損に至る衝撃負荷が印加されたかどうかをチェックする(ステップS1)。アクチュエータに衝撃負荷が印加されたかどうかは、上式(6)に示した評価関数f(t)を用いて判別することができる。
ここで、あるアクチュエータに衝撃負荷が印加されたことが判明した場合には、当該アクチュエータ内の負荷吸収機構が作動し、過負荷状態の回避を試みる(ステップS2)。より具体的には、制御IC80内の演算処理部90が図24に示した負荷吸収処理手順RT2を実行し、評価関数f(t)が第2の閾値SH2を超えないように、モータ電流IR1をPWM制御する。
そして、演算処理部90は、ロボット1の運動制御を行なうミドルウェア層(図6を参照のこと)に負荷吸収動作を通知する(ステップS3)。
ここで、過負荷状態を回避できた場合には(ステップS4)、姿勢・状態の復帰シーケンスに入る(ステップS5)。
図28には、アクチュエータに衝撃負荷が印加されたときの負荷吸収動作並びに復帰動作を行なうためのソフトウェア上のオペレーションを模式的に図解している。
アクチュエータ内で衝撃負荷が印加されたことを検出すると(S1)、アクチュエータ内の負荷吸収機構(図24を参照のこと)が作動し、モータ電流をPWM制御してモータの粘性係数を調整しながら過負荷状態の解消を試みる(S2)。そして、アクチュエータ内の演算制御部90は、負荷吸収機構を作動させたことを、上位ソフトウェアすなわちミドルウェア層に通知する(S3)。ミドルウェア層は、過負荷状態を回避できたと判断した場合には(S4)、制御をアクチュエータに戻す(S5)。アクチュエータ側では、姿勢・状態の復帰シーケンスに入り、モータの粘性係数を元の値に戻す。
再び図27に戻って、負荷検出並びに機体保護オペレーションについて説明する。今度は、ある関節単軸において、破損に至る定常負荷が印加されたかどうかをチェックする(ステップS6)。アクチュエータに衝撃負荷が印加されたかどうかは、上式(2)を用いて判別することができる。
ここで、あるアクチュエータに定常負荷が印加されたことが判明した場合には、当該アクチュエータ内の演算処理部90は、ロボット1の運動制御を行なうミドルウェア層(図6を参照のこと)に過負荷状態を通知する(ステップS7)。
ミドルウェア層は、過負荷状態に通知に応答して、当該アクチュエータ・モータのサーボ・ゲインの低下を指示する(ステップS8)。
ここで、過負荷状態を回避できた場合には(ステップS4)、姿勢・状態の復帰シーケンスに入る(ステップS5)。
図29には、アクチュエータに衝撃負荷が印加されたときの負荷吸収動作並びに復帰動作を行なうためのソフトウェア上のオペレーションを模式的に図解している。
アクチュエータ内で衝撃負荷が印加されたことを検出すると(S6)、上位ソフトウェアすなわちミドルウェア層に通知する(S7)。ミドルウェア層では、アクチュエータのサーボ・ゲインの低下を指示する(S8)。そして、ミドルウェア層は、過負荷状態を回避できたと判断した場合には(S4)、制御をアクチュエータに戻す(S5)。アクチュエータ側では、姿勢・状態の復帰シーケンスに入り、モータのサーボ・ゲインを元の値に戻す。
再び図27に戻って、負荷検出並びに機体保護オペレーションについて説明する。今度は、2以上の関節において同時に負荷が印加されたことにより過負荷状態に陥ったかどうかをチェックする(ステップS9)。具体的には、モータの印か電圧に基づいて監視される各アクチュエータの負荷トルク値の合計を表した上式(10)又は(11)に基づいて判断する。複数のモータの合計として過負荷が検出される状況として、例えば、ロボット1がうつ伏せの状態から起き上がろうとする動作の途上で両脚が障害物に接触し、そのまま動作を続けると反力が加わる場合(図26を参照のこと)が想定される。
ここで、過負荷状態が検出されると、ミドルウェア層の運動制御系を通じて機体保護モジュール部に通知し(ステップS10)、機体保護オペレーションを起動する(ステップS11)。機体保護オペレーションとして、例えば、全身又は該当する部位のアクチュエータ・モータの電源を遮断し、関節を脱力させるなどを行なう。
図30には、複数の関節軸における過負荷状態を検出し、機体保護動作を行なうためのミドルウェア層内の構成を模式的に示している。同図に示すように、ミドルウェア層内には、負荷監視モジュール部と機体保護モジュール部が配設されている。
負荷監視モジュール部は、複数のアクチュエータ・モータA1〜A24から負荷状態(例えば、負荷トルクに相当する電圧検出値Vi)を同時並行して入力し、これらの合計値に基づいて機体全体についての負荷状態を検出する。
また、機体保護モジュール部は、負荷監視モジュール部において過負荷状態が検出されたことに応答して起動し、機体保護オペレーションを実行する。例えば、全身又は該当する部位のアクチュエータ・モータの電源を遮断し、関節を脱力させるなどを行なう。
また、図31には、複数の関節軸における過負荷状態が検出されたときの負荷吸収動作並びに復帰動作を行なうためのソフトウェア上のオペレーションを模式的に図解している。
ミドルウェア層内では、負荷監視モジュール部が複数の関節軸における過負荷状態を検出すると(S9)、機体保護モジュール部に通知する(S10)。機体保護モジュール部は、これに応答して、機体保護オペレーションを実行する(S11)。例えば、全身又は該当する部位のアクチュエータ・モータの電源を遮断し、関節を脱力させるなどを行なう。
[追補]
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置あるいはその他一般的な移動体装置であるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
本明細書では、本発明を図1〜図5について2足歩行型のロボット1に適用するようにした場合について述べたが、本発明の要旨はこれに限定されるものではなく、この他種々のロボット装置、あるいはロボット装置以外の可動部の動力源としてサーボ・モータを用いるこの他種々の装置に広く適用することができる。
また、本明細書では、アクチュエータA1〜A24の出力軸75に連結されたリンクに新たに与えられた静的な負荷トルクと、アクチュエータA1〜A24の発生トルクとの絶対値の和を検出し、この和分が所定の第1の閾値以上となったときに、発生トルクを下げるようにモータを制御する制御手段とを、上位コントローラからの動作指令COMに基づいて当該アクチュエータA1〜A24位置制御を行なう制御IC80により構成するようにした場合について述べたが、本発明の要旨はこれに限らず、かかる和分検出手段及び制御手段を制御IC80とは別個に設けるようにしても良い。
また、本明細書では、アクチュエータA1〜A24の出力軸75に連結されたリンクに与えられた動的な負荷トルクのエネルギ変化量を検出するエネルギ変化量検出手段と、エネルギ変化量検出手段により検出されたエネルギ変化量が所定の閾値以上となったときに、発生トルクを下げるようにモータを制御する制御手段とを、上位コントローラからの動作指令COMに基づいて当該アクチュエータA1〜A24の位置制御を行なう制御IC80により構成するようにした場合について述べたが、本発明はこれに限らず、かかるエネルギ変化量検出手段及び制御手段を制御IC80とは別個に設けるようにしても良い。
また、本明細書では、上式(9)における比例定数Kiを1.0、比例定数Kθを4.0に設定し、第2の閾値SH2を実験結果より最適と考えられる1.3〜4.0〔mN−m・rad/S2〕の範囲で設定するようにした場合について述べたが、本発明の要旨はこれに限らず、これら各比例定数Ki、Kθの値や、第2の閾値SH2の値としては、対応するアクチュエータの構造等に応じてこの他種々の値を適用することができる。
また、本明細書では、駆動回路81に対する電源供給ラインLINを流れる電流IR1の大きさを電圧Viとして検出し、当該検出した電圧Viに基づいてアクチュエータA1〜A24の出力軸75に連結されたリンクに与えられた静的な負荷トルクや、動的な負荷トルクのエネルギ変化量を検出するようにした場合について述べたが、本発明の要旨はこれに限らず、要は、これら静的な負荷トルク及び動的な負荷トルクのエネルギ変化量を確実に検出できるのであれば、その検出方法としては駆動回路81に対する電源供給ラインLINを流れる電流IR1に基づくものでなくても良い。
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。