(57)【特許請求の範囲】
【請求項１】
複数の可動部を備えたロボットであって、
上記複数の可動部のうち上記ロボットを所定の面上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定するトルク判定部と、
上記トルク判定部によって上記第１サーボモータに生じるトルクが上記所定の閾値を超えたと判定された場合に、上記ロボットが上記所定の面上に置かれた状態にあると判定する状態判定部と、を備えていることを特徴とするロボット。
【請求項２】
上記状態判定部は、上記トルク判定部によって上記第１サーボモータに生じるトルクが所定の閾値を超えていないと判定された場合に、上記ロボットがユーザに保持されている状態にあると判定することを特徴とする請求項１に記載のロボット。
【請求項３】
上記第１サーボモータは、上記可動部としての足首関節部に設けられたサーボモータであることを特徴とする請求項１または２に記載のロボット。
【請求項４】
上記第１サーボモータを駆動させる駆動制御部を備え、
上記状態判定部は、上記駆動制御部によって上記第１サーボモータが駆動された後に、上記第１サーボモータに生じるトルクが上記所定の閾値を超えたと判定された場合に、上記ロボットが上記所定の面上に置かれた状態であると判定することを特徴とする請求項１から３までの何れか１項に記載のロボット。
【請求項５】
足首部の足裏が、上記所定の面に対して平行になっていることを判定する姿勢判定部を備えており、
上記駆動制御部は、上記姿勢判定部によって上記足首部の上記足裏が、上記所定の面に対して平行になっていると判定された後に、上記第１サーボモータを駆動させることを特徴とする請求項４に記載のロボット。
【請求項６】
請求項１に記載のロボットとしてコンピュータを機能させるための制御プログラムであって、上記トルク判定部および上記状態判定部としてコンピュータを機能させるための制御プログラム。
【請求項７】
複数の可動部を備えたロボットの制御方法であって、
上記複数の可動部のうち上記ロボットを所定の面上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定するトルク判定ステップと、
上記トルク判定ステップで上記第１サーボモータに生じるトルクが上記所定の閾値を超えたと判定された場合に、上記ロボットが上記所定の面上に置かれた状態にあると判定する状態判定ステップと、を含んでいることを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の可動部を備えたロボットなどに関する。
【背景技術】
【０００２】
現在、ロボット技術が進化し、会話等のコミュニケーションができるロボットが開発されている。ロボットは小型なものもあり、ユーザが容易に持ち上げることができ、室内だけでなく、屋外へ持ち運んで利用できる持ち運び可能なロボットは、機体が地面等に置かれているときと、機体が手に持たれているときとで、実行可能な動作が異なる。【０００３】
例えば、機体が地面等に置かれているときには転倒しないようにバランスを取りながら稼動する必要があり、機体が手に持たれているときには人の手を挟まないように稼働する必要がある。そのため、機体が地面等に置かれている状態や、機体が手に持たれている状態のような自己の状態を判別する手段を必要とする。【０００４】
特許文献１では、加速度センサやジャイロセンサによる信号から自己の状態が持ち上げられているかどうかを判別し、自己の状態に応じた動作を行っている。また、特許文献２では、サーボモータのトルクを見て、自己の状態を判別して、自己の状態に応じた動作を行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開パンフレット「ＷＯ  第００／３２３６０号公報（２０００年６月８日国際公開）」
【特許文献２】日本国公開特許公報「特開２０１３−１３９４６号公報（２０１３年１月２４日公開）」
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、特許文献１に記載された技術では、加速度やジャイロセンサの時系列の値により、ロボットの歩行や持ち上げ状態を判別している。しかしながら、近年増加している小型ロボットは、片手で持ち上げることができるため、持ち上げ方のパターンは様々である。特に大きく持ち上げずに静かに手に持ったような場合は、加速度センサやジャイロセンサの値が、手に持ったことによる振動によるものなのか、ロボット自身が動作した振動によるものなのかを判別することが困難である。【０００７】
一方、特許文献２に記載された技術では、サーボモータのトルクから、ロボットの保持状態を推定している。そのため、ロボットが静止している状態で特定の箇所を持った場合には、手持ち状態を判別することができるが、ロボットが動作中に検出を行うとロボットの動作を妨げてしまうという問題点がある。また、サーボモータにトルクがかからない箇所を持った場合には、手持ち状態を検出できないという問題点もある。【０００８】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、ロボットが動作中に動作を妨げることなく、ロボットが置かれた状態にあるか否かを判定することができるロボットなどを実現することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の一態様に係るロボットは、複数の可動部を備えたロボットであって、上記複数の可動部のうち上記ロボットを所定の面上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定するトルク判定部と、上記トルク判定部によって上記第１サーボモータに生じるトルクが上記所定の閾値を超えたと判定された場合に、上記ロボットが上記所定の面上に置かれた状態にあると判定する状態判定部と、を備えていることを特徴としている。【００１０】
上記の課題を解決するために、本発明の一態様に係るロボットの制御方法は、複数の可動部を備えたロボットの制御方法であって、上記複数の可動部のうち上記ロボットを所定の面上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定するトルク判定ステップと、上記トルク判定ステップで上記第１サーボモータに生じるトルクが上記所定の閾値を超えたと判定された場合に、上記ロボットが上記所定の面上に置かれた状態にあると判定する状態判定ステップと、を含んでいることを特徴としている。
【発明の効果】
【００１１】
本発明の一態様によれば、ロボットが動作中に動作を妨げることなく、ロボットが置かれた状態にあるか否かを判定することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態１に係るロボットの主要部（制御部、加速度センサ、およびサーボモータ）の構成を示すブロック図である。
【図２】（ａ）は、本発明の実施形態１に係るロボットの構成を示す図であり、（ｂ）は、（ａ）に示す状態のロボットが備える各サーボモータの回転角度を示す図である。
【図３】（ａ）は、ロボットの姿勢の一例を示す図であり、（ｂ）は、（ａ）に示す状態のロボットが備える各サーボモータの回転角度を示す図であり、（ｃ）は、ロボットの姿勢の別の例を示す図であり、（ｄ）は、ロボットが持ち上げられた状態における足首部の状態を示す図であり、（ｅ）は、ロボットが地面に置かれた状態における足首部の状態を示す図である。
【図４】本発明の実施形態１に係るロボットの動作の流れを示すフローチャートである。
【図５】（ａ）は、ロボットの姿勢の一例を示す図であり、（ｂ）は、（ａ）に示す状態のロボットが備える各サーボモータの回転角度を示す図であり、（ｃ）は、ロボットの姿勢の別の例を示す図である。
【図６】本発明の実施形態２に係るロボットの動作の流れを示すフローチャートである。
【図７】（ａ）は、ロボットの姿勢の一例を示す図であり、（ｂ）は、（ａ）に示す状態のロボットが備える各サーボモータの回転角度を示す図であり、（ｃ）は、ロボットの姿勢の別の例を示す図である。
【図８】本発明の実施形態３に係るロボットの動作の流れを示すフローチャートである。
【図９】（ａ）は、本発明の実施形態４に係るロボットの構成を示す図であり、（ｂ）は、（ａ）に示す状態のロボットが備える各サーボモータの回転角度を示す図である。
【図１０】（ａ）は、ロボットの姿勢の一例を示す図であり、（ｂ）は、（ａ）に示す状態のロボットが備える各サーボモータの回転角度を示す図であり、（ｃ）は、ロボットの姿勢の別の例を示す図である。
【図１１】本発明の実施形態４に係るロボットの動作の流れを示すフローチャートである。
【発明を実施するための形態】
【００１３】
本発明の実施の形態について図１〜図１１に基づいて説明すれば、次の通りである。以下、説明の便宜上、特定の項目にて説明した構成と同一の機能を有する構成については、同一の符号を付記し、その説明を省略する場合がある。
【００１４】
〔実施形態１〕
図１は、本発明の実施形態１に係る二足歩行型のロボット１１０の主要部の構成を示すブロック図である。同図に示すように、ロボット１１０の主要部は、制御部１０、加速度センサ１１、およびサーボモータＭ１〜Ｍ４を備えている。図２の（ａ）は、本発明の実施形態１に係るロボット１１０の構成を示す図である。なお、サーボモータＭ１〜Ｍ４は、それぞれ、図２の（ａ）に示すサーボモータ１Ｌ，１Ｒ〜サーボモータ４Ｌ，４Ｒのそれぞれを纏めて呼称するときの部材名である。なお、以下これらのサーボモータを纏めて単にサーボモータと称する場合がある。
【００１５】
（制御部１０）
制御部１０は、ロボット１１０の各構成要素を統括的に制御するものである。図１に示すように、制御部１０は、サーボモータ検出部（トルク判定部）１２、サーボモータ指令部（駆動制御部）１３、加速度センサ検出部１４、姿勢推定部（姿勢判定部）１５、および状態判別部（状態判定部）１６を備える。
【００１６】
（サーボモータ検出部１２）
サーボモータ検出部１２は、各サーボモータの回転角度を検出する他、各サーボモータに生じるトルクを検出する機能を有している。特に、本実施形態におけるサーボモータ検出部１２は、複数の可動部のそれぞれに設けられたサーボモータのうちロボット１１０を所定の面（例えば地面）上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定する機能を有している。ここで、可動部としての第１サーボモータの例としては、左右の足首関節部に設けられたサーボモータ１Ｌ，２Ｌ，１Ｒ，２Ｒ、左右の股関節部に設けられたサーボモータ３Ｌ，３Ｒ、左右の肩関節部に設けられたサーボモータ４Ｌ，４Ｒなどを例示することができる。
【００１７】
（サーボモータ指令部１３）
サーボモータ指令部１３は、各サーボモータの回転角度を指定して、その駆動を制御する機能を有する。
【００１８】
（加速度センサ検出部１４）
加速度センサ検出部１４は、加速度センサ１１からの検出信号を情報処理可能な検出情報に変換する機能を有する。
【００１９】
（姿勢推定部１５）
姿勢推定部１５は、加速度センサ検出部１４にて取得した加速度の検出情報、およびサーボモータ検出部１２にて取得した各サーボモータの回転角度の検出情報に基づいて、ロボット１１０の姿勢を推定（または判定）する機能を有する。
【００２０】
（状態判別部１６）
状態判別部１６は、サーボモータ検出部１２によって第１サーボモータに生じるトルクが所定の閾値を超えたと判定された場合に、ロボット１１０が所定の面上に置かれた状態にあると判定する機能を有する。また、状態判別部１６は、サーボモータ検出部１２によって第１サーボモータに生じるトルクが所定の閾値を超えていないと判定された場合に、ロボット１１０がユーザに保持されている状態にあると判定する機能を有する。以上によれば、ロボット１１０が所定の面上に置かれた状態にあると判定する際に、第１サーボモータ以外のサーボモータの動作が妨げられることはない。よって、ロボット１１０が動作中に動作が妨げられることはない。このため、ロボット１１０が動作中に動作を妨げることなく、ロボット１１０が置かれた状態にあるか否かを判定することができる。
【００２１】
（加速度センサ１１）
加速度センサ１１は、ロボット１１０に生じた加速度を検出し、その検出信号を加速度センサ検出部１４に渡す機能を有する。
【００２２】
次に、図２の（ａ）に示すように、ロボット１１０は、サーボモータ１Ｌ〜４Ｌ、サーボモータ１Ｒ〜４Ｒ、左足首（足首部）５Ｌ、右足首（足首部）５Ｒ、胴体７、左腕８Ｌ、右腕８Ｒ、および頭９を備える。胴体７は、制御部１０および加速度センサ１１を備える。
【００２３】
ロボット１１０の姿勢が、図２の（ａ）に示す状態のとき、サーボモータ１Ｒ〜３Ｒ、サーボモータ１Ｌ〜３Ｌのそれぞれの回転角度の値は、基準値の０°となっている。
【００２４】
また、ロボット１１０の姿勢が例えば、図３の（ａ）に示す状態に変化した場合、サーボモータ１Ｌ〜３Ｌ、およびサーボモータ１Ｒ〜３Ｒの各サーボモータの回転角度は、図３の（ｂ）に示す表のとおりとなる。
【００２５】
例えば、ロボット１１０で、両足がそろっている場合は、図３の（ｃ）に示すように地面と接地する足首のサーボモータ１Ｒ，１Ｌのそれぞれを重心に近い方が高くなるようにサーボモータ指令部１３の制御によりＲｏｌｌ方向に回転させた後、サーボモータ検出部１２は、これらのサーボモータに生じるトルクを特定する。
【００２６】
このとき、ロボット１１０がユーザに把持されていれば、図３の（ｄ）に示すように、左足首５Ｌ、右足首５Ｒの両方が空中に浮いた状態になるため、足首のサーボモータ（第１サーボモータ）１Ｌ，１Ｒにトルクは生じない。一方、図３の（ｅ）に示すように、ロボット１１０が地面に置かれている場合、足首のサーボモータ１Ｌ，１ＲにおいてＲｏｌｌ方向にトルクがかかる。そのため、ロボット１１０の状態判別部１６は、足首のサーボモータ１Ｌ，１Ｒのそれぞれに生じたトルクが共に所定の閾値を超えていればロボット１１０が地面に置かれている状態と判定し、足首のサーボモータ１Ｌ，１Ｒのそれぞれに生じたトルクの何れか少なくとも一方が、所定の閾値を超えていなければ把持状態と判定する。
【００２７】
次に、図４に基づき、本発明の実施形態１に係るロボットの動作の流れについて説明する。本実施形態では、２足歩行型のロボット１１０で足がまっすぐで両足がそろっている場合に、把持状態にあるか否かの判定を行う。まず、ステップＳ（以下、「ステップ」は省略する）１０１では、姿勢推定部１５は、サーボモータ検出部１２が取得する各サーボモータの回転角度の検出結果、および加速度センサ検出部１４が取得する加速度の検出結果を用い、ロボット１１０の姿勢を推定する（Ｓ１０２に進む）。
【００２８】
Ｓ１０２では、姿勢推定部１５は、サーボモータ３Ｒ，３Ｌの角度から両足（右足６Ｒ、左足６Ｌ）が揃っているかどうかを判別し、揃っていない場合、図８のフローに遷移する。一方、両足が揃っている場合、Ｓ１０３に進む。
【００２９】
次に、Ｓ１０３では、姿勢推定部１５は、サーボモータ３Ｒ，３Ｌの回転角度のそれぞれが０°になっていなかった場合、膝が曲がっていると判断し、図６のフローに遷移する。一方、サーボモータ３Ｒ，３Ｌの回転角度のそれぞれが０°になっている場合、Ｓ１０４に進む。
【００３０】
次に、Ｓ１０４では、姿勢推定部１５は、加速度センサ検出部１４から取得したロボット１１０の傾きＰｉｔｃｈと、サーボモータ２Ｒ，２Ｌ，３Ｒ，３Ｌの各回転角度から、左足首５Ｌおよび右足首５Ｒの足裏が地面と水平かどうかを判別する。例えば、図３の（ａ）に示す姿勢の場合、ロボット１１０のＰｉｔｃｈ方向の傾きをθ１、サーボモータ２Ｒのゼロ点からの角度をθ２、サーボモータ１Ｒのゼロ点からの角度をθ３とすると、θ１＝θ２−θ３となる場合に足裏のＰｉｔｃｈ方向の角度が地面と水平と判定できる。以上の結果、足裏が地面と水平であれば、Ｓ１０５に進む。一方、足裏が地面と水平でなければ、Ｓ１０８に進む。
【００３１】
次に、Ｓ１０５では、姿勢推定部１５は、Ｓ１０４と同様に、加速度センサ検出部１４から取得した端末の傾きＲｏｌｌと、サーボモータ１Ｒ，１Ｌの各回転角度から、左足首５Ｌおよび右足首５Ｒの足裏が地面と水平かどうかを判別する。その結果、足裏が地面と水平であれば、Ｓ１０６に進む。一方、足裏が地面と水平でなければ、Ｓ１０８に進む。足首部の足裏が、所定の面に対して平行になっている場合、ロボット１１０は所定の面上に置かれている蓋然性が高い。よって、上記の動作によれば、ロボット１１０が置かれた状態にあるか否かをより判定し易くなる。
【００３２】
次に、Ｓ１０６では、姿勢推定部１５の上記の判定結果に基づき、サーボモータ指令部１３は、足裏が地面に対して水平な角度からα°内側が高くなるようにサーボモータ（第１サーボモータ）１Ｒ、１Ｌのそれぞれの回転角度を指定して、各サーボモータを駆動させてＳ１０７に進む。これにより、第１サーボモータを意図的に駆動させることで第１サーボモータに生じたトルクを見るので、ロボット１１０が置かれた状態にあるか否かをより判定し易くなる。
【００３３】
次に、Ｓ１０７では、状態判別部１６は、サーボモータ検出部１２によりサーボモータ（第１サーボモータ）１Ｒと１Ｌのトルクが共に所定の閾値β１を超えていると判定された場合、ロボット１１０が地面に置かれた状態と判別し（Ｓ１０９）、Ｓ１１１に進む。一方、状態判別部１６は、サーボモータ検出部１２によりサーボモータ１Ｒ、１Ｌのトルクがどちらか一方でも閾値β１を下回っていると判定された場合、ロボット１１０が手に持たれた状態であると判別し（Ｓ１１０）、Ｓ１１２に進む。これにより、足首関節部に設けられたサーボモータに生じたトルクを見るので、ロボット１１０が置かれた状態にあるか否かをより判定し易くなる。
【００３４】
Ｓ１０８では、Ｓ１０７の判定をするための条件を満たさない場合は、特許文献１に記載の技術のように加速度センサの時系列の値から、手持ち状態を判別する。
【００３５】
Ｓ１１１では、ロボット１１０が地面に置かれていると判定された場合には、例えば歩行などの可能なアクションを実行する。
【００３６】
Ｓ１１２では、ロボット１１０が手に持たれていると判定された場合には、転倒の心配がないため、例えば、バランスを考慮せずに足を自由に動かすアクションを実行する。
【００３７】
〔実施形態２〕
次に、図５および図６に基づき、本発明の実施形態２に係るロボット１１０の動作について説明する。なお、本実施形態におけるロボット１１０の主要部の構成は、図１に示す構成と同様である。また、本実施形態におけるロボット１１０の構成は、図２の（ａ）に示す構成と同様である。
【００３８】
ロボット１１０の姿勢が例えば、図２の（ａ）に示す状態から図５の（ａ）に示す状態に変化した場合、サーボモータ１Ｌ〜３Ｌ、およびサーボモータ１Ｒ〜３Ｒの各サーボモータの回転角度は、図５の（ｂ）に示す表のとおりとなる。
【００３９】
本実施形態では、２足歩行型のロボット１１０で膝が曲がっている状態で両足がそろっている場合の手持ち状態の判定を行う。図５の（ｃ）に示すようにロボット１１０が、ひざが曲がった状態で立っている場合、足首を動かさなくても既に足首のサーボモータにトルクがかかっているため、所定の閾値を超えるか否かを見て判定が可能である。
【００４０】
次に、図６に基づき、本発明の実施形態２に係るロボット１１０の動作の流れについて説明する。まず、Ｓ２０１では、姿勢推定部１５は、サーボモータ検出部１２が取得する各サーボモータの回転角度の検出結果、および加速度センサ検出部１４が取得する加速度の検出結果を用い、ロボット１１０の姿勢を推定する（Ｓ２０３に進む）。
【００４１】
Ｓ２０３では、姿勢推定部１５は、加速度センサ検出部１４から取得した端末の傾きＰｉｔｃｈと、サーボモータ２Ｒ，２Ｌ，３Ｒ，３Ｌの各回転角度から、左足首５Ｌおよび右足首５Ｒの足裏が地面と水平かどうかを判別する。例えば、図５の（ａ）に示す姿勢の場合、端末のＰｉｔｃｈ方向の傾きをθ１、サーボモータ２Ｒのゼロ点からの角度をθ２、サーボモータ１Ｒのゼロ点からの角度をθ３とすると、θ１＝θ２−θ３となる場合に足裏のＰｉｔｃｈ方向の角度が地面と水平と判定できる。以上の結果、足裏が地面と水平であれば、Ｓ２０４に進む。一方、足裏が地面と水平でなければ、Ｓ２０８に進む。
【００４２】
次に、Ｓ２０４では、姿勢推定部１５は、Ｓ２０３と同様に、加速度センサ検出部１４から取得したロボット１１０の傾きＲｏｌｌと、サーボモータ１Ｒ，１Ｌの各回転角度から、左足首５Ｌおよび右足首５Ｒの足裏が地面と水平かどうかを判別する。その結果、足裏が地面と水平であれば、Ｓ２０７に進む。一方、足裏が地面と水平でなければ、Ｓ２０８に進む。足首部の足裏が、所定の面に対して平行になっている場合、ロボット１１０は所定の面上に置かれている蓋然性が高い。よって、上記の動作によれば、ロボット１１０が置かれた状態にあるか否かをより判定し易くなる。なお、ロボット１１０の膝が曲がっているときは、既に上記の各サーボモータにトルクがかかっているので、実施形態１のＳ１０６のように特に各サーボモータを動作させる必要はない。
【００４３】
次に、Ｓ２０７では、状態判別部１６は、サーボモータ（第１サーボモータ）２Ｒと２Ｌのトルクが共に閾値β２を超えていれば、ロボット１１０が地面に置かれていると判別し（Ｓ２０９）、Ｓ２１１に進む。一方、サーボモータ２Ｒと２Ｌのトルクがどちらか一方でも閾値β２を下回っていたら、ロボット１１０が手に持たれていると判別し（Ｓ２１０）、Ｓ２１２に進む。これにより、足首関節部に設けられたサーボモータに生じたトルクを見るので、ロボット１１０が置かれた状態にあるか否かをより判定し易くなる。
【００４４】
Ｓ２０８では、Ｓ２０７の判定をするための条件を満たさない場合は、特許文献１に記載の技術のように加速度センサの時系列の値から、手持ち状態を判別する。
【００４５】
Ｓ２１１では、ロボット１１０が地面に置かれていると判定された場合には、例えば歩行などの可能なアクションを実行する。
【００４６】
Ｓ２１２では、ロボット１１０が手に持たれていると判定された場合には、転倒の心配がないため、例えば、バランスを考慮せずに足を自由に動かすアクションを実行する。
【００４７】
〔実施形態３〕
次に、図７および図８に基づき、本発明の実施形態３に係るロボット１１０の動作について説明する。なお、本実施形態におけるロボット１１０の主要部の構成は、図１に示す構成と同様である。また、本実施形態におけるロボット１１０の構成は、図２の（ａ）に示す構成と同様である。
【００４８】
ロボット１１０の姿勢が例えば、図２の（ａ）に示す状態から図７の（ａ）に示す状態に変化した場合、サーボモータ１Ｌ〜３Ｌ、およびサーボモータ１Ｒ〜３Ｒの各サーボモータの回転角度は、図７の（ｂ）に示す表のとおりとなる。
【００４９】
本実施形態では、２足歩行型のロボット１１０で足が前後に開いている場合の手持ち状態の判定を行う。図７の（ｃ）に示すように足が前後に開いている状態で立っている場合、足首を動かさなくても既に足首のサーボにトルクがかかっているため、閾値を見て判定が可能である。
【００５０】
次に、図８に基づき、本発明の実施形態３に係るロボット１１０の動作の流れについて説明する。まず、Ｓ３０１では、姿勢推定部１５は、サーボモータ検出部１２が取得する各サーボモータの回転角度の検出結果、および加速度センサ検出部１４が取得する加速度の検出結果を用い、ロボット１１０の姿勢を推定する（Ｓ３０３に進む）。
【００５１】
Ｓ３０３では、姿勢推定部１５が、加速度センサ検出部１４から取得したロボット１１０の傾きＰｉｔｃｈと、サーボモータ２Ｒ，２Ｌ，３Ｒ，３Ｌの各回転角度から、左足首５Ｌおよび右足首５Ｒの足裏が地面と水平かどうかを判別する。例えば図７の（ａ）に示す姿勢の場合、ロボット１１０のＰｉｔｃｈ方向の傾きをθ１、右足については、サーボモータ２Ｒのゼロ点からの角度をθ２．１、サーボモータ１Ｒのゼロ点からの角度をθ３．１とすると、θ１＝θ２．１−θ３．１となる場合に足裏のＰｉｔｃｈ方向の角度が地面と水平と判定できる。一方、左足については、サーボモータ２Ｌのゼロ点からの角度をθ２．２、サーボモータ１Ｌのゼロ点からの角度をθ３．２とすると、θ１＝θ２．２−θ３．２となる場合に足裏のＰｉｔｃｈ方向の角度が地面と水平と判定できる。ここでは、左右両足が地面に水平かどうかを判定する。以上の結果、足裏が地面と水平であれば、Ｓ３０４に進む。一方、足裏が地面と水平でなければ、Ｓ３０８に進む。
【００５２】
次に、Ｓ３０４では、姿勢推定部１５は、Ｓ２０３と同様に、加速度センサ検出部１４から取得したロボット１１０の傾きＲｏｌｌと、サーボモータ１Ｒ，１Ｌの各回転角度から、左足首５Ｌおよび右足首５Ｒの足裏が地面と水平かどうかを判別する。その結果、足裏が地面と水平であれば、Ｓ３０７に進む。一方、足裏が地面と水平でなければ、Ｓ３０８に進む。足首部の足裏が、所定の面に対して平行になっている場合、ロボット１１０は所定の面上に置かれている蓋然性が高い。よって、上記の動作によれば、ロボット１１０が置かれた状態にあるか否かをより判定し易くなる。なお、ロボット１１０の膝が曲がっているときは、既に上記の各サーボモータにトルクがかかっているので、実施形態１のＳ１０６のように特に各サーボモータを動作させる必要はない。
【００５３】
Ｓ３０７では、状態判別部１６は、サーボモータ（第１サーボモータ）２Ｒおよび２Ｌのそれぞれのトルクの和が閾値β３を超えていれば、ロボット１１０が地面に置かれていると判別し（Ｓ３０９）、Ｓ３１１に進む。なお、上述したＳ１０７やＳ２０７の場合、ロボット１１０の両足が揃っているため、地面に接しているときのサーボモータ２Ｒおよび２Ｌのトルクは同じになる。そのため、両方のトルクが所定の閾値を超えることを判定条件としている。一方、上記のＳ３０７の場合、両足を前後に開いているため、地面に接しているときのサーボモータ２Ｒと２Ｌのトルクは同じとは限らない。そのため、判定方法は色々考えられるが、ここではサーボモータ２Ｒおよび２Ｌのそれぞれのトルクの和で判定を行っている。
【００５４】
一方、サーボモータ２Ｒおよび２Ｌのそれぞれのトルクの和が閾値β３を下回っていたら、ロボット１１０が手に持たれていると判別し（Ｓ３１０）、Ｓ３１２に進む。これにより、足首関節部に設けられたサーボモータに生じたトルクを見るので、ロボット１１０が置かれた状態にあるか否かをより判定し易くなる。
【００５５】
Ｓ３０８では、Ｓ３０７の判定をするための条件を満たさない場合は、特許文献１に記載の技術のように加速度センサの時系列の値から、手持ち状態を判別する。
【００５６】
Ｓ３１１では、ロボット１１０が地面に置かれていると判定された場合には、例えば歩行などの可能なアクションを実行する。
【００５７】
Ｓ３１２では、ロボット１１０が手に持たれていると判定された場合には、転倒の心配がないため、例えば、バランスを考慮せずに足を自由に動かすアクションを実行する。
【００５８】
〔実施形態４〕
次に、図９〜図１１に基づき、本発明の実施形態４に係るロボット１２０の動作について説明する。なお、本実施形態におけるロボット１２０の主要部の構成は、図１に示す構成と同様である。ロボット１１０の主要部は、制御部１０、加速度センサ１１、およびサーボモータＭ１〜Ｍ３を備えている。図９の（ａ）は、本発明の実施形態４に係るロボット１１０の構成を示す図である。なお、サーボモータＭ１〜Ｍ３は、それぞれ、図９の（ａ）および（ｂ）に示すサーボモータ１ＲＦ、１ＬＦ、１ＲＲ、１ＬＲ〜３ＲＦ、３ＬＦ、３ＲＲ、３ＬＲのそれぞれを纏めて呼称するときの部材名である。なお、以下これらのサーボモータを纏めて単にサーボモータと称する場合がある。
【００５９】
次に、図９の（ａ）に示すように、ロボット１２０は、サーボモータ１ＬＦ〜３ＬＦ、サーボモータ１ＬＲ〜３ＬＲ、左前足首（足首部）５ＬＦ、左後ろ足首（足首部）５ＬＲ、左前足６ＬＦ、左後ろ足６ＬＲ、胴体７、および頭９を備える。胴体７は、制御部１０および加速度センサ１１を備える。なお、図示は省略するが、ロボット１２０は、紙面に対して奥側に、サーボモータ１ＲＦ〜３ＲＦ、サーボモータ１ＲＲ〜３ＲＲ、右前足首（足首部）５ＲＦ、右後ろ足首（足首部）５ＲＲ、右前足６ＲＦ、右後ろ足６ＦＲを備える。
【００６０】
本実施形態におけるサーボモータ検出部１２は、複数の可動部のそれぞれに設けられたサーボモータのうちロボット１２０を所定の面（例えば地面）上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定する機能を有している。ここで、可動部としての第１サーボモータの例としては、左右の足首関節部に設けられたサーボモータ１ＬＦ、１ＬＲ、２ＬＦ、２ＬＲ、１ＲＦ、１ＲＲ、２ＲＦ、２ＲＲ、左右の股関節部に設けられたサーボモータ３ＬＦ、３ＬＲ、３ＲＦ、３ＲＲなどを例示することができる。
【００６１】
状態判別部１６は、サーボモータ検出部１２によって第１サーボモータに生じるトルクが所定の閾値を超えたと判定された場合に、ロボット１２０が所定の面上に置かれた状態にあると判定する機能を有する。また、状態判別部１６は、サーボモータ検出部１２によって第１サーボモータに生じるトルクが所定の閾値を超えていないと判定された場合に、ロボット１２０がユーザに保持されている状態にあると判定する機能を有する。以上によれば、ロボット１２０が所定の面上に置かれた状態にあると判定する際に、第１サーボモータ以外のサーボモータの動作が妨げられることはない。よって、ロボット１２０が動作中に動作が妨げられることはない。このため、ロボット１２０が動作中に動作を妨げることなく、ロボット１２０が置かれた状態にあるか否かを判定することができる。
【００６２】
次に、ロボット１２０の姿勢が、図９の（ａ）に示す状態のとき、サーボモータ１ＲＦ〜３ＲＦ、サーボモータ１ＬＦ〜３ＬＦ、サーボモータ１ＲＲ〜３ＲＲ、サーボモータ１ＬＲ〜３ＬＲのそれぞれの回転角度の値は、基準値の０°となっている。
【００６３】
また、ロボット１２０の姿勢が例えば、図１０の（ａ）に示す状態に変化した場合、サーボモータ１ＲＦ〜３ＲＦ、サーボモータ１ＬＦ〜３ＬＦ、サーボモータ１ＲＲ〜３ＲＲ、サーボモータ１ＬＲ〜３ＬＲの各サーボモータの回転角度は、図１０の（ｂ）に示す表のとおりとなる。本実施形態では、４足歩行型のロボット１２０で、足がまっすぐで両足がそろっている場合の手持ち状態の判定を行う。４足歩行型のロボットの場合、図１０の（ｃ）に示すように足首のＰｉｔｃｈ方向のサーボモータ（第１サーボモータ）２ＲＦ、２ＬＦ、２ＲＲ、２ＬＲ、または、足首のＲｏｌｌ方向のサーボモータ（第１サーボモータ）１ＲＦ、１ＬＦ、１ＲＲ、１ＬＲを重心位置が変わらないように動かす。
【００６４】
次に、図１１に基づき、本発明の実施形態４に係るロボット１２０の動作の流れについて説明する。まず、Ｓ４０１では、姿勢推定部１５は、サーボモータ検出部１２が取得する各サーボモータの回転角度の検出結果、および加速度センサ検出部１４が取得する加速度の検出結果を用い、ロボット１２０の姿勢を推定する（Ｓ４０４に進む）。
【００６５】
次に、Ｓ４０４では、姿勢推定部１５が、加速度センサ検出部１４から取得したロボット１２０の傾きＰｉｔｃｈと、サーボモータ２ＲＦ、２ＬＦ、３ＲＦ、３ＬＦ、２ＲＲ、２ＬＲ、３ＲＲ、３ＬＲの角度から、左前足首（足首部）５ＬＦ、左後ろ足首（足首部）５ＬＲ、右前足首（足首部）５ＲＦ、右後ろ足首（足首部）５ＲＲの足裏が地面と水平かどうかを判別する。例えば図１０の（ａ）に示す姿勢の場合、ロボット１２０のＰｉｔｃｈ方向の傾きをθ１、サーボモータ２ＲＦ／２ＲＲのゼロ点からの角度をθ２、サーボモータ１ＲＦ／１ＲＲのゼロ点からの角度をθ３とすると、θ１＝θ２−θ３となる場合に、左前足首５ＬＦ、左後ろ足首５ＬＲ、右前足首５ＲＦ、右後ろ足首５ＲＲの足裏のＰｉｔｃｈ方向の角度が地面と水平と判定できる。以上の結果、足裏が地面と水平であれば、Ｓ４０５に進む。一方、足裏が地面と水平でなければ、Ｓ４０８に進む。
【００６６】
次に、Ｓ４０５では、Ｓ４０４と同様に、姿勢推定部１５は、加速度センサ検出部１４から取得した端末の傾きＲｏｌｌと、サーボモータ１ＲＦ，１ＬＦ、１ＲＲ，１ＬＲの角度から、足裏が地面と水平かどうかを判別する。以上の結果、足裏が地面と水平であれば、Ｓ４０６に進む。一方、足裏が地面と水平でなければ、Ｓ４０８に進む。足首部の足裏が、所定の面に対して平行になっている場合、ロボット１２０は所定の面上に置かれている蓋然性が高い。よって、上記の動作によれば、ロボット１２０が置かれた状態にあるか否かをより判定し易くなる。
【００６７】
Ｓ４０６では、姿勢推定部１５の上記の判定結果に基づき、サーボモータ指令部１３は、足裏が地面に対して水平な角度からα°内側が高くなるようにサーボモータ（第１サーボモータ）１ＲＦ，１ＬＦ、１ＲＲ，１ＬＲのそれぞれの回転角度を指定して、各サーボモータを駆動させてＳ４０７に進む。これにより、第１サーボモータを意図的に駆動させることで第１サーボモータに生じたトルクを見るので、ロボット１１０が置かれた状態にあるか否かをより判定し易くなる。
【００６８】
Ｓ４０７では、状態判別部１６は、サーボモータ１Ｒ（１ＲＦまたは１ＲＲ）と１Ｌ（１ＬＦまたは１ＬＲ）のトルクが共に所定の閾値β４を超えていれば、ロボット１２０が地面に置かれている状態であると判別し（Ｓ４０９）、Ｓ４１１に進む。一方、サーボモータ１Ｒ（１ＲＦまたは１ＲＲ）と１Ｌ（１ＬＦまたは１ＬＲ）のトルクがどちらか一方でも閾値β４を下回っていたら、ロボット１２０が手に持たれている状態であると判別し（Ｓ４１０）、Ｓ４１２に進む。これにより、足首関節部に設けられたサーボモータに生じたトルクを見るので、ロボット１２０が置かれた状態にあるか否かをより判定し易くなる。
【００６９】
Ｓ４０８では、Ｓ４０７の判定をするための条件を満たさない場合は、特許文献１に記載の技術のように加速度センサの時系列の値から、手持ち状態を判別する。
【００７０】
Ｓ４１１では、ロボット１２０が地面に置かれていると判定された場合には、例えば歩行などの可能なアクションを実行する。
【００７１】
Ｓ４１２では、ロボット１２０が手に持たれていると判定された場合には、転倒の心配がないため、例えば、バランスを考慮せずに足を自由に動かすアクションを実行する。
【００７２】
〔ソフトウェアによる実現例〕
ロボット１１０，１２０の制御ブロック（特に制御部１０におけるサーボモータ指令部１３、サーボモータ検出部１２、姿勢推定部１５および状態判別部１６）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００７３】
後者の場合、ロボット１１０，１２０は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００７４】
〔まとめ〕
本発明の態様１に係るロボットは、複数の可動部を備えたロボット（１１０，１２０）であって、上記複数の可動部のうち上記ロボットを所定の面上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定するトルク判定部（サーボモータ検出部１２）と、上記トルク判定部によって上記第１サーボモータに生じるトルクが上記所定の閾値を超えたと判定された場合に、上記ロボットが上記所定の面上に置かれた状態にあると判定する状態判定部（状態判別部１６）と、を備えている構成である。
【００７５】
上記構成によれば、トルク判定部は、ロボットを所定の面上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定する。また、状態判定部は、第１サーボモータに生じるトルクが所定の閾値を超えたと判定された場合に、ロボットが所定の面上に置かれた状態にあると判定する。したがって、ロボットが所定の面上に置かれた状態にあると判定する際に、第１サーボモータ以外のサーボモータの動作が妨げられることはない。よって、ロボットが動作中に動作が妨げられることはない。このため、ロボットが動作中に動作を妨げることなく、ロボットが置かれた状態にあるか否かを判定することができる。
【００７６】
本発明の態様２に係るロボットは、上記態様１において、上記状態判定部は、上記トルク判定部によって上記第１サーボモータに生じるトルクが所定の閾値を超えていないと判定された場合に、上記ロボットがユーザに保持されている状態にあると判定することが好ましい。上記構成によれば、ロボットが動作中に動作を妨げることなく、ロボットがユーザに保持されている状態にあるか否かを判定することができる。
【００７７】
本発明の態様３に係るロボットは、上記態様１または２において、上記第１サーボモータは、上記可動部としての足首関節部に設けられたサーボモータであることが好ましい。上記構成によれば、足首関節部に設けられたサーボモータに生じたトルクを見るので、ロボットが置かれた状態にあるか否かをより判定し易くなる。
【００７８】
本発明の態様４に係るロボットは、上記態様１〜３の何れかにおいて、上記第１サーボモータを駆動させる駆動制御部（サーボモータ指令部１３）を備え、上記状態判定部は、上記駆動制御部によって上記第１サーボモータが駆動された後に、上記第１サーボモータに生じるトルクが上記所定の閾値を超えたと判定された場合に、上記ロボットが上記所定の面上に置かれた状態であると判定しても良い。上記構成によれば、第１サーボモータを意図的に駆動させることで第１サーボモータに生じたトルクを見るので、ロボットが置かれた状態にあるか否かをより判定し易くなる。
【００７９】
本発明の態様５に係るロボットは、上記態様４において、足首部の足裏が、上記所定の面に対して平行になっていることを判定する姿勢判定部（姿勢推定部１５）を備えており、上記駆動制御部は、上記姿勢判定部によって上記足首部の上記足裏が、上記所定の面に対して平行になっていると判定された後に、上記第１サーボモータを駆動させても良い。足首部の足裏が、所定の面に対して平行になっている場合、ロボットは所定の面上に置かれている蓋然性が高い。よって、上記構成によれば、ロボットが置かれた状態にあるか否かをより判定し易くなる。
【００８０】
本発明の態様６に係るロボットの制御方法は、複数の可動部を備えたロボットの制御方法であって、上記複数の可動部のうち上記ロボットを所定の面上に置いたときに生じる反力を支える可動部に設けられた第１サーボモータに生じるトルクが所定の閾値を超えたか否かを判定するトルク判定ステップと、上記トルク判定ステップで上記第１サーボモータに生じるトルクが上記所定の閾値を超えたと判定された場合に、上記ロボットが上記所定の面上に置かれた状態にあると判定する状態判定ステップと、を含んでいる方法である。
【００８１】
本発明の各態様に係るロボットは、コンピュータによって実現してもよく、この場合には、コンピュータを上記ロボットが備える各部（ソフトウェア要素）として動作させることにより上記ロボットをコンピュータにて実現させるロボットの制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【００８２】
〔付記事項〕
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【符号の説明】
【００８３】
１２    サーボモータ検出部（トルク判定部）
１３    サーボモータ指令部（駆動制御部）
１５    姿勢推定部（姿勢判定部）
１６    状態判別部（状態判定部）
１１０，１２０  ロボット
１Ｌ，２Ｌ  サーボモータ（第１サーボモータ）
１Ｒ，２Ｒ  サーボモータ（第１サーボモータ）
１ＬＲ，２ＬＲ  サーボモータ（第１サーボモータ）
１ＬＦ，２ＬＦ  サーボモータ（第１サーボモータ）
５Ｌ    左足首（足首部）
５Ｒ    右足首（足首部）
５ＬＦ    左前足首（足首部）
５ＬＲ    左後ろ足首（足首部）
【図１】
0006560823.tif 000002
【図２】
0006560823.tif 000003
【図３】
0006560823.tif 000004
【図４】
0006560823.tif 000005
【図５】
0006560823.tif 000006
【図６】
0006560823.tif 000007
【図７】
0006560823.tif 000008
【図８】
0006560823.tif 000009
【図９】
0006560823.tif 000010
【図１０】
0006560823.tif 000011
【図１１】
0006560823.tif 000012