ロボット、状況認識方法および状況認識プログラム
【課題】各種のセンサを用いずにロボットが保持されている保持状況を認識することを課題とする。
【解決手段】ロボット1は、ロボット1の各部位間を接続する関節に設けられた複数のサーボモータ33P、33R、33Y、35R、35L、37R及び37Lを有する。さらに、ロボット1は、各サーボモータ33P、33R、33Y、35R、35L、37R及び37Lのトルクを用いて、ロボット1の部位に対する拘束状況を検知する。
【解決手段】ロボット1は、ロボット1の各部位間を接続する関節に設けられた複数のサーボモータ33P、33R、33Y、35R、35L、37R及び37Lを有する。さらに、ロボット1は、各サーボモータ33P、33R、33Y、35R、35L、37R及び37Lのトルクを用いて、ロボット1の部位に対する拘束状況を検知する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット、状況認識方法および状況認識プログラムに関する。
【背景技術】
【0002】
人との間で親和的な対話、すなわち「インタラクション」を行うロボットの一態様として、セラピーロボットやエンターテイメントロボットなどが開発されている。
【0003】
かかる「インタラクション」を実現するためには、ロボットが自身の姿勢や自身の置かれている状況を認識することが求められる。ここで、一例として、ロボットが人によって抱きかかえられたり、持ち上げられたりする状況を認識する場合を想定する。この場合には、人によって接触されうる可能性があるロボットの部位に接触センサを設けることが考えられる。すなわち、ロボットは、各接触センサの出力から人がロボットのどの部位に接触しているかを検知することによって自身が抱きかかえられたり、持ち上げられたりしているかどうかを認識する。そして、ロボットは、自身が抱きかかえられたり、持ち上げられていると認識した場合に、表情や身振り手振りを交えることによって喜怒哀楽のうち「喜」の感情を表現することにより、人とのインタラクションを実現する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−79480号公報
【特許文献2】特開2006−51586号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、各種のセンサなしにロボットが自身の保持されている保持状況を認識することができないという問題がある。例えば、上記の例のように、ロボットが人によって抱きかかえられたり、持ち上げられたりする状況を認識する場合には、頭、胴体、手足の各部位、さらには、各部位の表裏に接触センサを設ける必要がある。それゆえ、ロボットに設ける接触センサの数が多くなり、さらには、接触センサと接触センサと導通させるユニットとの間を結ぶ配線の数が煩雑化してしまう。
【0006】
開示の技術は、上記に鑑みてなされたものであって、各種のセンサを用いずにロボットが保持されている保持状況を認識できるロボット、状況認識方法および状況認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願の開示するロボットは、ロボットであって、前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータを有する。さらに、前記ロボットは、各サーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する検知部を有する。
【発明の効果】
【0008】
本願の開示するロボットの一つの態様によれば、各種のセンサを用いずにロボットが保持されている保持状況を認識できるという効果を奏する。
【図面の簡単な説明】
【0009】
【図1】図1は、実施例1に係るロボットの全体構成を示す機能ブロック図である。
【図2】図2は、実施例1に係るロボットが有する制御部の機能的構成を示すブロック図である。
【図3A】図3Aは、保持トルクを説明するための図である。
【図3B】図3Bは、保持トルクを説明するための図である。
【図4】図4は、保持トルクおよび傾斜角の算出方法を説明するための図である。
【図5】図5は、保持状況の判別方法を説明するための図である。
【図6A】図6Aは、インタラクションの一例を示す図である。
【図6B】図6Bは、インタラクションの一例を示す図である。
【図7】図7は、実施例1に係るインタラクション実行処理の手順を示すフローチャートである。
【図8】図8は、実施例2に係るロボットが有する制御部の機能的構成を示すブロック図である。
【図9A】図9Aは、サーボモータに掛かるトルクの負荷の一例を示す図である。
【図9B】図9Bは、ロボットの姿勢の一例を示す図である。
【図10】図10は、実施例2に係るインタラクション実行処理の手順を示すフローチャートである。
【図11】図11は、実施例1及び実施例2に係る状況認識プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示するロボット、状況認識方法および状況認識プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0011】
[ロボットの全体構成]
まず、本実施例に係るロボットの全体構成について説明する。図1は、実施例1に係るロボットの全体構成を示す機能ブロック図である。図1に示すロボット1は、人の日常生活に溶け込んで親和的な対話、すなわち「インタラクション」を行うものであり、頭3と、右腕5Rと、左腕5Lと、右脚7Rと、左脚7Lと、胴体9とを有する。なお、図1の例では、スキンシップを促し、かつ動物と人間(幼児)の中間的な存在感を演出する観点から、軟らかい毛で覆われた表皮や幼児に近い体型を持つ子ぐまのぬいぐるみの外観が採用される場合を想定する。
【0012】
図1に示すように、ロボット1の胴体9には、頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lがサーボモータ33P、33R、33Y、35R、35L、37R及び37Lを介して接続される。ここで、以下では、サーボモータ33P、33R、33Y、35R、35L、37R及び37Lを区別なく総称する場合には「サーボモータ30」と総称する場合がある。また、サーボモータ30は、頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lを駆動させるモータの動力制御やモータに流れる電流値のモニタリングなどの各種の統括制御を行うモータ制御部39と接続される。さらに、モータ制御部39は、ロボット1の全体制御を司る制御部10と接続される。
【0013】
サーボモータ30は、ロボット1の胴体9と、頭3、右腕5R、左腕5L、右脚7Rまたは左脚7Lとを接続する関節に設けられる1自由度のモータである。一態様としては、サーボモータ30は、モータ制御部39からの指示にしたがって動力を伝達することにより、頭3、右腕5R、左腕5L、右脚7Rまたは左脚7Lを駆動する。さらに、サーボモータ30は、図示しないエンコーダやポテンショメータを用いて、サーボモータ30から伝達された動力によって駆動する頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lの位置、速度や回転角を計測できる。
【0014】
サーボモータ33P、33R及び33Yは、ロボット1の頭3と胴体9とを接続する首関節に設けられる。このうち、サーボモータ33Pは、ロボット1の頭3をピッチ方向に回転させ、サーボモータ33Rは、ロボット1の頭3をロール方向に回転させ、また、サーボモータ33Yは、ロボット1の頭3をヨー方向に回転させる。なお、上記の「ピッチ方向」とは、ロボット1の左右を軸(X軸)として回転する方向、すなわち上下方向を指す。また、上記の「ロール方向」とは、ロボット1の前後を軸(Y軸)として回転する方向を指す。さらに、上記の「ヨー方向」とは、ロボット1の上下を軸(Z軸)として回転する方向を指す。
【0015】
また、サーボモータ35R及び35Lは、ロボット1の右腕5R及び左腕5Lと胴体9とを接続する肩関節に設けられる。このうち、サーボモータ35Rは、ロボット1の右腕5Rをロボット1の前後方向に回転させ、また、サーボモータ35Lは、ロボット1の左腕5Lをロボット1の前後方向に回転させる。さらに、サーボモータ37R及び37Lは、ロボット1の右脚7R及び左脚7Lと胴体9とを接続する股関節に設けられる。このうち、サーボモータ37Rは、ロボット1の右脚7Rをロボット1の前後方向に回転させ、また、サーボモータ37Lは、ロボット1の左脚7Lをロボット1の前後方向に回転させる。
【0016】
このように、ロボット1の関節にサーボモータ30を採用した場合には、サーボモータ30を末梢部側ではなく、体幹部側に配置することができるので、配線を胴体9の内部に収めることができる。なお、ロボット1は、図1に示した機能部以外にも既知のロボットが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどを始め、ロボット1周辺の映像を撮影するカメラなどを有するものとする。
【0017】
続いて、本実施例に係るロボットが有する制御部の機能的構成について説明する。図2は、実施例1に係るロボットが有する制御部の機能的構成を示すブロック図である。図2に示すように、制御部10は、ロボット1の全体制御を司る処理部であり、採取部11と、算出部12と、姿勢推定部13と、拘束状況推定部14と、判別部15と、実行部16とを有する。
【0018】
なお、制御部10には、各種の集積回路や電子回路を採用できる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
【0019】
採取部11は、各サーボモータ30の電流値を採取する。一態様としては、採取部11は、各サーボモータ30によって頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lの回転角を保持する動力(トルク)に変換された電力の電流値をモータ制御部39を介して採取する。このように採取部11によって採取された電流値は、後述の算出部12へ出力される。
【0020】
算出部12は、採取部11によってサーボモータ30ごとに採取された電流値Iから、各サーボモータ30の回転角を保持するのに掛かる保持トルクTを算出する。
【0021】
図3A及び図3Bは、保持トルクを説明するための図である。これら図3A及び図3Bの例では、ロボット1の左腕5Lに掛かるトルクが図示されている。このうち、図3Aの例では、サーボモータ35Lの回転軸および左腕5Lの重心GLを結ぶ方向が鉛直方向と略同一である場合を示す。また、図3Bの例では、サーボモータ35Lの回転軸および左腕5Lの重心GLを結ぶ方向が鉛直方向と異なる場合を示す。
【0022】
図3Aに示すように、サーボモータ35Lの回転軸および左腕5Lの重心GLを結ぶ方向が鉛直方向と略同一である場合には、サーボモータ35Lの回転軸周りにモーメントは発生しない。この場合には、サーボモータ30の回転角を保持するのに掛かる保持トルクTはほぼゼロとなる。一方、図3Bに示すように、サーボモータ35Lの回転軸および左腕5Lの重心GLを結ぶ方向が鉛直方向と異なる場合には、サーボモータ35Lの回転軸周りにモーメントが発生する。なお、図3A及び図3Bの例では、左腕5Lが外部の要因、例えば人、床や壁によって支持されていない場合を例示したが、外部の要因によって支持されている場合にもサーボモータ35Lに保持トルクは発生しない。
【0023】
例えば、左腕5Lの質量を「m」とし、重力加速度を「g」とし、サーボモータ35Lから左腕5Lの重心GLまでの長さを「x」とし、サーボモータ30の回転軸および部位の重心GLを結ぶ方向が鉛直方向となす傾斜角を「α」とする。このとき、保持トルクTは、mg×x×sinαとなる。なお、上記の「傾斜角」は、ロボット1が仰向けである場合には「正」の値を取り、ロボット1が俯せである場合には「負」の値を取るものとする。
【0024】
一態様としては、算出部12は、サーボモータ30の電流値Iにトルク定数Cを乗算することによって各サーボモータ30に掛かる保持トルクTを算出する。なお、上記の「トルク定数」は、サーボモータ30の電流値とその電流値がサーボモータ30に供給された場合に発生するトルクの関係を定義する定数(Nm/I)である。
【0025】
図4は、保持トルクおよび傾斜角の算出方法を説明するための図である。図4に示すように、算出部12は、サーボモータ33Pの電流値I33P「12」にトルク定数C33P「1.3」を乗算することによって保持トルクT33Pを「15.6=12*1.3」と算出する。同様にして、算出部12は、サーボモータ33Rの保持トルクT33Rを「11.7」、サーボモータ33Yの保持トルクT33Lを「13.0」と算出する。また、同様にして、算出部12は、サーボモータ35Rの保持トルクT35Lを「48.1」、サーボモータ35Lの保持トルクT35Lを「48.6」と算出する。さらに、同様にして、算出部12は、サーボモータ37Rの保持トルクT35Rを「3.9」、サーボモータ37Lの保持トルクT37Lを「3.9」と算出する。
【0026】
姿勢推定部13は、ロボット1の姿勢を推定する。一態様としては、姿勢推定部13は、算出部12によって算出された保持トルクTの他、サーボモータ30によって胴体9と接続される部位の質量m、重力加速度gや回転軸から部位の重心までの長さxを用いて、傾斜角αを推定する。
【0027】
すなわち、姿勢推定部13は、保持トルクT、部位の質量m、重力加速度gおよび回転軸から部位の重心までの長さxを傾斜角の算出式「sin−1(Ti/migxi)」に代入することによって傾斜角αiを推定する。図4の例で言えば、姿勢推定部13は、サーボモータ33P、33R、33Y、35R、35L、37R及び37Lの傾斜角α33P、α33R、α33Y、α35R、α35L、α37R及びα37Lを「3.04」、「1.71」、「1.52」、「79.04」、「72.80」、「1.14」、「1.14」と推定する。
【0028】
その上で、姿勢推定部13は、各サーボモータ30の傾斜角αの組合せから、ロボット1の姿勢を推定する。一例としては、姿勢推定部13は、傾斜角α35R及びα35Lの絶対値がともに所定の閾値、例えば45度以上であるか否かを推定する。このとき、姿勢推定部13は、傾斜角α35R及びα35Lの絶対値がともに所定の閾値以上である場合に、傾斜角α35R及びα35Lがともに正の値であるか否かをさらに推定する。そして、姿勢推定部13は、傾斜角α35R及びα35Lがともに正の値である場合には、ロボット1の姿勢が「仰向け」であると推定する。また、姿勢推定部13は、傾斜角α35R及びα35Lがともに正の値でない場合には、傾斜角α35R及びα35Lがともに負の値であるか否かをさらに推定する。このとき、姿勢推定部13は、傾斜角α35R及びα35Lがともに負の値である場合には、ロボット1の姿勢が「俯せ」であると推定する。また、姿勢推定部13は、傾斜角α35R及びα35Lの絶対値のうちいずれかが所定の閾値未満であるか、あるいは傾斜角α35R及びα35Lがともに正の値または負の値でない場合には、ロボット1の姿勢が「立位」または「横臥」であると推定する。
【0029】
拘束状況推定部14は、ロボット1の部位に対する拘束状況を推定する。一態様として、拘束状況推定部14は、姿勢推定部13により推定されたロボット1の姿勢が「仰向け」又は「俯せ」である場合に、首関節のピッチ方向のうちいずれかの方向、すなわち上方向又は下方向からロボット1の頭3が拘束を受けているか否かを推定する。
【0030】
ここで、ロボット1が水平面に仰向けまたは俯せの姿勢で置かれている場合には、サーボモータ33Pが拘束されないので、傾斜角α33Pは0度よりも90度または−90度の方に近づくと推定できる。一方、ロボット1の頭3が支えられて仰向けまたは俯せに抱っこされている場合には、傾斜角α33Pは90度または−90度よりも0度の方に近づくと推定できる。
【0031】
これらのことから、拘束状況推定部14は、傾斜角α33Pが所定の範囲内、例えば0度から±30度以内であるか否かを推定する。このとき、傾斜角α33Pが0度から所定の範囲内である場合には、首関節のピッチ方向からロボット1の頭3が拘束を受けていると推定する。一方、傾斜角α33Pが0度から所定の範囲内でない場合には、ロボット1の頭3が首関節のピッチ方向からの拘束を受けていないと推定する。
【0032】
他の一態様としては、拘束状況推定部14は、姿勢推定部13によってロボット1の姿勢が「立位」または「横臥」であると推定された場合に、首関節のロール方向が可動状態となったか否かを推定する。
【0033】
ここで、ロボット1が水平面に横臥の姿勢で置かれている場合には、重力加速度の影響力が高まるに伴ってサーボモータ33Rの回転軸周りに働く首関節のロール方向のモーメントが仰向け、俯せおよび立位のいずれの姿勢よりも大きくなる。言い換えれば、首関節のロール方向のモーメントの均衡が崩れた場合には、横臥の姿勢である可能性が高く、サーボモータ33Rが可動状態である可能性が高いと推定できる。
【0034】
このことから、拘束状況推定部14は、傾斜角α33Rの絶対値が所定の閾値、例えば45度以上であるか否かを推定する。このとき、拘束状況推定部14は、傾斜角α33Rが所定の閾値以上である場合には、首関節のロール方向が可動状態になったと推定する。一方、拘束状況推定部14は、傾斜角α33Rが所定の閾値未満である場合には、首関節のロール方向のモーメントの均衡が崩れておらず、首関節のロール方向のいずれの方向についても可動状態ではないと推定する。
【0035】
なお、ここでは、拘束状況推定部14が傾斜角を用いてロボット1の部位に対する拘束状況を推定する場合を例示したが、開示の装置はこれに限定されず、算出部12により算出された保持トルクを用いてロボット1の部位に対する拘束状況を推定することもできる。
【0036】
判別部15は、姿勢推定部13によって推定されたロボット1の姿勢と、拘束状況推定部14によって推定されたロボット1の部位に対する拘束状況とに基づいて、ロボット1が保持されている保持状況を判別する。
【0037】
一態様としては、判別部15は、姿勢推定部13によって推定されたロボット1の姿勢が「仰向け」である場合に、拘束状況推定部14によってロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けていると推定されたか否かを判定する。このとき、ロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けている場合には、ロボット1の後頭部が支えられていると推定できる。よって、判別部15は、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」であると判別する。一方、ロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けていない場合には、ロボット1の後頭部が支えられていないと推定できる。この場合には、判別部15は、ロボット1の保持状況が「水平面に仰向けに置かれている状況」であると判別する。
【0038】
他の一態様としては、判別部15は、姿勢推定部13によって推定されたロボット1の姿勢が「俯せ」である場合に、拘束状況推定部14によってロボット1の頭3が首関節のピッチ方向のうち下方向から拘束を受けていると推定されたか否かを判定する。このとき、ロボット1の頭3が首関節のピッチ方向のうち下方向から拘束を受けている場合には、ロボット1の顔が支えられていると推定できる。よって、判別部15は、ロボット1の保持状況が「顔を支えられて俯せに抱っこされている状況」であると判別する。一方、ロボット1の頭3が首関節のピッチ方向のうち下方向から拘束を受けていない場合には、ロボット1の顔が支えられていないと推定できる。この場合には、判別部15は、ロボット1の保持状況が「水平面に俯せに置かれている状況」であると判別する。
【0039】
更なる一態様としては、判別部15は、姿勢推定部13によって推定されたロボット1の姿勢が「立位」または「横臥」である場合に、拘束状況推定部14によって首関節のロール方向が可動状態になったことが推定されたか否かを判定する。このとき、首関節のロール方向が可動状態になった場合には、ロボット1の頭3に掛かる首関節のロール方向のモーメントが釣り合っていないと推定できる。よって、判別部15は、ロボット1の保持状況が「横臥」であると判別する。一方、首関節のロール方向が可動状態ではない場合には、ロボット1の頭3に掛かる首関節のロール方向のモーメントが均衡していると推定できる。この場合には、判別部15は、ロボット1の保持状況が「立位」であると判別する。
【0040】
図5は、保持状況の判別方法を説明するための図である。図5の例では、(イ)〜(ニ)の4つの保持状況それぞれで各サーボモータ30ごとに算出された傾斜角が図示されている。図5に示す保持状況(イ)の例では、傾斜角α35R及びα35Lの絶対値がともに閾値「45度」以上であり、かつ両方ともが「正」の値を取るので、姿勢推定部13によってロボット1の姿勢が「仰向け」であると推定される。さらに、保持状況(イ)の例では、傾斜角α33Pが所定の範囲「0度から±30度」以内であるので、拘束状況推定部14によって首関節のピッチ方向からロボット1の頭3が拘束を受けていると推定される。このように、保持状況(イ)の例では、ロボット1の姿勢が「仰向け」であり、かつロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けている。したがって、判別部15によって保持状況(イ)が「頭を支えられて仰向けに抱っこされている状況」であると判別される。
【0041】
図5に示す保持状況(ロ)の例では、保持状況(イ)の場合と同様に、傾斜角α35R及びα35Lの絶対値がともに閾値「45度」以上であり、かつ両方ともが「正」の値を取るので、姿勢推定部13によってロボット1の姿勢が「仰向け」であると推定される。ここで、保持状況(ロ)の例では、傾斜角α33Pが所定の範囲「0度から±30度」以内にないので、拘束状況推定部14によって首関節のピッチ方向からロボット1の頭3が拘束を受けていないと推定される。このように、保持状況(ロ)の例では、ロボット1の姿勢が「仰向け」であり、かつロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けていない。それゆえ、判別部15によって保持状況(ロ)が「水平面に仰向けに置かれている状況」であると判別される。
【0042】
図5に示す保持状況(ハ)の例では、傾斜角α35R及びα35Lの絶対値がともに閾値「45度」以上であり、かつ両方ともが「負」の値を取るので、姿勢推定部13によってロボット1の姿勢が「俯せ」であると推定される。さらに、保持状況(ハ)の例では、傾斜角α33Pが所定の範囲「0度から±30度」以内であるので、拘束状況推定部14によって首関節のピッチ方向からロボット1の頭3が拘束を受けていると推定される。このように、保持状況(ハ)の例では、ロボット1の姿勢が「俯せ」であり、かつロボット1の頭3が首関節のピッチ方向のうち下方向から拘束を受けている。したがって、判別部15によって保持状況(ロ)が「顔を支えられて俯せに抱っこされている状況」であると判別される。
【0043】
図5に示す保持状況(ニ)の例では、傾斜角α35R及びα35Lの絶対値が閾値「45度」未満であるので、姿勢推定部13によってロボット1の姿勢が「立位」または「横臥」であると推定される。このとき、傾斜角α33Rの絶対値が所定の閾値「45度」以上であるので、拘束状況推定部14によって首関節のロール方向が可動状態になったと推定される。このように、保持状況(ニ)の例では、ロボット1の姿勢が「立位」または「横臥」であり、かつ首関節のロール方向が可動状態になっている。それゆえ、判別部15によって保持状況(ニ)が「横臥」であると判別される。
【0044】
図2の説明に戻り、実行部16は、インタラクションの実行条件を満たす場合に、人とのインタラクションを実行する。一態様としては、実行部16は、実行部16は、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」または「顔を支えられて俯せに抱っこされている状況」であるかを判定する。このとき、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」または「顔を支えられて俯せに抱っこされている状況」である場合には、インタラクションを実行する。
【0045】
図6A及び図6Bは、インタラクションの一例を示す図である。例えば、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」である場合には、実行部16は、図6Aに示すように、「大好き」などのメッセージを図示しない音声出力部を介して出力する。また、ロボットの保持状況が「顔を支えられて俯せに抱っこされている状況」である場合には、実行部16は、次のような処理を実行する。すなわち、実行部16は、図6Bに示すように、「苦しい〜」などのメッセージを図示しない音声出力部を介して出力する。さらに、実行部16は、図6Bに示すように、各サーボモータ30の回転角を増減させる処理をモータ制御部39を介して連続して実行することにより、ロボット1の頭3、右腕5R、左腕5L、右脚7R及び左脚7Lをバタバタさせる。
【0046】
また、実行部16は、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」および「顔を支えられて俯せに抱っこされている状況」ではない場合には、ロボット1が覚醒モードであるか否かを判定する。このとき、実行部16は、ロボット1が覚醒モードである場合には、インタラクションを実行する。例えば、ロボットの保持状況が「水平面に仰向けに置かれている状況」または「横臥」である場合には、「起こして」などのメッセージを図示しない音声出力部を介して出力する。また、実行部16は、ロボット1が睡眠モードである場合には、ロボット1の保持状況が抱っこされている状況になったり、所定時間が経過して覚醒モードに遷移するまで、寝息やいびきの音声を図示しない音声出力部を介して出力する。
【0047】
[処理の流れ]
次に、本実施例に係るロボットの処理の流れについて説明する。図7は、実施例1に係るインタラクション実行処理の手順を示すフローチャートである。このインタラクション実行処理は、ロボット1の電源がON状態である限り、繰り返し実行される。
【0048】
図7に示すように、まず、採取部11は、各サーボモータ30によって頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lの回転角を保持する動力(トルク)に変換された電力の電流値をモータ制御部39を介して採取する(ステップS101)。
【0049】
続いて、算出部12は、サーボモータ30の電流値Iiにトルク定数Ciを乗算することによって各サーボモータ30に掛かる保持トルクTiを算出する(ステップS102)。そして、姿勢推定部13は、保持トルクTi、部位の質量mi、重力加速度gおよび回転軸から部位の重心までの長さxiを傾斜角の算出式「sin−1(Ti/migxi)」に代入して傾斜角αiを推定した上でロボット1の姿勢を推定する(ステップS103)。
【0050】
その後、拘束状況推定部14は、姿勢推定部13によって推定されたロボット1の姿勢と所定の部位の傾斜角αiとを用いて、ロボット1の部位のうち特定の部位に対する拘束状況を推定する(ステップS104)。
【0051】
続いて、判別部15は、姿勢推定部13によって推定されたロボット1の姿勢と、拘束状況推定部14によって推定されたロボット1の部位に対する拘束状況とに基づいて、ロボット1が保持されている保持状況を判別する(ステップS105)。
【0052】
このとき、保持状況がインタラクションの実行条件を満たす場合(ステップS106肯定)には、実行部16は、次のような処理を実行する。すなわち、実行部16は、図示しない音声出力部やモータ制御部39を介して、ロボット1の感情を表現するインタラクションを実行し(ステップS107)、ステップS101〜ステップS106までの処理を繰り返し実行する。
【0053】
また、保持状況がインタラクションの実行条件を満たさない場合(ステップS106否定)には、ステップS107の処理を実行せず、そのままステップS101〜ステップS106までの処理を実行する。
【0054】
[実施例1の効果]
上述してきたように、本実施例に係るロボット1は、人とインタラクションを行うロボット1が各関節にサーボモータ30を有し、各サーボモータ30のトルクからロボット1の部位に対する拘束状況を推定する。したがって、本実施例に係るロボット1によれば、各種のセンサを用いずにロボット1が保持されている保持状況を認識できる。さらに、本実施例に係るロボット1では、接触センサやケーブルの数を低減できるので、ロボット1を小型化できる。
【0055】
加えて、本実施例に係るロボット1では、ロボット1の関節にサーボモータ30を採用するので、サーボモータ30を末梢部側ではなく、体幹部側に配置することができる。このため、また、本実施例に係るロボット1では、配線を胴体9の内部に収めることができるので、断線等の障害を防止できる。さらに、本実施例に係るロボット1では、配線も簡易化できるので、修復作業およびメンテナンス作業も簡易に行うこともできる。
【0056】
また、本実施例に係るロボット1は、サーボモータ30ごとに採取された電流値から、各サーボモータ30の回転角を保持するのに掛かる保持トルクを算出する。その上で、本実施例に係るロボット1は、各サーボモータ30の保持トルクから、ロボット1の部位に対する拘束状況を推定する。このため、本実施例に係るロボット1では、サーボモータ30が有する既存の機能を用いるので、ロボット1の部位に対する拘束状況を推定するために新たなハードウェアを追加するのを不要化できる。
【0057】
さらに、本実施例に係るロボット1は、サーボモータ30ごとに算出された保持トルクから当該部位が所定の基準方向、例えば鉛直方向から傾斜している傾斜角αiを各部位ごとに算出した上で各部位の傾斜角αiの組合せからロボット1の姿勢を推定する。そして、本実施例に係るロボット1は、ロボット1の部位に対する拘束状況およびロボット1の姿勢に基づいてロボット1が保持されている保持状況を判別する。このため、本実施例に係るロボット1では、加速度センサ等のセンサ類を用いることなく、各関節にサーボモータ30を用いるだけでロボット1の姿勢を推定することができる。さらに、本実施例に係るロボット1では、特定の部位に1つ設けられた加速度センサ等よりもロボット1の姿勢を大局的に推定できる。したがって、本実施例に係るロボット1では、ロボット1の保持状況を精度よく判別することができる。
【0058】
また、本実施例に係るロボット1は、ロボット1の保持状況に応じて情報を出力する制御、及び/又は、サーボモータ30を駆動して部位を動作させる制御を実行する。例えば、ロボット1が抱きかかえられている場合には、「大好き」等の喜びを表すメッセージを音声出力できる。また、ロボット1が抱きかかえられている場合であっても仰向けに抱きかかえられている場合には、「苦しい」等の苦しみを表すメッセージを音声出力したり、各サーボモータ30を駆動して頭や手足などの部位をばたつかせたりできる。このように、本実施例に係るロボット1によれば、ロボット1の保持状況に適合したインタラクションを実行できる。
【実施例2】
【0059】
さて、上記の実施例1では、サーボモータ30の回転角を保持する場合に掛かる保持トルクからロボット1の部位に対する拘束状況を検知する場合を例示したが、開示の装置はこれに限定されず、他の方法によって拘束状況を検知することもできる。そこで、実施例2では、サーボモータ30の回転角を増減させた場合に掛かるトルクの負荷から拘束状況を検知する場合について説明する。なお、以下では、上記の実施例1で説明したロボット1と本実施例に係るロボットとを区別するために、本実施例に係るロボットを「ロボット2」と記載する場合がある。
【0060】
図8は、実施例2に係るロボットが有する制御部の機能的構成を示すブロック図である。図8に示すように、本実施例に係るロボット2は、図2に示した制御部10に比べて、制御部20が回転角指令部21、検知部23および検出部24を新たに有する点が相違する。さらに、本実施例に係るロボット2は、上記の実施例1にロボット1に比べて、採取部22及び判別部25の機能の一部が図2に示した採取部11及び判別部15と異なる点が相違する。なお、本実施例では、上記の実施例1と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略する。
【0061】
このうち、回転角指令部21は、各サーボモータ30の回転角の増減を指令する。一態様としては、回転角指令部21は、各サーボモータ30によって指令前に計測されている回転角を基準に±θi、例えば「10度」増減させる指令をモータ制御部39を介して各サーボモータ30へ送信する。なお、回転角を増減させる範囲は、上記の例に限らず、任意の範囲を設定することができる。
【0062】
採取部22は、回転角指令部21によってサーボモータ30の回転角の増減が指令されている期間のサーボモータ30のトルクの負荷を採取する。一態様としては、採取部22は、サーボモータ30の回転角の増減によって掛かるトルクの負荷の一例として、回転角の変化を採取する。この場合には、採取部22は、サーボモータ30の回転角の増減が指令されている期間にサーボモータ30から実際に採取した回転角のうち、最小値および最大値を抽出する。その上で、採取部22は、回転角の最小値および最大値から、サーボモータ30によって増減の基準とした回転角を減算することによって回転角増減値ΔθLi〜ΔθHiを採取する。
【0063】
他の一態様としては、採取部22は、サーボモータ30の回転角の増減によって掛かるトルクの負荷の一例として、電流値の変化を採取する。この場合には、採取部22は、サーボモータ30の回転角の増減が指令されている期間にサーボモータ30から採取した電流値のうち、最小値および最大値を抽出する。その上で、採取部22は、電流値の最小値および最大値から、サーボモータ30によって増減の基準とした回転角が計測されている時にともに計測された電流値を減算することによって電流増減値ΔIiを採取する。
【0064】
検知部23は、採取部22によってサーボモータ30ごとに採取されたトルクの負荷から、ロボット2の部位に対する拘束状況を検知する。一態様としては、検知部23は、各サーボモータ30ごとに採取された回転角増減値ΔθLi〜ΔθHiのうち、回転角増減値ΔθLi及びΔθHiの絶対値が増減指令値θiに満たないサーボモータ30によって接続される部位が拘束を受けていると検知する。すなわち、回転角増減値ΔθLi及びΔθHiの絶対値が増減指令値θiに満たない場合には、人等によって外力が原因となってサーボモータ30のトルクの負荷が大きくなっているので、その部位が拘束を受けているとみなすことができる。なお、ここでは、回転角増減値ΔθLi〜ΔθHiを用いて拘束状況を検知する場合を例示したが、電流増減値ΔIiを用いて拘束状況を検知することとしてもかまわない。この場合には、電流増減値ΔIiが所定の閾値以上であるか否かを判定すればよい。このとき、電流増減値ΔIiが所定の閾値以上である場合には、回転角増減値ΔθLi及びΔθHiの場合と同様に、人等によって外力が原因となってサーボモータ30のトルクの負荷が大きくなっているので、その部位が拘束を受けているとみなすことができる。
【0065】
検出部24は、図2に示した姿勢推定部13と同様に、ロボット2の姿勢を検出する。かかる検出部24は、図2に示した姿勢推定部13が保持トルクから傾斜角を推定してロボット1の姿勢を推定するのに対し、ロボット2に設けられた加速度センサ50から3軸の加速度を取得することによってロボット2の姿勢を検出する点が異なる。
【0066】
判別部25は、検出部24によって検出されたロボット2の姿勢と、検知部23によって検知されたロボット2の部位に対する拘束状況とに基づいて、ロボット2の保持状況を判別する。
【0067】
ここで、図9A及び図9Bを用いて保持状況の判別方法について説明する。図9Aは、サーボモータに掛かるトルクの負荷の一例を示す図である。図9Bは、ロボットの姿勢の一例を示す図である。図9Aの例では、(ホ)〜(チ)の4つの保持状況それぞれで各サーボモータ30ごとに採取された回転角増減値ΔθLi〜ΔθHiが図示されている。また、図9Bの例では、図9Aに示した(ホ)〜(チ)の4つの保持状況それぞれに対応する加速度センサ50の計測値が図示されている。
【0068】
図9Aに示す保持状況(ホ)の例では、サーボモータ33Pの回転角増減値ΔθH33P「5」の絶対値が増減指令値θ33p「10」に満たないので、検知部23によってロボット2の頭3が首関節のピッチ方向のうち上方向から拘束を受けていると検知される。また、サーボモータ35Rの回転角増減値ΔθL35R「-7」の絶対値が増減指令値θ35R「10」に満たないので、検知部23によってロボット2の右腕5Rが拘束を受けていると検知される。さらに、図9Bに示す保持状況(ホ)の例では、X軸、Y軸及びZ軸の加速度から検出部24によってロボット2の姿勢が「仰向け」であると検出される。このように、保持状況(ホ)の例では、ロボット2の姿勢が「仰向け」であり、かつロボット2の頭3が首関節のピッチ方向のうち上方向から拘束を受けている。加えて、保持状況(ホ)の例では、ロボット2の右腕5Rが拘束を受けていることもわかる。したがって、判別部25によって保持状況(ホ)が「頭を支えられた上でロボット2の右手を手前側にして仰向けに抱っこされている状況」であると判別される。
【0069】
図9Aに示す保持状況(ヘ)の例では、各サーボモータ30の回転角増減値ΔθL33P〜ΔθH33Pの絶対値がいずれも増減指令値θ33p「10」と同じであるので、検知部23によってロボット2の部位はいずれも拘束を受けていないと検知される。また、図9Bに示す保持状況(ヘ)の例では、X軸、Y軸及びZ軸の加速度から検出部24によってロボット2の姿勢が「仰向け」であると検出される。それゆえ、判別部25によって保持状況(ヘ)が「水平面に仰向けに置かれている状況」であると判別される。
【0070】
図9Aに示す保持状況(ト)の例では、サーボモータ33Pの回転角増減値ΔθL33P「-4」の絶対値が増減指令値θ33p「10」に満たないので、検知部23によってロボット2の頭3が首関節のピッチ方向のうち下方向から拘束を受けていると検知される。また、サーボモータ35Lの回転角増減値ΔθH35L「3」の絶対値が増減指令値θ35L「10」に満たないので、検知部23によってロボット2の左腕5Lが拘束を受けていると検知される。さらに、図9Bに示す保持状況(ト)の例では、X軸、Y軸及びZ軸の加速度から検出部24によってロボット2の姿勢が「俯せ」であると検出される。このように、保持状況(ト)の例では、ロボット2の姿勢が「俯せ」であり、かつロボット2の頭3が首関節のピッチ方向のうち下方向から拘束を受けている。加えて、保持状況(ト)の例では、ロボット2の左腕5Lが拘束を受けていることもわかる。したがって、判別部25によって保持状況(ト)が「顔を支えられた上でロボット2の左手を手前側にして俯せに抱っこされている状況」であると判別される。
【0071】
図9Aに示す保持状況(チ)の例では、各サーボモータ30の回転角増減値ΔθL33P〜ΔθH33Pの絶対値がいずれも増減指令値θ33p「10」と同じであるので、検知部23によってロボット2の部位はいずれも拘束を受けていないと検知される。また、図9Bに示す保持状況(チ)の例では、X軸、Y軸及びZ軸の加速度から検出部24によってロボット2の姿勢が「横臥」であると検出される。それゆえ、判別部15によって保持状況(チ)が「横臥」であると判別される。
【0072】
[処理の流れ]
次に、本実施例に係るロボットの処理の流れについて説明する。図10は、実施例2に係るインタラクション実行処理の手順を示すフローチャートである。このインタラクション実行処理は、ロボット2の電源がON状態である限り、繰り返し実行される。
【0073】
図10に示すように、回転角指令部21は、各サーボモータ30によって指令前に計測されている回転角を基準に±θ増減させる指令をモータ制御部39を介して各サーボモータ30へ送信する(ステップS201)。
【0074】
続いて、採取部22は、回転角指令部21によってサーボモータ30の回転角の増減が指令されている期間のサーボモータ30のトルクの負荷を採取する(ステップS202)。そして、検知部23は、採取部22によってサーボモータ30ごとに採取されたトルクの負荷から、ロボット2の部位に対する拘束状況を検知する(ステップS203)。
【0075】
その後、検出部24は、ロボット2に設けられた加速度センサ50から3軸の加速度を取得することによってロボット2の姿勢を検出する(ステップS204)。続いて、判別部25は、検出部24によって検出されたロボット2の姿勢と、検知部23によって検知されたロボット2の部位に対する拘束状況とに基づいて、ロボット2の保持状況を判別する(ステップS205)。
【0076】
このとき、保持状況がインタラクションの実行条件を満たす場合(ステップS206肯定)には、実行部16は、次のような処理を実行する。すなわち、実行部16は、図示しない音声出力部やモータ制御部39を介して、ロボット2の感情を表現するインタラクションを実行し(ステップS207)、ステップS201〜ステップS206までの処理を繰り返し実行する。
【0077】
また、保持状況がインタラクションの実行条件を満たさない場合(ステップS206否定)には、ステップS207の処理を実行せず、そのままステップS201〜ステップS206までの処理を実行する。
【0078】
[実施例2の効果]
上述してきたように、本実施例に係るロボット2は、上記の実施例1と同様に、人とインタラクションを行うロボット1が各関節にサーボモータ30を有し、各サーボモータ30のトルクからロボット1の部位に対する拘束状況を検知する。したがって、本実施例に係るロボット2によれば、上記の実施例1と同様に、各種のセンサを用いずにロボット2が保持されている保持状況を認識できる。さらに、本実施例に係るロボット2では、接触センサやケーブルの数を低減できるので、ロボット2を小型化できる。
【0079】
加えて、本実施例に係るロボット2では、上記の実施例1と同様に、ロボット2の関節にサーボモータ30を採用するので、サーボモータ30を末梢部側ではなく、体幹部側に配置することができる。このため、また、本実施例に係るロボット2では、上記の実施例1と同様に、配線を胴体9の内部に収めることができるので、断線等の障害を防止できる。さらに、本実施例に係るロボット2では、上記の実施例1と同様に、配線も簡易化できるので、修復作業およびメンテナンス作業も簡易に行うこともできる。
【0080】
また、本実施例に係るロボット2は、各サーボモータ30の回転角の増減を指令した上で、サーボモータ30の回転角の増減が指令されている期間のサーボモータ30のトルクの負荷を採取する。そして、本実施例に係るロボット2は、サーボモータ30ごとに採取したトルクの負荷から、ロボット2の部位に対する拘束状況を検知する。このため、本実施例に係るロボット2では、ロボット2の部位を実際に駆動させることによってトルクの負荷を採取するので、ロボット2の部位に対する拘束状況をより正確に検知できる。
【0081】
さらに、本実施例に係るロボット2は、サーボモータ30ごとに採取されたトルクの負荷のうち、ロボット2の首のピッチ方向および腕の一方のトルクの負荷が所定の閾値以上であるか否かを検知する。そして、本実施例に係るロボット2は、ロボット2の首のピッチ方向および腕の一方のトルクの負荷が閾値以上である場合に、ロボット2が抱きかかえられていると判別する。一方、本実施例に係るロボット2は、ロボット2の首のピッチ方向および腕の一方のトルクの負荷が閾値未満である場合に面に載置されていると判別する。このため、本実施例に係るロボット2では、ロボット2が拘束を受けている部位の組合せによって人等から拘束されているのか、あるいは放置されているのかを判別でき、サーボモータ30だけでロボット2の保持状況を精度よく判別できる。
【0082】
また、本実施例に係るロボット2は、ロボット2の保持状況に応じて情報を出力する制御、及び/又は、サーボモータ30を駆動して部位を動作させる制御を実行する。例えば、ロボット2が抱きかかえられている場合には、「大好き」等の喜びを表すメッセージを音声出力できる。また、ロボット2が抱きかかえられている場合であっても仰向けに抱きかかえられている場合には、「苦しい」等の苦しみを表すメッセージを音声出力したり、各サーボモータ30を駆動して頭や手足などの部位をばたつかせたりできる。このように、本実施例に係るロボット2によれば、上記の実施例1と同様に、ロボット2の保持状況に適合したインタラクションを実行できる。
【実施例3】
【0083】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0084】
[適用例]
上記の実施例1では、ロボット1の姿勢を保持トルクから検出する場合を例示したが、必ずしも保持トルクから検出する必要はなく、上記の実施例2と同様に、加速度センサを用いてロボット1の姿勢を検出することとしてもかまわない。
【0085】
[適用範囲]
また、上記の実施例2では、ロボット2の姿勢をサーボモータ30のトルクの負荷から検出する場合を例示したが、必ずしも加速度センサを用いる必要はなく、上記の実施例1と同様に、ロボット1の姿勢を保持トルクから検出することとしてもかまわない。
【0086】
[応用範囲]
また、上記の実施例1では、ロボット1の姿勢を推定してからロボット1の部位に対する拘束状況を推定する場合を説明したが、必ずしもロボット1の姿勢の後に拘束状況を推定する必要はない。例えば、開示の装置は、ロボット1の姿勢および拘束状況を並行して推定することもできるし、また、ロボット1の拘束状況を推定してからロボット1の姿勢を推定することもできる。
【0087】
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、採取部11、算出部12、姿勢推定部13、拘束状況推定部14、判別部15又は実行部16をロボット1の外部装置としてネットワーク経由で接続するようにしてもよい。また、回転角指令部21、採取部22、検知部23、検出部24、判別部25又は実行部16をロボット2の外部装置としてネットワーク経由で接続するようにしてもよい。また、採取部11、算出部12、姿勢推定部13、拘束状況推定部14、判別部15又は実行部16を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のロボットの機能を実現するようにしてもよい。さらに、回転角指令部21、採取部22、検知部23、検出部24、判別部25又は実行部16を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のロボットの機能を実現するようにしてもよい。
【0088】
[状況認識プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図11を用いて、上記の実施例と同様の機能を有する状況認識プログラムを実行するコンピュータの一例について説明する。
【0089】
図11は、実施例1及び実施例2に係る状況認識プログラムを実行するコンピュータの一例について説明するための図である。図11に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180と有する。これら110〜180の各部はバス140を介して接続される。
【0090】
HDD170には、図11に示すように、上記の実施例1で示した採取部11、算出部12、姿勢推定部13、拘束状況推定部14、判別部15及び実行部16と同様の機能を発揮する状況認識プログラム170aが予め記憶される。また、状況認識プログラム170aは、回転角指令部21、採取部22、検知部23、検出部24、判別部25及び実行部16と同様の機能を発揮するプログラムであってもよい。この状況認識プログラム170aについては、図2または図8に示した各々の機能部の各構成要素と同様、適宜統合又は分離しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。
【0091】
そして、CPU150が、状況認識プログラム170aをHDD170から読み出してRAM180に展開する。これによって、図11に示すように、状況認識プログラム170aは、状況認識プロセス180aとして機能する。この状況認識プロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、状況認識プロセス180aは、図2に示した採取部11、算出部12、姿勢推定部13、拘束状況推定部14、判別部15及び実行部16にて実行される処理、例えば図7に示す処理を含む。また、状況認識プロセス180aは、図8に示した回転角指令部21、採取部22、検知部23、検出部24、判別部25及び実行部16にて実行される処理、例えば図10に示す処理を含んでもよい。また、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【0092】
なお、上記の状況認識プログラム170aについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【0093】
1 ロボット
3 頭
5R 右腕
5L 左腕
7R 右脚
7L 左脚
9 胴体
10 制御部
11 採取部
12 算出部
13 姿勢推定部
14 拘束状況推定部
15 判別部
16 実行部
33P,33R,33Y,35R,35L,37R,37L サーボモータ
39 モータ制御部
【技術分野】
【0001】
本発明は、ロボット、状況認識方法および状況認識プログラムに関する。
【背景技術】
【0002】
人との間で親和的な対話、すなわち「インタラクション」を行うロボットの一態様として、セラピーロボットやエンターテイメントロボットなどが開発されている。
【0003】
かかる「インタラクション」を実現するためには、ロボットが自身の姿勢や自身の置かれている状況を認識することが求められる。ここで、一例として、ロボットが人によって抱きかかえられたり、持ち上げられたりする状況を認識する場合を想定する。この場合には、人によって接触されうる可能性があるロボットの部位に接触センサを設けることが考えられる。すなわち、ロボットは、各接触センサの出力から人がロボットのどの部位に接触しているかを検知することによって自身が抱きかかえられたり、持ち上げられたりしているかどうかを認識する。そして、ロボットは、自身が抱きかかえられたり、持ち上げられていると認識した場合に、表情や身振り手振りを交えることによって喜怒哀楽のうち「喜」の感情を表現することにより、人とのインタラクションを実現する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−79480号公報
【特許文献2】特開2006−51586号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、各種のセンサなしにロボットが自身の保持されている保持状況を認識することができないという問題がある。例えば、上記の例のように、ロボットが人によって抱きかかえられたり、持ち上げられたりする状況を認識する場合には、頭、胴体、手足の各部位、さらには、各部位の表裏に接触センサを設ける必要がある。それゆえ、ロボットに設ける接触センサの数が多くなり、さらには、接触センサと接触センサと導通させるユニットとの間を結ぶ配線の数が煩雑化してしまう。
【0006】
開示の技術は、上記に鑑みてなされたものであって、各種のセンサを用いずにロボットが保持されている保持状況を認識できるロボット、状況認識方法および状況認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願の開示するロボットは、ロボットであって、前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータを有する。さらに、前記ロボットは、各サーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する検知部を有する。
【発明の効果】
【0008】
本願の開示するロボットの一つの態様によれば、各種のセンサを用いずにロボットが保持されている保持状況を認識できるという効果を奏する。
【図面の簡単な説明】
【0009】
【図1】図1は、実施例1に係るロボットの全体構成を示す機能ブロック図である。
【図2】図2は、実施例1に係るロボットが有する制御部の機能的構成を示すブロック図である。
【図3A】図3Aは、保持トルクを説明するための図である。
【図3B】図3Bは、保持トルクを説明するための図である。
【図4】図4は、保持トルクおよび傾斜角の算出方法を説明するための図である。
【図5】図5は、保持状況の判別方法を説明するための図である。
【図6A】図6Aは、インタラクションの一例を示す図である。
【図6B】図6Bは、インタラクションの一例を示す図である。
【図7】図7は、実施例1に係るインタラクション実行処理の手順を示すフローチャートである。
【図8】図8は、実施例2に係るロボットが有する制御部の機能的構成を示すブロック図である。
【図9A】図9Aは、サーボモータに掛かるトルクの負荷の一例を示す図である。
【図9B】図9Bは、ロボットの姿勢の一例を示す図である。
【図10】図10は、実施例2に係るインタラクション実行処理の手順を示すフローチャートである。
【図11】図11は、実施例1及び実施例2に係る状況認識プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示するロボット、状況認識方法および状況認識プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0011】
[ロボットの全体構成]
まず、本実施例に係るロボットの全体構成について説明する。図1は、実施例1に係るロボットの全体構成を示す機能ブロック図である。図1に示すロボット1は、人の日常生活に溶け込んで親和的な対話、すなわち「インタラクション」を行うものであり、頭3と、右腕5Rと、左腕5Lと、右脚7Rと、左脚7Lと、胴体9とを有する。なお、図1の例では、スキンシップを促し、かつ動物と人間(幼児)の中間的な存在感を演出する観点から、軟らかい毛で覆われた表皮や幼児に近い体型を持つ子ぐまのぬいぐるみの外観が採用される場合を想定する。
【0012】
図1に示すように、ロボット1の胴体9には、頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lがサーボモータ33P、33R、33Y、35R、35L、37R及び37Lを介して接続される。ここで、以下では、サーボモータ33P、33R、33Y、35R、35L、37R及び37Lを区別なく総称する場合には「サーボモータ30」と総称する場合がある。また、サーボモータ30は、頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lを駆動させるモータの動力制御やモータに流れる電流値のモニタリングなどの各種の統括制御を行うモータ制御部39と接続される。さらに、モータ制御部39は、ロボット1の全体制御を司る制御部10と接続される。
【0013】
サーボモータ30は、ロボット1の胴体9と、頭3、右腕5R、左腕5L、右脚7Rまたは左脚7Lとを接続する関節に設けられる1自由度のモータである。一態様としては、サーボモータ30は、モータ制御部39からの指示にしたがって動力を伝達することにより、頭3、右腕5R、左腕5L、右脚7Rまたは左脚7Lを駆動する。さらに、サーボモータ30は、図示しないエンコーダやポテンショメータを用いて、サーボモータ30から伝達された動力によって駆動する頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lの位置、速度や回転角を計測できる。
【0014】
サーボモータ33P、33R及び33Yは、ロボット1の頭3と胴体9とを接続する首関節に設けられる。このうち、サーボモータ33Pは、ロボット1の頭3をピッチ方向に回転させ、サーボモータ33Rは、ロボット1の頭3をロール方向に回転させ、また、サーボモータ33Yは、ロボット1の頭3をヨー方向に回転させる。なお、上記の「ピッチ方向」とは、ロボット1の左右を軸(X軸)として回転する方向、すなわち上下方向を指す。また、上記の「ロール方向」とは、ロボット1の前後を軸(Y軸)として回転する方向を指す。さらに、上記の「ヨー方向」とは、ロボット1の上下を軸(Z軸)として回転する方向を指す。
【0015】
また、サーボモータ35R及び35Lは、ロボット1の右腕5R及び左腕5Lと胴体9とを接続する肩関節に設けられる。このうち、サーボモータ35Rは、ロボット1の右腕5Rをロボット1の前後方向に回転させ、また、サーボモータ35Lは、ロボット1の左腕5Lをロボット1の前後方向に回転させる。さらに、サーボモータ37R及び37Lは、ロボット1の右脚7R及び左脚7Lと胴体9とを接続する股関節に設けられる。このうち、サーボモータ37Rは、ロボット1の右脚7Rをロボット1の前後方向に回転させ、また、サーボモータ37Lは、ロボット1の左脚7Lをロボット1の前後方向に回転させる。
【0016】
このように、ロボット1の関節にサーボモータ30を採用した場合には、サーボモータ30を末梢部側ではなく、体幹部側に配置することができるので、配線を胴体9の内部に収めることができる。なお、ロボット1は、図1に示した機能部以外にも既知のロボットが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどを始め、ロボット1周辺の映像を撮影するカメラなどを有するものとする。
【0017】
続いて、本実施例に係るロボットが有する制御部の機能的構成について説明する。図2は、実施例1に係るロボットが有する制御部の機能的構成を示すブロック図である。図2に示すように、制御部10は、ロボット1の全体制御を司る処理部であり、採取部11と、算出部12と、姿勢推定部13と、拘束状況推定部14と、判別部15と、実行部16とを有する。
【0018】
なお、制御部10には、各種の集積回路や電子回路を採用できる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
【0019】
採取部11は、各サーボモータ30の電流値を採取する。一態様としては、採取部11は、各サーボモータ30によって頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lの回転角を保持する動力(トルク)に変換された電力の電流値をモータ制御部39を介して採取する。このように採取部11によって採取された電流値は、後述の算出部12へ出力される。
【0020】
算出部12は、採取部11によってサーボモータ30ごとに採取された電流値Iから、各サーボモータ30の回転角を保持するのに掛かる保持トルクTを算出する。
【0021】
図3A及び図3Bは、保持トルクを説明するための図である。これら図3A及び図3Bの例では、ロボット1の左腕5Lに掛かるトルクが図示されている。このうち、図3Aの例では、サーボモータ35Lの回転軸および左腕5Lの重心GLを結ぶ方向が鉛直方向と略同一である場合を示す。また、図3Bの例では、サーボモータ35Lの回転軸および左腕5Lの重心GLを結ぶ方向が鉛直方向と異なる場合を示す。
【0022】
図3Aに示すように、サーボモータ35Lの回転軸および左腕5Lの重心GLを結ぶ方向が鉛直方向と略同一である場合には、サーボモータ35Lの回転軸周りにモーメントは発生しない。この場合には、サーボモータ30の回転角を保持するのに掛かる保持トルクTはほぼゼロとなる。一方、図3Bに示すように、サーボモータ35Lの回転軸および左腕5Lの重心GLを結ぶ方向が鉛直方向と異なる場合には、サーボモータ35Lの回転軸周りにモーメントが発生する。なお、図3A及び図3Bの例では、左腕5Lが外部の要因、例えば人、床や壁によって支持されていない場合を例示したが、外部の要因によって支持されている場合にもサーボモータ35Lに保持トルクは発生しない。
【0023】
例えば、左腕5Lの質量を「m」とし、重力加速度を「g」とし、サーボモータ35Lから左腕5Lの重心GLまでの長さを「x」とし、サーボモータ30の回転軸および部位の重心GLを結ぶ方向が鉛直方向となす傾斜角を「α」とする。このとき、保持トルクTは、mg×x×sinαとなる。なお、上記の「傾斜角」は、ロボット1が仰向けである場合には「正」の値を取り、ロボット1が俯せである場合には「負」の値を取るものとする。
【0024】
一態様としては、算出部12は、サーボモータ30の電流値Iにトルク定数Cを乗算することによって各サーボモータ30に掛かる保持トルクTを算出する。なお、上記の「トルク定数」は、サーボモータ30の電流値とその電流値がサーボモータ30に供給された場合に発生するトルクの関係を定義する定数(Nm/I)である。
【0025】
図4は、保持トルクおよび傾斜角の算出方法を説明するための図である。図4に示すように、算出部12は、サーボモータ33Pの電流値I33P「12」にトルク定数C33P「1.3」を乗算することによって保持トルクT33Pを「15.6=12*1.3」と算出する。同様にして、算出部12は、サーボモータ33Rの保持トルクT33Rを「11.7」、サーボモータ33Yの保持トルクT33Lを「13.0」と算出する。また、同様にして、算出部12は、サーボモータ35Rの保持トルクT35Lを「48.1」、サーボモータ35Lの保持トルクT35Lを「48.6」と算出する。さらに、同様にして、算出部12は、サーボモータ37Rの保持トルクT35Rを「3.9」、サーボモータ37Lの保持トルクT37Lを「3.9」と算出する。
【0026】
姿勢推定部13は、ロボット1の姿勢を推定する。一態様としては、姿勢推定部13は、算出部12によって算出された保持トルクTの他、サーボモータ30によって胴体9と接続される部位の質量m、重力加速度gや回転軸から部位の重心までの長さxを用いて、傾斜角αを推定する。
【0027】
すなわち、姿勢推定部13は、保持トルクT、部位の質量m、重力加速度gおよび回転軸から部位の重心までの長さxを傾斜角の算出式「sin−1(Ti/migxi)」に代入することによって傾斜角αiを推定する。図4の例で言えば、姿勢推定部13は、サーボモータ33P、33R、33Y、35R、35L、37R及び37Lの傾斜角α33P、α33R、α33Y、α35R、α35L、α37R及びα37Lを「3.04」、「1.71」、「1.52」、「79.04」、「72.80」、「1.14」、「1.14」と推定する。
【0028】
その上で、姿勢推定部13は、各サーボモータ30の傾斜角αの組合せから、ロボット1の姿勢を推定する。一例としては、姿勢推定部13は、傾斜角α35R及びα35Lの絶対値がともに所定の閾値、例えば45度以上であるか否かを推定する。このとき、姿勢推定部13は、傾斜角α35R及びα35Lの絶対値がともに所定の閾値以上である場合に、傾斜角α35R及びα35Lがともに正の値であるか否かをさらに推定する。そして、姿勢推定部13は、傾斜角α35R及びα35Lがともに正の値である場合には、ロボット1の姿勢が「仰向け」であると推定する。また、姿勢推定部13は、傾斜角α35R及びα35Lがともに正の値でない場合には、傾斜角α35R及びα35Lがともに負の値であるか否かをさらに推定する。このとき、姿勢推定部13は、傾斜角α35R及びα35Lがともに負の値である場合には、ロボット1の姿勢が「俯せ」であると推定する。また、姿勢推定部13は、傾斜角α35R及びα35Lの絶対値のうちいずれかが所定の閾値未満であるか、あるいは傾斜角α35R及びα35Lがともに正の値または負の値でない場合には、ロボット1の姿勢が「立位」または「横臥」であると推定する。
【0029】
拘束状況推定部14は、ロボット1の部位に対する拘束状況を推定する。一態様として、拘束状況推定部14は、姿勢推定部13により推定されたロボット1の姿勢が「仰向け」又は「俯せ」である場合に、首関節のピッチ方向のうちいずれかの方向、すなわち上方向又は下方向からロボット1の頭3が拘束を受けているか否かを推定する。
【0030】
ここで、ロボット1が水平面に仰向けまたは俯せの姿勢で置かれている場合には、サーボモータ33Pが拘束されないので、傾斜角α33Pは0度よりも90度または−90度の方に近づくと推定できる。一方、ロボット1の頭3が支えられて仰向けまたは俯せに抱っこされている場合には、傾斜角α33Pは90度または−90度よりも0度の方に近づくと推定できる。
【0031】
これらのことから、拘束状況推定部14は、傾斜角α33Pが所定の範囲内、例えば0度から±30度以内であるか否かを推定する。このとき、傾斜角α33Pが0度から所定の範囲内である場合には、首関節のピッチ方向からロボット1の頭3が拘束を受けていると推定する。一方、傾斜角α33Pが0度から所定の範囲内でない場合には、ロボット1の頭3が首関節のピッチ方向からの拘束を受けていないと推定する。
【0032】
他の一態様としては、拘束状況推定部14は、姿勢推定部13によってロボット1の姿勢が「立位」または「横臥」であると推定された場合に、首関節のロール方向が可動状態となったか否かを推定する。
【0033】
ここで、ロボット1が水平面に横臥の姿勢で置かれている場合には、重力加速度の影響力が高まるに伴ってサーボモータ33Rの回転軸周りに働く首関節のロール方向のモーメントが仰向け、俯せおよび立位のいずれの姿勢よりも大きくなる。言い換えれば、首関節のロール方向のモーメントの均衡が崩れた場合には、横臥の姿勢である可能性が高く、サーボモータ33Rが可動状態である可能性が高いと推定できる。
【0034】
このことから、拘束状況推定部14は、傾斜角α33Rの絶対値が所定の閾値、例えば45度以上であるか否かを推定する。このとき、拘束状況推定部14は、傾斜角α33Rが所定の閾値以上である場合には、首関節のロール方向が可動状態になったと推定する。一方、拘束状況推定部14は、傾斜角α33Rが所定の閾値未満である場合には、首関節のロール方向のモーメントの均衡が崩れておらず、首関節のロール方向のいずれの方向についても可動状態ではないと推定する。
【0035】
なお、ここでは、拘束状況推定部14が傾斜角を用いてロボット1の部位に対する拘束状況を推定する場合を例示したが、開示の装置はこれに限定されず、算出部12により算出された保持トルクを用いてロボット1の部位に対する拘束状況を推定することもできる。
【0036】
判別部15は、姿勢推定部13によって推定されたロボット1の姿勢と、拘束状況推定部14によって推定されたロボット1の部位に対する拘束状況とに基づいて、ロボット1が保持されている保持状況を判別する。
【0037】
一態様としては、判別部15は、姿勢推定部13によって推定されたロボット1の姿勢が「仰向け」である場合に、拘束状況推定部14によってロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けていると推定されたか否かを判定する。このとき、ロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けている場合には、ロボット1の後頭部が支えられていると推定できる。よって、判別部15は、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」であると判別する。一方、ロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けていない場合には、ロボット1の後頭部が支えられていないと推定できる。この場合には、判別部15は、ロボット1の保持状況が「水平面に仰向けに置かれている状況」であると判別する。
【0038】
他の一態様としては、判別部15は、姿勢推定部13によって推定されたロボット1の姿勢が「俯せ」である場合に、拘束状況推定部14によってロボット1の頭3が首関節のピッチ方向のうち下方向から拘束を受けていると推定されたか否かを判定する。このとき、ロボット1の頭3が首関節のピッチ方向のうち下方向から拘束を受けている場合には、ロボット1の顔が支えられていると推定できる。よって、判別部15は、ロボット1の保持状況が「顔を支えられて俯せに抱っこされている状況」であると判別する。一方、ロボット1の頭3が首関節のピッチ方向のうち下方向から拘束を受けていない場合には、ロボット1の顔が支えられていないと推定できる。この場合には、判別部15は、ロボット1の保持状況が「水平面に俯せに置かれている状況」であると判別する。
【0039】
更なる一態様としては、判別部15は、姿勢推定部13によって推定されたロボット1の姿勢が「立位」または「横臥」である場合に、拘束状況推定部14によって首関節のロール方向が可動状態になったことが推定されたか否かを判定する。このとき、首関節のロール方向が可動状態になった場合には、ロボット1の頭3に掛かる首関節のロール方向のモーメントが釣り合っていないと推定できる。よって、判別部15は、ロボット1の保持状況が「横臥」であると判別する。一方、首関節のロール方向が可動状態ではない場合には、ロボット1の頭3に掛かる首関節のロール方向のモーメントが均衡していると推定できる。この場合には、判別部15は、ロボット1の保持状況が「立位」であると判別する。
【0040】
図5は、保持状況の判別方法を説明するための図である。図5の例では、(イ)〜(ニ)の4つの保持状況それぞれで各サーボモータ30ごとに算出された傾斜角が図示されている。図5に示す保持状況(イ)の例では、傾斜角α35R及びα35Lの絶対値がともに閾値「45度」以上であり、かつ両方ともが「正」の値を取るので、姿勢推定部13によってロボット1の姿勢が「仰向け」であると推定される。さらに、保持状況(イ)の例では、傾斜角α33Pが所定の範囲「0度から±30度」以内であるので、拘束状況推定部14によって首関節のピッチ方向からロボット1の頭3が拘束を受けていると推定される。このように、保持状況(イ)の例では、ロボット1の姿勢が「仰向け」であり、かつロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けている。したがって、判別部15によって保持状況(イ)が「頭を支えられて仰向けに抱っこされている状況」であると判別される。
【0041】
図5に示す保持状況(ロ)の例では、保持状況(イ)の場合と同様に、傾斜角α35R及びα35Lの絶対値がともに閾値「45度」以上であり、かつ両方ともが「正」の値を取るので、姿勢推定部13によってロボット1の姿勢が「仰向け」であると推定される。ここで、保持状況(ロ)の例では、傾斜角α33Pが所定の範囲「0度から±30度」以内にないので、拘束状況推定部14によって首関節のピッチ方向からロボット1の頭3が拘束を受けていないと推定される。このように、保持状況(ロ)の例では、ロボット1の姿勢が「仰向け」であり、かつロボット1の頭3が首関節のピッチ方向のうち上方向から拘束を受けていない。それゆえ、判別部15によって保持状況(ロ)が「水平面に仰向けに置かれている状況」であると判別される。
【0042】
図5に示す保持状況(ハ)の例では、傾斜角α35R及びα35Lの絶対値がともに閾値「45度」以上であり、かつ両方ともが「負」の値を取るので、姿勢推定部13によってロボット1の姿勢が「俯せ」であると推定される。さらに、保持状況(ハ)の例では、傾斜角α33Pが所定の範囲「0度から±30度」以内であるので、拘束状況推定部14によって首関節のピッチ方向からロボット1の頭3が拘束を受けていると推定される。このように、保持状況(ハ)の例では、ロボット1の姿勢が「俯せ」であり、かつロボット1の頭3が首関節のピッチ方向のうち下方向から拘束を受けている。したがって、判別部15によって保持状況(ロ)が「顔を支えられて俯せに抱っこされている状況」であると判別される。
【0043】
図5に示す保持状況(ニ)の例では、傾斜角α35R及びα35Lの絶対値が閾値「45度」未満であるので、姿勢推定部13によってロボット1の姿勢が「立位」または「横臥」であると推定される。このとき、傾斜角α33Rの絶対値が所定の閾値「45度」以上であるので、拘束状況推定部14によって首関節のロール方向が可動状態になったと推定される。このように、保持状況(ニ)の例では、ロボット1の姿勢が「立位」または「横臥」であり、かつ首関節のロール方向が可動状態になっている。それゆえ、判別部15によって保持状況(ニ)が「横臥」であると判別される。
【0044】
図2の説明に戻り、実行部16は、インタラクションの実行条件を満たす場合に、人とのインタラクションを実行する。一態様としては、実行部16は、実行部16は、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」または「顔を支えられて俯せに抱っこされている状況」であるかを判定する。このとき、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」または「顔を支えられて俯せに抱っこされている状況」である場合には、インタラクションを実行する。
【0045】
図6A及び図6Bは、インタラクションの一例を示す図である。例えば、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」である場合には、実行部16は、図6Aに示すように、「大好き」などのメッセージを図示しない音声出力部を介して出力する。また、ロボットの保持状況が「顔を支えられて俯せに抱っこされている状況」である場合には、実行部16は、次のような処理を実行する。すなわち、実行部16は、図6Bに示すように、「苦しい〜」などのメッセージを図示しない音声出力部を介して出力する。さらに、実行部16は、図6Bに示すように、各サーボモータ30の回転角を増減させる処理をモータ制御部39を介して連続して実行することにより、ロボット1の頭3、右腕5R、左腕5L、右脚7R及び左脚7Lをバタバタさせる。
【0046】
また、実行部16は、ロボット1の保持状況が「頭を支えられて仰向けに抱っこされている状況」および「顔を支えられて俯せに抱っこされている状況」ではない場合には、ロボット1が覚醒モードであるか否かを判定する。このとき、実行部16は、ロボット1が覚醒モードである場合には、インタラクションを実行する。例えば、ロボットの保持状況が「水平面に仰向けに置かれている状況」または「横臥」である場合には、「起こして」などのメッセージを図示しない音声出力部を介して出力する。また、実行部16は、ロボット1が睡眠モードである場合には、ロボット1の保持状況が抱っこされている状況になったり、所定時間が経過して覚醒モードに遷移するまで、寝息やいびきの音声を図示しない音声出力部を介して出力する。
【0047】
[処理の流れ]
次に、本実施例に係るロボットの処理の流れについて説明する。図7は、実施例1に係るインタラクション実行処理の手順を示すフローチャートである。このインタラクション実行処理は、ロボット1の電源がON状態である限り、繰り返し実行される。
【0048】
図7に示すように、まず、採取部11は、各サーボモータ30によって頭3、右腕5R、左腕5L、右脚7Rおよび左脚7Lの回転角を保持する動力(トルク)に変換された電力の電流値をモータ制御部39を介して採取する(ステップS101)。
【0049】
続いて、算出部12は、サーボモータ30の電流値Iiにトルク定数Ciを乗算することによって各サーボモータ30に掛かる保持トルクTiを算出する(ステップS102)。そして、姿勢推定部13は、保持トルクTi、部位の質量mi、重力加速度gおよび回転軸から部位の重心までの長さxiを傾斜角の算出式「sin−1(Ti/migxi)」に代入して傾斜角αiを推定した上でロボット1の姿勢を推定する(ステップS103)。
【0050】
その後、拘束状況推定部14は、姿勢推定部13によって推定されたロボット1の姿勢と所定の部位の傾斜角αiとを用いて、ロボット1の部位のうち特定の部位に対する拘束状況を推定する(ステップS104)。
【0051】
続いて、判別部15は、姿勢推定部13によって推定されたロボット1の姿勢と、拘束状況推定部14によって推定されたロボット1の部位に対する拘束状況とに基づいて、ロボット1が保持されている保持状況を判別する(ステップS105)。
【0052】
このとき、保持状況がインタラクションの実行条件を満たす場合(ステップS106肯定)には、実行部16は、次のような処理を実行する。すなわち、実行部16は、図示しない音声出力部やモータ制御部39を介して、ロボット1の感情を表現するインタラクションを実行し(ステップS107)、ステップS101〜ステップS106までの処理を繰り返し実行する。
【0053】
また、保持状況がインタラクションの実行条件を満たさない場合(ステップS106否定)には、ステップS107の処理を実行せず、そのままステップS101〜ステップS106までの処理を実行する。
【0054】
[実施例1の効果]
上述してきたように、本実施例に係るロボット1は、人とインタラクションを行うロボット1が各関節にサーボモータ30を有し、各サーボモータ30のトルクからロボット1の部位に対する拘束状況を推定する。したがって、本実施例に係るロボット1によれば、各種のセンサを用いずにロボット1が保持されている保持状況を認識できる。さらに、本実施例に係るロボット1では、接触センサやケーブルの数を低減できるので、ロボット1を小型化できる。
【0055】
加えて、本実施例に係るロボット1では、ロボット1の関節にサーボモータ30を採用するので、サーボモータ30を末梢部側ではなく、体幹部側に配置することができる。このため、また、本実施例に係るロボット1では、配線を胴体9の内部に収めることができるので、断線等の障害を防止できる。さらに、本実施例に係るロボット1では、配線も簡易化できるので、修復作業およびメンテナンス作業も簡易に行うこともできる。
【0056】
また、本実施例に係るロボット1は、サーボモータ30ごとに採取された電流値から、各サーボモータ30の回転角を保持するのに掛かる保持トルクを算出する。その上で、本実施例に係るロボット1は、各サーボモータ30の保持トルクから、ロボット1の部位に対する拘束状況を推定する。このため、本実施例に係るロボット1では、サーボモータ30が有する既存の機能を用いるので、ロボット1の部位に対する拘束状況を推定するために新たなハードウェアを追加するのを不要化できる。
【0057】
さらに、本実施例に係るロボット1は、サーボモータ30ごとに算出された保持トルクから当該部位が所定の基準方向、例えば鉛直方向から傾斜している傾斜角αiを各部位ごとに算出した上で各部位の傾斜角αiの組合せからロボット1の姿勢を推定する。そして、本実施例に係るロボット1は、ロボット1の部位に対する拘束状況およびロボット1の姿勢に基づいてロボット1が保持されている保持状況を判別する。このため、本実施例に係るロボット1では、加速度センサ等のセンサ類を用いることなく、各関節にサーボモータ30を用いるだけでロボット1の姿勢を推定することができる。さらに、本実施例に係るロボット1では、特定の部位に1つ設けられた加速度センサ等よりもロボット1の姿勢を大局的に推定できる。したがって、本実施例に係るロボット1では、ロボット1の保持状況を精度よく判別することができる。
【0058】
また、本実施例に係るロボット1は、ロボット1の保持状況に応じて情報を出力する制御、及び/又は、サーボモータ30を駆動して部位を動作させる制御を実行する。例えば、ロボット1が抱きかかえられている場合には、「大好き」等の喜びを表すメッセージを音声出力できる。また、ロボット1が抱きかかえられている場合であっても仰向けに抱きかかえられている場合には、「苦しい」等の苦しみを表すメッセージを音声出力したり、各サーボモータ30を駆動して頭や手足などの部位をばたつかせたりできる。このように、本実施例に係るロボット1によれば、ロボット1の保持状況に適合したインタラクションを実行できる。
【実施例2】
【0059】
さて、上記の実施例1では、サーボモータ30の回転角を保持する場合に掛かる保持トルクからロボット1の部位に対する拘束状況を検知する場合を例示したが、開示の装置はこれに限定されず、他の方法によって拘束状況を検知することもできる。そこで、実施例2では、サーボモータ30の回転角を増減させた場合に掛かるトルクの負荷から拘束状況を検知する場合について説明する。なお、以下では、上記の実施例1で説明したロボット1と本実施例に係るロボットとを区別するために、本実施例に係るロボットを「ロボット2」と記載する場合がある。
【0060】
図8は、実施例2に係るロボットが有する制御部の機能的構成を示すブロック図である。図8に示すように、本実施例に係るロボット2は、図2に示した制御部10に比べて、制御部20が回転角指令部21、検知部23および検出部24を新たに有する点が相違する。さらに、本実施例に係るロボット2は、上記の実施例1にロボット1に比べて、採取部22及び判別部25の機能の一部が図2に示した採取部11及び判別部15と異なる点が相違する。なお、本実施例では、上記の実施例1と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略する。
【0061】
このうち、回転角指令部21は、各サーボモータ30の回転角の増減を指令する。一態様としては、回転角指令部21は、各サーボモータ30によって指令前に計測されている回転角を基準に±θi、例えば「10度」増減させる指令をモータ制御部39を介して各サーボモータ30へ送信する。なお、回転角を増減させる範囲は、上記の例に限らず、任意の範囲を設定することができる。
【0062】
採取部22は、回転角指令部21によってサーボモータ30の回転角の増減が指令されている期間のサーボモータ30のトルクの負荷を採取する。一態様としては、採取部22は、サーボモータ30の回転角の増減によって掛かるトルクの負荷の一例として、回転角の変化を採取する。この場合には、採取部22は、サーボモータ30の回転角の増減が指令されている期間にサーボモータ30から実際に採取した回転角のうち、最小値および最大値を抽出する。その上で、採取部22は、回転角の最小値および最大値から、サーボモータ30によって増減の基準とした回転角を減算することによって回転角増減値ΔθLi〜ΔθHiを採取する。
【0063】
他の一態様としては、採取部22は、サーボモータ30の回転角の増減によって掛かるトルクの負荷の一例として、電流値の変化を採取する。この場合には、採取部22は、サーボモータ30の回転角の増減が指令されている期間にサーボモータ30から採取した電流値のうち、最小値および最大値を抽出する。その上で、採取部22は、電流値の最小値および最大値から、サーボモータ30によって増減の基準とした回転角が計測されている時にともに計測された電流値を減算することによって電流増減値ΔIiを採取する。
【0064】
検知部23は、採取部22によってサーボモータ30ごとに採取されたトルクの負荷から、ロボット2の部位に対する拘束状況を検知する。一態様としては、検知部23は、各サーボモータ30ごとに採取された回転角増減値ΔθLi〜ΔθHiのうち、回転角増減値ΔθLi及びΔθHiの絶対値が増減指令値θiに満たないサーボモータ30によって接続される部位が拘束を受けていると検知する。すなわち、回転角増減値ΔθLi及びΔθHiの絶対値が増減指令値θiに満たない場合には、人等によって外力が原因となってサーボモータ30のトルクの負荷が大きくなっているので、その部位が拘束を受けているとみなすことができる。なお、ここでは、回転角増減値ΔθLi〜ΔθHiを用いて拘束状況を検知する場合を例示したが、電流増減値ΔIiを用いて拘束状況を検知することとしてもかまわない。この場合には、電流増減値ΔIiが所定の閾値以上であるか否かを判定すればよい。このとき、電流増減値ΔIiが所定の閾値以上である場合には、回転角増減値ΔθLi及びΔθHiの場合と同様に、人等によって外力が原因となってサーボモータ30のトルクの負荷が大きくなっているので、その部位が拘束を受けているとみなすことができる。
【0065】
検出部24は、図2に示した姿勢推定部13と同様に、ロボット2の姿勢を検出する。かかる検出部24は、図2に示した姿勢推定部13が保持トルクから傾斜角を推定してロボット1の姿勢を推定するのに対し、ロボット2に設けられた加速度センサ50から3軸の加速度を取得することによってロボット2の姿勢を検出する点が異なる。
【0066】
判別部25は、検出部24によって検出されたロボット2の姿勢と、検知部23によって検知されたロボット2の部位に対する拘束状況とに基づいて、ロボット2の保持状況を判別する。
【0067】
ここで、図9A及び図9Bを用いて保持状況の判別方法について説明する。図9Aは、サーボモータに掛かるトルクの負荷の一例を示す図である。図9Bは、ロボットの姿勢の一例を示す図である。図9Aの例では、(ホ)〜(チ)の4つの保持状況それぞれで各サーボモータ30ごとに採取された回転角増減値ΔθLi〜ΔθHiが図示されている。また、図9Bの例では、図9Aに示した(ホ)〜(チ)の4つの保持状況それぞれに対応する加速度センサ50の計測値が図示されている。
【0068】
図9Aに示す保持状況(ホ)の例では、サーボモータ33Pの回転角増減値ΔθH33P「5」の絶対値が増減指令値θ33p「10」に満たないので、検知部23によってロボット2の頭3が首関節のピッチ方向のうち上方向から拘束を受けていると検知される。また、サーボモータ35Rの回転角増減値ΔθL35R「-7」の絶対値が増減指令値θ35R「10」に満たないので、検知部23によってロボット2の右腕5Rが拘束を受けていると検知される。さらに、図9Bに示す保持状況(ホ)の例では、X軸、Y軸及びZ軸の加速度から検出部24によってロボット2の姿勢が「仰向け」であると検出される。このように、保持状況(ホ)の例では、ロボット2の姿勢が「仰向け」であり、かつロボット2の頭3が首関節のピッチ方向のうち上方向から拘束を受けている。加えて、保持状況(ホ)の例では、ロボット2の右腕5Rが拘束を受けていることもわかる。したがって、判別部25によって保持状況(ホ)が「頭を支えられた上でロボット2の右手を手前側にして仰向けに抱っこされている状況」であると判別される。
【0069】
図9Aに示す保持状況(ヘ)の例では、各サーボモータ30の回転角増減値ΔθL33P〜ΔθH33Pの絶対値がいずれも増減指令値θ33p「10」と同じであるので、検知部23によってロボット2の部位はいずれも拘束を受けていないと検知される。また、図9Bに示す保持状況(ヘ)の例では、X軸、Y軸及びZ軸の加速度から検出部24によってロボット2の姿勢が「仰向け」であると検出される。それゆえ、判別部25によって保持状況(ヘ)が「水平面に仰向けに置かれている状況」であると判別される。
【0070】
図9Aに示す保持状況(ト)の例では、サーボモータ33Pの回転角増減値ΔθL33P「-4」の絶対値が増減指令値θ33p「10」に満たないので、検知部23によってロボット2の頭3が首関節のピッチ方向のうち下方向から拘束を受けていると検知される。また、サーボモータ35Lの回転角増減値ΔθH35L「3」の絶対値が増減指令値θ35L「10」に満たないので、検知部23によってロボット2の左腕5Lが拘束を受けていると検知される。さらに、図9Bに示す保持状況(ト)の例では、X軸、Y軸及びZ軸の加速度から検出部24によってロボット2の姿勢が「俯せ」であると検出される。このように、保持状況(ト)の例では、ロボット2の姿勢が「俯せ」であり、かつロボット2の頭3が首関節のピッチ方向のうち下方向から拘束を受けている。加えて、保持状況(ト)の例では、ロボット2の左腕5Lが拘束を受けていることもわかる。したがって、判別部25によって保持状況(ト)が「顔を支えられた上でロボット2の左手を手前側にして俯せに抱っこされている状況」であると判別される。
【0071】
図9Aに示す保持状況(チ)の例では、各サーボモータ30の回転角増減値ΔθL33P〜ΔθH33Pの絶対値がいずれも増減指令値θ33p「10」と同じであるので、検知部23によってロボット2の部位はいずれも拘束を受けていないと検知される。また、図9Bに示す保持状況(チ)の例では、X軸、Y軸及びZ軸の加速度から検出部24によってロボット2の姿勢が「横臥」であると検出される。それゆえ、判別部15によって保持状況(チ)が「横臥」であると判別される。
【0072】
[処理の流れ]
次に、本実施例に係るロボットの処理の流れについて説明する。図10は、実施例2に係るインタラクション実行処理の手順を示すフローチャートである。このインタラクション実行処理は、ロボット2の電源がON状態である限り、繰り返し実行される。
【0073】
図10に示すように、回転角指令部21は、各サーボモータ30によって指令前に計測されている回転角を基準に±θ増減させる指令をモータ制御部39を介して各サーボモータ30へ送信する(ステップS201)。
【0074】
続いて、採取部22は、回転角指令部21によってサーボモータ30の回転角の増減が指令されている期間のサーボモータ30のトルクの負荷を採取する(ステップS202)。そして、検知部23は、採取部22によってサーボモータ30ごとに採取されたトルクの負荷から、ロボット2の部位に対する拘束状況を検知する(ステップS203)。
【0075】
その後、検出部24は、ロボット2に設けられた加速度センサ50から3軸の加速度を取得することによってロボット2の姿勢を検出する(ステップS204)。続いて、判別部25は、検出部24によって検出されたロボット2の姿勢と、検知部23によって検知されたロボット2の部位に対する拘束状況とに基づいて、ロボット2の保持状況を判別する(ステップS205)。
【0076】
このとき、保持状況がインタラクションの実行条件を満たす場合(ステップS206肯定)には、実行部16は、次のような処理を実行する。すなわち、実行部16は、図示しない音声出力部やモータ制御部39を介して、ロボット2の感情を表現するインタラクションを実行し(ステップS207)、ステップS201〜ステップS206までの処理を繰り返し実行する。
【0077】
また、保持状況がインタラクションの実行条件を満たさない場合(ステップS206否定)には、ステップS207の処理を実行せず、そのままステップS201〜ステップS206までの処理を実行する。
【0078】
[実施例2の効果]
上述してきたように、本実施例に係るロボット2は、上記の実施例1と同様に、人とインタラクションを行うロボット1が各関節にサーボモータ30を有し、各サーボモータ30のトルクからロボット1の部位に対する拘束状況を検知する。したがって、本実施例に係るロボット2によれば、上記の実施例1と同様に、各種のセンサを用いずにロボット2が保持されている保持状況を認識できる。さらに、本実施例に係るロボット2では、接触センサやケーブルの数を低減できるので、ロボット2を小型化できる。
【0079】
加えて、本実施例に係るロボット2では、上記の実施例1と同様に、ロボット2の関節にサーボモータ30を採用するので、サーボモータ30を末梢部側ではなく、体幹部側に配置することができる。このため、また、本実施例に係るロボット2では、上記の実施例1と同様に、配線を胴体9の内部に収めることができるので、断線等の障害を防止できる。さらに、本実施例に係るロボット2では、上記の実施例1と同様に、配線も簡易化できるので、修復作業およびメンテナンス作業も簡易に行うこともできる。
【0080】
また、本実施例に係るロボット2は、各サーボモータ30の回転角の増減を指令した上で、サーボモータ30の回転角の増減が指令されている期間のサーボモータ30のトルクの負荷を採取する。そして、本実施例に係るロボット2は、サーボモータ30ごとに採取したトルクの負荷から、ロボット2の部位に対する拘束状況を検知する。このため、本実施例に係るロボット2では、ロボット2の部位を実際に駆動させることによってトルクの負荷を採取するので、ロボット2の部位に対する拘束状況をより正確に検知できる。
【0081】
さらに、本実施例に係るロボット2は、サーボモータ30ごとに採取されたトルクの負荷のうち、ロボット2の首のピッチ方向および腕の一方のトルクの負荷が所定の閾値以上であるか否かを検知する。そして、本実施例に係るロボット2は、ロボット2の首のピッチ方向および腕の一方のトルクの負荷が閾値以上である場合に、ロボット2が抱きかかえられていると判別する。一方、本実施例に係るロボット2は、ロボット2の首のピッチ方向および腕の一方のトルクの負荷が閾値未満である場合に面に載置されていると判別する。このため、本実施例に係るロボット2では、ロボット2が拘束を受けている部位の組合せによって人等から拘束されているのか、あるいは放置されているのかを判別でき、サーボモータ30だけでロボット2の保持状況を精度よく判別できる。
【0082】
また、本実施例に係るロボット2は、ロボット2の保持状況に応じて情報を出力する制御、及び/又は、サーボモータ30を駆動して部位を動作させる制御を実行する。例えば、ロボット2が抱きかかえられている場合には、「大好き」等の喜びを表すメッセージを音声出力できる。また、ロボット2が抱きかかえられている場合であっても仰向けに抱きかかえられている場合には、「苦しい」等の苦しみを表すメッセージを音声出力したり、各サーボモータ30を駆動して頭や手足などの部位をばたつかせたりできる。このように、本実施例に係るロボット2によれば、上記の実施例1と同様に、ロボット2の保持状況に適合したインタラクションを実行できる。
【実施例3】
【0083】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0084】
[適用例]
上記の実施例1では、ロボット1の姿勢を保持トルクから検出する場合を例示したが、必ずしも保持トルクから検出する必要はなく、上記の実施例2と同様に、加速度センサを用いてロボット1の姿勢を検出することとしてもかまわない。
【0085】
[適用範囲]
また、上記の実施例2では、ロボット2の姿勢をサーボモータ30のトルクの負荷から検出する場合を例示したが、必ずしも加速度センサを用いる必要はなく、上記の実施例1と同様に、ロボット1の姿勢を保持トルクから検出することとしてもかまわない。
【0086】
[応用範囲]
また、上記の実施例1では、ロボット1の姿勢を推定してからロボット1の部位に対する拘束状況を推定する場合を説明したが、必ずしもロボット1の姿勢の後に拘束状況を推定する必要はない。例えば、開示の装置は、ロボット1の姿勢および拘束状況を並行して推定することもできるし、また、ロボット1の拘束状況を推定してからロボット1の姿勢を推定することもできる。
【0087】
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、採取部11、算出部12、姿勢推定部13、拘束状況推定部14、判別部15又は実行部16をロボット1の外部装置としてネットワーク経由で接続するようにしてもよい。また、回転角指令部21、採取部22、検知部23、検出部24、判別部25又は実行部16をロボット2の外部装置としてネットワーク経由で接続するようにしてもよい。また、採取部11、算出部12、姿勢推定部13、拘束状況推定部14、判別部15又は実行部16を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のロボットの機能を実現するようにしてもよい。さらに、回転角指令部21、採取部22、検知部23、検出部24、判別部25又は実行部16を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のロボットの機能を実現するようにしてもよい。
【0088】
[状況認識プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図11を用いて、上記の実施例と同様の機能を有する状況認識プログラムを実行するコンピュータの一例について説明する。
【0089】
図11は、実施例1及び実施例2に係る状況認識プログラムを実行するコンピュータの一例について説明するための図である。図11に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180と有する。これら110〜180の各部はバス140を介して接続される。
【0090】
HDD170には、図11に示すように、上記の実施例1で示した採取部11、算出部12、姿勢推定部13、拘束状況推定部14、判別部15及び実行部16と同様の機能を発揮する状況認識プログラム170aが予め記憶される。また、状況認識プログラム170aは、回転角指令部21、採取部22、検知部23、検出部24、判別部25及び実行部16と同様の機能を発揮するプログラムであってもよい。この状況認識プログラム170aについては、図2または図8に示した各々の機能部の各構成要素と同様、適宜統合又は分離しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。
【0091】
そして、CPU150が、状況認識プログラム170aをHDD170から読み出してRAM180に展開する。これによって、図11に示すように、状況認識プログラム170aは、状況認識プロセス180aとして機能する。この状況認識プロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、状況認識プロセス180aは、図2に示した採取部11、算出部12、姿勢推定部13、拘束状況推定部14、判別部15及び実行部16にて実行される処理、例えば図7に示す処理を含む。また、状況認識プロセス180aは、図8に示した回転角指令部21、採取部22、検知部23、検出部24、判別部25及び実行部16にて実行される処理、例えば図10に示す処理を含んでもよい。また、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【0092】
なお、上記の状況認識プログラム170aについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【0093】
1 ロボット
3 頭
5R 右腕
5L 左腕
7R 右脚
7L 左脚
9 胴体
10 制御部
11 採取部
12 算出部
13 姿勢推定部
14 拘束状況推定部
15 判別部
16 実行部
33P,33R,33Y,35R,35L,37R,37L サーボモータ
39 モータ制御部
【特許請求の範囲】
【請求項1】
ロボットであって、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータと、
各サーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する検知部と
を有することを特徴とするロボット。
【請求項2】
各サーボモータの回転角の増減を指令する回転角指令部と、
前記回転角指令部によってサーボモータの回転角の増減が指令されている期間のサーボモータのトルクの負荷を採取する採取部とをさらに有し、
前記検知部は、
前記採取部によってサーボモータごとに採取されたトルクの負荷から、前記ロボットの部位に対する拘束状況を検知することを特徴とする請求項1に記載のロボット。
【請求項3】
前記検知部によって検知されたロボットの部位に対する拘束状況に基づいて前記ロボットが保持されている保持状況を判別する判別部をさらに有し、
前記検知部は、
前記採取部によってサーボモータごとに採取されたトルクの負荷のうち、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が所定の閾値以上であるか否かを検知し、
前記判別部は、
前記検知部によって前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値以上であると検知された場合には前記ロボットが抱きかかえられていると判別し、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値未満であると検知された場合には面に載置されていると判別することを特徴とする請求項2に記載のロボット。
【請求項4】
前記判別部によって判別されたロボットの保持状況に応じて情報を出力する制御、及び/又は、前記サーボモータを駆動して前記部位を動作させる制御を実行する実行部をさらに有することを特徴とする請求項3に記載のロボット。
【請求項5】
各サーボモータの電流値を採取する採取部と、
前記採取部によってサーボモータごとに採取された電流値から、各サーボモータの回転角を保持するのに掛かる保持トルクを算出する算出部と、
前記検知部は、
前記算出部によって算出された各サーボモータの保持トルクから、前記ロボットの部位に対する拘束状況を検知することを特徴とする請求項1に記載のロボット。
【請求項6】
前記算出部によってサーボモータごとに算出された保持トルクから当該部位が所定の基準方向から傾斜している傾斜角を各部位ごとに算出した上で各部位の傾斜角の組合せから前記ロボットの姿勢を検出する検出部と、
前記検知部によって検知されたロボットの部位に対する拘束状況および前記検出部によって検出されたロボットの姿勢に基づいて前記ロボットが保持されている保持状況を判別する判別部とをさらに有することを特徴とする請求項5に記載のロボット。
【請求項7】
前記判別部によって判別されたロボットの保持状況に応じて情報を出力する制御、及び/又は、前記サーボモータを駆動して前記部位を動作させる制御を実行する実行部をさらに有することを特徴とする請求項6に記載のロボット。
【請求項8】
ロボットが、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する
処理を実行することを特徴とする状況認識方法。
【請求項9】
ロボットに、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する
処理を実行させることを特徴とする状況認識プログラム。
【請求項1】
ロボットであって、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータと、
各サーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する検知部と
を有することを特徴とするロボット。
【請求項2】
各サーボモータの回転角の増減を指令する回転角指令部と、
前記回転角指令部によってサーボモータの回転角の増減が指令されている期間のサーボモータのトルクの負荷を採取する採取部とをさらに有し、
前記検知部は、
前記採取部によってサーボモータごとに採取されたトルクの負荷から、前記ロボットの部位に対する拘束状況を検知することを特徴とする請求項1に記載のロボット。
【請求項3】
前記検知部によって検知されたロボットの部位に対する拘束状況に基づいて前記ロボットが保持されている保持状況を判別する判別部をさらに有し、
前記検知部は、
前記採取部によってサーボモータごとに採取されたトルクの負荷のうち、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が所定の閾値以上であるか否かを検知し、
前記判別部は、
前記検知部によって前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値以上であると検知された場合には前記ロボットが抱きかかえられていると判別し、前記ロボットの首のピッチ方向および腕の一方のトルクの負荷が閾値未満であると検知された場合には面に載置されていると判別することを特徴とする請求項2に記載のロボット。
【請求項4】
前記判別部によって判別されたロボットの保持状況に応じて情報を出力する制御、及び/又は、前記サーボモータを駆動して前記部位を動作させる制御を実行する実行部をさらに有することを特徴とする請求項3に記載のロボット。
【請求項5】
各サーボモータの電流値を採取する採取部と、
前記採取部によってサーボモータごとに採取された電流値から、各サーボモータの回転角を保持するのに掛かる保持トルクを算出する算出部と、
前記検知部は、
前記算出部によって算出された各サーボモータの保持トルクから、前記ロボットの部位に対する拘束状況を検知することを特徴とする請求項1に記載のロボット。
【請求項6】
前記算出部によってサーボモータごとに算出された保持トルクから当該部位が所定の基準方向から傾斜している傾斜角を各部位ごとに算出した上で各部位の傾斜角の組合せから前記ロボットの姿勢を検出する検出部と、
前記検知部によって検知されたロボットの部位に対する拘束状況および前記検出部によって検出されたロボットの姿勢に基づいて前記ロボットが保持されている保持状況を判別する判別部とをさらに有することを特徴とする請求項5に記載のロボット。
【請求項7】
前記判別部によって判別されたロボットの保持状況に応じて情報を出力する制御、及び/又は、前記サーボモータを駆動して前記部位を動作させる制御を実行する実行部をさらに有することを特徴とする請求項6に記載のロボット。
【請求項8】
ロボットが、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する
処理を実行することを特徴とする状況認識方法。
【請求項9】
ロボットに、
前記ロボットの各部位間を接続する関節に設けられた複数のサーボモータのトルクを用いて、前記ロボットの部位に対する拘束状況を検知する
処理を実行させることを特徴とする状況認識プログラム。
【図1】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8】
【図9A】
【図9B】
【図10】
【図11】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8】
【図9A】
【図9B】
【図10】
【図11】
【公開番号】特開2013−13946(P2013−13946A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−146595(P2011−146595)
【出願日】平成23年6月30日(2011.6.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願日】平成23年6月30日(2011.6.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]