以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態によるロボットの構成
図1及び図2において、1は全体として本実施の形態による2足歩行型のロボットを示し、胴体部ユニット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をそれぞれ駆動することによって図3に示す直交するピッチ軸20及びロール軸21の回りにそれぞれ独立に回転させ得るようになされている。
この場合、各腕部ユニット4A、4Bは、それぞれ上腕部を形成するアクチュエータA7の出力軸に肘関節機構22を介して前腕部を形成するアクチュエータA8が連結され、当該前腕部の先端に手部23が取り付けられることにより構成されている。
そして各腕部ユニット4A、4Bでは、アクチュエータA7を駆動することによって前腕部を図3に示すヨー軸24の回りに回転させ、アクチュエータA8を駆動することによって前腕部を図3に示すピッチ軸25の回りにそれぞれ回転させることができるようになされている。
これに対して各脚部ユニット5A、5Bにおいては、それぞれ股関節機構26を介して体幹下部の腰ベース11にそれぞれ取り付けられており、それぞれ対応する股関節機構26の各アクチュエータをA9〜A11それぞれ駆動することによって、図3に示す互いに直交するヨー軸27、ロール軸28及びピッチ軸29の回りにそれぞれ独立に回転させ得るようになされている。
この場合各脚部ユニット5A、5Bは、それぞれ大腿部を形成するフレーム30の下端に膝関節機構31を介して下腿部を形成するフレーム32が連結されると共に、当該フレーム32の下端に足首関節機構33を介して足部34が連結されることにより構成されている。
これにより各脚部ユニット5A、5Bにおいては、膝関節機構31を形成するアクチュエータA12を駆動することによって、下腿部を図3に示すピッチ軸35の回りに回転させることができ、また足首関節機構33のアクチュエータA13、A14をそれぞれ駆動することによって、足部34を図3に示す直交するピッチ軸36及びロール軸37の回りにそれぞれ独立に回転させ得るようになされている。
一方、胴体部ユニット2の体幹下部を形成する腰ベース11の背面側には、図4に示すように、当該ロボット1全体の動作制御を司るメイン制御部40と、電源回路及び通信回路などの周辺回路41と、バッテリ45(図5)となどがボックスに収納されてなる制御ユニット42が配設されている。
そしてこの制御ユニット42は、各構成ユニット(胴体部ユニット2、頭部ユニット3、各腕部ユニット4A、4B及び各脚部ユニット5A、5B)内にそれぞれ配設された各サブ制御部43A〜43Dと接続されており、これらサブ制御部43A〜43Dに対して必要な電源電圧を供給したり、これらサブ制御部43A〜43Dと通信を行うことができるようになされている。
また各サブ制御部43A〜43Dは、それぞれ対応する構成ユニット内の各アクチュエータA1〜A14と接続されており、当該構成ユニット内の各アクチュエータA1〜A14をメイン制御部40から与えられる各種制御コマンドに基づいて指定された状態に駆動し得るようになされている。
さらに頭部ユニット3には、図5に示すように、このロボット1の「目」として機能するCCD(Charge Coupled Device )カメラ50及び「耳」として機能するマイクロホン51及びタッチセンサ52などからなる外部センサ部53と、「口」として機能するスピーカ54となどがそれぞれ所定位置に配設され、制御ユニット42内には、バッテリセンサ55及び加速度センサ56などからなる内部センサ部57が配設されている。
そして外部センサ部53のCCDカメラ50は、周囲の状況を撮像し、得られた画像信号S1Aをメイン制御部に送出する一方、マイクロホン51は、ユーザから音声入力として与えられる「歩け」、「伏せ」又は「ボールを追いかけろ」等の各種命令音声を集音し、かくして得られた音声信号S1Bをメイン制御部40に送出するようになされている。
またタッチセンサ52は、図1及び図2において明らかなように頭部ユニット3の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、検出結果を圧力検出信号S1Cとしてメイン制御部40に送出する。
さらに内部センサ部57のバッテリセンサ55は、バッテリ45のエネルギ残量を所定周期で検出し、検出結果をバッテリ残量検出信号S2Aとしてメイン制御部40に送出する一方、加速度センサ56は、3軸方向(x軸、y軸及びz軸)の加速度を所定周期で検出し、検出結果を加速度検出信号S2Bとしてメイン制御部40に送出する。
メイン制御部部40は、外部センサ部53のCCDカメラ50、マイクロホン51及びタッチセンサ52等からそれぞれ供給される画像信号S1A、音声信号S1B及び圧力検出信号S1C等(以下、これらをまとめて外部センサ信号S1と呼ぶ)と、内部センサ部57のバッテリセンサ55及び加速度センサ等からそれぞれ供給されるバッテリ残量検出信号S2A及び加速度検出信号S2B等(以下、これらをまとめて内部センサ信号S2と呼ぶ)に基づいて、ロボット1の周囲及び内部の状況や、ユーザからの指令、ユーザからの働きかけの有無などを判断する。
そしてメイン制御部40は、この判断結果と、予め内部メモリ40Aに格納されている制御プログラムと、そのとき装填されている外部メモリ58に格納されている各種制御パラメータとに基づいて続く行動を決定し、決定結果に基づく制御コマンドを対応するサブ制御部43A〜43Dに送出する。この結果、この制御コマンドに基づき、そのサブ制御部43A〜43Dの制御のもとに、対応するアクチュエータA1〜A14が駆動され、かくして頭部ユニット3を上下左右に揺動させたり、腕部ユニット4A、4Bを上にあげたり、歩行するなどの行動がロボット1により発現されることとなる。
またこの際メイン制御部40は、必要に応じて所定の音声信号S3をスピーカ54に与えることにより当該音声信号S3に基づく音声を外部に出力させたり、外見上の「目」として機能する頭部ユニット3の所定位置に設けられたLEDに駆動信号を出力することによりこれを点滅させる。
このようにしてこのロボット1においては、周囲及び内部の状況や、ユーザからの指令及び働きかけの有無などに基づいて自律的に行動することができるようになされている。
(2)ロボット1における手部23の構成
(2−1)手部23の概略構成
次に、このロボット1における手部23の構成について説明する。
このロボット1の手部23には、図6(A)及び(B)に示すように、それぞれ人間の親指、人差し指、中指、薬指及び小指に相当する第1〜第5の指部601〜605が設けられている。
この場合、第1の指部601は、指先部611及び指元部612が第1の指関節613を介して手部23の内側に向けて屈折自在に連結されることにより構成されており、指元部612の下端部が、手本体部62の内側面(以下、これを手の平面と呼ぶ)62Aにおける下部右端近傍位置(右手)又は下部左端近傍位置(左手)に、第2の指関節614を介して手部23の内側に向けて屈曲自在に連結されている。
また第2〜第5の指部602〜605は、それぞれ指先部621及び中指部622が第1の指関節623を介して手部23の内側に向けて屈折自在に連結されると共に、指中部622及び指元部624が第2の指関節625を介して手部23の内側に向けて屈折自在に連結されることにより構成され、指元部624の下端部が、手本体部62の先端に第3の指関節626を介して手部23の内側に向けて屈曲自在に連結されている。
これによりこのロボット1においては、第1〜第5の指部601〜605を伸ばし又は屈曲させることで、図6のように手部を開いたり、図7及び図8のように手部23を閉じたりすることができ、かくして例えば図9及び図10のようにボール等の対象物64、65を掴んだり、図11のように紙や薄板等の対象物66を摘むことができるようになされている。
このとき第2〜第5の指部601〜605は、図6に示すように、手を開いた状態において、これら第2〜第5の指部601〜605が手部本体62の下端部1点Pを中心として一定角度間隔(例えば15〔°〕間隔)で放射方向に伸びるように手本体部62に取り付けられている。また第1の指部601は、図7に示すように、その中心線K1が第3の指部の中心線K2と一定角度θthをもって交差するように手本体部62に取り付けられている。
これによりこのロボット1においては、第1〜第5の指部601〜605によって、例えば図9及び図10のように対象物64、65を複数方向から包み込むように把持することができ、かくして大きな対象物から小さな対象物まで広い範囲の大きさの対象物を確実に把持することができるようになされている。
また、かかる第1の指部601の角度θthは、図7のように対象物を掴む状態に第1〜第5の指部601〜605を屈曲させたときに、第1の指部601の先端部が第2の指部602の先端部及び第3の指部603の先端部とそれぞれ接触する角度に選定されており、かくして対象物を摘む際に、図11のように、少なくとも第1の指部601の先端部と、第2の指部602の先端部と、第3の指部603の先端部との3点によって当該対象物67を確実に保持し得るようになされている。
なおこの実施の形態の場合、第1〜第5の指部601〜605の長さは、それぞれ異なる長さに選定されており、これにより第1〜第5の指部601〜605を広い範囲で接触させながら対象物を把持することができるようになされている。
(2−2)手部23の具体的構成
ここで、実際上、手本体部62においては、図12に示すように、手の平面62Aが全体としてほぼ丸四角形状となるように構成されており、その第1の指部601の取付け位置を含む下部と、当該手の平面62A全体の4分の3程度の面積を占める先端部とに凸形状の丘部62A1、62A3(図12(A)において斜線部よりも上側部分及び下側部分)が設けられると共に、これら先端部の丘部62A1及び下部の丘部62A3間に凹形状の窪み部62A2(図12(A)において斜線部分)が設けられている。
この場合、図12からも明らかなように、先端部の丘部62A1及び窪み部62A2間は滑らかな曲面により繋がれているのに対し、下部の丘部62A3及び窪み部62A2間には段差62Bが設けられており、これにより対象物を手の平面62A上に安定して載せることができ、また対象物を安定して把持することができるようになされている。
また手本体部62の手の平面62Aには、ゴム材等の摩擦係数の大きい材料からなる表面材63が貼着されており、これにより対象物を把持する際に当該表面材63と対象物との間に生じる摩擦によってより一層と安定して当該対象物を手の平面62A内に保持し得るようになされている。
一方、第1の指部601においては、図13(A)及び(B)に示すように、指先部611の骨を構成する樹脂又はアルミ合金等の硬度の高い材料からなる第1の骨格層701と、指元部611の骨を構成する同じ材料からなる第2の骨格層702とを有し、これら第1及び第2の骨格層701、702が第1の指関節613を構成する当該第1の指部601の横方向(矢印a)と平行に設けられた第1の軸体71により、一体にかつ屈曲自在に連結されている。
また指元部612の下端部には、第2の指関節614を構成する第2の軸体72が当該指元部612を第1の軸体71と平行に貫通するように設けられ、この第2の軸体72が手本体部62(図6)の所定位置に設けられた軸受け73(図6(A))によって軸支されている。
これにより第1の指部601においては、図7について上述したように、第3の指部603の中心軸k2との角度θthを保ちながら、指先部611及び指元部612をそれぞれ独立に手部の内62A側に自在に屈曲させ得るようになされている。
このとき、第1及び第2の骨格層701、702は、図13(C)に示すように、αゲル、ソルボセイン又は発泡ウレタン等の硬度がHs0の柔軟材からなる柔軟層74により一体に覆われると共に、当該柔軟層74は、厚さ0.3〜1〔mm〕程度、硬度がHs40〜60程度の例えばゴム、PCV又はパリウレタン等の屈曲性のある材料を用いて形成された表面層75により一体に覆われている。
これによりこのロボット1においては、対象物を把持等する際に、第1の指部601の内側面をその対象物の表面形状に応じて凹む方向に弾力的かつ柔軟に変位させて当該対象物に密着させることができることから、当該対象物を確実に把持等することができ、また上述のように第1の指部601が第1及び第2の骨格層701、702、柔軟層74及び表面層75の3層構造となっていることから、第1の指部601の表面に柔軟性をもたせながらも当該表面が損傷し難く、長期使用にも実用上十分に耐え得るようになされている。
同様に、第2〜第5の指部602〜605においては、図14(A)及び(B)に示すように、指先部631の骨を構成する樹脂又はアルミ合金等の硬度の高い材料からなる第1の骨格層801と、指中部632の骨を構成する同じ材料からなる第2の骨格層802と、指元部632の骨を構成する同じ材料からなる第3の骨格層803とを有し、これら第1〜第3の骨格層801〜803が、第1の指関節633を構成する第1の軸体81と、第2の指関節635を構成する第2の軸体82とにより、一体にかつ屈曲自在に連結されている。
また指元部634の下端部には、第3の指関節636を構成する第3の軸体83が当該指元部634を第1及び第2の軸体81、82と平行に貫通するように設けられ、この第3の軸体83が手本体部62の所定位置に設けられた対応する軸受け841〜844(図6(A))によって軸支されている。
これにより第2〜第5の指部602〜605においては、図6について上述したように、指先部631、指中部632及び指元部633をそれぞれ独立に手部23の内側に向けて自在に屈曲させ得るようになされている。
このとき、第1〜第3の骨格層801〜803は、図14(C)に示すように、第1の指部601の場合と同様に、αゲル、ソルボセイン又は発泡ウレタン等の硬度がHs0の柔軟材からなる柔軟層85により一体に覆われると共に、当該柔軟層85は、厚さ0.3〜1〔mm〕程度、硬度がHs40〜60程度の例えばゴム、PCV又はパリウレタン等の屈曲性のある材料を用いて形成された表面層86により一体に覆われている。
これによりこのロボット1においては、対象物を把持等する際に、第2〜第5の指部602〜605の内側面をその対象物の表面形状に応じて凹む方向に弾力的かつ柔軟に変位させて当該対象物に密着させることができることから、当該対象物を確実に把持等することができ、また上述のように第2〜第5の指部602〜605が第1〜第3の骨格層801〜803、柔軟層85及び表面層86の3層構造となっていることから、第2〜第5の指部602〜605の表面に柔軟性をもたせながらも当該表面が損傷し難く、長期使用にも実用上十分に耐え得るようになされている。
なおこの実施の形態の場合、図15に示すように、第1〜第5の指部601〜605における各指先部611、631(図13、図14)の先端部は、先端に行くほど腹面601A〜605Aが背面に近づくように湾曲して形成されると共に、これと対向する第1の骨格層701、801の先端部701A、801Aは、その第1〜第5の指部601〜605の先端に行くにつれて当該第1〜第5の指部601〜605の背面側に近づくように、例えば45〔°〕程度の傾斜角を有するテーパ状に形成されている。
これによりロボット1においては、対象物を掴むときに最も力が加わる第1〜第5の指部601〜605の各指先部611、631における腹面601A〜605Aの先端部を、より一層と当該対象物の表面に沿って凹むように変位させてその接触面積を拡大させることができ、かくして当該対象物と第1〜第5の指部601〜605との間の摩擦力を向上させて、対象物をより一層確実に把持し得るようになされている。
またこの実施の形態の場合、第1〜第5の指部601〜605の表面層75、86においては、全体としてその断面形状が図13(C)及び図14(C)に示すように中空の丸四角形状に選定されると共に、各指先部611、631の腹面形状が丸四角形状に選定されており、これにより第1〜第5の指部601〜605を対象物と広い接触面積で接触させて、当該対象物を確実に把持することができるようになされている。
このとき第1の指部601は第2〜第5の指部602〜605よりも幅広に形成されており、これにより例えば図11(B)のように第1〜第3の指部601〜603によって3点支持により紙又は薄板等の対象物67を摘む際にも、1点支持側となる第1の指部601の当該対象物67に対する接触面積を大きくして、当該対象物67をより安定に保持し得るようになされている。
さらにこの実施の形態の場合、第1〜第5の指部601〜605における各指先部611、631の腹面601A〜605A側には、図16に示すように、複数の同心円状の凹凸からなる凹凸パターンでなる指紋部87が摩擦力向上のため設けられており、これにより例えば図17に示すように、床面88上に置かれた紙89を、第1及び第2の指部601、602の各指紋部87との間に生じる摩擦を利用して摘み上げ得るようになされている。
また第1〜第5の指部601〜605における各指紋部87の中央部には、図16(A)に示すように、それぞれ所定深さの窪み部87Aが設けられており、かくして図18のように第1〜第5の指部601〜605の腹面601A〜605Aを対象物90に接触させたときに、これら第1〜第5の指部601〜605の指紋部87における窪み部87A内の空気圧が上昇して当該窪み部87A内から空気が外部に押し出されて、当該窪み部87Aにおいて吸着作用を生じさせ得るようになされている。
これによりこのロボット1においては、対象物をより一層確実に把持することができ、かくして例えば第1〜第5の指部601〜605の各指紋部87による摩擦力と、当該各指紋部87の窪み部87Aにおける吸着力と、指先の柔軟性とを利用して、図19(A)に示すように、ボール91をその重心GP位置よりも高い位置において把持することもできるようになされている。
さらにこの実施の形態の場合、第1〜第5の指部601〜605の表面層75、86は無色透明な材料を用いて形成されており、当該表面層75、86(図13(C)、図14(C))における柔軟層74、85(図13(C)、図14(C))との境界面(表面層75、86の内面)又は柔軟層74、85における表面層75、86との境界面(柔軟層74、85の表面)にはそのロボット1に固有の識別情報が例えば図20に示すような2次元バーコードとして印刷されている。
これによりこのロボット1においては、この2次元バーコードに基づいて識別することができ、これによりロボット1間の混同を防止すると共にロボット1の盗難等を抑制することができるようになされている。
他方、第1〜第5の指部601〜605においては、図13及び図14に示すように、それぞれその背面側の先端位置に、例えば樹脂材等の硬度がHs70程度でかつ滑り易い材料からなる爪92が接着剤等を用いて交換自在に取り付けられている。
この場合、爪92は、その先端部が第1〜第5の指部601〜605の先端から僅かに突出するように接着されており、これにより机面上や床面上に置かれた小物や紙を、これら第1〜第5の指部601〜605の先端から突出する爪92を引掻けるようにして摘むことができるようになされている。
また爪92においては、図13及び図14からも明らかなように、その先端部は円弧状に形成されており、これにより各方向から爪92を対象物に均等に引掻け得るように、かつ爪92を対象物に引掻けるなどする際に当該爪92に作用する外力を分散させて、当該爪92を破損し難くし得るようになされている。
また爪92の先端部は、先に行くほど第1〜第5の指部601〜605の腹面601A〜605A側に反るように湾曲して形成されており、これにより例えば図19(B)に示すように、床面上にある小物93を第1の指部601の爪92と、第2の指部602の爪92とにより引掻けるようにして、確実に摘むことができるようになされている。
(3)ロボット1における手部23の駆動制御
(3−1)システム構成
次に、かかる構造を有する手部23を駆動制御する駆動制御系のシステム構成について説明する。
このロボット1の場合、手部23における手本体部62の内部には、図21(A)及び(B)に示すように、第1〜第5の指部601〜605にそれぞれ対応させて、これら第1〜第5の指部601〜605を伸ばし又は曲げるように駆動するための第1〜第5のアクチュエータ部1001〜1005が収納され、当該手部23及び前腕部間を連結する手首関節101には、手部23をロール方向(軸θRの回りの方向)及びピッチ方向(軸θPの回りの方向)に駆動するため2軸一体型の第6のアクチュエータ部102が設けられている。
また第1〜第5のアクチュエータ部1001〜1005内には、図22に示すように、それぞれ当該第1〜第5のアクチュエータ部1001〜1005を制御するための第1〜第5の制御装置1031〜1035が収納されると共に、第6のアクチュエータ部102内には、ピッチ軸用及びロール軸用の第6及び第7の制御装置1041、1042が収納されている。さらにロボット1の前腕部を構成するアクチュエータA8(図1、図21)内には、インテリジェントHUB105が収納され、当該インテリジェントHUB105と、第1〜第7の制御装置1031〜1035、1041、1042とがディジーチェーン接続されている。
この場合、インテリジェントHUB105は、図22に示すように、USB(Universal Serial Bus)インターフェース回路110、CPU(Central Processing Unit)111及びシリアル通信用インターフェース回路112と、ROM(Read Only Memory)及びRAM(Random Access Memory)等のメモリ113とが設けられており、USBインターフェース回路110を介して上位コントローラ(サブ制御部43C(図4))と通信し、またシリアル通信用インターフェース回路112を介して第1〜第7の制御装置1031〜1035、1041、1042とシリアル通信し得るようになされている。
そしてこのインテリジェントHUB105は、8〔ms〕周期で上位コントローラと通信し、上位コントローラから各第1〜第7の制御装置1031〜1035、1041、1042に対する位置指令値(U1(N)〜U7(N))などの各種コマンドが与えられると、これら位置指令値(U1(N)〜U7(N))に基づいて2〔ms〕周期のサーボ指令(Ref1(k)〜Ref7(k))を生成し、これをディジーチェーン接続された後段の第1の制御装置1031に送出するようになされている。
このとき第1の制御装置1031は、前段のインテリジェントHUB105からサーボ指令が与えられると、そのうちの自己に対するサーボ指令(Ref1(k))を取り込み、この後はこのサーボ指令に基づいて対応する第1のアクチュエータ部1001を制御する一方、前段のインテリジェントHUB105から与えられたサーボ指令(Ref1(k)〜Ref7(k))のうち、自己に対するサーボ指令(Ref1(k))を、当該第1のアクチュエータ部1001内の後述する対応するDCモータの現在位置を表す現在位置データ(P1(k))に置き換えて、これらを後段の第2の制御装置1032に送出する。
同様に、第2〜第7の制御装置1032〜1035、1041、1042は、前段の他の第1〜第6の制御装置1031〜1035、1041から現在位置データ及びサーボ指令が与えられると、そのうちの自己に対するサーボ指令(Ref2(k)〜Ref7(k))を取り込み、この後はこのサーボ指令に基づいて対応する第2〜第6のアクチュエータ部1002〜1005、101を制御する一方、前段の第1〜第6の制御装置1031〜1035、1041から与えられたサーボ指令及び現在位置データのうち、自己に対するサーボ指令を、対応する第2〜第6のアクチュエータ部1002〜1005、1041、1042内の後述するDCモータの現在位置を表す現在位置データ(P2(k)〜P7(k))に置き換えて、これらをさらに後段の他の第3〜第7の制御装置1033〜1035、1041、1042又はインテリジェントHUB105に送出する。
この結果、インテリジェントHUB105には、最後の第7の制御装置1042から各DCモータの現在位置データが与えられ、かくしてインテリジェントHUB105は、これら各DCモータの現在位置データを8〔ms〕周期で上位コントローラに送出する。そして、上位コントローラは、これら各DCモータの現在位置データに基づいて、各第1〜第7の制御装置1031〜1035、1041、1042に対する新たな位置指令値(U1(N)〜U7(N))を生成し、これを次の周期にインテリジェントHUB105に与える。
このようにしてこのロボット1においては、上位コントローラがインテリジェントHUB105を介して手部23の容姿制御を行い得るようになされている。
(3−2)第1〜第6のアクチュエータ部1001〜1005、102の構成
ここで、第1〜第5のアクチュエータ1001〜1005においては、図23に示すように、ギアボックス120に固定されたDCモータ121を動力源として有している。そしてDCモータ121の出力軸121Aにはギア122が取り付けられ、当該ギア122がギアボックス120内の例えば冠歯車等でなるギア123と歯合している。
またギア123は、当該ギア123を同軸に貫通する回転軸124に固定されると共に、当該回転軸124はギアボックス120内において回転自在に枢支され、かつ当該回転軸124の両端部にはそれぞれ握締め用回転軸125及び開放用回転軸126が同軸に固定されている。
そして握締め用回転軸125の周側面には、第1のワイヤ127の一端側がDCモータ121を正転駆動したときに巻き取り得る方向に巻回されると共に、その先端部が固定されている。またこの第1のワイヤ127の他端側は、対応する第1〜第5の指部601〜605の内部腹面側を通って当該第1〜第5の指部601〜605の内部先端にその端部が固定されている。
これによりロボット1においては、第1〜第5のアクチュエータ部1001〜1005のDCモータ121を正転駆動して第1のワイヤ127を握締め用回転軸125の周側面に巻き取ることで、当該第1のワイヤ127により指先部611、631をその腹面側に引っ張るようにして、対応する第1〜第5の指部601〜605を屈曲するように駆動させることができるようになされている。
また開放用回転軸126の周側面には、第2のワイヤ128の一端部がDCモータ121を逆転駆動したときに巻き取り得る方向に巻回されると共に、その先端部が固定されている。またこの第2のワイヤ128の他端側は、対応する第1〜第5の指部601〜605の内部背面側を通って当該第1〜第5の指部601〜605の内部先端にその端部が固定されている。
これによりロボット1においては、第1〜第5のアクチュエータ部1001〜1005のDCモータ121を逆転駆動して第2のワイヤ128を開放用回転軸126の周側面に巻き取ることで、当該第2のワイヤ128により指先部611、631をその背面側に引っ張るようにして、対応する第1〜第5の指部1001〜1005を伸ばすように駆動させることができるようになされている。
さらに開放用回転軸126の端面には、位置検出センサ130を構成する環状の樹脂マグネット131が当該開放用回転軸126と同軸に固着されると共に、これと平行にかつ僅かな距離を介して対向するように制御基板132が配置され、当該制御基板132における樹脂マグネット131と対向する所定位置に樹脂マグネット131と共に位置検出センサ130を構成する第1及び第2のホール素子133A、133Bが搭載されている。
このとき樹脂マグネット131は、その回転位置に応じて第1及び第2のホール素子133A、133Bにより検出される磁極密度が変化するように所定パターンで着磁されており、これにより第1及び第2のホール素子133A、133Bからそれぞれ出力される第1及び第2のセンサ信号(以下、これを第1及び第2の位置検出信号と呼ぶ)に基づいて対応するDCモータ121の現在位置を検出し得るようになされている。
また制御基板132には、対応するDCモータ121を駆動制御する図22について上述した第1〜第5の制御装置1031〜1035が形成されている。そして、この第1〜第5の制御装置1031〜1035には、上述のようにインテリジェントHUB105からのサーボ指令(Ref1(k)〜Ref7(k))(図22)と、上述の位置検出センサ130(図23(B))の第1及び第2のホール素子133A、133Bから出力される第1及び第2の位置検出信号とが与えられる。かくして第1〜第5の制御装置1031〜1035は、このサーボ指令と、第1及び第2の位置検出信号とに基づいて対応するDCモータ121を駆動制御するようになされている。
なおこの実施の形態の場合、第1及び第2のワイヤ127、128においては、常に一定のテンションをもって握締め用回転軸125又は開放用回転軸126に巻回されており、これにより例えば第1〜第5の指部601〜605にその屈曲可能な方向の外力が与えられたときに、これに応じて握締め用回転軸125又は開放用回転軸126が回転するようになされている。これによりこのロボット1においては、かかる外力が第1〜第5の指部601〜605に与えられたことを、対応する第1〜第5の制御装置1031〜1035が位置検出センサ130からの第1及び第2の位置検出信号に基づいて容易に認識し得るようになされている。
一方、第6のアクチュエータ102においては、図24に示すように、筐体140内部の所定位置に固定された動力源としてのロール軸用のDCモータ141及びピッチ軸用のDCモータ142を有している。
この場合、ロール軸用のDCモータ141の出力軸141Aにはギア143が固着されると共に、当該ギア143は、ギア144、当該ギア144と一体形成されたギア145、ギア146、当該ギア146と一体形成されたギア147、ギア148、当該ギア148と一体形成されたギア149及びギア150を順次介してロール軸用出力軸151と連結されている。
このときロール軸用出力軸151は、図21からも明らかなように、ロボット1の前腕部に固定されており、かくしてDCモータ141を駆動することによって手部23を全体としてロール方向に回転駆動することができるようになされている。
またピッチ軸用のDCモータ142の出力軸142Aにはギア152が固定されると共に、当該ギア152は、ギア153、当該ギア153と一体形成されたギア154、ギア155、当該ギア155と一体形成されたギア156及びギア157を順次介してピッチ軸用出力軸158と連結されている。
このときピッチ軸用出力軸158は、図21からも明らかなように、手部23の手部本体62の後端に固定された第1の軸受け158Aにより固定保持されている。また筐体140におけるピッチ軸用出力軸158との対向面には当該ピッチ軸用出力軸158と同軸に回転軸160が回転自在に設けられていると共に、当該回転軸160は、図21からも明らかなように、手部23の手部本体62の後端に固定された第2の軸受け159Bにより固定保持されている。
これによりこのロボット1においては、第6のアクチュエータ部102におけるDCモータ142を回転駆動することによって、手部23を全体としてピッチ方向に回転駆動することができるようになされている。
さらに第6のアクチュエータ部102においては、ロール軸用出力軸151の内面側に環状の樹脂マグネット162が当該ロール軸用出力軸151と同軸に固着されると共に、これと平行にかつ僅かな距離を介して対向するように制御基板163が配置され、当該制御基板163における樹脂マグネット162と対向する所定位置に樹脂マグネット162と共に位置検出センサ161を構成する第1及び第2のホール素子164A、164Bが搭載されている。
このとき樹脂マグネット162は、図23について上述した樹脂マグネット131と同様に、その回転位置に応じて第1及び第2のホール素子164A、164Bにより検出される磁極密度が変化するように所定パターンで着磁されており、これにより第1及び第2のホール素子164A、164Bからそれぞれ出力される第1及び第2のセンサ信号(以下、これを第1及び第2の位置検出信号と呼ぶ)に基づいて対応するDCモータ141の現在位置を検出し得るようになされている。
また制御基板163には、図22について上述した第6の制御装置1041が形成されている。そしてこの第6の制御装置1041には、上述のようにインテリジェントHUB105からのサーボ指令(Ref1(k)〜Ref7(k))(図22)と、上述の位置検出センサ161(図24(A))の第1及び第2のホール素子164A、164Bから出力される第1及び第2の位置検出信号とが与えられる。かくして第6の制御装置1041は、かかるサーボ指令と、第1及び第2の位置検出信号とに基づいて対応するDCモータ141を駆動制御するようになされている。
これと同様にして、ピッチ軸用出力軸158の内面側には環状の樹脂マグネット165が当該ピッチ軸用出力軸158と同軸に固着されると共に、これと平行にかつ僅かな距離を介して対向するように制御基板166が配置され、当該制御基板166における樹脂マグネット165と対向する所定位置に樹脂マグネット165と共に位置検出センサ167を構成する第1及び第2のホール素子168A、168Bが搭載されている。
このとき樹脂マグネット165は、図23について上述した樹脂マグネット131と同様に、その回転位置に応じて第1及び第2のホール素子168A、168Bにより検出される磁極密度が変化するように所定パターンで着磁されており、これにより第1及び第2のホール素子168A、168Bからそれぞれ出力される第1及び第2の位置検出信号に基づいて対応するDCモータ142の現在位置を検出し得るようになされている。
また制御基板166には、図22について上述した第7の制御装置1042が形成されている。そしてこの第7の制御装置1042には、上述のようにインテリジェントHUB105からのサーボ指令(Ref1(k)〜Ref7(k))(図22)と、上述の位置検出センサ167(図24(A))の第1及び第2のホール素子から出力される第1及び第2の位置検出信号とが与えられる。かくして第7の制御装置1042は、かかるサーボ指令と、第1及び第2の位置検出信号とに基づいて対応するDCモータ142を駆動制御するようになされている。
(3−3)第1〜第7の制御装置1031〜1035、1041、1042の構成
ここで第1〜第7の制御装置1031〜1035、1041、1042においては、図25に示すように、制御基板132、163、166上に各種通信及び制御回路等が形成されたモータ制御用LSI(Large Scale Integrated circuit)170並びに第1及び第2のホール素子133A、133B、164A、164B、168A、168Bが搭載されると共に、当該制御基板132、163、166にモータ駆動回路171が形成されることにより構成されている。
この場合、第1〜第7の制御装置1031〜1035、1041、1042では、第1及び第2のホール素子133A、133B、164A、164B、168A、168Bから出力される上述の第1及び第2の位置検出信号S1A、S1Bと、後述のようにモータ駆動回路171により検出された対応するDCモータ121、141、142のコイル電流値を表す駆動電流検出信号S2がモータ制御用LSI170に与えられる。
また、第1〜第7の制御装置1031〜1035、1041、1042においては、電源ラインLVcc及びアースラインLGNDと、送信用及び受信用の2本のシリアル通信ラインLRXD、LTXDと、クロック入力用の1本の信号ラインLCLKとを有するケーブル172を通じて他の第1〜第7の制御装置1031〜1035、1041、1042又はインテリジェントHUB105(図22)と接続されており、かくしてモータ制御用LSI170がこのケーブル172を介して駆動電力を入力し、かつ他の第1〜第7の制御装置1031〜1035、1041、1042等を介してインテリジェントHUB105と交信することができるようになされている。
そしてモータ制御用LSI170は、このケーブル172等を介してインテリジェントHUB105から与えられるサーボ指令(Ref1(k)〜Ref7(k))(図22)と、第1及び第2のホール素子133A、133B、164A、164B、168A、168Bからの第1及び第2の位置検出信号S1A、S1Bと、モータ駆動回路171からの駆動電流検出信号S2とに基づいて、当該DCモータ121、141、142に印加すべき駆動電流値を算出し、当該算出結果に基づき生成したPWM(Pulse Width Modulation)信号S3をモータ駆動回路171に出力するようになされている。
かくしてモータ駆動回路171は、モータ制御用LSI170から与えられるPWM信号S3に基づいて、対応する値の駆動電流IDを対応するDCモータ121、141、142に印加することにより当該DCモータ121、141、142を駆動する。
またこの際、モータ駆動回路171は、そのDCモータ121、141、142のコイルに流れる駆動電流の実際値を検出し、当該検出結果を上述のように駆動電流検出信号S2としてモータ制御用システムLSI170に送出する。
このようにしてこのロボット1においては、モータ制御用LSI170及びモータ駆動回路171からなる第1〜第7の制御装置1031〜1035、1041、1042によって、上位コントローラから与えられたサーボ指令に応じて対応するDCモータ121、141、142を駆動させ得るようになされている。
(3−4)モータ制御用LSI170及びモータ駆動回路171の構成
モータ制御用LSI170においては、図26に示すように、演算処理ブロック180と、レジスタ181と、電流制御部189を構成する減算器182、電流比例ゲイン乗算器183、PWM変換ブロック184、位置検出ブロック185並びに第1及び第2のアナログ/ディジタル変換回路186、187とから構成されている。
そして、このモータ制御用LSI170では、第1及び第2のホール素子133A、133B、164A、164B、168A、168B(図25)から供給される第1及び第2の位置検出信号S1A、S1Bが第2のアナログ/ディジタル変換回路188においてディジタル変換され、得られた第1及び第2の位置検出データD1A、D1Bが位置検出ブロック185に与えられる。
位置検出ブロック185は、供給される第1及び第2の位置検出データD1A、D1Bに基づいて、対応する第1〜第5のアクチュエータ部1001〜1005(図23)内のDCモータ121(図23)の現在位置、又は第6のアクチュエータ部102(図24)内の対応するDCモータ141、142(図24)の回転位置を検出し、かくして得られた上述の現在位置データ(P1(k)〜P7(k))(図22)をレジスタ181に格納する。
演算処理ブロック180は、このレスジタ181に格納された現在位置データを読み出し、当該読み出した現時位置データと、インテリジェントHUB105から与えられるサーボ指令(Ref1(k)〜Ref7(k))(図22)とに基づいて、対応するDCモータ121、141、142(図25)の出力軸を指定された回転角度にまで回転駆動させるためのトルクを発生させるために必要な電流の目標値(以下、これを目標電流値と呼ぶ)I0を算出し、得られた目標電流値I0をレジスタ181に格納する。
一方、レジスタ181に格納された目標電流値I0は減算器182により読み出される。このとき減算器182には、モータ駆動回路171(図25)から与えられる上述の駆動電流検出信号S2を第1のアナログ/ディジタル変換回路186においてディジタル変換してなる駆動電流検出データD3が与えられる。
かくして減算器182は、目標電流値I0から駆動電流検出データD3に基づき得られるそのときの実際のDCモータ121、141、142のコイル電流の検出値を減算し、得られた目標電流値I0に対する差分を表す差分電流値データD4を電流比例ゲイン乗算器183に送出する。
電流比例ゲイン乗算器183は、差分電流値データD4に対し、かかる差分を「0」に収束させるための所定の電流比例ゲインGpを乗算し、かくして得られた実際にDCモータ121、141、142に印加すべき駆動電流の目標値(以下、これを印加電流目標値と呼ぶ)I1をPWM変換ブロック184に送出する。
PWM変換ブロック184は、供給される印加電流目標値I1をPWM変調し、得られたPWM信号S3を上述のようにモータ駆動回路171に送出する。このときPWM変換ブロック184及びモータ駆動回路171間は、第1及び第2の信号ラインにより接続されており、PWM変換ブロック184は、対応するDCモータ121、141、142を正転駆動するときにはPWM信号S3を第1の信号ラインを介してモータ駆動回路171に送出すると共に、PWM信号S3における論理「1」レベルの信号(以下、これを基準信号と呼ぶ)S4を他方の第2の信号ラインを介してモータ駆動回路171に送出する。
またPWM変換ブロック184は、対応するDCモータ121、141、142を逆転駆動するときにはPWM信号S3を第2の信号ラインを介してモータ駆動回路171に送出すると共に、基準信号を第1の信号ラインを介してモータ駆動回路171に送出する。
モータ駆動回路171においては、図27に示すように、2個の増幅器190A、190Bからなるゲートドライブ回路191と、2個のMOS(Metal Oxide Semiconductor)型NチャンネルFET(Field Effect Transistor)1921、1922及び2個のMOS型PチャンネルFET1923、1924がブリッジ状に接続されてなるインバータ回路193とから構成されている。
そしてモータ駆動回路171では、第1の信号ラインが第2のMOS型PチャンネルFET1924のゲートと、ゲートドライブ回路191の第1の増幅器190Aを介してインバータ回路193の第1のMOS型NチャンネルFET1921のゲートとにそれぞれ接続されると共に、第2の信号ラインが第1のMOS型PチャンネルFET1923のゲートと、ゲートドライブ回路191の第2の増幅器190Bを介してインバータ回路193の第2のMOS型NチャンネルFET1922のゲートとにそれぞれ接続されている。
またこのモータ駆動回路171では、第1のMOS型NチャンネルFET1921及び第1のMOS型PチャンネルFET1923の接続中点と、第2のMOS型NチャンネルFET1922及び第2のMOS型PチャンネルFET1924の接続中点とがそれぞれ対応するDCモータ121、141、142内のコイルと接続されている。
これによりモータ駆動回路171においては、第1又は第2の信号ラインを介してPWM変換ブロックから与えられるPWM信号S3をインバータ回路193においてアナログ波形の駆動電流に変換し、これをかかる対応するDCモータ121、141、142のコイルに駆動電流として供給することができるようになされている。
またモータ駆動回路171においては、第1のMOS型PチャンネルFET1923のソース及びグランド間と、第2のMOS型PチャンネルFET1924のソース及びグランド間とにそれぞれ第1及び第2の電流検出用チップ抵抗R1、R2が接続されている。
そして、この第1の電流検出用チップ抵抗R1及び第1のMOS型PチャンネルFET1923の接続中点と、第2の電流検出用チップ抵抗R2及び第2のMOS型PチャンネルFET1924の接続中点とがそれぞれ差動増幅器194を介してモータ制御用LSI170(図26)と接続されており、これによりモータ駆動回路171により検出された対応するDCモータ121、141、142のコイル電流の検出結果を上述のように駆動電流検出信号S2としてモータ制御用LSI170に供給し得るようになされている。
(3−5)モータ制御用LSI170の各処理ブロックの具体的構成
次に、モータ制御用LSI170の演算処理ブロック180、位置検出ブロック185、PWM変換ブロック184について、それぞれその構成を詳細に説明する。
(3−5−1)演算処理ブロック180の詳細構成
演算処理ブロック180においては、図26に示すように、CPU200と、各種プログラムが格納されたROM201と、CPU200のワークメモリとしてのRAM202と、汎用のパラレル通信に対応したパラレル通信用入出力回路203と、ディジーチェーン接続された他の第1〜第7の制御装置1001〜1035、1041、1042(図22)等との間の入出力インターフェース回路でなるシリアル通信用入出力回路204と、サーボ割込みのための1〔ms〕周期のサーボ割込信号S10及びPWM周期である50〔μs〕周期のパルス信号S11を発生するカウンタ・タイマ・コントロール回路205と、カウンタ・タイマ・コンロトール回路205からサーボ割込信号S10が正しく発生されているかをCPU200が判断するための1〔ms〕周期以上の所定周期の基準信号でなるウォッチドッグ信号S12を発生するウォッチドッグ信号発生回路206とがCPUバス207を介して相互に接続されることにより構成されている。
そしてCPU200は、シリアル通信用入出力回路204を介してディジーチェーン接続された他の第1〜第7の制御装置1001〜1035、1041、1042(図22)等から電源電圧Vcc(図27)が供給されると、まずROM201に格納された初期プログラムに基づいて、各種制御ゲインの初期設定処理等の立上り処理を実行する。
またCPU200は、この後、この結果としてカウンタ・タイマ・コントロール回路205から与えられるサーボ割込み信号S10に基づいて、対応するDCモータ121、141、142の回転を制御するためのモータ回転制御処理を1〔ms〕毎に実行する。
(3−5−2)位置検出ブロック185の詳細構成
次に、位置検出ブロック185の構成を詳細に説明する。なおその前提として、先に第1〜第5のアクチュエータ部1001〜1005における位置検出センサ130(図23)及び第6のアクチュエータ部102における各位置検出センサ161、167(図24)の構成について説明する。
各位置検出センサ130、161、167においては、図28に示すように、樹脂マグネット131、162、165がその周方向に沿って磁束密度φ(θm)が次式
のように変化するように着磁されている。なお、この(1)式において、φ0は最大磁束密度を表し、θmは磁束密度が0となる基準位置P0からの回転角度を示す。
一方、位置検出センサ130、161、167の第1及び第2のホール素子133A、133B、164A、164B、168A、168B(図23、図24)は、それぞれ図29に示すように、樹脂マグネット131、162、165と対向し、かつ当該樹脂マグネット131、162、165と同心円上のπ/2だけ回転角度がずれた位置に位置するように制御基板132、163、166(図23、図24)に搭載されている。
そして、このように配置された第1及び第2のホール素子133A、133B、164A、164B、168A、168Bから出力される上述の第1及び第2の位置検出信号S1A、S1Bは、図30に示すように、センサゲインをG0、第1及び第2のホール素子133A、133B、164A、164B、168A、168Bの位置における最大磁束密度をφ1とし、上述のθmを用いて、それぞれ次式
のように表すことができる。
従って、これら第1及び第2の位置検出信号S1A、S1Bに基づいて、以下の手順により樹脂マグネット131、162、165の回転角度θmを求めることができる。
すなわち、まずその初期値を0として回転角度演算値θxを設定し、次式
を演算する。
そしてEθx=0とならない場合には、θxを次式
により算出する。ここで、Kpは比例ゲイン、Kiは積分ゲインをそれぞれ示し、共に正の定数である。
この算出したθxを用いて(4)式を再び演算し、この後Eθx=0となるまでこれを繰り返す。この結果Eθxはゼロ値に収束してゆき、このときθxが次式
として与えられる。
従って、この(6)式と、(5)式により算出されるθxとに基づいて、次式
のように樹脂マグネットの回転角度θmを求めることができる。なお(6)式及び(7)式において、Nは0以上の整数を表す。
かかる原理に基づいて位置検出ブロック185は、図31に示すように構成されており、位置検出センサ130、161、167の第1及び第2のホール素子133A、133B、164A、164B、168A、168Bから出力される第1及び第2の位置検出信号S1A、S1Bを第2のアナログ/ディジタル変換回路187によりディジタル変換してなる第1及び第2の位置検出データD1A、D1Bをそれぞれ第1及び第2の乗算器210A、210Bに入力する。
このとき第1及び第2の乗算器210A、210Bには、それぞれ後述のように先行して算出した回転角度演算値θxの余弦値(cosθx)又は正弦値(sinθx)が第1及び第2の関数変換部214A、214Bから与えられる。
かくして第1の乗算器210Aは、第1の位置検出データD1A及び回転角度演算値θxの余弦値(cosθx)を乗算し、乗算結果を減算器211に送出する。また第2の乗算器210Bは、第2の位置検出データD1B及び回転角度演算値θxの及び正弦値(sinθx)を乗算し、乗算結果を減算器211に送出する。
減算器211は、供給される第1の乗算器210Aの乗算結果から第2の乗算器210Bの乗算結果を減算することにより(4)式で与えられる演算結果を得、これを第3の乗算器212に送出する。
そしてこの乗算結果には、この後第3の乗算器212において、Sをラプラス演算子として、次式
で与えられる積分ゲイン及び比例ゲインKrが順次乗算され、その後第4の乗算器213において1/S(Sはラプラス演算子)が乗算される。
この結果、第4の乗算器213における乗算結果として回転角度演算値θxが得られ、これが第1及び第2の関数演算器214A、214Bに与えられる。そして第1及び第2の関数演算器214A、214Bは、供給される回転角度演算値θxの正弦値(sinθx)及び余弦値(cosθx)をそれぞれ演算し、演算結果を上述のように第2又は第1の乗算器210A、210Bに与える。
一方、第4の乗算器213から出力される回転角度演算値θxは、レジスタ181(図26)に格納される。そしてこの回転角度演算値θxは、この後演算処理ブロック180により読み出され、上述のように対応するDCモータ121、141、142の現在位置を表す現在位置データ(P1(k)〜P7(k))として当該DCモータ121、141、142の制御に利用される。
なお位置検出ブロック185における上述のような回転角度演算値θxの演算処理は、演算処理ブロック180のカウンタ・タイマ・コントロール回路205から与えられるパルス信号S11に基づいて行われる。従って、この位置検出ブロック185から出力される回転角度演算値θxは、パルス信号S11の周期である50〔μs〕毎に更新されることとなる。
(3−5−3)PWM変換ブロック184の詳細構成
PWM変換ブロック184においては、電流比例ゲイン乗算器183から供給される乗算結果に基づいて、50〔μs〕周期のパルスのパルス幅を制御することにより、PWM変調信号S3及び基準信号S4を生成し、これらをモータ駆動回路171(図25)に送出する。
実際上、PWM変換ブロック184は、図31に示すように、電流比例ゲイン乗算器183から供給される印加電流目標値I1(図26)を図示しない内部レジスタにセットし、印加電流目標値I1が正のときには、当該印加電流目標値I1を演算処理ブロック180(図26)のカウンタ・タイマ・コントロール回路205から与えられる、50〔μs〕周期のPWMパルス信号S11の立上りエッジ毎に第1のPWMパルス信号発生回路220A内のダウンカウンタ(図示せず)にセットする。
そしてこのダウンカウンタは、演算処理ブロック180のCPUクロック(0.1〔μs〕)の立上りエッジ毎にカウンタ値を減少させてゼロ値で停止する。従って、第1のPWMパルス信号発生回路220Aの出力は、ダウンカウンタのカウント値がゼロ値になるまで出力が論理「1」レベル、カウンタ値がゼロ値となってからは論理「0」レベルとなる。
また次のPWMパルス信号S11の立上りエッジで再びレジスタに格納された印加電流目標値I1が第1のPWMパルス信号発生回路220Aのダウンカウンタに再びセットされて上述の処理が繰り返される。
従って、第1のPWMパルス信号発生回路220Aからは、レジスタに格納される印加電流目標値I1が更新されるまで、当該印加電流目標値I1に比例した一定のパルス幅TonのPWM信号S3が出力され、第2のPWMパルス信号発生回路220Bからは、論理「0」レベルの基準信号S4が出力される。
一方、PWM変換ブロック184においては、印加電流目標値I1が負であった場合にはその絶対値を演算して正の整数に変換した後、この印加電流目標値I1を第2のPWMパルス信号発生回路220B内のダウンカウンタ(図示せず)にセットする。
この結果このときには、第2のPWMパルス信号発生回路220Bからは、上述の第1のPWMパルス信号発生回路220Aと同様にして、レジスタに格納される印加電流目標値I1が更新されるまで、当該印加電流目標値I1に比例した一定のパルス幅TonのPWM信号S3が出力される。またこのとき第1のPWM信号発生回路220Aからは、論理「1」レベルの基準信号S4が出力される。
このようにしてPWM変換ブロック184においては、電流比例ゲイン乗算器183から供給される演算結果の印加電流目標値I1に応じたパルス幅のPWM信号S3及び基準信号S4を生成し、これをモータ駆動回路171に送出し得るようになされている。
(4)演算処理ブロック180におけるソフトウェア制御
(4−1)ソフトウェア制御の一連の流れ
次に、演算処理ブロック180におけるソフトウェア制御について説明する。
演算処理ブロック180のCPU200(図26)は、図33に示すデータ処理手順に従って、対応するDCモータ121、141、142を駆動制御するための各種処理を実行する。
すなわちCPU200は、カウンタ・タイマ・コンロトール回路205(図26)からサーボ割込信号S10が与えられるごとにこのデータ処理手順を実行し、まずシリアル通信用入出力回路204(図26)を制御することにより、インテリジェントHUB105(図22)から送信される上述のサーボ指令(Ref1(k)〜Ref7(k))(図22)やこれ以外の各種コマンドを受信させ、これをRAM202(図26)に格納する(ステップSP1)。
次いでCPU200は、このRAM202に格納したサーボ指令や各種コマンドに対し、例えばデータフォーマット変換処理等の所定のデータ受信処理を施す(ステップSP2)。因みに、インテリジェントHUB105(図22)との通信は2〔ms〕周期で行われ、従ってインテリジェントHUB105からのサーボ指令等が2〔ms〕ごとに与えられるのに対し、カウンタ・タイマ・コンロトール回路205からのサーボ割込信号S10は1〔ms〕ごとに与えられるため、上述のようなステップSP1及びステップSP2における受信処理はこのデータ処理手順の実行の2回に1回の割合で行われることとなる。
続いてCPU200は、かかるデータ受信処理により得られた2〔ms〕ごとのサーボ指令(Ref1(k)〜Ref7(k))と、このときRAM202に格納されている先行して得られた対応するDCモータ121、141、142の現在位置データ(P1(k)〜P7(k))(図22)とに基づいて、当該DCモータ121、141、142の1〔ms〕ごとの目標位置を表すサーボ指令(Ref1(k)´〜Ref7(k)´)を生成する(ステップSP3)。
なお、CPU200は、電源投入時等の上位コントローラから未だサーボ指令等が与えられていない初期時には、当該サーボ指令に代えて、予めROM201(図26)に格納されたシステム初期設定値を読み出し、当該システム設定値に基づいて同様の処理を実行する。
またCPU200は、かかるサーボ指令に代えて、例えば上位コントローラから電流比例ゲイン乗算器183(図26)について上述した電流比例ゲインGPや、位置検出ブロック185(図26)の(2)式について上述したセンサゲインG0、後述するコンプライアンス制御に関するコンプライアンス調整ゲインKadj等の制御ゲインを変更すべきコマンドが与えられたときには、当該コマンドに応じてRAM202に格納されている対応する制御ゲインを変更する。
一方、CPU200は、上述のようにして1〔ms〕ごとのサーボ指令(Ref1(k)´〜Ref7(k)´)を生成すると、当該サーボ指令(Ref1(k)´〜Ref7(k)´)と、このとき位置検出ブロック185から与えられる現在位置データ(P1(k)〜P7(k))とに基づいて、対応するDCモータ121、141、142の回転を制御するための回転制御処理を実行する。具体的には、CPU200は、かかる回転制御処理として、サーボ指令(Ref1(k)´〜Ref7(k)´)と、現在位置データ(P1(k)〜P7(k))とに基づいて、図26について上述した電流指令値I0を算出し、これをレジスタ181に格納する(ステップSP4)。
またCPU200は、これと共にかかる位置検出ブロック185からの現在位置データや、後述のようなコンプライアンス制御処理において得られた差分e1(図34)等の内部変数のデータ(以下、モータ内部変数データと呼ぶ)をRAM202(図26)に格納する。
そしてCPU200は、この後このRAM202に格納された対応するDCモータ121、141、142の現在位置データ及びモータ内部変数データ等を外部に送信するためのデータ変換処理等の所定のデータ送信処理を実行し、得られたデータ送信処理後の現在位置データやモータ内部変数データをRAM202に格納する(ステップSP5)。
そしてCPU200は、この後シリアル通信入出力回路204(図26)を制御することにより、かかるRAM202に格納されたデータ送信処理後の現在位置データやモータ内部変数データをディジーチェーン接続された他の第2〜第7の制御装置1032〜1037、1041、1042又はインテリジェントHUB105に送信する(ステップSP6)。
このようにして演算処理ブロック180においては、インテリジェントHUB105からのサーボ指令やコマンドに基づいて、対応する各種処理を実行するようになされている。
(4−2)回転制御処理の具体的内容
ここで、図33について上述したデータ処理手順のステップSP4での回転制御処理に関し、第1〜第5の制御装置1031〜1035内のCPU200の具体的な処理内容について説明する。
CPU200は、かかる回転制御処理時、インテリジェントHUB105からのサーボ指令(Ref1(k)〜Ref5(k))に基づき生成した1〔ms〕ごとのサーボ指令(Ref1(k)´〜Ref5(k)´)と、位置検出ブロック185により検出された現在位置データ(P1(k)〜P5(k))とに基づいて、位置制御処理とコンプライアンス制御処理とを並列的に同時に実行することにより目標電流値I0を生成する。
因みに、位置制御とは、1〔ms〕ごとのサーボ指令(Ref1(k)´〜Ref5(k)´)である目標とする回転角度と、現在位置データ(P1(k)〜P5(k))に基づき得られるDCモータ121(図23)の出力軸の現在の回転角度(現在位置)とを比較して、その差分に基づき対応するDCモータ121に印加する駆動電流を制御することにより、かかる差分を「0」に収束させる制御をいう。
またここでのコンプライアンス制御とは、DCモータ121に外力が与えられたときに、当該外力の大きさと、DCモータ121の変位量とが比例関係となるようにDCモータ121の変位量を制御することをいう。そしてこのときの比例定数をコンプライアンス調整ゲインといい、当該コンプライアンス調整ゲインが「0」であるときに外力があっても変位量が「0」、つまり高剛性となる。またコンプライアンス調整ゲインが「0」よりも大きくなるにつれて徐々に変位量が大きくなって、低剛性となる。このようにコンプライアンス調整ゲインの大きさに応じてDCモータ121の外力による変位量を制御でき、例えばロボット1の第1〜第5の指部601〜605(図6)に外力が作用したときに当該外力によって第1〜第5の指部601〜605が破損するのを防止したり、ロボット1が対象物を把持する際の柔らかさを制御することができる。こうした柔らかさを制御する方法がコンプライアンス制御である。
そしてCPU200は、かかる位置制御処理及びコンプライアンス制御処理を同時並列的に実行することにより、予め設定されたコンプライアンス調整ゲインに応じた剛性で手部23の容姿制御を行う。
実際上、CPU200は、対応するDCモータ121の回転制御処理時、図34に示すように、1〔ms〕ごとのサーボ指令(Ref1(k)´〜Ref5(k)´)と、このとき位置検出ブロック185から与えられるDCモータ121の現在位置Yfとの差分e1を計算し(ステップSP10)、その差分e1に位置比例ゲインKpを乗算することにより、対応するDCモータ121を実際に駆動制御するための目標電流値I0´を算出する(ステップSP11)。
そしてCPU200は、この目標電流値I0´と後述のコンプライアンス調整値Trefとを加算することにより目標電流値I0を算出し(ステップSP12)、これを上述のようにレジスタ181(図26)に格納する。この結果、この目標電流値I0が減算器182(図26)により読み出され、この後この目標電流値I0に基づいて、かかる差分e1を「0」とするように上述のような位置制御が行われる。
一方、CPU200は、これと同時並列的にそのDCモータ121と同じ特性の数学モデルによるDCモータ121の現在位置を演算する(ステップSP13)。
具体的に、CPU200は、1〔ms〕ごとのサーボ指令(Ref1(k)´〜Ref5(k)´)と、かかる数学モデルにより算出される現在の対応するDCモータ121の理論的な現在位置(以下、これをモデル現在位置と呼ぶ)YMfとの差分e2を算出し(ステップSP13A)、この差分e2に実モデルの位置比例ゲインKpと同じ値の位置比例ゲインKMpを乗算することにより、実モデルの目標電流値I0´と対応する理論的な目標電流値(以下、これをモデル目標電流値と呼ぶ)I0(m)´を算出する(ステップSP13B)。
そしてCPU200は、このモデル目標電流値I0(m)´に対し、かかる差分e2を「0」に収束させるための電流比例ゲインとして、図26について上述した電流比例ゲイン乗算器183において差分電流値データD4に乗算する電流比例ゲインGpと同じ値の電流比例ゲインGMpを乗算することにより、実モデルの印加電流目標値I1(図26)に対応する理論的な印加電流目標値(以下、これをモデル印加電流目標値と呼ぶ)I1(m)を算出する(ステップSP13C)。
続いてCPU200は、モデル印加電流目標値I1(m)に対して実モデルの対応するDCモータ121のモータ定数Kmと同じ値のモータ定数モデルKMmを乗算することにより、このときの実モデルにおけるDCモータ121の出力トルクTmと対応する理論的なDCモータ121の出力トルクTMm(以下、これをモデル出力トルクTMm)を算出する(ステップSP13D)。
さらにCPU200は、この後このモデル出力トルクTMmと、後述のように算出される外力の推定トルクでなる外力推定トルクTf_estとを加算することにより、このときの実モデルにおけるDCモータ121の出力軸に生じるトルクの理論的な総和でなる総和トルクTfと対応する理論的な総和トルク(以下、これをモデル総和トルクと呼ぶ)TMfを算出する(ステップSP13E)。
そしてCPU200は、この後モデル総和トルクTMfに対して、次式
で与えられる数学モデル上での第1〜第5の指部601〜605の機械的な特性に応じた定数を乗算することにより、上述した対応するDCモータ121のモデル現在位置YMfを算出する(ステップSP13F)。なお、この(9)式において、JMy、DMyは、それぞれ実モデルにおける第1〜第5のアクチュエータ部1001〜1005(図23)の機構的な慣性モーメントJy又は摩擦係数Dyと同じ値の定数であり、Sはラプラス演算子を示す。
次いでCPU200は、位置検出ブロック185により検出された実モデルにおけるDCモータ121の現在位置(以下、適宜、これを実モデル現在位置と呼ぶ)Yfからモデル現在位置YMfを減算することにより、これら実モデル現在位置Yf及びモデル現在位置YMfの差分Yferを算出する(ステップSP14)。
さらにCPU200は、この差分Yferに所定の推定ゲインKestを乗算することにより、対応する第1〜第5の指部601〜605に作用した外力の推定トルクでなる上述の外力推定トルクTf_estを算出する。
ここで、この外力推定トルクTf_estを上述のようにモデル目標電流値I0(m)´と加算すると、数学モデルにより算出されるモデル現在位置YMfが実モデル現在位置Yfと同様に変化し、実モデル現在位置Yfとモデル現在位置YMfとの差分Yferが「0」に収束するようになる。
そして、差分Yferが「0」に収束したときの外力推定トルクTf_estが、実際に対応する第1〜第5の指部601〜605に作用した外力トルクTf_extと同じ値となることから、この外力トルクTf_extを外力推定トルクTf_estとして精度良く求めることができる。
なお、このときの収束応答時間は推定ゲインKestの大きさによって決定し、この推定ゲインKestが大きいほど、収束応答時間が短くなり、推定ゲインKestが小さいほど収束応答時間が長くなる。
一方、CPU200は、このようにして算出された外力推定トルクTf_estに上述のコンプライアンス調整ゲインKadjを乗算することによりコンプライアンス調整値Trefを算出すると共に、このコンプライアンス調整値Trefを上述のように位置制御処理により算出した目標電流値I0´に加算する。
この結果、対応するDCモータ121がメイン制御部40からの位置指令値U1(N)〜U5(N)(インテリジェントHUB105からのサーボ指令値Ref1(k)〜Ref5(k))とは別に、対応する第1〜第5の指部601〜605に作用する外力の大きさ及びそのとき設定されているコンプライアンス調整ゲインKadjの大きさに応じて駆動するようになり、かくして当該第1〜第5の指部601〜605に外力が与えられたときに、当該第1〜第5の指部601〜605がこの外力に従って当該外力と同じ方向に屈曲するようになる。
この場合において、コンプライアンス調整ゲインKadjの値が次式
を満たすときには、結果的に外力トルクTf_extと同じトルクがコンプライアンス調整値Trefとして加算されるため、対応する第1〜第5の指部601〜605の動きは、位置制御処理による外力に対する反作用力がキャンセルされた動きとなる。かくして、このときその第1〜第5の指部601〜605は、外力により軽く曲げることができるようになる。
一方、コンプライアンス調整ゲインKadjの値が次式
であるときには、対応する第1〜第5の指部601〜605の動きは、上述のような位置制御処理による外力に対する反作用力が減衰された動きとなる。かくして、このときその第1〜第5の指部601〜605は、外力に対してコンプライアンス調整ゲインKadjに応じた大きさの反作用力をもって曲げることができるようになる。
このようにコンプライアンス調整ゲインKadjの値を調整することによって、外力に対する第1〜第5の指部601〜605の反作用力を制御することができる。そしてこのようなコンプライアンス制御によって、第1〜第5の指部601〜605に外力が作用したときに、その第1〜第5の指部601〜605が上位コントローラ(メイン制御部40(図5))からの位置指令値U1(N)〜U5(N)に反して外力に応じて動くようになり、これにより外力が作用したことに起因する第1〜第5の指部601〜605の破損を未然かつ有効に防止したり、外界物をその形状に沿って柔らかく把持することができる。
(5)ロボット1におけるコンプライアンス制御
(5−1)コンプライアンス制御に関する一連の流れ
次に、ロボット1における実際のコンプライアンス制御に関する一連の流れについて、図35を用いて説明する。
このロボット1においては、メイン制御部40の制御のもとに、対応する第1〜第5の制御装置1031〜1035におけるコンプライアンス調整ゲインKadjを状況に応じて変更することにより、通常時には第1〜第5の指部601〜605に高い剛性をもたせる一方、外部物体の把持時やロボット1の転倒時には第1〜第5の指部601〜605の剛性を低くして、当該外部物体をその形状に沿って柔らかく把持したり、第1〜第5の指部601〜605が床面に衝突することに起因する破損を有効に防止することができるようになされている。
またこのロボット1においては、第1〜第5の指部601〜605に予想外の外力が作用したときには、メイン制御部40の制御を離れてインテリジェントHUB105が対応する第1〜第5の制御装置1031〜1035におけるコンプライアンス調整ゲインKadjを変更することにより、その第1〜第5の指部601〜605を反射的に外力に対して柔らかくさせて、当該外力が作用したことに起因する第1〜第5の指部601〜605の破損を有効に防止できるようになされている。
すなわちこのロボット1の場合、メイン制御部40の演算部40Bは、当該ロボット1の電源が投入された初期時、予め外部メモリ58(図5)に格納されている、第1〜第5の指部601〜605についての通常時用のコンプライアンス調整ゲインKadjの規定値(以下、これらを通常時用調整ゲイン規定値と呼ぶ)を読み出し、これらをインテリジェントHUB105に送出する。
またメイン制御部40の演算部40Bは、この後、上述のような自律制御処理により決定した次の自己の行動内容等に基づいて、第1〜第5の制御装置1031〜1035に対する位置指令値U1(N)〜U5(N)を順次生成し、これを8〔ms〕の通信周期ごとに対応するサブ制御部43Cを介してインテリジェントHUB105に送出する。
インテリジェントHUB105は、第1〜第5の制御装置1031〜1035の構成(親指、人指し指、中指、薬指及び小指)を構成比調整部105Bにおいて管理しており、メイン制御部40から送信される第1〜第5の指部601〜605についての各通常時用調整ゲイン規定値を第1〜第5の制御装置1031〜1035に送信する。かくして第1〜第5の制御装置1031〜1035は、これら通常時用調整ゲイン規定値のうちの対応するものを取り込み、その値をコンプライアンス調整ゲインKadjの初期値として設定する。
またインテリジェントHUB105は、この後8〔ms〕周期でメイン制御部40から送信される位置指令値U1(N)〜U5(N)に基づいて2〔ms〕ごとのサーボ指令値Ref1(k)〜Ref5(k)を生成し、これを2〔ms〕の通信周期ごとに第1〜第5の制御装置1031〜1035に送信する。かくして第1〜第5の制御装置1031〜1035は、この後、インテリジェントHUB105から送信されるサーボ指令値Ref1(k)〜Ref5(k)と、上述のようにして設定したコンプライアンス調整ゲインKadjとに基づいて、位置制御処理とコンプライアンス制御処理とを並列的に同時に実行する。
一方、メイン制御部40の演算部40Bは、外部物体を把持することを次の行動として決定し、実際に当該外部物体をロボット1に把持させる際には、予め外部メモリ58(図5)に格納されている、第1〜第5の指部601〜605についての把持時用のコンプライアンス調整ゲインKadjの規定値(以下、これらを把持時用調整ゲイン規定値と呼ぶ)を読み出す。
この場合これら把持時用調整ゲイン規定値は、対応する通常時用調整ゲイン規定値に比べて値が大きく選定されており、かくしてコンプライアンス調整ゲインKadjとしてこれら把持時用調整ゲイン規定値を第1〜第5の制御装置1031〜1035にそれぞれ設定することにより、第1〜第5の指部601〜605を通常時に比べて低剛性にすることができるようになされている。
そしてメイン制御部の演算部40Bは、これら読み出した第1〜第5の指部601〜605についての把持時調整ゲイン用規定値を、対応するサブ制御部43Cを介してインテリジェントHUB105に送信する。
またメイン制御部40の演算部40Bは、ロボット1が転倒状態(ロボット1が転倒し始めてから転倒し終えるまでの状態)時に加速度センサ56により検出される重力が「0」となることを利用して、加速度センサ56から供給される加速度検出信号S2Bに基づきロボット1の転倒状態を検出したときには、予め外部メモリ58に格納されている、第1〜第5の指部601〜605についての転倒時用のコンプライアンス調整ゲインKadjの規定値(以下、これらを転倒時用調整ゲイン規定値と呼ぶ)を読み出し、これらをインテリジェントHUB105に送出する。これら転倒時用調整ゲイン規定値も、それぞれ対応する通常時用調整ゲイン規定値に比べて値が大きく選定されている。そして演算部40Bは、これらを対応するサブ制御部43Cを介してインテリジェントHUB105に送信する。
このときインテリジェントHUB105は、メイン制御部40から送信される位置指令値U1(N)〜U5(N)に基づいて2〔ms〕ごとのサーボ指令値Ref1(k)〜Ref5(k)を順次生成する。そしてインテリジェントHUB105は、このサーボ指令値Ref1(k)〜Ref5(k)とメイン制御部40から送信されるコンプライアンス調整ゲインKadjとを第1〜第5の制御装置1031〜1035に送信する。
第1〜第5の制御装置1031〜1035は、送信されるサーボ指令値Ref1(k)〜Ref5(k)に基づいて対応するDCモータ121の回転を制御する一方、把持用調整ゲイン規定値又は転倒時用調整ゲイン規定値が送信されてきたときには、それまで自己内部において設定していたコンプライアンス調整ゲインKadjの設定値をその値に更新し、当該更新した新たなコンプライアンス調整ゲインKadjに基づいて対応する第1〜第5の指部601〜605についてのコンプライアンス制御を実行する。
この結果、外部物体を把持したときには、当該外部物体から受ける反作用力(外力)が常に把持時用調整ゲイン規定値に応じた一定の大きさとなるように第1〜第5の指部601〜605が動作するため、外部物体が複雑な形状であってもその形状に倣って第1〜第5の指部601〜605を屈曲させて当該外部物体を一定圧力で柔らかく把持することができる。またロボット1が転倒して第1〜第5の指部601〜605が床面に衝突したときにも、これら第1〜第5の指部601〜605が低剛性であるため、床面から当該第1〜第5の指部601〜605に与えられる衝突力(外力)に従って当該衝突力の方向に第1〜第5の指部601〜605が屈曲し、当該衝突力によって第1〜第5の指部601〜605が破損するのを未然かつ有効に防止することができる。
他方、第1〜第5の制御装置1031〜1035は、位置検出ブロック185(図26)により検出した対応するDCモータ121の現在位置(P1(k)〜P5(k))と、図34について上述した方法より算出した外力推定トルクTf_estとを、対応する第1〜第5の指部601〜605についての状態量として2〔ms〕の通信周期ごとにインテリジェントHUB105に送信する。
インテリジェントHUB105は、第1〜第5の制御装置1031〜1035から送信される状態量を、8〔ms〕の通信周期ごとに対応するサブ制御部43Cを介してメイン制御部40に送信する一方、これら状態量のうちの第1〜第5の指部601〜605についての外力推定トルクTf_estの値を演算部105Aにおいて常時監視する。
そしてインテリジェントHUB105の演算部105Aは、第1〜第5の指部601〜605についての外力推定トルクTf_estの値が予め格納された所定の閾値以上となったときには、予めメモリ113(図22)に格納されている第1〜第5の指部601〜605についての反射制御用調整ゲイン規定値のうち、対応する第1〜第5の制御装置1031〜1035についての反射制御用調整ゲイン規定値を読み出し、これをその第1〜第5の制御装置1031〜1035に送信する。
かくしてこのとき第1〜第5の制御装置1031〜1035は、コンプライアンス調整ゲインKadjの設定値をその反射制御用調整ゲイン規定値に更新し、当該更新したコンプライアンス調整ゲインKadjに基づいて対応する第1〜第5の指部601〜605についてのコンプライアンス制御を実行する。
この場合において、かかる第1〜第5の指部601〜605についての反射制御用調整ゲイン規定値は、それぞれ対応する通常時用調整ゲイン規定値よりも大きな値に選定されている。従って、このときその第1〜第5の指部601〜605が通常時よりも外力に対して柔らかくなるため、当該第1〜第5の指部601〜605がその外力が作用したことに起因して破損するのを有効に防止することができる。
(5−2)各部の具体的な処理内容
ここでメイン制御部40は、上述のようなコンプライアンス制御に関する各種処理を、図36に示す第1のコンプライアンス制御処理手順RT1に従って実行する。
すなわちメイン制御部40は、ロボット1の電源が投入されると、この第1のコンプライアンス制御処理手順RT1をステップSP0において開始し、続くステップSP1において、予め外部メモリ58(図5)に格納されている、図34について上述したコンプライアンス調整ゲインKadj、外力推定ゲインKest、位置比例ゲインKp,KMp及び電流比例ゲインGMpなどの各種制御ゲイン、並びに数学モデルにおけるモータ定数KMm、指モデルにおける慣性モーメントJMy及び摩擦係数DMyなどの各種機械定数と、第1〜第5の制御装置1031〜1035の構成(親指、人指し指、中指、薬指及び小指)とを読み出し、これを対応するサブ制御部43C(図4、図5)を介してインテリジェントHUB105に送出する。
またメイン制御部40は、続くステップSP2において、ロボット1の次の行動として外部物体を把持しようとしているときには、CCDカメラ50(図5)から与えられる画像信号S1A(図5)に基づいて、例えばステレオ測距法等によりその外部物体までの距離を検出する。またメイン制御部40は、続くステップSP3において、加速度センサ56(図5)から供給される加速度検出信号S2B(図5)に基づいてロボット1の姿勢を検出する。
そしてメイン制御部40は、この後ステップSP4に進んで、ステップSP2における検出結果に基づき、そのとき把持対象の外部物体が把持可能な距離内にあるか否かを判断し、肯定結果を得ると、ステップSP6に進んで、外部メモリ58(図5)から第1〜第5の指部601〜605についての把持時用調整ゲイン規定値をそれぞれ読み出し、これらを対応するサブ制御部43Cを介してインテリジェントHUB105に送出し、その後ステップSP8に進む。なお、ステップSP2及びステップSP4は、外部物体を把持する予定がない場合には省略される。
これに対してメイン制御部40は、ステップSP4等が省略されたときや、ステップSP4において否定結果を得たときには、ステップSP5に進んで、ステップSP3における検出結果に基づいて、現在、ロボット1が転倒状態にあるか否かを判断する。
そしてメイン制御部40は、このステップSP5において肯定結果を得ると、ステップSP6に進んで、外部メモリ58(図5)から第1〜第5の指部601〜605についての転倒時用調整ゲイン規定値をそれぞれ読み出し、これらを対応するサブ制御部43Cを介してインテリジェントHUB105に送出した後にステップSP8に進む。
これに対してメイン制御部40は、ステップSP5において否定結果を得ると、ステップSP7に進んで、第1〜第5の指部601〜605についての通常時用調整ゲイン規定値(例えば「0」)をそれぞれ読み出し、これらを対応するサブ制御部43Cを介してインテリジェントHUB105に送出した後にステップSP8に進む。なお、第1〜第5の制御装置1031〜1035においてコンプライアンス調整ゲインKadjとして既に通常時用調整ゲイン規定値が設定されているときには、このステップSP7は省略される。
そしてメイン制御部40は、ステップSP8に進むと、そのときロボット1が実行すべき行動内容に応じて第1〜第5の制御装置1031〜1035に送信すべき位置指令値U1(k)〜U5(k)(図22)を算出し、これを対応するサブ制御部43Cを介してインテリジェントHUB105に送出する。
さらにメイン制御部40は、この後ステップSP2に戻って、さらにこの後ステップSP2〜ステップSP8について同様の処理を8〔ms〕周期で繰り返す。
このようにしてメイン制御部40は、状況に応じて第1〜第5の制御装置1031〜1035におけるコンプライアンス調整ゲインKadjを変更する。
一方、インテリジェントHUB105のCPU111(図22)は、図37に示す第2のコンプライアンス制御処理手順RT2に従って、上述のようなコンプライアンス制御に関する各種処理を実行する。
すなわちCPU111は、ロボット1の電源が投入されると、この第2のコンプライアンス制御処理手順RT2をステップSP10において開始し、続くステップSP11において、メイン制御部40から上述の各種制御ゲイン及び各種機械定数並びにコンプライアンス調整ゲインKadjの初期値(通常時用調整ゲイン規定値)と、第1〜第5の制御装置1031〜1035の構成(親指、人指し指、中指、薬指及び小指)とが送信されるのを待ち受ける。そして、CPU111は、これらを受信すると、このうち各種制御ゲイン、各種機械定数及びコンプライアンス調整ゲインKadjの初期値を対応する第1〜第5の制御装置1031〜1035に送信する一方、第1〜第5の制御装置1031〜1035の構成を構成比調整部105B(図35)において管理する。
そしてCPU111は、この後ステップSP12に進んで、メイン制御部40から位置指令値U1(k)〜U5(k)やコンプライアンス調整ゲインKadjの変更値(通常時用調整ゲイン規定値、把持時用調整ゲイン規定値又は転倒時用調整ゲイン規定値)が送信されてきた場合には、これを受信してステップSP13に進む。またCPU111は、これらが送信されてきていない場合にはそのままステップSP13に進む。
そしてCPU111は、ステップSP13に進むと、最後に受信したメイン制御部40からの位置指令値U1(k)〜U5(k)に基づいて第1〜第5の制御装置1031〜1035に対するサーボ指令値Ref1(k)〜Ref5(k)を生成し、これらをそれぞれ対応する第1〜第5の制御装置1031〜1035に送信する一方、ステップSP12においてコンプライアンス調整ゲインKadjの変更値を受信したときには、これを対応する第1〜第5の制御装置1031〜1035に送信する。
さらにCPU111は、この後ステップSP14に進んで、第1〜第5の制御装置1031〜1035からそれぞれ送信される対応するDCモータ121(図23)の現在位置(P1(k)〜P5(k))及び外力推定トルクTf_est(図34)を受信し、この後ステップSP15に進んで、これら受信した第1〜第5の指部601〜605についての外力推定トルクTf_estのうちのいずれかが、これら第1〜第5の指部601〜605についてそれぞれ予め設定された対応する閾値よりも大きいか否かを判断する。
そしてCPU111は、このステップSP15において否定結果を得るとステップSP12に戻り、これに対して肯定結果を得ると、ステップSP16に進んで、その第1〜第5の指部601〜605について予め定められた反射制御用調整ゲイン規定値をメモリ113(図22)から読み出して、対応する第1〜第5の制御装置1031〜1035に送信する。
さらにCPU111は、この後ステップSP12に戻って、さらにこの後ステップSP12〜ステップSP16について同様の処理を2〔ms〕周期で繰り返す。
このようにしてインテリジェントHUB105のCPU111は、第1〜第5の指部601〜605にある一定以上の外力が作用したときに、第1〜第5の制御装置1031〜1035におけるコンプライアンス調整ゲインKadjを変更する。
他方、第1〜第5の制御装置1031〜1035のCPU200(図26)は、図38に示す第3のコンプライアンス制御処理手順RT3に従って、上述のようなコンプライアンス制御に関する各種処理を実行する。
すなわちCPU200は、ロボット1の電源が投入されると、この第3のコンプライアンス制御処理手順RT3をステップSP20において開始し、続くステップSP21において、インテリジェントHUB105から各種制御ゲイン及び各種機械的定数並びにコンプライアンス調整ゲインKadjが送信されるのを待ち受ける。そしてCPU200は、これらを受信すると、これらをそれぞれ対応する制御ゲイン若しくは機械的定数又はコンプライアンス調整ゲインKadjの初期値として設定する。
そしてCPU200は、この後ステップSP22に進んで、対応する第1〜第5の指部601〜605に対する外力推定トルクTf_estを算出し、さらにこの後ステップSP23に進んで、インテリジェントHUB105から送信されるサーボ指令値Ref1(k)〜Ref5(k)やコンプライアンス調整ゲインKadjの変更値を受信する。そしてCPU200は、この後このサーボ指令値Ref1(k)〜Ref5(k)に基づいて対応するDCモータ121の回転を制御する一方、コンプライアンス調整ゲインKadjの変更値が送信されてきた場合には、当該コンプライアンス調整ゲインKadjの設定値をその変更値に変更する。
続いてCPU200は、ステップSP24に進んで、ステップSP22において算出した外力推定トルクTf_estをインテリジェントHUB105に送信する一方、この後ステップSP22に戻り、さらにこの後ステップSP22〜ステップSP24について同様の処理を1〔ms〕周期で繰り返す。
このようにして第1〜第5の制御装置1031〜1035のCPU200は、インテリジェントHUB105から送信されるサーボ指令値Ref1(k)〜Ref5(k)及びコンプライアンス調整ゲインKadjに基づいて対応するDCモータ121の回転を1〔ms〕で制御する。
(6)本実施の形態の動作及び効果
以上の構成において、ロボット1は、通常時には、第1〜第5の制御装置1031〜1035にコンプライアンス調整ゲインKadjとして通常時用調整ゲイン規定値を設定し、この通常時用調整ゲイン規定値に基づいて第1〜第5の指部601〜605の外力に対する柔らかさを制御する一方、外部物体の把持時やロボット1の転倒時には、第1〜第5の制御装置1031〜1035に設定されたコンプライアンス調整ゲインKadjを通常時用調整ゲイン規定値よりも値の大きな把持時用調整ゲイン規定値又は転倒時用調整ゲイン規定値に変更し、この把持時用調整ゲイン規定値又は転倒時用調整ゲイン規定値に基づいて第1〜第5の指部601〜605の外力に対する柔らかさを制御する。
従って、このロボット1は、通常時には第1〜第5の指部601〜605に高い剛性をもたせながら、外部物体の把持時やロボット1の転倒時には第1〜第5の指部601〜605の剛性を低くすることができるため、指部に高い剛性が要求される作業を行うことができる一方で、複雑な外形形状を有する外部物体をその表面に指部を倣わせて柔らかく持つことが可能であり、さらに転倒時における第1〜第5の指部601〜605の破損も有効に防止できる。
またこのロボット1では、第1〜第5の指部601〜605に一定レベル以上の外力が作用したときに、第1〜第5の制御装置1031〜1035に設定されたコンプライアンス調整ゲインKadjの設定値を、インテリジェントHUB105の制御のもとに、反射制御用調整ゲイン規定値に変更する。
従って、このロボット1では、第1〜第5の指部601〜605に予想外の外力が作用した場合に第1〜第5の指部601〜605の剛性が反射的に低くなるため、当該外力に起因する第1〜第5の指部601〜605の破損を有効に防止することができる。
以上の構成によれば、通常時には、第1〜第5の制御装置1031〜1035にコンプライアンス調整ゲインKadjとして通常時用調整ゲイン規定値を設定し、この通常時用調整ゲイン規定値に基づいて第1〜第5の指部601〜605の外力に対する柔らかさを制御する一方、外部物体の把持時やロボット1の転倒時には、第1〜第5の制御装置1031〜1035に設定されたコンプライアンス調整ゲインKadjを通常時用調整ゲイン規定値よりも値の大きな把持時用調整ゲイン規定値又は転倒時用調整ゲイン規定値に変更し、この把持時用調整ゲイン規定値又は転倒時用調整ゲイン規定値に基づいて第1〜第5の指部601〜605の外力に対する柔らかさを制御するようにしたことにより、指部に高い剛性が要求される作業を行うことができる一方で、複雑な外形形状を有する外部物体をその表面に指部を倣わせて柔らかく持つことが可能であり、さらに転倒時における第1〜第5の指部601〜605の破損も有効に防止でき、かくして第1〜第5の指部601〜605の破損の有効に防止しながら有用性を向上させ得るロボットを実現できる。
(7)他の実施の形態
なお上述の実施の形態においては、本発明を図1のように構成された2足歩行型のヒューマノイドタイプのロボット1に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のロボット装置に広く適用することができる。
また上述の実施の形態においては、ロボット1が外部物体を把持する際と、ロボット1が転倒状態にあるときにのみ、第1〜第5の制御装置1031〜1035に設定されたコンプライアンス調整ゲインKadjを変更するようにした場合について述べたが、本発明はこれに限らず、これ以外のタイミングで第1〜第5の制御装置1031〜1035に設定されたコンプライアンス調整ゲインKadjを変更するようにしても良く、要は、必要な状況時にかかるコンプライアンス調整ゲインKadjを変更するようにすれば良い。
この場合において上述の実施の形態においては、ロボット1が外部物体を把持する際には把持対象の外部物体の種類等にかかわりなく、常に第1〜第5の制御装置1031〜1035に設定されたコンプライアンス調整ゲインKadjを一定の把持時用調整ゲイン規定値に変更するようにした場合について述べたが、本発明はこれに限らず、例えば把持時用調整ゲイン規定値を複数用意しておき、外部物体を把持する際には画像認識処理によりその外部物体を識別し、当該外部物体が卵のような壊れ易いものであるときにはコンプライアンス調整ゲインKadjとして最も小さい把持時用調整ゲイン規定値を設定する一方で、当該外部物体が固く重みのあるものであるときにはコンプライアンス調整ゲインKadjとして最も大きい把持時用調整ゲイン規定値を設定するというように、把持対象に応じて把持時用調整ゲイン規定値として異なるものを用いるようにしても良い。
さらに上述の実施の形態においては、第1〜第5の制御装置1031〜1035のCPU200によって算出された外力推定トルクTf_estを監視し、当該外力推定トルクTf_estの値が予め設定された閾値よりも大きいときは、対応する第1〜第5の指部601〜605の剛性を低くするように、第1〜第5の制御装置1031〜1035に設定されたコンプライアンス調整ゲインKadjの設定値を反射制御用調整ゲイン規定値に変更する外力監視手段としての機能をインテリジェントHUB105にもたせるようにした場合について述べたが、本発明はこれに限らず、かかる機能を第1〜第5の制御装置1031〜1035側(例えばCPU200)にもたせるようにしても良い。