(57)【特許請求の範囲】
【請求項１】
複数のリンクが関節を介して接続されており、関節角を調節することによって姿勢を変化させるロボットであって、
ロボットの目標姿勢を経時的に記述している姿勢データの記憶手段と、
記憶手段に記憶されている姿勢データから、ロボットの所定部位に関する目標姿勢に経時変化が生じない姿勢静止期間を検出する姿勢静止検出手段と、
姿勢静止期間中の目標姿勢を、当該静止期間中の目標姿勢を動作範囲に含むように、所定振幅および所定周期で経時的に変動する目標姿勢に修正する目標姿勢修正手段と、
修正された目標姿勢に追従して関節角を調節するモータと、
を備えるロボット。
【請求項２】
修正された目標姿勢に追従して関節角を調節するときのモータの回転速度の経時変化を計算する計算手段と、
計算したモータの回転速度の経時変化から、モータの回転速度が所定時間以上に亘って所定速度以下となるモータ静止期間を検出するモータ静止検出手段とが付加されており、
前記目標姿勢修正手段は、モータ静止検出手段がモータ静止期間を検出したときに、前記振幅を増大する処理と前記周期を短縮する処理の少なくとも一方を実行することを特徴とする請求項１のロボット。
【請求項３】
モータの回転速度を検出するモータ速度検出手段と、
検出したモータの回転速度の経時変化から、モータの回転速度が所定時間以上に亘って所定速度以下となるモータ静止期間を検出するモータ静止検出手段とが付加されており、
前記目標姿勢修正手段は、モータ静止検出手段がモータ静止期間を検出したときに、前記振幅を増大する処理と前記周期を短縮する処理の少なくとも一方を実行することを特徴とする請求項１のロボット。
【請求項４】
前記姿勢データは、少なくとも一つの所定リンクの目標位置を経時的に記述しており、
前記姿勢静止検出手段は、前記所定リンクの目標位置に経時変化が生じない期間を、前記姿勢静止期間として特定し、
前記目標姿勢修正手段は、前記所定リンクの姿勢静止期間中の目標位置を、所定振幅および所定周期で経時的に変動する目標位置に修正する、
ことを特徴とする請求項１から３のいずれかのロボット。
【請求項５】
体幹と、
体幹に関節を介して接続されている複数の脚リンクと、
少なくとも体幹の目標位置を経時的に記述している姿勢データの記憶手段と、
記憶手段に記憶されている姿勢データから、体幹の目標位置に経時変化が生じない体幹静止期間を検出する体幹静止検出手段と、
体幹静止期間中の体幹の目標位置を、当該静止期間中の体幹の目標位置を動作範囲に含むように、所定振幅および所定周期で変動する目標位置に修正する体幹位置修正手段と、
修正された体幹の目標位置に追従して関節角を調節するモータと、
を備えるロボット。
【請求項６】
前記体幹位置修正手段は、前記体幹静止期間中の体幹の目標位置を、所定振幅および所定周期で鉛直方向に経時的に変動する目標位置に修正することを特徴とする請求項５のロボット。
【請求項７】
複数のリンクが関節を介して接続されており、関節角を調節することによって姿勢を変化させるロボットの動作を制御する方法であって、
ロボットの目標姿勢を経時的に記述している姿勢データを用意する工程と、
用意した姿勢データから、ロボットの所定部位に関する目標姿勢に経時変化が生じない姿勢静止期間を特定する工程と、
姿勢静止期間中の目標姿勢を、当該静止期間中の目標姿勢を動作範囲に含むように、所定振幅および所定周期で経時的に変動する目標姿勢に修正する工程と、
ロボットの関節角を変化させるモータの動作を制御し、修正された目標姿勢に追従してロボットの関節角を調節する工程と、
を備えるロボットの動作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のリンクが関節を介して接続されているロボットに関する。
【背景技術】
【０００２】
複数のリンクが関節を介して接続されているロボットが知られている。ロボットは、各関節の関節角を調節するモータを備えており、各関節の関節角を調節することによって、自身の姿勢を変化させる。
ロボットが一定の姿勢を維持する場合、関節に負荷しているトルクに抗して、各関節の関節角が一定の関節角に維持される。このとき、各関節の関節角を調節するモータには、停止した状態で継続的にモータ電流が通電される。停止した状態のモータに通電すると、例えばモータ電流が一つの相のコイルに偏って通電されることがあり、モータコイルが過熱したり焼損したりするという問題が生じる。
上記の問題に対して、特許文献１には、ロボットを静止させる際に、関節角を負荷トルクの作用方向に変化させた後に静止させる技術が開示されている。特許文献１には、関節を負荷トルクの作用方向と逆方向に動作させた後に静止させた場合よりも、関節を負荷トルクの作用方向に動作させた後に静止させた場合の方が、静止状態を維持するのに必要なサーボモータの出力トルクが低減されることが報告されている。
【特許文献１】特開平５−１３８５６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１の技術によると、ロボットが一定の姿勢を維持する場合に、モータの出力トルクを低減できるとしても、依然として停止した状態のモータに継続的に通電する必要がある。特許文献１の技術を採用しても、ロボットの関節を駆動するモータのコイルを過熱させたり焼損させたりする恐れがある。
本発明は、上記の問題を解決する。本発明は、ロボットの関節角を調節するモータの過熱や焼損を防止するための技術を提供する。
【課題を解決するための手段】
【０００４】
本発明の技術は、複数のリンクが関節を介して接続されており、関節角を調節することによって姿勢を変化させるロボットに具現化することができる。このロボットは、ロボットの目標姿勢を経時的に記述している姿勢データの記憶手段と、記憶手段に記憶されている姿勢データから、ロボットの所定部位に関する目標姿勢に経時変化が生じない姿勢静止期間を検出する姿勢静止検出手段と、姿勢静止期間中の目標姿勢を、当該静止期間中の目標姿勢を動作範囲に含むように、所定振幅および所定周期で経時的に変動する目標姿勢に修正する目標姿勢修正手段と、修正された目標姿勢に追従して関節角を調節するモータとを備えている。
【０００５】
このロボットは、目標姿勢を経時的に記述している姿勢データから、ロボットの所定部位に関する目標姿勢に経時変化が生じない姿勢静止期間を特定する。そして、姿勢静止期間中の目標姿勢を、所定振幅および所定周期で経時的に変動する目標姿勢へと修正する。それにより、目標姿勢に経時変化が生じない期間でも、ロボットは姿勢を所定振幅および所定周期で経時的に変動させることとなる。ロボットの姿勢が一定に維持されることがなく、停止した状態のモータに継続的に通電されることが防止される。
このロボットによると、停止した状態のモータに継続的に通電されることが防止され、モータコイルの過熱や焼損が防止される。
【０００６】
上記のロボットでは、修正された目標姿勢に追従して関節角を調節するときのモータの回転速度の経時変化を計算する計算手段と、計算したモータの回転速度の経時変化から、モータの回転速度が所定時間以上に亘って所定速度以下となるモータ静止期間を検出するモータ静止検出手段とが付加されていることが好ましい。この場合、目標姿勢修正手段は、モータ静止検出手段がモータ静止期間を検出したときに、前記振幅を増大する処理と前記周期を短縮する処理の少なくとも一方を実行して、姿勢データを再修正することが好ましい。
このロボットでは、姿勢静止期間中の目標姿勢を修正した後に、モータの回転速度を実際に計算して確認する。そして、モータの回転速度が所定時間以上に亘って所定速度以下となるときには、目標姿勢の修正が不十分であると判断する。この場合、姿勢静止期間中の目標姿勢を、より大きな振幅やより短い周期で経時的に変動する目標姿勢に修正する。即ち、モータの回転速度がより速くなるように、姿勢データの再修正を行う。それにより、モータコイルの過熱や焼損がより確実に防止される。
【０００７】
あるいは、上記のロボットにおいて、モータの回転速度を検出するモータ速度検出手段と、検出したモータの回転速度の経時変化から、モータの回転速度が所定時間以上に亘って所定速度以下となるモータ静止期間を検出するモータ静止検出手段とが付加されていることも好ましい。この場合、目標姿勢修正手段は、モータ静止検出手段がモータ静止期間を検出したときに、前記振幅を増大する処理と前記周期を短縮する処理の少なくとも一方を実行することが好ましい。
このロボットでは、姿勢静止期間中の目標姿勢を修正した後に、モータの回転速度を実際に検出して確認する。そして、目標姿勢の修正が不十分であると判断した場合には、姿勢静止期間中の目標姿勢を、より大きな振幅やより短い周期で経時的に変動する目標姿勢に修正する。即ち、モータの回転速度がより速くなるように、姿勢データの再修正を行う。それにより、モータコイルの過熱や焼損がより確実に防止される。
【０００８】
上記のロボットにおいて、姿勢データは、少なくとも一つの所定リンクの目標位置を経時的に記述していることが好ましい。この場合、姿勢静止検出手段は、所定リンクの目標位置に経時変化が生じない期間を、姿勢静止期間として検出することが好ましい。また、目標姿勢修正手段は、所定リンクの姿勢静止期間中の目標位置を、所定振幅および所定周期で経時的に変動する目標位置に修正することが好ましい。
姿勢データが所定リンクの目標位置を経時的に記述している場合、所定リンクの目標位置に経時変化が生じない期間を、目標姿勢に経時変化が生じない姿勢静止期間とみなすことができる。この場合、所定リンクの姿勢静止期間中の目標位置を、所定振幅および所定周期で経時的に変動する目標位置に修正することによって、ロボットの姿勢静止期間中の目標姿勢を、所定振幅および所定周期で経時的に変動する目標姿勢に修正することができる。
【０００９】
本発明の技術は、体幹と、体幹に関節を介して接続されている複数の脚リンクを備えるロボットに具現化することができる。このロボットは、少なくとも体幹の目標位置を経時的に記述している姿勢データの記憶手段と、記憶手段に記憶されている姿勢データから、体幹の目標位置に経時変化が生じない体幹静止期間を検出する体幹静止検出手段と、体幹静止期間中の体幹の目標位置を、当該静止期間中の体幹の目標位置を動作範囲に含むように、所定振幅および所定周期で変動する目標位置に修正する体幹位置修正手段と、修正された体幹の目標位置に追従して関節角を調節するモータとを備えている。
体幹と複数の脚リンクを備えるいわゆる脚式ロボットは、静止状態において、脚リンクの各関節に比較的に大きな負荷トルクが作用する。そのことから、脚式ロボットでは、脚リンクの各関節の関節角が一定の関節角に維持されることを防止することが重要である。
このロボットによると、体幹の目標位置に経時変化が生じないような静止指令が与えられたときでも、脚リンクの各関節の関節角が一定の関節角に維持されることが防止されることから、モータコイルの過熱や焼損が防止される。
【００１０】
上記のロボットにおいて、体幹位置修正手段は、体幹静止期間中の体幹の目標位置を、所定振幅および所定周期で鉛直方向に経時的に変動する目標位置に修正することが好ましい。
体幹の目標位置を修正する際に、鉛直方向に修正することによって、ロボットがバランスを崩すことが防止される。
【００１１】
本発明の技術は、ロボットの動作を制御する方法に具現化することもできる。この方法は、複数のリンクが関節を介して接続されており、関節角を調節することによって姿勢を変化させるロボットの動作を制御する方法であって、ロボットの目標姿勢を経時的に記述している姿勢データを用意する工程と、用意した姿勢データから、目標姿勢に経時変化が生じない姿勢静止期間を特定する工程と、姿勢静止期間中の目標姿勢を、所定振幅および所定周期で経時的に変動する目標姿勢に修正する工程と、ロボットの関節角を変化させるモータの動作を制御し、修正された目標姿勢に追従して関節角を調節する工程とを備えている。
この方法によると、例えばロボットに一定の姿勢を維持させる姿勢データが与えられた場合でも、停止した状態のモータに継続的に通電されることがなく、モータコイルの過熱や焼損が防止される。
【発明の効果】
【００１２】
本発明により、ロボットに一定の姿勢を維持させる姿勢データを用いる場合でも、停止した状態のモータに継続的に通電することがなく、モータコイルの過熱や焼損が防止される。
【発明を実施するための最良の形態】
【００１３】
最初に、以下に説明する実施例の主要な特徴を列記する。
（特徴１）ロボットは、体幹と、体幹に関節を介して接続されている２本の脚リンクを備えている。
（特徴２）ロボットは、外部から教示された姿勢データを入力して記憶する手段を備えている。
（特徴３）ロボットは、記憶手段に記憶されている姿勢静止期間中の目標姿勢に、所定振幅および所定周期で鉛直方向に経時的に変動する姿勢修正量を加算する。この場合、記憶手段に記憶されている姿勢データの書き換えが行われる。この方式であると、姿勢静止期間中の目標姿勢を、ロボットが動作を開始するのに先立って修正しておくことができる。
（特徴４）ロボットは、記憶手段から姿勢静止期間中に出力された目標姿勢に、所定振幅および所定周期で鉛直方向に経時的に変動する姿勢修正量を加算する。この場合、記憶手段に記憶されている姿勢データの書き換えは行われない。この方式であると、姿勢静止期間中の目標姿勢を、ロボットの動作中に修正することができる。
（特徴５）ロボットは、各関節の関節角を調節するサーボモータを備えている。
【実施例】
【００１４】
（実施例１）
本発明を実施した第１実施例について、図面を参照しながら説明する。
図１に示すように、ロボット１０は、頭部１７と、体幹１５と、左腕リンク１６と、右腕リンク１８と、左脚リンク１２と、右脚リンク１４を備えている。ロボット１０は、人を模して作られたヒューマノイドロボットであり、二足歩行等の動作を実施可能なロボットである。
【００１５】
図２は、ロボット１０の機械的な構造を示している。以下においては、説明の便宜上、図２に示すｘ、ｙ、ｚ軸の３軸からなる座標系を設定する。ｘ軸（ロール軸）は、ロボット１０の前後方向に延びている。ｙ軸（ピッチ軸）は、ロボット１０の左右方向に延びている。ｚ軸（ヨー軸）は、ロボット１０の上下方向（鉛直方向）に延びている。
図２に示すように、頭部１７は、首関節７１を介して体幹（体幹リンク）１５に接続されている。首関節７１は、ｙ軸回りとｚ軸回りの２軸の回動軸を持つ関節である。頭部１７は、体幹１５に対してｙ軸回りとｚ軸回りに回動可能となっている。
左腕リンク１６は、左肩関節６１を介して体幹１５に接続されている。左肩関節４６は、ｘ軸回りとｙ軸回りの２軸の回動軸を持つ関節である。左腕リンク１６は、体幹１５に対してｘ軸回りとｙ軸回りに回動可能となっている。左腕リンク１６は、左上腕リンク６２と、左肘関節６３と、左前腕６４と、左掌６５を備えている。左前腕リンク６４は、左肘関節４３を介して左上腕リンク６２に接続されている。左肘関節４３は、ｙ軸回りの１軸の回動軸を持つ関節である。左前腕リンク６４は、左上腕リンク６２に対してｙ軸回りに回動可能となっている。左掌６５は、左前腕リンク６４に取り付けられている。
右腕リンク１８は、右肩関節８１を介して体幹１５に接続されている。右腕リンク１８は、右上腕リンク８２と、右肘関節８３と、右前腕８４と、右掌８５を備えている。右腕リンク１８の構成は、左腕リンク１６の構成と鏡面対称の関係となっている。
【００１６】
左脚リンク１２は、左股関節２１を介して体幹１５に接続されている。左股関節２１は、ｘ軸回りとｙ軸回りとｚ軸回りの３軸の回動軸を持つ関節である。左脚リンク１２は、体幹１５に対してｘ軸回りとｙ軸回りとｚ軸回りに回動可能となっている。左脚リンク１２は、左大腿リンク２２と、左膝関節２３と、左下腿リンク２４と、左足首関節２５と、左足平リンク２６を備えている。左大腿リンク２２は、左股関節２１を介して体幹１５に接続されている。左下腿リンク２４は、左膝関節２３を介して左大腿リンク２２に接続されている。左膝関節２３は、ｙ軸回りの１軸の回動軸を持つ関節である。左下腿リンク２４は、左大腿リンク２２に対してｙ軸回りに回動可能となっている。左足平リンク２６は、左足首関節２５を介して左下腿リンク２４に接続されている。左足首関節２５は、ｘ軸回りとｙ軸回りの２軸の回動軸を持つ関節である。左足平２６リンクは、左下腿リンク２４に対してｘ軸回りとｙ軸回りに回動可能となっている。
右脚リンク１４は、右股関節４１を介して体幹１５に接続されている。右脚リンク１４は、右大腿リンク４２と、右膝関節４３と、右下腿リンク４４と、右足首関節４５と、右足平リンク４６を備えている。右脚リンク１４の構成は、左脚リンク１２の構成と鏡面対称の関係となっている。
図２中において、点Ｐ１は左足平リンク２６に定められている代表点を示しており、矢印Ｄ１は左足平リンク２６に定められている代表方向を示している。また、点Ｐ２は右足平リンク４６に定められている代表点を示しており、矢印Ｄ２は右足平リンク４６に定められている代表方向を示している。また、点Ｐ３は体幹１５に定められている代表点を示しており、矢印Ｄ３は体幹１５に定められている代表方向を示している。
図２では図示省略するが、ロボット１０の各関節には、各軸回りの関節角を変化させるモータ（図３に図示されている）１０８が設けられている。各モータの種類については特に限定されないが、本実施例では、三相交流電力用のサーボモータ（いわゆるＡＣサーボモータ）を採用している。
以上、本実施例のロボット１０の機械的な構成について説明したが、ロボット１０の機械的な構成は、上記で説明した形態に限定されない。
【００１７】
図３は、ロボット１０の電気的な構成を示している。図３に示すように、ロボット１０は、姿勢データ記憶部１０２と、関節角計算部１０４と、複数のモータコンローラ１０６と、複数のＡＣサーボモータ１０８と、複数のエンコーダ１１０を備えている。先に説明したように、ＡＣサーボモータ１０８は、ロボット１０の各関節の関節角を変化させるモータである。
姿勢データ記憶部１０２は、外部から教示される姿勢データ１０３を入力して記憶する。姿勢データ１０３は、ロボット１０が所定の動作（例えば二足歩行）を実行するときの目標姿勢を経時的に記述するデータである。姿勢データ１０３は、左足位置データ１０３ａと、右足位置データ１０３ｂと、体幹位置データ１０３ｃを含んでいる。左足位置データ１０３ａは、左足平リンク２６の目標位置（詳しくは代表点Ｐ１の目標位置と代表方向Ｄ１の目標向き）を経時的に記述している。右足位置データ１０３ｂは、右足平リンク４６の目標位置（詳しくは代表点Ｐ２の目標位置と代表方向Ｄ２の目標向き）を経時的に記述している。体幹位置データ１０３ｃは、体幹１５の目標位置（詳しくは代表点Ｐ３の目標位置と代表方向Ｄ３の目標向き）を経時的に記述している。その他、姿勢データ記憶部１０２は、頭部１７の位置と向きを経時的に記述する頭部位置データや、左掌６５の位置や向きを経時的に記述する左手位置データや、右掌８５の位置や向きを経時的に記述する右手位置データ等を記憶することもできる。このように、姿勢データ１０３では、代表となる複数のリンクの目標位置と目標向きによって、ロボット１０の目標姿勢が記述されている。
【００１８】
関節角計算部１０４は、姿勢データ１０３が記述するロボット１０の目標姿勢を入力し、いわゆる逆キネマティクスを解くことにより、ロボット１０の各関節の目標関節角を計算する。
モータコントローラ１０６とエンコーダ１１０は、各関節の関節角を変化させるＡＣサーボモータ毎に用意されている。モータコントローラ１０６は、関節角計算部１０４が計算した目標とする関節角と、エンコーダ１１０が検出した実際の関節角とに基づいて、ＡＣサーボモータの動作を調節する。ここで、モータコントローラ１０６は、目標とする関節角と実際の関節角の差分と、その差分の積算値に基づいて、即ち、位置積分制御（ＰＩ）を用いて、モータ１０８の出力トルクを調節する。それにより、ロボット１０の各関節の関節角は、関節角計算部１０４が計算した目標関節角に調節される。
このように、ロボット１０は、姿勢データ１０３に追従して姿勢を経時的に変化させることによって、姿勢データ１０３が記述する所定の動作（例えば二足方向）を実行することができる。
【００１９】
例えば姿勢データ１０３が、先ず所定時間は歩行し、その後の所定時間は静止し、その後の所定時間は再び歩行するという動作を記述しているとする。この場合、ロボット１０は姿勢データ１０３に追従して、先ず所定時間は歩行し、その後の所定時間は静止し、その後の所定時間は再び歩行する。ロボット１０が静止している間、ロボット１０の各関節では、関節角が一定に維持される。このとき、例えば膝関節２３、４３等には、ロボット１０の自重によって、比較的に大きな負荷トルクが加わっている。膝関節２３、４３を動かすＡＣサーボモータ１０８は、この負荷トルクに抗して膝関節２３、４３の関節角を一定に維持しなければならず、比較的に大きな電流が継続的に流れ続けてしまう。特に、ＡＣサーボモータ１０８は三相交流用であることから、比較的に大きな電流が一つの相のコイルに流れ続ける場合もあり、コイルが焼損してしまう危険性が大きくなる。
【００２０】
上記の問題に対して、本実施例のロボット１０では、姿勢データ１０３を用いて動作を開始する前に、姿勢データ１０３に修正が必要か否かを判断し、必要に応じて姿勢データ１０３を修正することができる。そのために、本実施例のロボット１０は、以下に説明する構成を備えている。
図３に示すように、ロボット１０は、静止期間特定部１２２と、体幹位置修正部１２４と、モータ速度計算部１２６と、モータ静止検出部１２８を備えている。ロボット１０は、これらの各部１２２、１２４、１２６、１２８と関節角計算部１０４を用いて、姿勢データ記憶部１０２に記憶されている姿勢データ１０３を、必要に応じて修正することができる。
図４は、ロボット１０が姿勢データ１０３を必要に応じて修正する処理の流れを示すフローチャートである。以下、図４に示す処理フローに沿って説明を続ける。
ステップＳ２では、ロボット１０が、外部から教示された姿勢データ１０３を記憶する。先に説明したように、姿勢データ１０３は、例えば左足位置データ１０３ａや右足位置データ１０３ｂや体幹位置データ１０３ｃを備えている。
ステップＳ４では、静止期間特定部１２２が、姿勢データ記憶手段１０２に記憶されている姿勢データ１０３から、ロボット１０の目標とする姿勢に経時変化のない姿勢静止期間を特定する。詳しくは、静止期間特定部１２２は、姿勢データ１０３のなかの体幹位置データ１０３ｃを参照し、体幹１５の目標位置が所定の基準時間以上に亘って変化しない期間を、姿勢静止期間として特定する。図５は、体幹位置データ１０３が記述している体幹１５の目標位置のｚ座標の経時変化の一例を示している。図５に示すように、姿勢静止期間Ｓ１では、体幹１５の目標位置のｚ座標は経時的に一定となる。なお、ここでは図示省略するが、姿勢静止期間Ｓ１では、体幹１５の目標位置のｘ座標やｙ座標も経時的に一定となる。
体幹位置データ１０３ｃから姿勢静止期間が検出されない場合、姿勢データ１０３を修正する必要がないことから、本フローは終了する。
本実施例では、体幹１５の目標位置に経時変化が生じない状態を、ロボット１０の姿勢に経時変化が生じない静止状態と判断する。この場合、例えば頭部１７や腕リンク１６、１８の目標位置に経時変化が生じる期間であっても、体幹１５の目標位置に経時変化が生じなければ、ロボット１０は実質的に静止状態であると判断する。このように、ロボット１０の静止状態とは、ロボット１０が完全に静止している状態に限られず、ロボット１０の特定の部位（ここでは体幹１５）が静止している状態を含むものである。
【００２１】
ステップＳ６では、体幹位置修正部１２４が、姿勢データ記憶部１０２に記憶されている体幹位置データ１０３ｃに対して、姿勢静止期間Ｓ１中の体幹１５の目標位置を修正する処理を行う。この修正処理において、体幹位置修正部１２４は、姿勢静止期間Ｓ１中の体幹目標位置に、所定振幅および所定周期で周期的に変動する位置修正量を加算して、姿勢静止期間Ｓ１中の体幹１５の目標位置を修正する。具体的には、図６に示すように、姿勢静止期間Ｓ１中の体幹１５の目標位置のｚ座標に、振幅Ａおよび周期Ｔで変動する高さ位置修正量を加算して（ここでは負の修正量を加算している）、姿勢静止期間Ｓ１中の体幹目標位置を修正する。高さ位置修正量ｄｚは、例えばｄｚ＝Ａ・（１−ｃｏｓ（２π・（（ｔ−ｔ１）／Ｔ）））と決定することができる。
図７に示すように、ステップＳ６の修正処理によって、姿勢静止期間中のロボット１０の目標姿勢は、振幅Ａおよび周期Ｔで鉛直方向に経時的に変動する。ロボット１０が修正後の姿勢データ１０３に追従して動作すると、股関節２１、４１や膝関節２３、４３や足首関節２５、４５が一定の関節角に固定されることない。その結果、ＡＣサーボモータ１０８群が大きな負荷トルクに抗して静止し続けることが防止され、例えばＡＣサーボモータ１０８の特定のコイルが過熱したり焼損したりすることを防ぐことができる。なお、ロボット１０が修正後の姿勢データ１０３に追従して動作した場合、姿勢静止期間Ｓ１中においてもロボット１０の姿勢は僅かに変動しつづけることとなるが、振幅Ａや周期Ｔの設定を調整することによって、ロボット１０があたかも静止しているように見せることも可能である。
【００２２】
上記した姿勢データ１０３（詳しくは体幹位置データ１０３ｃの修正）により、ＡＣモータ１０８群が大きな負荷トルクに抗して静止し続けることが防止される。しかしながら、体幹１５を振幅Ａおよび周期Ｔで鉛直方向に変動させるときのＡＣモータ１０８群の回転速度は、ロボット１０の姿勢に応じて相違する。例えば体幹１５を鉛直方向に同じ量だけ移動させる場合、膝関節２３、４３が比較的に伸びている姿勢時では、膝関節２３、４３が比較的に曲がっている姿勢時に比して、膝関節２３、４３の関節角を小さく変化させれば足りる。そのことから、体幹１５を同じ振幅Ａおよび同じ周期Ｔで鉛直方向に変動させたとしても、膝関節２３、４３が比較的に伸びている姿勢時では、膝関節２３、４３が比較的に曲がっている姿勢時に比して、ＡＣサーボモータ１０８群の回転速度は遅くなる。このとき、ＡＣサーボモータ１０８群の回転速度が遅すぎると、一つの相のコイルに過大な電流が継続的に通電することとなり、コイルが焼損してしまう恐れが生じる。
この問題に対して、例えば体幹１５の目標位置を修正する位置修正量の振幅Ａを十分に大きく、あるいは、周期Ｔを十分に短く設定しておいてもよい。しかしながら、この方式を採用すると、ロボット１０の姿勢によっては、ロボット１０の姿勢を過剰に変動させてしまうことがある。そこで、本実施例のロボット１０では、以下に説明する処理を実行することによって、ロボット１０の姿勢を過剰に変動させることなく、ＡＣサーボモータ１０８群のコイルが焼損してしまうことを防止する。
【００２３】
図４に示すように、ステップＳ８では、関節角計算部１０４が、修正後の姿勢データ１０３を記述するロボット１０の目標姿勢を入力し、いわゆる逆キネマティクスを解くことによって、ロボット１０の各関節の目標関節角を計算する。このとき、関節角計算部１０４は、データ修正が行われた姿勢静止期間Ｓ１に限って、ロボット１０の各関節の目標関節角を計算する。また、関節角計算部１０４は、体幹位置データ１０３ｃの修正によって主に影響を受ける股関節２１、４１や膝関節２３、４３や足首関節２５、４５等の関節角に限って、目標関節角を計算する。関節角計算部１０４は、姿勢静止期間Ｓ１に亘って各関節２１、４１、２３、４３、２５、４５の目標関節角を計算し、姿勢静止期間Ｓ１における目標関節角の経時データをモータ速度計算部１２６へ出力する。
ステップＳ１０では、モータ速度計算部１２６が、関節角計算部１０４が計算した各関節の目標関節角の経時データに基づいて、各関節を動かす各ＡＣサーボモータ１０８の回転速度の経時変化を計算する。図８に、左膝関節２３を動かすＡＣサーボモータ１０８を例に挙げて、モータ速度計算部１２６が計算するＡＣサーボモータ１０８の回転速度の経時変化を示す。図８の縦軸は、モータ１０８の回転速度Ｖを示している。図８に示すように、姿勢静止期間Ｓ１において、左膝関節２３を動かすＡＣサーボモータ１０８は、周期的に正転と逆転を繰り返しながら回転する。モータ速度計算部１２６は、計算したＡＣサーボモータ１０８の回転速度の経時変化を、モータ静止検出部１２８へ出力する。
【００２４】
ステップＳ１２では、モータ静止検出部１２８が、計算された各ＡＣサーボモータ１０８の回転速度の経時変化に基づいて、ＡＣサーボモータ１０８毎にモータ静止期間の検出を行う。図８に示すように、モータ静止期間Ｓ２とは、ＡＣサーボモータ１０８の回転速度Ｖの大きさ（回転速度Ｖの絶対値）が、閾値時間Ｓｔｈ以上に亘って閾値速さＶｔｈ以下である期間を意味する。即ち、ここでいうモータ静止期間とは、ＡＣサーボモータ１０８が完全に静止している期間のみを意図するものでなく、ＡＣサーボモータ１０８が略静止している期間を含んで意図するものである。ステップＳ１２において、すべてのＡＣサーボモータ１０８に関してモータ静止期間Ｓ２が検出されなければ、ステップＳ６における姿勢データ１０３の修正が十分であったといえる。この場合、姿勢データ１０３の修正が正しく行われたものと判断し、本フローを終了する。一方、少なくとも一つのＡＣサーボモータ１０８に関してモータ静止期間Ｓ２が検出された場合、ステップＳ６における姿勢データ１０３の修正が不十分であったといえる。この場合、姿勢データ１０３の再修正が必要と判断し、ステップＳ１２を経由してステップＳ６へと戻る。
ステップＳ１２では、体幹位置修正部１２４が、体幹位置データ１０３ｃを修正する位置修正量を変更する。詳しくは、位置修正量の振幅Ａを増大させるか、あるいは、位置修正量の周期Ｔを短縮する。体幹位置修正部１２４は、位置修正量を変更した上で、体幹位置データ１０３ｃの修正を再度行う（ステップＳ６）。以下、ステップＳ６からステップＳ１２の処理が繰り返されることによって、ロボット１０の姿勢を過剰に変動させることなく、ＡＣサーボモータ１０８群が焼損してしまうことが防止されるように、体幹位置データ１０３ｃの修正が行われる。
【００２５】
本実施例のロボット１０は、姿勢に経時変化が生じない姿勢静止期間が含まれている姿勢データ１０３が教示された場合でも、教示された姿勢データ１０３に追従して動作する以前の段階で姿勢データ１０３を修正することによって、ＡＣサーボモータ１０３のコイルが過熱したり焼損したりすることを防止することができる。
【００２６】
上記した実施例では、図４のステップＳ４において姿勢データ１０３を修正する際に、体幹１５の目標位置のｚ座標を修正する手法について説明したが、姿勢データ１０３の修正はこの手法に限定されるものではない。図９に示すように、例えば体幹目標位置のｚ座標を修正することに代えて、体幹目標位置のｙ座標を修正するようにしてもよい。この方式を採用しても、ロボット１０が修正後の姿勢データ１０３に追従して動作することによって、股関節２１、４１や膝関節２３、４３や足首関節２５、４５が一定の関節角に固定されることが防止される。あるいは、体幹目標位置のｙ座標とｚ座標の両者を修正するようにしてもよい。体幹１５の目標位置をｙ方向やｚ方向に修正することは、体幹１５の目標位置をｘ方向に修正することに比して、ロボット１０がバランスを崩しにくいという利点を有する。ただし、体幹１５の目標位置の修正に伴って、例えば左右の腕リンク１６、１８の目標位置を同時に修正するといったように、ロボット１０の重心位置の変動を物理モデルに基づいて補償するようにしてもよい、
【００２７】
（実施例２）
本発明を実施した実施例２のロボットについて説明する。実施例１では、記憶手段１０２に記憶されている姿勢データ１０３を修正するとともに、修正後のＡＣサーボモータ１０８の回転速度Ｖの経時変化を計算して確認する手法について説明した。それに対し、実施例２では、記憶手段１０２に記憶されている姿勢データ１０３は修正せず、姿勢データ１０３が記憶手段１０２から関節角計算部１０４に入力される段階で修正する。また、実施例２では、修正後のＡＣサーボモータ１０８の回転速度Ｖの経時変化を、実際に計測して確認する。実施例１の方式では、ロボット１０が動作を開始するのに先立って、姿勢データ１０３を修正することができる。それに対して、実施例２の方式では、ロボットの動作中に、姿勢データ１０３を修正することができる。
以下の説明では、実施例１と同一の構成については同一の符号を付し、重複して説明することは避けるように努める。
実施例２のロボットは、図１、図２に示す実施例１のロボット１０と同一の機械的構成を有している。
図１０は、実施例２のロボット２００の電気的な構成を示している。図１０に示すように、ロボット２００は、姿勢データ記憶部１０２と、関節角計算部１０４と、複数のモータコンローラ１０６と、複数のＡＣサーボモータ１０８と、複数のエンコーダ１１０を備えている。実施例２のロボット２００は、ロボット１００と同様に、姿勢データ記憶部１０２に記憶されている姿勢データ１０３に追従して各関節の関節角を調節し、所定の動作（例えば二足方向）を実行することができる。
【００２８】
図１０に示すように、実施例２のロボット２００は、体幹静止監視部１３２と、修正量出力部１３４と、モータ静止監視部１３６を備えている。
体幹静止監視部１３２は、姿勢データ記憶部１０２から関節角計算部１０４へ経時的に入力される体幹位置データ１０３ｃを入力し、体幹１５の目標位置に経時変化が生じない期間を検出する。この段階の目標位置は、後記する修正が施されていないものである。体幹静止監視部１３２が検出する期間は、図５に示す姿勢静止期間Ｓ１に相当する。体幹静止監視部１３２は、体幹１５の目標位置の経時変化を監視することによって、ロボット２００の目標姿勢に経時変化が生じない姿勢静止期間Ｓ１を検出する。
修正量出力部１３４は、体幹位置データ１０３ｃが姿勢静止期間Ｓ１を検出している間、振幅Ａおよび周期Ｔで経時的に変動する位置修正量を出力する。位置修正量は、例えばＡ・（１−ｃｏｓ（２π・ｔ／Ｔ）と決定することができる。修正量出力部１３４が出力する位置修正量は、姿勢データ記憶部１０２から関節角計算部１０４へ入力される体幹１５の目標位置のｚ座標に加算される。その結果、関節角計算部１０４へ入力される体幹１５の目標位置は、経時変化が生じない目標位置から、振幅Ａおよび周期Ｔで鉛直方向に経時的に変動する目標位置に修正される。なお、修正量出力部１３４が出力する位置修正量を、姿勢データ記憶部１０２から関節角計算部１０４へ入力される体幹１５の目標位置のｙ座標に加算するようにしてもよい。この場合、関節角計算部１０４へ入力される体幹１５の目標位置は、経時変化が生じない目標位置から、振幅Ａおよび周期Ｔでロボット２００の左右方向に経時的に変動する目標位置に修正されることとなる。
モータ静止監視部１３６は、エンコーダ１１０群の出力信号を入力し、ＡＣサーボモータ１０８毎にその回転速度を監視する。なお、モータ静止監視部１３６は、すべてのＡＣサーボモータ１０８の回転速度を監視する必要はない。本実施例では、股関節２１、４１を駆動するＡＣサーボモータ１０８と、膝関節２３、４３を駆動するＡＣサーボモータ１０８と、足首関節２５、４５をＡＣサーボモータ１０８の回転速度を監視する。そして、監視しているＡＣサーボモータ１０８の回転速度Ｖの大きさ（回転速度Ｖの絶対値）が、閾値時間Ｓｔｈ以上に亘って閾値速さＶｔｈ（≧０）以下となったモータ静止期間Ｓ２（図８参照）を検出する。
モータ静止監視部１３６は、モータ静止期間Ｓ２を検出すると、修正量出力部１３４に修正量の変更指示を与える。モータ静止監視部１３６は、モータ静止監視部１３６による変更指示を受けて、位置修正量の振幅Ａを増大させる。なお、モータ静止監視部１３６は、モータ静止監視部１３６による変更指示を受けて、位置修正量の周期Ｔを短縮してもよい。振幅Ａと周期Ｔの一方のみを変更してもよいし、振幅Ａと周期Ｔの両者を変更してもよい。
【００２９】
図１１は、実施例２のロボット２００の動作フローを示している。図１１に示すフローに沿って、ロボット２００が実行する動作の流れについて説明する。
ステップＳ１０２では、ロボット２００は、外部から教示された姿勢データ１０３を記憶する。なお、ロボット２００は、姿勢データ１０３を予め記憶しておく必要は必ずしもない。ロボット２００の経時的な目標姿勢を、外部から経時的に入力するようにしてもよい。
ステップＳ１０４では、ロボット２００が、姿勢データ記憶部１０２に記憶されている姿勢データ１０３に追従して、所定の動作（例えば二足歩行）を開始する。即ち、姿勢データ１０３に記述されているロボット２００の目標姿勢が関節角計算部１０４に経時的に入力され、関節角計算部１０４によって各関節の目標関節角が計算される。そして、モータコントローラ１０６群とＡＣサーボモータ１０８群とエンコーダ１１０群によって、各関節の関節角が目標関節角に調節される。
ステップＳ１０６では、体幹静止監視部１３２が、姿勢データ記憶部１０２から関節角計算部１０４へ経時的に入力される体幹１５の目標位置の監視を開始し、体幹１５の目標位置に経時変化が生じない体幹静止状態の検出を行う。このとき、体幹静止監視部１３２は、体幹１５の目標位置が所定の閾値時間以上に亘って変化しない状態を、体幹静止状態として検出する。体幹静止状態が検出された時点が、姿勢静止期間Ｓ１の開始時点となる。このステップＳ１０６の処理は体幹静止状態が検出されるまで繰り返され、体幹静止状態が検出された場合はステップＳ１０８へと進む。
【００３０】
ステップＳ１０８では、修正量出力部１３４が、振幅Ａおよび周期Ｔで経時的に変動する位置修正量の出力を開始する。即ち、体幹１５の目標位置の修正が開始される。その結果、体幹静止期間Ｓ１中の体幹１５の目標位置が、経時変化の生じない目標位置から、振幅Ａおよび周期Ｔで鉛直方向に経時的に変動する目標位置に修正される。
ステップＳ１１０では、モータ静止監視部１３６が、各ＡＣサーボモータ１０８の回転速度の監視を開始し、ＡＣサーボモータ１０８毎にモータ静止期間Ｓ２の検出を行う。モータ静止監視部１３６は、少なくとも一つのサーボモータ１０８に関してモータ静止期間Ｓ２を検出すると、修正量出力部１３４に対して位置修正量の変更指示を与える。このステップＳ１１０において、少なくとも一つのＡＣサーボモータ１０８に関してモータ静止期間Ｓ２が検出されると、ステップＳ１１４に進む。一方、すべてのＡＣサーボモータ１０８に関してモータ静止期間Ｓ２が検出されなければ、ステップＳ１１６に進む。
ステップＳ１１２では、修正量出力部１３４が、位置修正量の変更指示を受けて、位置修正量の振幅Ａを増大する処理と周期Ｔを短縮する処理の少なくとも一方を実行する。その結果、体幹１５の目標位置は、より大きな振幅やより短い周期で経時的に変動する目標位置に修正される。その結果、例えば股関節２１、４１や膝関節２３、４３や足首関節２５、４５の関節角の変化速度はより速くなり、それらの関節を駆動するＡＣサーボモータ１０８の回転速度が増大することとなる。このステップＳ１１２における位置修正量の変更後、再びステップＳ１１０へと戻り、モータ静止期間Ｓ２の検出が行われる。再びモータ静止期間Ｓ２が検出されると、ステップＳ１１２において位置修正量の変更が再び行われる。このとき、位置変更量は、振幅Ａをより増大および／又は周期Ｔをより短縮するように行われる。ステップＳ１１０、Ｓ１１２の処理は、モータ静止監視部１３６によってモータ静止期間Ｓ２が検出されなくなるまで繰り返される。
【００３１】
ステップＳ１１４では、体幹静止監視部１３２が、姿勢データ記憶部１０２から関節角計算部１０４へ経時的に入力される体幹位置データ１０３ｃを入力し、体幹１５の目標位置に経時変化が生じているのか否かを判断する。即ち、姿勢静止期間Ｓ１が継続しているのか否かを判断する。体幹１５の目標位置に経時変化が生じており、姿勢静止期間Ｓ１が終了したと判断される場合には、ステップＳ１１６へと進む。一方、体幹１５の目標位置に経時変化が生じておらず、姿勢静止期間Ｓ１が継続していると判断されている間は、このステップＳ１１４の処理が繰り返される。それにより、姿勢静止期間Ｓ１が継続している間は、修正量出力部１３４が出力する位置修正量によって、体幹１５の目標位置の修正が継続される。
ステップＳ１１６では、姿勢静止期間Ｓ１が終了していることから、修正量出力部１３４が位置修正量の出力を中止し、体幹１５の目標位置の修正処理が終了される。次いで、ステップＳ１０６へと戻り、再び体幹１５の静止状態の検出が行われる。
【００３２】
本実施例のロボット２００は、姿勢に経時変化が生じない姿勢静止期間が含まれている姿勢データ１０３が教示された場合でも、教示された姿勢データ１０３に追従して動作している段階で姿勢データ１０３を修正することによって、ＡＣサーボモータ１０３のコイルが過熱したり焼損したりすることを防止することができる。
【００３３】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時の請求項に記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数の目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００３４】
【図１】ロボットの外観を示す図。
【図２】ロボットの機械的な構成を示す図。
【図３】ロボットの電気的な構成を示す図（実施例１）。
【図４】姿勢データの修正処理のフローチャート。
【図５】修正前の体幹目標位置のｚ座標の一例を示す図
【図６】修正後の体幹目標位置のｚ座標の一例を示す図。
【図７】体幹の上下動作と各関節の回転動作の関係を説明する図。
【図８】モータの回転速度の経時変化の一例を示す図。
【図９】体幹の左右動作と各関節の回転動作の関係を説明する図。
【図１０】ロボットの電気的な構成を示す図（実施例２）。
【図１１】実施例２のロボットの動作の流れを示すフローチャート。
【符号の説明】
【００３５】
１０，２００：ロボット
１２：左脚リンク
１４：右脚リンク
１５：体幹（体幹リンク）
１０２：姿勢データ記憶部
１０３ｃ：体幹位置データ
１０４：関節角計算部
１０６：モータコントローラ
１０８：ＡＣサーボモータ
１１０：エンコーダ
１２２：静止期間特定部
１２４：体幹位置修正部
１２６：モータ速度計算部
１２８：モータ静止検出部
１３２：体幹静止監視部
１３４：修正量出力部
１３６：モータ静止監視部
【図１】
0004492573.tif 000002
【図２】
0004492573.tif 000003
【図３】
0004492573.tif 000004
【図４】
0004492573.tif 000005
【図５】
0004492573.tif 000006
【図６】
0004492573.tif 000007
【図７】
0004492573.tif 000008
【図８】
0004492573.tif 000009
【図９】
0004492573.tif 000010
【図１０】
0004492573.tif 000011
【図１１】
0004492573.tif 000012