(57)【特許請求の範囲】
【請求項１】
ロボットであって、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータと、
各サーボモータの回転角の増減を指令する回転角指令部と、
前記回転角指令部によってサーボモータの回転角の増減が指令されている期間のサーボモータのトルクの負荷を採取する採取部と、
前記採取部によってサーボモータごとに採取されたトルクの負荷から、前記ロボットの部位に対する拘束状況を検知する検知部と、
前記検知部によって検知されたロボットの部位に対する拘束状況に基づいて前記ロボットが保持されている保持状況を判別する判別部とを有し、
前記検知部は、
前記採取部によってサーボモータごとに採取されたトルクの負荷のうち、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が所定の閾値以上であるか否かを検知し、
前記判別部は、
前記検知部によって前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値以上であると検知された場合には前記ロボットが抱きかかえられていると判別し、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値未満であると検知された場合には面に載置されていると判別することを特徴とするロボット。
【請求項２】
前記判別部によって判別されたロボットの保持状況に応じて情報を出力する制御、及び、前記サーボモータを駆動して前記部位を動作させる制御のうち少なくともいずれか１つの制御を実行する実行部をさらに有することを特徴とする請求項１に記載のロボット。
【請求項３】
ロボットであって、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータと、
各サーボモータの電流値を採取する採取部と、
前記採取部によってサーボモータごとに採取された電流値から、各サーボモータの回転角を保持するのに掛かる保持トルクを算出する第１算出部と、
前記第１算出部によってサーボモータごとに算出された保持トルクから当該部位が所定の基準方向から傾斜している傾斜角を各部位ごとに算出する第２算出部と、
前記第２算出部によって部位ごとに算出された傾斜角のうち両腕に関する傾斜角の組合せから前記ロボットの姿勢を推定する姿勢推定部と、
前記第２算出部によって部位ごとに算出された傾斜角のうち首のピッチ方向またはロール方向における傾斜角から前記首の拘束状況を推定する拘束状況推定部と、
前記姿勢推定部によって推定されたロボットの姿勢と、前記拘束状況推定部によって推定された首の拘束状況とに基づいて、前記ロボットが頭を支えられて仰向けに抱っこされている状況、前記ロボットが面に仰向けまたは俯せに載置されている状況、または、前記ロボットが顔を支えられて俯せに抱っこされている状況を前記ロボットの保持状況として判別する判別部と
を有することを特徴とするロボット。
【請求項４】
前記判別部によって判別されたロボットの保持状況に応じて情報を出力する制御、及び、前記サーボモータを駆動して前記部位を動作させる制御のうち少なくともいずれか１つの制御を実行する実行部をさらに有することを特徴とする請求項３に記載のロボット。
【請求項５】
ロボットが、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータの回転角の増減を指令する処理と、
前記サーボモータの回転角の増減が指令されている期間のサーボモータのトルクの負荷を採取する処理と、
前記サーボモータごとに採取されたトルクの負荷から、前記ロボットの部位に対する拘束状況を検知する処理と、
前記ロボットの部位に対する拘束状況に基づいて前記ロボットが保持されている保持状況を判別する処理とを実行し、
前記検知する処理は、前記サーボモータごとに採取されたトルクの負荷のうち、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が所定の閾値以上であるか否かを検知し、
前記判別する処理は、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値以上であると検知された場合には前記ロボットが抱きかかえられていると判別し、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値未満であると検知された場合には面に載置されていると判別することを特徴とする状況認識方法。
【請求項６】
ロボットに、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータの回転角の増減を指令する処理と、
前記サーボモータの回転角の増減が指令されている期間のサーボモータのトルクの負荷を採取する処理と、
前記サーボモータごとに採取されたトルクの負荷から、前記ロボットの部位に対する拘束状況を検知する処理と、
前記ロボットの部位に対する拘束状況に基づいて前記ロボットが保持されている保持状況を判別する処理とを実行させ、
前記検知する処理は、前記サーボモータごとに採取されたトルクの負荷のうち、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が所定の閾値以上であるか否かを検知し、
前記判別する処理は、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値以上であると検知された場合には前記ロボットが抱きかかえられていると判別し、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値未満であると検知された場合には面に載置されていると判別することを特徴とする状況認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、状況認識方法および状況認識プログラムに関する。
【背景技術】
【０００２】
人との間で親和的な対話、すなわち「インタラクション」を行うロボットの一態様として、セラピーロボットやエンターテイメントロボットなどが開発されている。
【０００３】
かかる「インタラクション」を実現するためには、ロボットが自身の姿勢や自身の置かれている状況を認識することが求められる。ここで、一例として、ロボットが人によって抱きかかえられたり、持ち上げられたりする状況を認識する場合を想定する。この場合には、人によって接触されうる可能性があるロボットの部位に接触センサを設けることが考えられる。すなわち、ロボットは、各接触センサの出力から人がロボットのどの部位に接触しているかを検知することによって自身が抱きかかえられたり、持ち上げられたりしているかどうかを認識する。そして、ロボットは、自身が抱きかかえられたり、持ち上げられていると認識した場合に、表情や身振り手振りを交えることによって喜怒哀楽のうち「喜」の感情を表現することにより、人とのインタラクションを実現する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−７９４８０号公報
【特許文献２】特開２００６−５１５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、各種のセンサなしにロボットが自身の保持されている保持状況を認識することができないという問題がある。例えば、上記の例のように、ロボットが人によって抱きかかえられたり、持ち上げられたりする状況を認識する場合には、頭、胴体、手足の各部位、さらには、各部位の表裏に接触センサを設ける必要がある。それゆえ、ロボットに設ける接触センサの数が多くなり、さらには、接触センサと接触センサと導通させるユニットとの間を結ぶ配線の数が煩雑化してしまう。
【０００６】
開示の技術は、上記に鑑みてなされたものであって、各種のセンサを用いずにロボットが保持されている保持状況を認識できるロボット、状況認識方法および状況認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願の開示するロボットは、ロボットであって、前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータを有する。さらに、前記ロボットは、各サーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する検知部を有する。
【発明の効果】
【０００８】
本願の開示するロボットの一つの態様によれば、各種のセンサを用いずにロボットが保持されている保持状況を認識できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係るロボットの全体構成を示す機能ブロック図である。
【図２】図２は、実施例１に係るロボットが有する制御部の機能的構成を示すブロック図である。
【図３Ａ】図３Ａは、保持トルクを説明するための図である。
【図３Ｂ】図３Ｂは、保持トルクを説明するための図である。
【図４】図４は、保持トルクおよび傾斜角の算出方法を説明するための図である。
【図５】図５は、保持状況の判別方法を説明するための図である。
【図６Ａ】図６Ａは、インタラクションの一例を示す図である。
【図６Ｂ】図６Ｂは、インタラクションの一例を示す図である。
【図７】図７は、実施例１に係るインタラクション実行処理の手順を示すフローチャートである。
【図８】図８は、実施例２に係るロボットが有する制御部の機能的構成を示すブロック図である。
【図９Ａ】図９Ａは、サーボモータに掛かるトルクの負荷の一例を示す図である。
【図９Ｂ】図９Ｂは、ロボットの姿勢の一例を示す図である。
【図１０】図１０は、実施例２に係るインタラクション実行処理の手順を示すフローチャートである。
【図１１】図１１は、実施例１及び実施例２に係る状況認識プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示するロボット、状況認識方法および状況認識プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［ロボットの全体構成］
まず、本実施例に係るロボットの全体構成について説明する。図１は、実施例１に係るロボットの全体構成を示す機能ブロック図である。図１に示すロボット１は、人の日常生活に溶け込んで親和的な対話、すなわち「インタラクション」を行うものであり、頭３と、右腕５Ｒと、左腕５Ｌと、右脚７Ｒと、左脚７Ｌと、胴体９とを有する。なお、図１の例では、スキンシップを促し、かつ動物と人間（幼児）の中間的な存在感を演出する観点から、軟らかい毛で覆われた表皮や幼児に近い体型を持つ子ぐまのぬいぐるみの外観が採用される場合を想定する。
【００１２】
図１に示すように、ロボット１の胴体９には、頭３、右腕５Ｒ、左腕５Ｌ、右脚７Ｒおよび左脚７Ｌがサーボモータ３３Ｐ、３３Ｒ、３３Ｙ、３５Ｒ、３５Ｌ、３７Ｒ及び３７Ｌを介して接続される。ここで、以下では、サーボモータ３３Ｐ、３３Ｒ、３３Ｙ、３５Ｒ、３５Ｌ、３７Ｒ及び３７Ｌを区別なく総称する場合には「サーボモータ３０」と総称する場合がある。また、サーボモータ３０は、頭３、右腕５Ｒ、左腕５Ｌ、右脚７Ｒおよび左脚７Ｌを駆動させるモータの動力制御やモータに流れる電流値のモニタリングなどの各種の統括制御を行うモータ制御部３９と接続される。さらに、モータ制御部３９は、ロボット１の全体制御を司る制御部１０と接続される。
【００１３】
サーボモータ３０は、ロボット１の胴体９と、頭３、右腕５Ｒ、左腕５Ｌ、右脚７Ｒまたは左脚７Ｌとを接続する関節に設けられる１自由度のモータである。一態様としては、サーボモータ３０は、モータ制御部３９からの指示にしたがって動力を伝達することにより、頭３、右腕５Ｒ、左腕５Ｌ、右脚７Ｒまたは左脚７Ｌを駆動する。さらに、サーボモータ３０は、図示しないエンコーダやポテンショメータを用いて、サーボモータ３０から伝達された動力によって駆動する頭３、右腕５Ｒ、左腕５Ｌ、右脚７Ｒおよび左脚７Ｌの位置、速度や回転角を計測できる。
【００１４】
サーボモータ３３Ｐ、３３Ｒ及び３３Ｙは、ロボット１の頭３と胴体９とを接続する首関節に設けられる。このうち、サーボモータ３３Ｐは、ロボット１の頭３をピッチ方向に回転させ、サーボモータ３３Ｒは、ロボット１の頭３をロール方向に回転させ、また、サーボモータ３３Ｙは、ロボット１の頭３をヨー方向に回転させる。なお、上記の「ピッチ方向」とは、ロボット１の左右を軸（Ｘ軸）として回転する方向、すなわち上下方向を指す。また、上記の「ロール方向」とは、ロボット１の前後を軸（Ｙ軸）として回転する方向を指す。さらに、上記の「ヨー方向」とは、ロボット１の上下を軸（Ｚ軸）として回転する方向を指す。
【００１５】
また、サーボモータ３５Ｒ及び３５Ｌは、ロボット１の右腕５Ｒ及び左腕５Ｌと胴体９とを接続する肩関節に設けられる。このうち、サーボモータ３５Ｒは、ロボット１の右腕５Ｒをロボット１の前後方向に回転させ、また、サーボモータ３５Ｌは、ロボット１の左腕５Ｌをロボット１の前後方向に回転させる。さらに、サーボモータ３７Ｒ及び３７Ｌは、ロボット１の右脚７Ｒ及び左脚７Ｌと胴体９とを接続する股関節に設けられる。このうち、サーボモータ３７Ｒは、ロボット１の右脚７Ｒをロボット１の前後方向に回転させ、また、サーボモータ３７Ｌは、ロボット１の左脚７Ｌをロボット１の前後方向に回転させる。
【００１６】
このように、ロボット１の関節にサーボモータ３０を採用した場合には、サーボモータ３０を末梢部側ではなく、体幹部側に配置することができるので、配線を胴体９の内部に収めることができる。なお、ロボット１は、図１に示した機能部以外にも既知のロボットが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどを始め、ロボット１周辺の映像を撮影するカメラなどを有するものとする。
【００１７】
続いて、本実施例に係るロボットが有する制御部の機能的構成について説明する。図２は、実施例１に係るロボットが有する制御部の機能的構成を示すブロック図である。図２に示すように、制御部１０は、ロボット１の全体制御を司る処理部であり、採取部１１と、算出部１２と、姿勢推定部１３と、拘束状況推定部１４と、判別部１５と、実行部１６とを有する。
【００１８】
なお、制御部１０には、各種の集積回路や電子回路を採用できる。例えば、集積回路としては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）が挙げられる。また、電子回路としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。
【００１９】
採取部１１は、各サーボモータ３０の電流値を採取する。一態様としては、採取部１１は、各サーボモータ３０によって頭３、右腕５Ｒ、左腕５Ｌ、右脚７Ｒおよび左脚７Ｌの回転角を保持する動力（トルク）に変換された電力の電流値をモータ制御部３９を介して採取する。このように採取部１１によって採取された電流値は、後述の算出部１２へ出力される。
【００２０】
算出部１２は、採取部１１によってサーボモータ３０ごとに採取された電流値Ｉから、各サーボモータ３０の回転角を保持するのに掛かる保持トルクＴを算出する。
【００２１】
図３Ａ及び図３Ｂは、保持トルクを説明するための図である。これら図３Ａ及び図３Ｂの例では、ロボット１の左腕５Ｌに掛かるトルクが図示されている。このうち、図３Ａの例では、サーボモータ３５Ｌの回転軸および左腕５Ｌの重心ＧＬを結ぶ方向が鉛直方向と略同一である場合を示す。また、図３Ｂの例では、サーボモータ３５Ｌの回転軸および左腕５Ｌの重心ＧＬを結ぶ方向が鉛直方向と異なる場合を示す。
【００２２】
図３Ａに示すように、サーボモータ３５Ｌの回転軸および左腕５Ｌの重心ＧＬを結ぶ方向が鉛直方向と略同一である場合には、サーボモータ３５Ｌの回転軸周りにモーメントは発生しない。この場合には、サーボモータ３０の回転角を保持するのに掛かる保持トルクＴはほぼゼロとなる。一方、図３Ｂに示すように、サーボモータ３５Ｌの回転軸および左腕５Ｌの重心ＧLを結ぶ方向が鉛直方向と異なる場合には、サーボモータ３５Ｌの回転軸周りにモーメントが発生する。なお、図３Ａ及び図３Ｂの例では、左腕５Ｌが外部の要因、例えば人、床や壁によって支持されていない場合を例示したが、外部の要因によって支持されている場合にもサーボモータ３５Ｌに保持トルクは発生しない。
【００２３】
例えば、左腕５Ｌの質量を「ｍ」とし、重力加速度を「ｇ」とし、サーボモータ３５Ｌから左腕５Ｌの重心ＧＬまでの長さを「ｘ」とし、サーボモータ３０の回転軸および部位の重心ＧＬを結ぶ方向が鉛直方向となす傾斜角を「α」とする。このとき、保持トルクＴは、ｍｇ×ｘ×ｓｉｎαとなる。なお、上記の「傾斜角」は、ロボット１が仰向けである場合には「正」の値を取り、ロボット１が俯せである場合には「負」の値を取るものとする。
【００２４】
一態様としては、算出部１２は、サーボモータ３０の電流値Ｉにトルク定数Ｃを乗算することによって各サーボモータ３０に掛かる保持トルクＴを算出する。なお、上記の「トルク定数」は、サーボモータ３０の電流値とその電流値がサーボモータ３０に供給された場合に発生するトルクの関係を定義する定数（Ｎｍ／Ｉ）である。
【００２５】
図４は、保持トルクおよび傾斜角の算出方法を説明するための図である。図４に示すように、算出部１２は、サーボモータ３３Ｐの電流値Ｉ33P「12」にトルク定数Ｃ33P「1.3」を乗算することによって保持トルクＴ33Pを「15.6=12*1.3」と算出する。同様にして、算出部１２は、サーボモータ３３Ｒの保持トルクＴ33Rを「11.7」、サーボモータ３３Ｙの保持トルクＴ33Lを「13.0」と算出する。また、同様にして、算出部１２は、サーボモータ３５Ｒの保持トルクＴ35Lを「48.1」、サーボモータ３５Ｌの保持トルクＴ35Lを「48.6」と算出する。さらに、同様にして、算出部１２は、サーボモータ３７Ｒの保持トルクＴ35Rを「3.9」、サーボモータ３７Ｌの保持トルクＴ37Lを「3.9」と算出する。
【００２６】
姿勢推定部１３は、ロボット１の姿勢を推定する。一態様としては、姿勢推定部１３は、算出部１２によって算出された保持トルクＴの他、サーボモータ３０によって胴体９と接続される部位の質量ｍ、重力加速度ｇや回転軸から部位の重心までの長さｘを用いて、傾斜角αを推定する。
【００２７】
すなわち、姿勢推定部１３は、保持トルクＴ、部位の質量ｍ、重力加速度ｇおよび回転軸から部位の重心までの長さｘを傾斜角の算出式「ｓｉｎ−１（Ｔｉ／ｍｉｇｘｉ）」に代入することによって傾斜角αｉを推定する。図４の例で言えば、姿勢推定部１３は、サーボモータ３３Ｐ、３３Ｒ、３３Ｙ、３５Ｒ、３５Ｌ、３７Ｒ及び３７Ｌの傾斜角α33P、α33R、α33Y、α35R、α35L、α37R及びα37Lを「3.04」、「1.71」、「1.52」、「79.04」、「72.80」、「1.14」、「1.14」と推定する。
【００２８】
その上で、姿勢推定部１３は、各サーボモータ３０の傾斜角αの組合せから、ロボット１の姿勢を推定する。一例としては、姿勢推定部１３は、傾斜角α35R及びα35Lの絶対値がともに所定の閾値、例えば４５度以上であるか否かを推定する。このとき、姿勢推定部１３は、傾斜角α35R及びα35Lの絶対値がともに所定の閾値以上である場合に、傾斜角α35R及びα35Lがともに正の値であるか否かをさらに推定する。そして、姿勢推定部１３は、傾斜角α35R及びα35Lがともに正の値である場合には、ロボット１の姿勢が「仰向け」であると推定する。また、姿勢推定部１３は、傾斜角α35R及びα35Lがともに正の値でない場合には、傾斜角α35R及びα35Lがともに負の値であるか否かをさらに推定する。このとき、姿勢推定部１３は、傾斜角α35R及びα35Lがともに負の値である場合には、ロボット１の姿勢が「俯せ」であると推定する。また、姿勢推定部１３は、傾斜角α35R及びα35Lの絶対値のうちいずれかが所定の閾値未満であるか、あるいは傾斜角α35R及びα35Lがともに正の値または負の値でない場合には、ロボット１の姿勢が「立位」または「横臥」であると推定する。
【００２９】
拘束状況推定部１４は、ロボット１の部位に対する拘束状況を推定する。一態様として、拘束状況推定部１４は、姿勢推定部１３により推定されたロボット１の姿勢が「仰向け」又は「俯せ」である場合に、首関節のピッチ方向のうちいずれかの方向、すなわち上方向又は下方向からロボット１の頭３が拘束を受けているか否かを推定する。
【００３０】
ここで、ロボット１が水平面に仰向けまたは俯せの姿勢で置かれている場合には、サーボモータ３３Ｐが拘束されないので、傾斜角α33Pは０度よりも９０度または−９０度の方に近づくと推定できる。一方、ロボット１の頭３が支えられて仰向けまたは俯せに抱っこされている場合には、傾斜角α33Pは９０度または−９０度よりも０度の方に近づくと推定できる。
【００３１】
これらのことから、拘束状況推定部１４は、傾斜角α33Pが所定の範囲内、例えば０度から±３０度以内であるか否かを推定する。このとき、傾斜角α33Pが０度から所定の範囲内である場合には、首関節のピッチ方向からロボット１の頭３が拘束を受けていると推定する。一方、傾斜角α33Pが０度から所定の範囲内でない場合には、ロボット１の頭３が首関節のピッチ方向からの拘束を受けていないと推定する。
【００３２】
他の一態様としては、拘束状況推定部１４は、姿勢推定部１３によってロボット１の姿勢が「立位」または「横臥」であると推定された場合に、首関節のロール方向が可動状態となったか否かを推定する。
【００３３】
ここで、ロボット１が水平面に横臥の姿勢で置かれている場合には、重力加速度の影響力が高まるに伴ってサーボモータ３３Ｒの回転軸周りに働く首関節のロール方向のモーメントが仰向け、俯せおよび立位のいずれの姿勢よりも大きくなる。言い換えれば、首関節のロール方向のモーメントの均衡が崩れた場合には、横臥の姿勢である可能性が高く、サーボモータ３３Ｒが可動状態である可能性が高いと推定できる。
【００３４】
このことから、拘束状況推定部１４は、傾斜角α33Rの絶対値が所定の閾値、例えば４５度以上であるか否かを推定する。このとき、拘束状況推定部１４は、傾斜角α33Rが所定の閾値以上である場合には、首関節のロール方向が可動状態になったと推定する。一方、拘束状況推定部１４は、傾斜角α33Rが所定の閾値未満である場合には、首関節のロール方向のモーメントの均衡が崩れておらず、首関節のロール方向のいずれの方向についても可動状態ではないと推定する。
【００３５】
なお、ここでは、拘束状況推定部１４が傾斜角を用いてロボット１の部位に対する拘束状況を推定する場合を例示したが、開示の装置はこれに限定されず、算出部１２により算出された保持トルクを用いてロボット１の部位に対する拘束状況を推定することもできる。
【００３６】
判別部１５は、姿勢推定部１３によって推定されたロボット１の姿勢と、拘束状況推定部１４によって推定されたロボット１の部位に対する拘束状況とに基づいて、ロボット１が保持されている保持状況を判別する。
【００３７】
一態様としては、判別部１５は、姿勢推定部１３によって推定されたロボット１の姿勢が「仰向け」である場合に、拘束状況推定部１４によってロボット１の頭３が首関節のピッチ方向のうち上方向から拘束を受けていると推定されたか否かを判定する。このとき、ロボット１の頭３が首関節のピッチ方向のうち上方向から拘束を受けている場合には、ロボット１の後頭部が支えられていると推定できる。よって、判別部１５は、ロボット１の保持状況が「頭を支えられて仰向けに抱っこされている状況」であると判別する。一方、ロボット１の頭３が首関節のピッチ方向のうち上方向から拘束を受けていない場合には、ロボット１の後頭部が支えられていないと推定できる。この場合には、判別部１５は、ロボット１の保持状況が「水平面に仰向けに置かれている状況」であると判別する。
【００３８】
他の一態様としては、判別部１５は、姿勢推定部１３によって推定されたロボット１の姿勢が「俯せ」である場合に、拘束状況推定部１４によってロボット１の頭３が首関節のピッチ方向のうち下方向から拘束を受けていると推定されたか否かを判定する。このとき、ロボット１の頭３が首関節のピッチ方向のうち下方向から拘束を受けている場合には、ロボット１の顔が支えられていると推定できる。よって、判別部１５は、ロボット１の保持状況が「顔を支えられて俯せに抱っこされている状況」であると判別する。一方、ロボット１の頭３が首関節のピッチ方向のうち下方向から拘束を受けていない場合には、ロボット１の顔が支えられていないと推定できる。この場合には、判別部１５は、ロボット１の保持状況が「水平面に俯せに置かれている状況」であると判別する。
【００３９】
更なる一態様としては、判別部１５は、姿勢推定部１３によって推定されたロボット１の姿勢が「立位」または「横臥」である場合に、拘束状況推定部１４によって首関節のロール方向が可動状態になったことが推定されたか否かを判定する。このとき、首関節のロール方向が可動状態になった場合には、ロボット１の頭３に掛かる首関節のロール方向のモーメントが釣り合っていないと推定できる。よって、判別部１５は、ロボット１の保持状況が「横臥」であると判別する。一方、首関節のロール方向が可動状態ではない場合には、ロボット１の頭３に掛かる首関節のロール方向のモーメントが均衡していると推定できる。この場合には、判別部１５は、ロボット１の保持状況が「立位」であると判別する。
【００４０】
図５は、保持状況の判別方法を説明するための図である。図５の例では、（イ）〜（ニ）の４つの保持状況それぞれで各サーボモータ３０ごとに算出された傾斜角が図示されている。図５に示す保持状況（イ）の例では、傾斜角α35R及びα35Lの絶対値がともに閾値「４５度」以上であり、かつ両方ともが「正」の値を取るので、姿勢推定部１３によってロボット１の姿勢が「仰向け」であると推定される。さらに、保持状況（イ）の例では、傾斜角α33Pが所定の範囲「０度から±３０度」以内であるので、拘束状況推定部１４によって首関節のピッチ方向からロボット１の頭３が拘束を受けていると推定される。このように、保持状況（イ）の例では、ロボット１の姿勢が「仰向け」であり、かつロボット１の頭３が首関節のピッチ方向のうち上方向から拘束を受けている。したがって、判別部１５によって保持状況（イ）が「頭を支えられて仰向けに抱っこされている状況」であると判別される。
【００４１】
図５に示す保持状況（ロ）の例では、保持状況（イ）の場合と同様に、傾斜角α35R及びα35Lの絶対値がともに閾値「４５度」以上であり、かつ両方ともが「正」の値を取るので、姿勢推定部１３によってロボット１の姿勢が「仰向け」であると推定される。ここで、保持状況（ロ）の例では、傾斜角α33Pが所定の範囲「０度から±３０度」以内にないので、拘束状況推定部１４によって首関節のピッチ方向からロボット１の頭３が拘束を受けていないと推定される。このように、保持状況（ロ）の例では、ロボット１の姿勢が「仰向け」であり、かつロボット１の頭３が首関節のピッチ方向のうち上方向から拘束を受けていない。それゆえ、判別部１５によって保持状況（ロ）が「水平面に仰向けに置かれている状況」であると判別される。
【００４２】
図５に示す保持状況（ハ）の例では、傾斜角α35R及びα35Lの絶対値がともに閾値「４５度」以上であり、かつ両方ともが「負」の値を取るので、姿勢推定部１３によってロボット１の姿勢が「俯せ」であると推定される。さらに、保持状況（ハ）の例では、傾斜角α33Pが所定の範囲「０度から±３０度」以内であるので、拘束状況推定部１４によって首関節のピッチ方向からロボット１の頭３が拘束を受けていると推定される。このように、保持状況（ハ）の例では、ロボット１の姿勢が「俯せ」であり、かつロボット１の頭３が首関節のピッチ方向のうち下方向から拘束を受けている。したがって、判別部１５によって保持状況（ロ）が「顔を支えられて俯せに抱っこされている状況」であると判別される。
【００４３】
図５に示す保持状況（ニ）の例では、傾斜角α35R及びα35Lの絶対値が閾値「４５度」未満であるので、姿勢推定部１３によってロボット１の姿勢が「立位」または「横臥」であると推定される。このとき、傾斜角α33Rの絶対値が所定の閾値「４５度」以上であるので、拘束状況推定部１４によって首関節のロール方向が可動状態になったと推定される。このように、保持状況（ニ）の例では、ロボット１の姿勢が「立位」または「横臥」であり、かつ首関節のロール方向が可動状態になっている。それゆえ、判別部１５によって保持状況（ニ）が「横臥」であると判別される。
【００４４】
図２の説明に戻り、実行部１６は、インタラクションの実行条件を満たす場合に、人とのインタラクションを実行する。一態様としては、実行部１６は、実行部１６は、ロボット１の保持状況が「頭を支えられて仰向けに抱っこされている状況」または「顔を支えられて俯せに抱っこされている状況」であるかを判定する。このとき、ロボット１の保持状況が「頭を支えられて仰向けに抱っこされている状況」または「顔を支えられて俯せに抱っこされている状況」である場合には、インタラクションを実行する。
【００４５】
図６Ａ及び図６Ｂは、インタラクションの一例を示す図である。例えば、ロボット１の保持状況が「頭を支えられて仰向けに抱っこされている状況」である場合には、実行部１６は、図６Ａに示すように、「大好き」などのメッセージを図示しない音声出力部を介して出力する。また、ロボットの保持状況が「顔を支えられて俯せに抱っこされている状況」である場合には、実行部１６は、次のような処理を実行する。すなわち、実行部１６は、図６Ｂに示すように、「苦しい〜」などのメッセージを図示しない音声出力部を介して出力する。さらに、実行部１６は、図６Ｂに示すように、各サーボモータ３０の回転角を増減させる処理をモータ制御部３９を介して連続して実行することにより、ロボット１の頭３、右腕５Ｒ、左腕５Ｌ、右脚７Ｒ及び左脚７Ｌをバタバタさせる。
【００４６】
また、実行部１６は、ロボット１の保持状況が「頭を支えられて仰向けに抱っこされている状況」および「顔を支えられて俯せに抱っこされている状況」ではない場合には、ロボット１が覚醒モードであるか否かを判定する。このとき、実行部１６は、ロボット１が覚醒モードである場合には、インタラクションを実行する。例えば、ロボットの保持状況が「水平面に仰向けに置かれている状況」または「横臥」である場合には、「起こして」などのメッセージを図示しない音声出力部を介して出力する。また、実行部１６は、ロボット１が睡眠モードである場合には、ロボット１の保持状況が抱っこされている状況になったり、所定時間が経過して覚醒モードに遷移するまで、寝息やいびきの音声を図示しない音声出力部を介して出力する。
【００４７】
［処理の流れ］
次に、本実施例に係るロボットの処理の流れについて説明する。図７は、実施例１に係るインタラクション実行処理の手順を示すフローチャートである。このインタラクション実行処理は、ロボット１の電源がＯＮ状態である限り、繰り返し実行される。
【００４８】
図７に示すように、まず、採取部１１は、各サーボモータ３０によって頭３、右腕５Ｒ、左腕５Ｌ、右脚７Ｒおよび左脚７Ｌの回転角を保持する動力（トルク）に変換された電力の電流値をモータ制御部３９を介して採取する（ステップＳ１０１）。
【００４９】
続いて、算出部１２は、サーボモータ３０の電流値Ｉｉにトルク定数Ｃｉを乗算することによって各サーボモータ３０に掛かる保持トルクＴｉを算出する（ステップＳ１０２）。そして、姿勢推定部１３は、保持トルクＴｉ、部位の質量ｍｉ、重力加速度ｇおよび回転軸から部位の重心までの長さｘｉを傾斜角の算出式「ｓｉｎ−１（Ｔｉ／ｍｉｇｘｉ）」に代入して傾斜角αｉを推定した上でロボット１の姿勢を推定する（ステップＳ１０３）。
【００５０】
その後、拘束状況推定部１４は、姿勢推定部１３によって推定されたロボット１の姿勢と所定の部位の傾斜角αｉとを用いて、ロボット１の部位のうち特定の部位に対する拘束状況を推定する（ステップＳ１０４）。
【００５１】
続いて、判別部１５は、姿勢推定部１３によって推定されたロボット１の姿勢と、拘束状況推定部１４によって推定されたロボット１の部位に対する拘束状況とに基づいて、ロボット１が保持されている保持状況を判別する（ステップＳ１０５）。
【００５２】
このとき、保持状況がインタラクションの実行条件を満たす場合（ステップＳ１０６肯定）には、実行部１６は、次のような処理を実行する。すなわち、実行部１６は、図示しない音声出力部やモータ制御部３９を介して、ロボット１の感情を表現するインタラクションを実行し（ステップＳ１０７）、ステップＳ１０１〜ステップＳ１０６までの処理を繰り返し実行する。
【００５３】
また、保持状況がインタラクションの実行条件を満たさない場合（ステップＳ１０６否定）には、ステップＳ１０７の処理を実行せず、そのままステップＳ１０１〜ステップＳ１０６までの処理を実行する。
【００５４】
［実施例１の効果］
上述してきたように、本実施例に係るロボット１は、人とインタラクションを行うロボット１が各関節にサーボモータ３０を有し、各サーボモータ３０のトルクからロボット１の部位に対する拘束状況を推定する。したがって、本実施例に係るロボット１によれば、各種のセンサを用いずにロボット１が保持されている保持状況を認識できる。さらに、本実施例に係るロボット１では、接触センサやケーブルの数を低減できるので、ロボット１を小型化できる。
【００５５】
加えて、本実施例に係るロボット１では、ロボット１の関節にサーボモータ３０を採用するので、サーボモータ３０を末梢部側ではなく、体幹部側に配置することができる。このため、また、本実施例に係るロボット１では、配線を胴体９の内部に収めることができるので、断線等の障害を防止できる。さらに、本実施例に係るロボット１では、配線も簡易化できるので、修復作業およびメンテナンス作業も簡易に行うこともできる。
【００５６】
また、本実施例に係るロボット１は、サーボモータ３０ごとに採取された電流値から、各サーボモータ３０の回転角を保持するのに掛かる保持トルクを算出する。その上で、本実施例に係るロボット１は、各サーボモータ３０の保持トルクから、ロボット１の部位に対する拘束状況を推定する。このため、本実施例に係るロボット１では、サーボモータ３０が有する既存の機能を用いるので、ロボット１の部位に対する拘束状況を推定するために新たなハードウェアを追加するのを不要化できる。
【００５７】
さらに、本実施例に係るロボット１は、サーボモータ３０ごとに算出された保持トルクから当該部位が所定の基準方向、例えば鉛直方向から傾斜している傾斜角αｉを各部位ごとに算出した上で各部位の傾斜角αｉの組合せからロボット１の姿勢を推定する。そして、本実施例に係るロボット１は、ロボット１の部位に対する拘束状況およびロボット１の姿勢に基づいてロボット１が保持されている保持状況を判別する。このため、本実施例に係るロボット１では、加速度センサ等のセンサ類を用いることなく、各関節にサーボモータ３０を用いるだけでロボット１の姿勢を推定することができる。さらに、本実施例に係るロボット１では、特定の部位に１つ設けられた加速度センサ等よりもロボット１の姿勢を大局的に推定できる。したがって、本実施例に係るロボット１では、ロボット１の保持状況を精度よく判別することができる。
【００５８】
また、本実施例に係るロボット１は、ロボット１の保持状況に応じて情報を出力する制御、及び／又は、サーボモータ３０を駆動して部位を動作させる制御を実行する。例えば、ロボット１が抱きかかえられている場合には、「大好き」等の喜びを表すメッセージを音声出力できる。また、ロボット１が抱きかかえられている場合であっても仰向けに抱きかかえられている場合には、「苦しい」等の苦しみを表すメッセージを音声出力したり、各サーボモータ３０を駆動して頭や手足などの部位をばたつかせたりできる。このように、本実施例に係るロボット１によれば、ロボット１の保持状況に適合したインタラクションを実行できる。
【実施例２】
【００５９】
さて、上記の実施例１では、サーボモータ３０の回転角を保持する場合に掛かる保持トルクからロボット１の部位に対する拘束状況を検知する場合を例示したが、開示の装置はこれに限定されず、他の方法によって拘束状況を検知することもできる。そこで、実施例２では、サーボモータ３０の回転角を増減させた場合に掛かるトルクの負荷から拘束状況を検知する場合について説明する。なお、以下では、上記の実施例１で説明したロボット１と本実施例に係るロボットとを区別するために、本実施例に係るロボットを「ロボット２」と記載する場合がある。
【００６０】
図８は、実施例２に係るロボットが有する制御部の機能的構成を示すブロック図である。図８に示すように、本実施例に係るロボット２は、図２に示した制御部１０に比べて、制御部２０が回転角指令部２１、検知部２３および検出部２４を新たに有する点が相違する。さらに、本実施例に係るロボット２は、上記の実施例１にロボット１に比べて、採取部２２及び判別部２５の機能の一部が図２に示した採取部１１及び判別部１５と異なる点が相違する。なお、本実施例では、上記の実施例１と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略する。
【００６１】
このうち、回転角指令部２１は、各サーボモータ３０の回転角の増減を指令する。一態様としては、回転角指令部２１は、各サーボモータ３０によって指令前に計測されている回転角を基準に±θｉ、例えば「１０度」増減させる指令をモータ制御部３９を介して各サーボモータ３０へ送信する。なお、回転角を増減させる範囲は、上記の例に限らず、任意の範囲を設定することができる。
【００６２】
採取部２２は、回転角指令部２１によってサーボモータ３０の回転角の増減が指令されている期間のサーボモータ３０のトルクの負荷を採取する。一態様としては、採取部２２は、サーボモータ３０の回転角の増減によって掛かるトルクの負荷の一例として、回転角の変化を採取する。この場合には、採取部２２は、サーボモータ３０の回転角の増減が指令されている期間にサーボモータ３０から実際に採取した回転角のうち、最小値および最大値を抽出する。その上で、採取部２２は、回転角の最小値および最大値から、サーボモータ３０によって増減の基準とした回転角を減算することによって回転角増減値ΔθＬｉ〜ΔθＨｉを採取する。
【００６３】
他の一態様としては、採取部２２は、サーボモータ３０の回転角の増減によって掛かるトルクの負荷の一例として、電流値の変化を採取する。この場合には、採取部２２は、サーボモータ３０の回転角の増減が指令されている期間にサーボモータ３０から採取した電流値のうち、最小値および最大値を抽出する。その上で、採取部２２は、電流値の最小値および最大値から、サーボモータ３０によって増減の基準とした回転角が計測されている時にともに計測された電流値を減算することによって電流増減値ΔＩｉを採取する。
【００６４】
検知部２３は、採取部２２によってサーボモータ３０ごとに採取されたトルクの負荷から、ロボット２の部位に対する拘束状況を検知する。一態様としては、検知部２３は、各サーボモータ３０ごとに採取された回転角増減値ΔθＬｉ〜ΔθＨｉのうち、回転角増減値ΔθＬｉ及びΔθＨｉの絶対値が増減指令値θｉに満たないサーボモータ３０によって接続される部位が拘束を受けていると検知する。すなわち、回転角増減値ΔθＬｉ及びΔθＨｉの絶対値が増減指令値θｉに満たない場合には、人等によって外力が原因となってサーボモータ３０のトルクの負荷が大きくなっているので、その部位が拘束を受けているとみなすことができる。なお、ここでは、回転角増減値ΔθＬｉ〜ΔθＨｉを用いて拘束状況を検知する場合を例示したが、電流増減値ΔＩｉを用いて拘束状況を検知することとしてもかまわない。この場合には、電流増減値ΔＩｉが所定の閾値以上であるか否かを判定すればよい。このとき、電流増減値ΔＩｉが所定の閾値以上である場合には、回転角増減値ΔθＬｉ及びΔθＨｉの場合と同様に、人等によって外力が原因となってサーボモータ３０のトルクの負荷が大きくなっているので、その部位が拘束を受けているとみなすことができる。
【００６５】
検出部２４は、図２に示した姿勢推定部１３と同様に、ロボット２の姿勢を検出する。かかる検出部２４は、図２に示した姿勢推定部１３が保持トルクから傾斜角を推定してロボット１の姿勢を推定するのに対し、ロボット２に設けられた加速度センサ５０から３軸の加速度を取得することによってロボット２の姿勢を検出する点が異なる。
【００６６】
判別部２５は、検出部２４によって検出されたロボット２の姿勢と、検知部２３によって検知されたロボット２の部位に対する拘束状況とに基づいて、ロボット２の保持状況を判別する。
【００６７】
ここで、図９Ａ及び図９Ｂを用いて保持状況の判別方法について説明する。図９Ａは、サーボモータに掛かるトルクの負荷の一例を示す図である。図９Ｂは、ロボットの姿勢の一例を示す図である。図９Ａの例では、（ホ）〜（チ）の４つの保持状況それぞれで各サーボモータ３０ごとに採取された回転角増減値ΔθＬｉ〜ΔθＨｉが図示されている。また、図９Ｂの例では、図９Ａに示した（ホ）〜（チ）の４つの保持状況それぞれに対応する加速度センサ５０の計測値が図示されている。
【００６８】
図９Ａに示す保持状況（ホ）の例では、サーボモータ３３Ｐの回転角増減値ΔθＨ３３Ｐ「5」の絶対値が増減指令値θ３３ｐ「10」に満たないので、検知部２３によってロボット２の頭３が首関節のピッチ方向のうち上方向から拘束を受けていると検知される。また、サーボモータ３５Ｒの回転角増減値ΔθＬ３５Ｒ「-7」の絶対値が増減指令値θ３５Ｒ「10」に満たないので、検知部２３によってロボット２の右腕５Ｒが拘束を受けていると検知される。さらに、図９Ｂに示す保持状況（ホ）の例では、Ｘ軸、Ｙ軸及びＺ軸の加速度から検出部２４によってロボット２の姿勢が「仰向け」であると検出される。このように、保持状況（ホ）の例では、ロボット２の姿勢が「仰向け」であり、かつロボット２の頭３が首関節のピッチ方向のうち上方向から拘束を受けている。加えて、保持状況（ホ）の例では、ロボット２の右腕５Ｒが拘束を受けていることもわかる。したがって、判別部２５によって保持状況（ホ）が「頭を支えられた上でロボット２の右手を手前側にして仰向けに抱っこされている状況」であると判別される。
【００６９】
図９Ａに示す保持状況（ヘ）の例では、各サーボモータ３０の回転角増減値ΔθＬ３３Ｐ〜ΔθＨ３３Ｐの絶対値がいずれも増減指令値θ３３ｐ「10」と同じであるので、検知部２３によってロボット２の部位はいずれも拘束を受けていないと検知される。また、図９Ｂに示す保持状況（ヘ）の例では、Ｘ軸、Ｙ軸及びＺ軸の加速度から検出部２４によってロボット２の姿勢が「仰向け」であると検出される。それゆえ、判別部２５によって保持状況（ヘ）が「水平面に仰向けに置かれている状況」であると判別される。
【００７０】
図９Ａに示す保持状況（ト）の例では、サーボモータ３３Ｐの回転角増減値ΔθＬ３３Ｐ「-4」の絶対値が増減指令値θ３３ｐ「10」に満たないので、検知部２３によってロボット２の頭３が首関節のピッチ方向のうち下方向から拘束を受けていると検知される。また、サーボモータ３５Ｌの回転角増減値ΔθＨ３５Ｌ「3」の絶対値が増減指令値θ３５Ｌ「10」に満たないので、検知部２３によってロボット２の左腕５Ｌが拘束を受けていると検知される。さらに、図９Ｂに示す保持状況（ト）の例では、Ｘ軸、Ｙ軸及びＺ軸の加速度から検出部２４によってロボット２の姿勢が「俯せ」であると検出される。このように、保持状況（ト）の例では、ロボット２の姿勢が「俯せ」であり、かつロボット２の頭３が首関節のピッチ方向のうち下方向から拘束を受けている。加えて、保持状況（ト）の例では、ロボット２の左腕５Ｌが拘束を受けていることもわかる。したがって、判別部２５によって保持状況（ト）が「顔を支えられた上でロボット２の左手を手前側にして俯せに抱っこされている状況」であると判別される。
【００７１】
図９Ａに示す保持状況（チ）の例では、各サーボモータ３０の回転角増減値ΔθＬ３３Ｐ〜ΔθＨ３３Ｐの絶対値がいずれも増減指令値θ３３ｐ「10」と同じであるので、検知部２３によってロボット２の部位はいずれも拘束を受けていないと検知される。また、図９Ｂに示す保持状況（チ）の例では、Ｘ軸、Ｙ軸及びＺ軸の加速度から検出部２４によってロボット２の姿勢が「横臥」であると検出される。それゆえ、判別部１５によって保持状況（チ）が「横臥」であると判別される。
【００７２】
［処理の流れ］
次に、本実施例に係るロボットの処理の流れについて説明する。図１０は、実施例２に係るインタラクション実行処理の手順を示すフローチャートである。このインタラクション実行処理は、ロボット２の電源がＯＮ状態である限り、繰り返し実行される。
【００７３】
図１０に示すように、回転角指令部２１は、各サーボモータ３０によって指令前に計測されている回転角を基準に±θ増減させる指令をモータ制御部３９を介して各サーボモータ３０へ送信する（ステップＳ２０１）。
【００７４】
続いて、採取部２２は、回転角指令部２１によってサーボモータ３０の回転角の増減が指令されている期間のサーボモータ３０のトルクの負荷を採取する（ステップＳ２０２）。そして、検知部２３は、採取部２２によってサーボモータ３０ごとに採取されたトルクの負荷から、ロボット２の部位に対する拘束状況を検知する（ステップＳ２０３）。
【００７５】
その後、検出部２４は、ロボット２に設けられた加速度センサ５０から３軸の加速度を取得することによってロボット２の姿勢を検出する（ステップＳ２０４）。続いて、判別部２５は、検出部２４によって検出されたロボット２の姿勢と、検知部２３によって検知されたロボット２の部位に対する拘束状況とに基づいて、ロボット２の保持状況を判別する（ステップＳ２０５）。
【００７６】
このとき、保持状況がインタラクションの実行条件を満たす場合（ステップＳ２０６肯定）には、実行部１６は、次のような処理を実行する。すなわち、実行部１６は、図示しない音声出力部やモータ制御部３９を介して、ロボット２の感情を表現するインタラクションを実行し（ステップＳ２０７）、ステップＳ２０１〜ステップＳ２０６までの処理を繰り返し実行する。
【００７７】
また、保持状況がインタラクションの実行条件を満たさない場合（ステップＳ２０６否定）には、ステップＳ２０７の処理を実行せず、そのままステップＳ２０１〜ステップＳ２０６までの処理を実行する。
【００７８】
［実施例２の効果］
上述してきたように、本実施例に係るロボット２は、上記の実施例１と同様に、人とインタラクションを行うロボット１が各関節にサーボモータ３０を有し、各サーボモータ３０のトルクからロボット１の部位に対する拘束状況を検知する。したがって、本実施例に係るロボット２によれば、上記の実施例１と同様に、各種のセンサを用いずにロボット２が保持されている保持状況を認識できる。さらに、本実施例に係るロボット２では、接触センサやケーブルの数を低減できるので、ロボット２を小型化できる。
【００７９】
加えて、本実施例に係るロボット２では、上記の実施例１と同様に、ロボット２の関節にサーボモータ３０を採用するので、サーボモータ３０を末梢部側ではなく、体幹部側に配置することができる。このため、また、本実施例に係るロボット２では、上記の実施例１と同様に、配線を胴体９の内部に収めることができるので、断線等の障害を防止できる。さらに、本実施例に係るロボット２では、上記の実施例１と同様に、配線も簡易化できるので、修復作業およびメンテナンス作業も簡易に行うこともできる。
【００８０】
また、本実施例に係るロボット２は、各サーボモータ３０の回転角の増減を指令した上で、サーボモータ３０の回転角の増減が指令されている期間のサーボモータ３０のトルクの負荷を採取する。そして、本実施例に係るロボット２は、サーボモータ３０ごとに採取したトルクの負荷から、ロボット２の部位に対する拘束状況を検知する。このため、本実施例に係るロボット２では、ロボット２の部位を実際に駆動させることによってトルクの負荷を採取するので、ロボット２の部位に対する拘束状況をより正確に検知できる。
【００８１】
さらに、本実施例に係るロボット２は、サーボモータ３０ごとに採取されたトルクの負荷のうち、ロボット２の首のピッチ方向および腕の一方のトルクの負荷が所定の閾値以上であるか否かを検知する。そして、本実施例に係るロボット２は、ロボット２の首のピッチ方向および腕の一方のトルクの負荷が閾値以上である場合に、ロボット２が抱きかかえられていると判別する。一方、本実施例に係るロボット２は、ロボット２の首のピッチ方向および腕の一方のトルクの負荷が閾値未満である場合に面に載置されていると判別する。このため、本実施例に係るロボット２では、ロボット２が拘束を受けている部位の組合せによって人等から拘束されているのか、あるいは放置されているのかを判別でき、サーボモータ３０だけでロボット２の保持状況を精度よく判別できる。
【００８２】
また、本実施例に係るロボット２は、ロボット２の保持状況に応じて情報を出力する制御、及び／又は、サーボモータ３０を駆動して部位を動作させる制御を実行する。例えば、ロボット２が抱きかかえられている場合には、「大好き」等の喜びを表すメッセージを音声出力できる。また、ロボット２が抱きかかえられている場合であっても仰向けに抱きかかえられている場合には、「苦しい」等の苦しみを表すメッセージを音声出力したり、各サーボモータ３０を駆動して頭や手足などの部位をばたつかせたりできる。このように、本実施例に係るロボット２によれば、上記の実施例１と同様に、ロボット２の保持状況に適合したインタラクションを実行できる。
【実施例３】
【００８３】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００８４】
［適用例］
上記の実施例１では、ロボット１の姿勢を保持トルクから検出する場合を例示したが、必ずしも保持トルクから検出する必要はなく、上記の実施例２と同様に、加速度センサを用いてロボット１の姿勢を検出することとしてもかまわない。
【００８５】
［適用範囲］
また、上記の実施例２では、ロボット２の姿勢をサーボモータ３０のトルクの負荷から検出する場合を例示したが、必ずしも加速度センサを用いる必要はなく、上記の実施例１と同様に、ロボット１の姿勢を保持トルクから検出することとしてもかまわない。
【００８６】
［応用範囲］
また、上記の実施例１では、ロボット１の姿勢を推定してからロボット１の部位に対する拘束状況を推定する場合を説明したが、必ずしもロボット１の姿勢の後に拘束状況を推定する必要はない。例えば、開示の装置は、ロボット１の姿勢および拘束状況を並行して推定することもできるし、また、ロボット１の拘束状況を推定してからロボット１の姿勢を推定することもできる。
【００８７】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、採取部１１、算出部１２、姿勢推定部１３、拘束状況推定部１４、判別部１５又は実行部１６をロボット１の外部装置としてネットワーク経由で接続するようにしてもよい。また、回転角指令部２１、採取部２２、検知部２３、検出部２４、判別部２５又は実行部１６をロボット２の外部装置としてネットワーク経由で接続するようにしてもよい。また、採取部１１、算出部１２、姿勢推定部１３、拘束状況推定部１４、判別部１５又は実行部１６を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のロボットの機能を実現するようにしてもよい。さらに、回転角指令部２１、採取部２２、検知部２３、検出部２４、判別部２５又は実行部１６を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のロボットの機能を実現するようにしてもよい。
【００８８】
［状況認識プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１１を用いて、上記の実施例と同様の機能を有する状況認識プログラムを実行するコンピュータの一例について説明する。
【００８９】
図１１は、実施例１及び実施例２に係る状況認識プログラムを実行するコンピュータの一例について説明するための図である。図１１に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０と有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【００９０】
ＨＤＤ１７０には、図１１に示すように、上記の実施例１で示した採取部１１、算出部１２、姿勢推定部１３、拘束状況推定部１４、判別部１５及び実行部１６と同様の機能を発揮する状況認識プログラム１７０ａが予め記憶される。また、状況認識プログラム１７０ａは、回転角指令部２１、採取部２２、検知部２３、検出部２４、判別部２５及び実行部１６と同様の機能を発揮するプログラムであってもよい。この状況認識プログラム１７０ａについては、図２または図８に示した各々の機能部の各構成要素と同様、適宜統合又は分離しても良い。すなわち、ＨＤＤ１７０に格納される各データは、常に全てのデータがＨＤＤ１７０に格納される必要はなく、処理に必要なデータのみがＨＤＤ１７０に格納されれば良い。
【００９１】
そして、ＣＰＵ１５０が、状況認識プログラム１７０ａをＨＤＤ１７０から読み出してＲＡＭ１８０に展開する。これによって、図１１に示すように、状況認識プログラム１７０ａは、状況認識プロセス１８０ａとして機能する。この状況認識プロセス１８０ａは、ＨＤＤ１７０から読み出した各種データを適宜ＲＡＭ１８０上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、状況認識プロセス１８０ａは、図２に示した採取部１１、算出部１２、姿勢推定部１３、拘束状況推定部１４、判別部１５及び実行部１６にて実行される処理、例えば図７に示す処理を含む。また、状況認識プロセス１８０ａは、図８に示した回転角指令部２１、採取部２２、検知部２３、検出部２４、判別部２５及び実行部１６にて実行される処理、例えば図１０に示す処理を含んでもよい。また、ＣＰＵ１５０上で仮想的に実現される各処理部は、常に全ての処理部がＣＰＵ１５０上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【００９２】
なお、上記の状況認識プログラム１７０ａについては、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【００９３】
１    ロボット
３    頭
５Ｒ  右腕
５Ｌ  左腕
７Ｒ  右脚
７Ｌ  左脚
９    胴体
１０    制御部
１１    採取部
１２    算出部
１３    姿勢推定部
１４    拘束状況推定部
１５    判別部
１６    実行部
３３Ｐ，３３Ｒ，３３Ｙ，３５Ｒ，３５Ｌ，３７Ｒ，３７Ｌ    サーボモータ
３９    モータ制御部
【図１】
0005765095.tif 000002
【図２】
0005765095.tif 000003
【図３Ａ】
0005765095.tif 000004
【図３Ｂ】
0005765095.tif 000005
【図４】
0005765095.tif 000006
【図５】
0005765095.tif 000007
【図６Ａ】
0005765095.tif 000008
【図６Ｂ】
0005765095.tif 000009
【図７】
0005765095.tif 000010
【図８】
0005765095.tif 000011
【図９Ａ】
0005765095.tif 000012
【図９Ｂ】
0005765095.tif 000013
【図１０】
0005765095.tif 000014
【図１１】
0005765095.tif 000015