(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、本発明の実施形態を、図面を参照して詳細に説明する。なお、以下の説明においては便宜上、図示の状態を基準に各構造の位置関係を表現することがある。また、以下の実施形態およびその変形例について、ほぼ同一の構成要素については同一の符号を付し、その説明を適宜省略することがある。
【0011】
図1は、実施形態に係るロボット100の外観を表す図である。
図1(a)は正面図であり、
図1(b)は側面図である。
本実施形態におけるロボット100は、外部環境および内部状態に基づいて行動や仕草(ジェスチャー)を決定する自律行動型のロボットである。外部環境は、カメラやサーモセンサなど各種のセンサにより認識される。内部状態はロボット100の感情を表現するさまざまなパラメータとして定量化される。これらについては後述する。
【0012】
ロボット100は、屋内行動が前提とされており、例えば、オーナー家庭の家屋内を行動範囲とする。以下、ロボット100に関わる人間を「ユーザ」とよび、ロボット100が所属する家庭の構成員となるユーザのことを「オーナー」とよぶ。
【0013】
ロボット100のボディ104は、全体的に丸みを帯びた形状を有し、ウレタンやゴム、樹脂、繊維などやわらかく弾力性のある素材により形成された外皮を含む。ロボット100に服を着せてもよい。丸くてやわらかく、手触りのよいボディ104とすることで、ロボット100はユーザに安心感とともに心地よい触感を提供する。
【0014】
ロボット100は、総重量が15キログラム以下、好ましくは10キログラム以下、さらに好ましくは、5キログラム以下である。生後13ヶ月までに、赤ちゃんの過半数は一人歩きを始める。生後13ヶ月の赤ちゃんの平均体重は、男児が9キログラム強、女児が9キログラム弱である。このため、ロボット100の総重量が10キログラム以下であれば、ユーザは一人歩きできない赤ちゃんを抱きかかえるのとほぼ同等の労力でロボット100を抱きかかえることができる。生後2ヶ月未満の赤ちゃんの平均体重は男女ともに5キログラム未満である。したがって、ロボット100の総重量が5キログラム以下であれば、ユーザは乳児を抱っこするのと同等の労力でロボット100を抱っこできる。
【0015】
適度な重さと丸み、柔らかさ、手触りのよさ、といった諸属性により、ユーザがロボット100を抱きかかえやすく、かつ、抱きかかえたくなるという効果が実現される。同様の理由から、ロボット100の身長は1.2メートル以下、好ましくは、0.7メートル以下であることが望ましい。本実施形態におけるロボット100にとって、抱きかかえることができるというのは重要なコンセプトである。
【0016】
ロボット100は、3輪走行するための3つの車輪を備える。図示のように、一対の前輪102(左輪102a,右輪102b)と、一つの後輪103を含む。前輪102が駆動輪であり、後輪103が従動輪である。前輪102は、操舵機構を有しないが、回転速度や回転方向が個別に制御可能とされている。後輪103は、いわゆるオムニホイールからなり、ロボット100を前後左右への移動させるために回転自在となっている。左輪102aよりも右輪102bの回転数を大きくすることで、ロボット100が左折したり、左回りに回転できる。右輪102bよりも左輪102aの回転数を大きくすることで、ロボット100が右折したり、右回りに回転できる。
【0017】
前輪102および後輪103は、後述する駆動機構(回動機構、リンク機構)によりボディ104に完全収納できる。走行時においても各車輪の大部分はボディ104に隠れているが、各車輪がボディ104に完全収納されるとロボット100は移動不可能な状態となる。すなわち、車輪の収納動作に伴ってボディ104が降下し、床面に着座する。この着座状態においては、ボディ104の底部に形成された平坦状の着座面108(接地底面)が床面Fに当接する。
【0018】
ロボット100は、2つの手106を有する。手106には、モノを把持する機能はない。手106は上げる、振る、振動するなど簡単な動作が可能である。2つの手106も個別制御可能である。
【0019】
ロボット100の頭部正面(顔)には2つの目110が設けられている。目110には高解像度カメラ402が内蔵される。目110は、液晶素子または有機EL素子による画像表示も可能である。ロボット100は、スピーカーを内蔵し、簡単な音声を発することもできる。ロボット100の頭頂部にはツノ112が取り付けられる。上述のようにロボット100は軽量であるため、ユーザはツノ112をつかむことでロボット100を持ち上げることも可能である。
【0020】
本実施形態のロボット100は、ツノ112に全天球カメラ400(第1のカメラ)が内蔵される。全天球カメラ400は、魚眼レンズにより上下左右全方位(360度:特に、ロボット100の上方略全域)を一度に撮影できる(
図8参照)。目110に内蔵される高解像度カメラ402(第2のカメラ)は、ロボット100の正面方向のみを撮影できる。全天球カメラ400は撮影範囲が広いが高解像度カメラ402よりは解像度が低い。
【0021】
このほか、ロボット100は、周辺温度分布を画像化する温度センサ(サーモセンサ)、複数のマイクロフォンを有するマイクロフォンアレイ、計測対象の形状を測定可能な形状測定センサ(深度センサ)、超音波センサなどさまざまなセンサを内蔵する。
【0022】
図2は、ロボット100の構造を概略的に表す断面図である。
図3は、ロボット100の構造をフレームを中心に表す側面図である。
図2は
図3のA−A矢視断面に対応する。
図2に示すように、ロボット100のボディ104は、ベースフレーム308、本体フレーム310、一対のホイールカバー312および外皮314を含む。ベースフレーム308は、金属からなり、ボディ104の軸芯を構成するとともに内部機構を支持する。ベースフレーム308は、アッパープレート332とロアプレート334とを複数のサイドプレート336により上下に連結して構成される。複数のサイドプレート336間には通気が可能となるよう、十分な間隔が設けられている。ベースフレーム308の内方には、バッテリー118、制御回路342および各種アクチュエータ等が収容されている。
【0023】
本体フレーム310は、樹脂材からなり、頭部フレーム316および胴部フレーム318を含む。頭部フレーム316は、中空半球状をなし、ロボット100の頭部骨格を形成する。胴部フレーム318は、段付筒形状をなし、ロボット100の胴部骨格を形成する。胴部フレーム318は、ベースフレーム308と一体に固定されている。頭部フレーム316は、胴部フレーム318の上端部に相対変位可能に組み付けられている。
【0024】
頭部フレーム316には、ヨー軸321、ピッチ軸322およびロール軸323の3軸と、各軸を回転駆動するアクチュエータ324,325が設けられている。アクチュエータ324は、ヨー軸321を駆動するためのサーボモータを含む。アクチュエータ325は、ピッチ軸322およびロール軸323をそれぞれ駆動するための複数のサーボモータを含む。首振り動作のためにヨー軸321が駆動され、頷き動作,見上げ動作および見下ろし動作のためにピッチ軸322が駆動され、首を傾げる動作のためにロール軸323が駆動される。
【0025】
頭部フレーム316の上部には、ヨー軸321に支持されるプレート326が固定されている。プレート326には、上下間の通気を確保するための複数の通気孔327が形成されている。
【0026】
頭部フレーム316およびその内部機構を下方から支持するように、金属製のベースプレート328が設けられている。ベースプレート328は、ジョイント330を介してアッパープレート332(ベースフレーム308)と連結されている。ベースプレート328には支持台335が設けられ、アクチュエータ324,325およびクロスリンク機構329(パンタグラフ機構)が支持されている。クロスリンク機構329は、アクチュエータ325,326を上下に連結し、それらの間隔を変化させることができる。
【0027】
より詳細には、アクチュエータ325のロール軸323が、図示略のギア機構を介して支持台335に連結されている。アクチュエータ325のピッチ軸322は、クロスリンク機構329の下端部に連結されている。一方、クロスリンク機構329の上端部にアクチュエータ324が固定されている。アクチュエータ324のヨー軸321が、プレート326に連結されている。なお、アクチュエータ325には、クロスリンク機構329を伸縮駆動するための図示略の回転駆動機構が設けられている。
【0028】
このような構成により、ロール軸323を回転させることにより、アクチュエータ325と頭部フレーム316とを一体に回転(ローリング)させることができ、首を傾げる動作を実現できる。また、ピッチ軸322を回転させることにより、クロスリンク機構329と頭部フレーム316とを一体に回転(ピッチング)させることができ、頷き動作等を実現できる。ヨー軸321を回転させることにより、プレート326と頭部フレーム316とを一体に回転(ヨーイング)させることができ、首振り動作を実現できる。さらに、クロスリンク機構329を伸縮させることにより、首の伸縮動作を実現できる。
【0029】
胴部フレーム318は、ベースフレーム308および車輪駆動機構370を収容している。
図3にも示すように、車輪駆動機構370は、前輪駆動機構374および後輪駆動機構376を含む。胴部フレーム318は、ボディ104のアウトラインに丸みをもたせるよう、上半部380が滑らかな曲面形状とされている。上半部380は、首部に対応する上部に向けて徐々に小幅となるように形成されている。胴部フレーム318の下半部382は、ホイールカバー312との間に前輪102の収納スペースSを形成するために小幅とされている。上半部380と下半部382との境界は段差形状となっている。
【0030】
下半部382を構成する左右の側壁は互いに平行とされ、前輪駆動機構374の後述する回動軸378を貫通させ、これを支持している。下半部382の下端開口部を閉止するようにロアプレート334が設けられている。言い換えれば、ベースフレーム308は、胴部フレーム318の下端部に固定され、支持されている。
【0031】
一対のホイールカバー312は、胴部フレーム318の下半部382を左右から覆うように設けられている。ホイールカバー312は、樹脂からなり、胴部フレーム318の上半部380と連続した滑らかな外面(曲面)を形成するように組み付けられている。ホイールカバー312の上端部が、上半部380の下端部に沿って連結されている。それにより、下半部382の側壁とホイールカバー312との間に、下方に向けて開放される収納スペースSが形成されている。
【0032】
外皮314は、ウレタンゴムからなり、本体フレーム310およびホイールカバー312を外側から覆う。手106は、外皮314と一体成形される。外皮314の上端部には、外気を導入するための開口部390が設けられる。
【0033】
前輪駆動機構374は、前輪102を回転させるための回転駆動機構と、前輪102を収納スペースSから進退させるための収納作動機構とを含む。すなわち、前輪駆動機構374は、回動軸378およびアクチュエータ379を含む。前輪102は、その中心部にダイレクトドライブモータ(以下「DDモータ」と表記する)396を有する。DDモータ396は、アウターロータ構造を有し、ステータが車軸398に固定され、ロータが前輪102のホイール397に同軸状に固定されている。車軸398は、アーム350を介して回動軸378と一体化されている。胴部フレーム318の下部側壁には、回動軸378を貫通させつつ回動可能に支持する軸受352が埋設されている。軸受352には、胴部フレーム318の内外を気密にシールするためのシール構造(軸受シール)が設けられている。アクチュエータ379の駆動により、前輪102を収納スペースSから外部へ向けて進退駆動できる。
【0034】
後輪駆動機構376は、回動軸354およびアクチュエータ356を含む。回動軸354からは2本のアーム358が延び、その先端に車軸360が一体に設けられている。車軸360に後輪103が回転可能に支持されている。胴部フレーム318の下部側壁には、回動軸354を貫通させつつ回動可能に支持する図示略の軸受が埋設されている。その軸受にも軸シール構造が設けられている。アクチュエータ356の駆動により、後輪103を収納スペースSから外部へ向けて進退駆動できる。
【0035】
車輪収納時には、アクチュエータ379,356が一方向に駆動される。このとき、アーム350が回動軸378を中心に回動し、前輪102が床面Fから上昇する。また、アーム358が回動軸354を中心に回動し、後輪103が床面Fから上昇する。それにより、ボディ104が降下し、着座面108が床面Fに接地する。これにより、ロボット100がお座りした状態が実現される。アクチュエータ379,356を反対方向に駆動することにより、各車輪を収納スペースSから進出させ、ロボット100を立ち上がらせることができる。
【0036】
手106を駆動するための駆動機構は、外皮314に埋設されたワイヤ134と、その駆動回路340(通電回路)を含む。ワイヤ134は、本実施形態では形状記憶合金線からなり、加熱されると収縮硬化し、徐熱されると弛緩伸長する。ワイヤ134の両端から引き出されたリード線が、駆動回路340に接続されている。駆動回路340のスイッチがオンされるとワイヤ134(形状記憶合金線)に通電がなされる。
【0037】
ワイヤ134は、外皮314から手106に延びるようにモールド又は編み込まれている。ワイヤ134の両端から胴部フレーム318の内方にリード線が引き出されている。ワイヤ134は外皮314の左右に1本ずつ設けてもよいし、複数本ずつ並列に設けてもよい。ワイヤ134に通電することで手106を上げることができ、通電遮断することで手106を下げることができる。
【0038】
ロボット100は、ピッチ軸322の回転角度を制御することにより、視線(点線矢印参照)の角度を調整できる。なお、本実施形態では便宜上、ピッチ軸322と目110とを通る仮想直線の方向を視線の方向とする。高解像度カメラ402の光軸は視線と一致する。また、後述の演算処理を容易にするため、全天球カメラ400とピッチ軸322とを結ぶ直線と視線とが直角となるように設定されている。
【0039】
頭部フレーム316の前後には、胴部フレーム318の上端部を挿通可能なスリット362,364が設けられている。このため、ピッチ軸322を中心とする頭部フレーム316の可動範囲(回転範囲)を大きくとることができる。本実施形態では、この可動範囲を90度とし、視線が水平となる状態から上下に45度ずつとしている。すなわち、ロボット100の視線が上向く角度(見上げ角)の限界値が45度とされ、視線が下向く角度(見下ろし角)の限界値も45度とされている。
【0040】
図4は、ロボットシステム300の構成図である。
ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。家屋内にはあらかじめ複数の外部センサ114(外部センサ114a、114b、・・・、114n)が設置される。外部センサ114は、家屋の壁面に固定されてもよいし、床に載置されてもよい。サーバ200には、外部センサ114の位置座標が登録される。位置座標は、ロボット100の行動範囲として想定される家屋内においてx,y座標として定義される。
【0041】
サーバ200は、家庭内に設置される。本実施形態におけるサーバ200とロボット100は1対1で対応する。ロボット100の内蔵するセンサおよび複数の外部センサ114から得られる情報に基づいて、サーバ200がロボット100の基本行動を決定する。外部センサ114はロボット100の感覚器を補強するためのものであり、サーバ200はロボット100の頭脳を補強するためのものである。
【0042】
外部センサ114は、定期的に外部センサ114のID(以下、「ビーコンID」とよぶ)を含む無線信号(以下、「ロボット探索信号」とよぶ)を送信する。ロボット100はロボット探索信号を受信するとビーコンIDを含む無線信号(以下、「ロボット返答信号」とよぶ)を返信する。サーバ200は、外部センサ114がロボット探索信号を送信してからロボット返答信号を受信するまでの時間を計測し、外部センサ114からロボット100までの距離を測定する。複数の外部センサ114とロボット100とのそれぞれの距離を計測することで、ロボット100の位置座標を特定する。もちろん、ロボット100が自らの位置座標を定期的にサーバ200に送信する方式でもよい。
【0043】
図5は、感情マップ116の概念図である。
感情マップ116は、サーバ200に格納されるデータテーブルである。ロボット100は、感情マップ116にしたがって行動選択する。感情マップ116は、ロボット100の場所に対する好悪感情の大きさを示す。感情マップ116のx軸とy軸は、二次元空間座標を示す。z軸は、好悪感情の大きさを示す。z値が正値のときにはその場所に対する好感が高く、z値が負値のときにはその場所を嫌悪していることを示す。
【0044】
感情マップ116において、座標P1は、ロボット100の行動範囲としてサーバ200が管理する屋内空間のうち好感情が高い地点(以下、「好意地点」とよぶ)である。好意地点は、ソファの陰やテーブルの下などの「安全な場所」であってもよいし、リビングのように人が集まりやすい場所、賑やかな場所であってもよい。また、過去にやさしく撫でられたり、触れられたりした場所であってもよい。ロボット100がどのような場所を好むかという定義は任意であるが、一般的には、小さな子どもや犬や猫などの小動物が好む場所を好意地点として設定することが望ましい。
【0045】
座標P2は、悪感情が高い地点(以下、「嫌悪地点」とよぶ)である。嫌悪地点は、テレビの近くなど大きな音がする場所、お風呂や洗面所のように濡れやすい場所、閉鎖空間や暗い場所、ユーザから乱暴に扱われたことがある不快な記憶に結びつく場所などであってもよい。ロボット100がどのような場所を嫌うかという定義も任意であるが、一般的には、小さな子どもや犬や猫などの小動物が怖がる場所を嫌悪地点として設定することが望ましい。
【0046】
座標Qは、ロボット100の現在位置を示す。複数の外部センサ114が定期的に送信するロボット探索信号とそれに対するロボット返答信号により、サーバ200はロボット100の位置座標を特定する。例えば、ビーコンID=1の外部センサ114とビーコンID=2の外部センサ114がそれぞれロボット100を検出したとき、2つの外部センサ114からロボット100の距離を求め、そこからロボット100の位置座標を求める。
【0047】
あるいは、ビーコンID=1の外部センサ114は、ロボット探索信号を複数方向に送信し、ロボット100はロボット探索信号を受信したときロボット返答信号を返す。これにより、サーバ200は、ロボット100がどの外部センサ114からどの方向のどのくらいの距離にいるかを把握してもよい。また、別の実施の形態では、車輪(前輪102)の回転数からロボット100の移動距離を算出して、現在位置を特定してもよいし、カメラから得られる画像に基づいて現在位置を特定してもよい。感情マップ116が与えられた場合、ロボット100は好意地点(座標P1)に引き寄せられる方向、嫌悪地点(座標P2)から離れる方向に移動する。
【0048】
感情マップ116は動的に変化する。ロボット100が座標P1に到達すると、座標P1におけるz値(好感情)は時間とともに低下する。これにより、ロボット100は好意地点(座標P1)に到達して、「感情が満たされ」、やがて、その場所に「飽きてくる」という生物的行動をエミュレートできる。同様に、座標P2における悪感情も時間とともに緩和される。時間経過とともに新たな好意地点や嫌悪地点が生まれ、それによってロボット100は新たな行動選択を行う。ロボット100は、新しい好意地点に「興味」を持ち、絶え間なく行動選択する。
【0049】
感情マップ116は、ロボット100の内部状態として、感情の起伏を表現する。ロボット100は、好意地点を目指し、嫌悪地点を避け、好意地点にしばらくとどまり、やがてまた次の行動を起こす。このような制御により、ロボット100の行動選択を人間的・生物的なものにできる。
【0050】
なお、ロボット100の行動に影響を与えるマップ(以下、「行動マップ」と総称する)は、
図3に示したようなタイプの感情マップ116に限らない。例えば、好奇心、恐怖を避ける気持ち、安心を求める気持ち、静けさや薄暗さ、涼しさや暖かさといった肉体的安楽を求める気持ち、などさまざまな行動マップを定義可能である。そして、複数の行動マップそれぞれのz値を重み付け平均することにより、ロボット100の目的地点を決定してもよい。
【0051】
ロボット100は、行動マップとは別に、さまざまな感情や感覚の大きさを示すパラメータを有してもよい。例えば、寂しさという感情パラメータの値が高まっているときには、安心する場所を評価する行動マップの重み付け係数を大きく設定し、目標地点に到達することでこの感情パラメータの値を低下させてもよい。同様に、つまらないという感覚を示すパラメータの値が高まっているときには、好奇心を満たす場所を評価する行動マップの重み付け係数を大きく設定すればよい。
【0052】
図6は、ロボット100のハードウェア構成図である。
ロボット100は、内部センサ128、通信機126、記憶装置124、プロセッサ122、駆動機構120およびバッテリー118を含む。駆動機構120は、上述した車輪駆動機構370を含む。プロセッサ122と記憶装置124は、制御回路342に含まれる。各ユニットは電源線130および信号線132により互いに接続される。バッテリー118は、電源線130を介して各ユニットに電力を供給する。各ユニットは信号線132により制御信号を送受する。バッテリー118は、リチウムイオン電池などの二次電池であり、ロボット100の動力源である。
【0053】
内部センサ128は、ロボット100が内蔵する各種センサの集合体である。具体的には、カメラ410(全天球カメラ400と高解像度カメラ402)、マイクロフォンアレイ404、温度センサ406、形状測定センサ408のほか、赤外線センサ、タッチセンサ、加速度センサ、ニオイセンサなどである。ニオイセンサは、匂いの元となる分子の吸着によって電気抵抗が変化する原理を応用した既知のセンサである。ニオイセンサは、さまざまな匂いを複数種類のカテゴリ(以下、「ニオイカテゴリ」とよぶ)に分類する。
【0054】
通信機126は、サーバ200や外部センサ114、ユーザの有する携帯機器など各種の外部機器を対象として無線通信を行う通信モジュールである。記憶装置124は、不揮発性メモリおよび揮発性メモリにより構成され、コンピュータプログラムや各種設定情報を記憶する。プロセッサ122は、コンピュータプログラムの実行手段である。駆動機構120は、内部機構を制御するアクチュエータである。このほかには、表示器やスピーカーなども搭載される。
【0055】
プロセッサ122は、通信機126を介してサーバ200や外部センサ114と通信しながら、ロボット100の行動選択を行う。内部センサ128により得られるさまざまな外部情報も行動選択に影響する。
【0056】
駆動機構120は、主として、車輪(前輪102)、頭部(頭部フレーム316)および胴部(手106)を制御する。駆動機構120は、2つの前輪102のそれぞれの回転速度や回転方向を変化させることにより、ロボット100の移動方向や移動速度を変化させる。また、駆動機構120は、車輪(前輪102および後輪103)を昇降させることもできる。車輪が上昇すると、車輪はボディ104に完全に収納され、ロボット100は着座面108にて床面に当接し、着座状態となる。
【0057】
駆動機構120がワイヤ134を介して手106を引っ張ることにより、手106を持ち上げることができる。手106を振動させることで手を振るような仕草も可能である。多数のワイヤ134を利用すればさらに複雑な仕草も表現可能である。
【0058】
図7は、ロボットシステム300の機能ブロック図である。
上述のように、ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。ロボット100およびサーバ200の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部はロボット100により実現されてもよい。
【0059】
(サーバ200)
サーバ200は、通信部204、データ処理部202およびデータ格納部206を含む。通信部204は、外部センサ114およびロボット100との通信処理を担当する。データ格納部206は各種データを格納する。データ処理部202は、通信部204により取得されたデータおよびデータ格納部206に格納されているデータに基づいて各種処理を実行する。データ処理部202は、通信部204およびデータ格納部206のインタフェースとしても機能する。
【0060】
データ格納部206は、モーション格納部232、マップ格納部216および個人データ格納部218を含む。ロボット100は、複数の動作パターン(モーション)を有する。手を震わせる、蛇行しながらオーナーに近づく、首をかしげたままオーナーを見つめる、などさまざまなモーションが定義される。
【0061】
モーション格納部232は、モーションの制御内容を定義する「モーションファイル」を格納する。各モーションは、モーションIDにより識別される。モーションファイルは、ロボット100のモーション格納部160にもダウンロードされる。どのモーションを実行するかは、サーバ200で決定されることもあるし、ロボット100で決定されることもある。
【0062】
ロボット100のモーションの多くは、複数の単位モーションを含む複合モーションとして構成される。例えば、ロボット100がオーナーに近づくとき、オーナーの方に向き直る単位モーション、手を上げながら近づく単位モーション、体を揺すりながら近づく単位モーション、両手を上げながら着座する単位モーションの組み合わせとして表現されてもよい。このような4つのモーションの組み合わせにより、「オーナーに近づいて、途中で手を上げて、最後は体をゆすった上で着座する」というモーションが実現される。モーションファイルには、ロボット100に設けられたアクチュエータの回転角度や角速度などが時間軸に関連づけて定義される。モーションファイル(アクチュエータ制御情報)にしたがって、時間経過とともに各アクチュエータを制御することで様々なモーションが表現される。
【0063】
先の単位モーションから次の単位モーションに変化するときの移行時間を「インターバル」とよぶ。インターバルは、単位モーション変更に要する時間やモーションの内容に応じて定義されればよい。インターバルの長さは調整可能である。以下、いつ、どのモーションを選ぶか、モーションを実現する上での各アクチュエータの出力調整など、ロボット100の行動制御にかかわる設定のことを「行動特性」と総称する。ロボット100の行動特性は、モーション選択アルゴリズム、モーションの選択確率、モーションファイル等により定義される。
【0064】
マップ格納部216は、複数の行動マップを格納する。個人データ格納部218は、ユーザ、特に、オーナーの情報を格納する。具体的には、ユーザに対する親密度やユーザの身体的特徴・行動的特徴など各種のパラメータを格納する。年齢や性別などの他の属性情報を格納してもよい。
【0065】
ロボット100はユーザの身体的特徴や行動的特徴に基づいてユーザを識別する。ロボット100は、内蔵のカメラで常時周辺を撮像する。そして、画像に写る人物の身体的特徴と行動的特徴を抽出する。身体的特徴とは、背の高さ、好んで着る服、メガネの有無、肌の色、髪の色、耳の大きさなど身体に付随する視覚的特徴であってもよいし、平均体温や匂い、声質、などその他の特徴も含めてもよい。行動的特徴とは、具体的には、ユーザが好む場所、動きの活発さ、喫煙の有無など行動に付随する特徴である。例えば、父親として識別されるオーナーは在宅しないことが多く、在宅時にはソファで動かないことが多いが、母親は台所にいることが多く、行動範囲が広い、といった行動上の特徴を抽出する。ロボット100は、大量の画像情報やその他のセンシング情報から得られる身体的特徴および行動的特徴に基づいて、高い頻度で出現するユーザを「オーナー」としてクラスタリングする。
【0066】
ユーザIDでユーザを識別する方式は簡易かつ確実であるが、ユーザがユーザIDを提供可能な機器を保有していることが前提となる。一方、身体的特徴や行動的特徴によりユーザを識別する方法は画像認識処理負担が大きいものの携帯機器を保有していないユーザでも識別できるメリットがある。2つの方法は一方だけを採用してもよいし、補完的に2つの方法を併用してユーザ特定を行ってもよい。本実施形態においては、身体的特徴と行動的特徴からユーザをクラスタリングし、ディープラーニング(多層型のニューラルネットワーク)によってユーザを識別する。
【0067】
ロボット100は、ユーザごとに親密度という内部パラメータを有する。ロボット100が、自分を抱き上げる、声をかけてくれるなど、自分に対して好意を示す行動を認識したとき、そのユーザに対する親密度が高くなる。ロボット100に関わらないユーザや、乱暴を働くユーザ、出会う頻度が低いユーザに対する親密度は低くなる。
【0068】
データ処理部202は、位置管理部208、マップ管理部210、認識部212、動作判断部222および親密度管理部220を含む。位置管理部208は、ロボット100の位置座標を、
図4を用いて説明した方法にて特定する。位置管理部208はユーザの位置座標もリアルタイムで追跡してもよい。
【0069】
マップ管理部210は、複数の行動マップについて
図5に関連して説明した方法にて各座標のパラメータを変化させる。マップ管理部210は、行動マップの一種である温度マップを管理する。
【0070】
マップ管理部210は、複数の行動マップのいずれかを選択してもよいし、複数の行動マップのz値を加重平均してもよい。例えば、行動マップAでは座標R1、座標R2におけるz値が4と3であり、行動マップBでは座標R1、座標R2におけるz値が−1と3であるとする。単純平均の場合、座標R1の合計z値は4−1=3、座標R2の合計z値は3+3=6であるから、ロボット100は座標R1ではなく座標R2の方向に向かう。行動マップAを行動マップBの5倍重視するときには、座標R1の合計z値は4×5−1=19、座標R2の合計z値は3×5+3=18であるから、ロボット100は座標R1の方向に向かう。
【0071】
認識部212は、外部環境を認識する。外部環境の認識には、温度や湿度に基づく天候や季節の認識、光量や温度に基づく物陰(安全地帯)の認識など多様な認識が含まれる。認識部212は、更に、人物認識部214と応対認識部228を含む。人物認識部214は、ロボット100の内蔵カメラによる撮像画像から人物を認識し、その人物の身体的特徴や行動的特徴を抽出する。そして、個人データ格納部218に登録されている身体特徴情報や行動特徴情報に基づいて、撮像されたユーザ、すなわち、ロボット100が見ているユーザが、父親、母親、長男などのどの人物に該当するかを判定する。人物認識部214は、表情認識部230を含む。表情認識部230は、ユーザの表情を画像認識することにより、ユーザの感情を推定する。なお、人物認識部214は、人物以外、例えば、ペットである猫や犬についても特徴抽出を行う。
【0072】
応対認識部228は、ロボット100になされたさまざまな応対行為を認識し、快・不快行為に分類する。応対認識部228は、また、ロボット100の行動に対するオーナーの応対行為を認識することにより、肯定・否定反応に分類する。快・不快行為は、ユーザの応対行為が、生物として心地よいものであるか不快なものであるかにより判別される。例えば、抱っこされることはロボット100にとって快行為であり、蹴られることはロボット100にとって不快行為である。肯定・否定反応は、ユーザの応対行為が、ユーザの快感情を示すものか不快感情を示すものであるかにより判別される。例えば、抱っこされることはユーザの快感情を示す肯定反応であり、蹴られることはユーザの不快感情を示す否定反応である。
【0073】
動作判断部222は、ロボット100の制御部150と協働して、ロボット100のモーションを決定する。動作判断部222は、マップ管理部210による行動マップ選択に基づいて、ロボット100の移動目標地点とそのための移動ルートを作成する。動作判断部222は、複数の移動ルートを作成し、その上で、いずれかの移動ルートを選択してもよい。
【0074】
動作判断部222は、モーション格納部232の複数のモーションからロボット100のモーションを選択する。各モーションには状況ごとに選択確率が対応づけられている。例えば、オーナーから快行為がなされたときには、モーションAを20%の確率で実行する、気温が30度以上となったとき、モーションBを5%の確率で実行する、といった選択方法が定義される。行動マップに移動目標地点や移動ルートが決定され、後述の各種イベントによりモーションが選択される。
【0075】
親密度管理部220は、ユーザごとの親密度を管理する。上述したように、親密度は個人データ格納部218において個人データの一部として登録される。快行為を検出したとき、親密度管理部220はそのオーナーに対する親密度をアップさせる。不快行為を検出したときには親密度はダウンする。また、長期間視認していないオーナーの親密度は徐々に低下する。
【0076】
(ロボット100)
ロボット100は、内部センサ128、通信部142、データ処理部136、データ格納部148および駆動機構120を含む。内部センサ128は、各種センサの集合体である。内部センサ128は、マイクロフォンアレイ404、カメラ410、温度センサ406および形状測定センサ408を含む。
【0077】
マイクロフォンアレイ404は、複数のマイクロフォンをつなぎ合わせたユニットであり、音を検出する音声センサである。マイクロフォンアレイ404は、音を検出し、音源の方向を検出可能なデバイスであればよい。マイクロフォンアレイ404は、頭部フレーム316に内蔵される。音源と各マイクロフォンの距離は一致しないため、集音タイミングにばらつきが生じる。このため、各マイクロフォンにおける音の強さと位相から音源の位置を特定できる。ロボット100は、マイクロフォンアレイ404により音源の位置、特に音源の方向を検出する。
【0078】
カメラ410は外部を撮影するデバイスである。カメラ410は、全天球カメラ400と高解像度カメラ402を含む。温度センサ406は、外部環境の温度分布を検出し、画像化する。形状測定センサ408は、プロジェクタから近赤外線を照射し、近赤外線カメラにて近赤外線の反射光を検出することにより、対象物体の深度、ひいては、凹凸形状を読み取る赤外線深度センサである。
【0079】
通信部142は、通信機126(
図6参照)に該当し、外部センサ114およびサーバ200との通信処理を担当する。データ格納部148は各種データを格納する。データ格納部148は、記憶装置124(
図6参照)に該当する。データ処理部136は、通信部142により取得されたデータおよびデータ格納部148に格納されているデータに基づいて各種処理を実行する。データ処理部136は、プロセッサ122およびプロセッサ122により実行されるコンピュータプログラムに該当する。データ処理部136は、通信部142、内部センサ128、駆動機構120およびデータ格納部148のインタフェースとしても機能する。
【0080】
データ格納部148は、ロボット100の各種モーションを定義するモーション格納部160を含む。モーション格納部160には、サーバ200のモーション格納部232から各種モーションファイルがダウンロードされる。モーションは、モーションIDによって識別される。前輪102を収容して着座する、手106を持ち上げる、2つの前輪102を逆回転させることで、あるいは、片方の前輪102だけを回転させることでロボット100を回転行動させる、前輪102を収納した状態で前輪102を回転させることで震える、ユーザから離れるときにいったん停止して振り返る、などのさまざまなモーションを表現するために、各種アクチュエータ(駆動機構120)の動作タイミング、動作時間、動作方向などがモーションファイルにおいて時系列定義される。
【0081】
データ処理部136は、認識部156、制御部150およびセンサ制御部172を含む。制御部150は、移動制御部152および動作制御部154を含む。移動制御部152は、サーバ200の動作判断部222とともにロボット100の移動方向を決める。行動マップに基づく移動をサーバ200で決定し、障害物をよけるなどの即時的移動をロボット100で決定してもよい。駆動機構120は、移動制御部152の指示にしたがって前輪102を駆動することで、ロボット100を移動目標地点に向かわせる。
【0082】
動作制御部154は、サーバ200の動作判断部222と協働してロボット100のモーションを決める。一部のモーションについてはサーバ200で決定し、他のモーションについてはロボット100で決定してもよい。また、ロボット100がモーションを決定するが、ロボット100の処理負荷が高いときにはサーバ200がモーションを決定するとしてもよい。サーバ200においてベースとなるモーションを決定し、ロボット100において追加のモーションを決定してもよい。モーションの決定処理をサーバ200およびロボット100においてどのように分担するかはロボットシステム300の仕様に応じて設計すればよい。動作制御部154は選択したモーションを駆動機構120に実行指示する。駆動機構120は、モーションファイルにしたがって、各アクチュエータを制御する。
【0083】
動作制御部154は、親密度の高いユーザが近くにいるときには「抱っこ」をせがむ仕草として両方の手106をもちあげるモーションを実行することもできるし、「抱っこ」に飽きたときには左右の前輪102を収容したまま逆回転と停止を交互に繰り返すことで抱っこをいやがるモーションを表現することもできる。駆動機構120は、動作制御部154の指示にしたがって前輪102や手106、首(頭部フレーム316)を駆動することで、ロボット100にさまざまなモーションを表現させる。
【0084】
センサ制御部172は、内部センサ128を制御する。具体的には、高解像度カメラ402、温度センサ406および形状測定センサ408の計測方向を制御する。頭部フレーム316の方向に合わせて、ロボット100の頭部に搭載される高解像度カメラ402、温度センサ406および形状測定センサ408の計測方向が変化する。センサ制御部172は、高解像度カメラ402の撮像方向を制御する(つまり、その撮像方向に合わせて頭部の動きを制御する)。センサ制御部172およびカメラ410が、「撮像部」として機能する。
【0085】
認識部156は、内部センサ128から得られた外部情報を解釈する。認識部156は、視覚的な認識(視覚部)、匂いの認識(嗅覚部)、音の認識(聴覚部)、触覚的な認識(触覚部)が可能である。認識部156は、カメラ410、温度センサ406および形状測定センサ408の検出情報を定期的に取得し、人やペットなどの移動物体を検出する。これらの情報はサーバ200に送信され、サーバ200の人物認識部214は移動物体の身体的特徴を抽出する。また、ユーザの匂いやユーザの声も検出する。匂いや音(声)は既知の方法にて複数種類に分類される。
【0086】
ロボット100に対する強い衝撃が与えられたとき、認識部156は内蔵の加速度センサによりこれを認識し、サーバ200の応対認識部228は、近隣にいるユーザによって「乱暴行為」が働かれたと認識する。ユーザがツノ112を掴んでロボット100を持ち上げるときにも、乱暴行為と認識してもよい。ロボット100に正対した状態にあるユーザが特定音量領域および特定周波数帯域にて発声したとき、サーバ200の応対認識部228は、自らに対する「声掛け行為」がなされたと認識してもよい。また、体温程度の温度を検知したときにはユーザによる「接触行為」がなされたと認識し、接触認識した状態で上方への加速度を検知したときには「抱っこ」がなされたと認識する。ユーザがボディ104を持ち上げるときの物理的接触をセンシングしてもよいし、前輪102にかかる荷重が低下することにより抱っこを認識してもよい。
【0087】
サーバ200の応対認識部228は、ロボット100に対するユーザの各種応対を認識する。各種応対行為のうち一部の典型的な応対行為には、快または不快、肯定または否定が対応づけられる。一般的には快行為となる応対行為のほとんどは肯定反応であり、不快行為となる応対行為のほとんどは否定反応となる。快・不快行為は親密度に関連し、肯定・否定反応はロボット100の行動選択に影響する。
【0088】
検出・分析・判定を含む一連の認識処理は、サーバ200の認識部212だけで行ってもよいし、ロボット100の認識部156だけで行ってもよいし、双方が役割分担をしながら上記認識処理を実行してもよい。
【0089】
認識部156により認識された応対行為に応じて、サーバ200の親密度管理部220はユーザに対する親密度を変化させる。原則的には、快行為を行ったユーザに対する親密度は高まり、不快行為を行ったユーザに対する親密度は低下する。
【0090】
サーバ200の認識部212は、応対に応じて快・不快を判定し、マップ管理部210は「場所に対する愛着」を表現する行動マップにおいて、快・不快行為がなされた地点のz値を変化させてもよい。例えば、リビングにおいて快行為がなされたとき、マップ管理部210はリビングに好意地点を高い確率で設定してもよい。この場合、ロボット100はリビングを好み、リビングで快行為を受けることで、ますますリビングを好む、というポジティブ・フィードバック効果が実現する。
【0091】
サーバ200の人物認識部214は、外部センサ114または内部センサ128から得られた各種データから移動物体を検出し、その特徴(身体的特徴と行動的特徴)を抽出する。そして、これらの特徴に基づいて複数の移動物体をクラスタ分析する。移動物体としては、人間だけでなく、犬や猫などのペットが分析対象となることがある。
【0092】
ロボット100は、定期的に画像撮影を行い、人物認識部214はそれらの画像から移動物体を認識し、移動物体の特徴を抽出する。移動物体を検出したときには、ニオイセンサや内蔵の集音マイク、温度センサ等からも身体的特徴や行動的特徴が抽出される。例えば、画像に移動物体が写っているとき、ひげが生えている、早朝活動している、赤い服を着ている、香水の匂いがする、声が大きい、メガネをかけている、スカートを履いている、白髪である、背が高い、太っている、日焼けしている、ソファにいる、といったさまざまな特徴が抽出される。
【0093】
このような特徴抽出によるクラスタ分析が完了している状態において、ロボット100が新たに移動物体(ユーザ)を認識したとする。このとき、サーバ200の人物認識部214は、ロボット100から得られる画像等のセンシング情報から特徴抽出を行い、ディーブラーニング(多層型ニューラルネットワーク)により、ロボット100の近くにいる移動物体がどのクラスタに該当するかを判断する。
【0094】
特徴抽出によるクラスタの形成(クラスタ分析)と、特徴抽出にともなうクラスタへの当てはめ(ディープラーニング)は同時並行的に実行されてもよい。移動物体(ユーザ)からどのような行為をされるかによってそのユーザに対する親密度が変化する。
【0095】
ロボット100は、よく出会う人、よく触ってくる人、よく声をかけてくれる人に対して高い親密度を設定する。一方、めったに見ない人、あまり触ってこない人、乱暴な人、大声で叱る人に対する親密度は低くなる。ロボット100はセンサ(視覚、触覚、聴覚)によって検出するさまざまな外界情報にもとづいて、ユーザごとの親密度を変化させる。
【0096】
実際のロボット100は行動マップにしたがって自律的に複雑な行動選択を行う。ロボット100は、寂しさ、退屈さ、好奇心などさまざまなパラメータに基づいて複数の行動マップに影響されながら行動する。ロボット100は、行動マップの影響を除外すれば、あるいは、行動マップの影響が小さい内部状態にあるときには、原則的には、親密度の高い人に近づこうとし、親密度の低い人からは離れようとする。
【0097】
ロボット100の行動は親密度に応じて以下に類型化される。
(1)親密度が非常に高いクラスタ
ロボット100は、ユーザに近づき(以下、「近接行動」とよぶ)、かつ、人に好意を示す仕草としてあらかじめ定義される愛情仕草を行うことで親愛の情を強く表現する。
(2)親密度が比較的高いクラスタ
ロボット100は、近接行動のみを行う。
(3)親密度が比較的低いクラスタ
ロボット100は特段のアクションを行わない。
(4)親密度が特に低いクラスタ
ロボット100は、離脱行動を行う。
【0098】
以上の制御方法によれば、ロボット100は、親密度が高いユーザを見つけるとそのユーザに近寄り、逆に親密度が低いユーザを見つけるとそのユーザから離れる。このような制御方法により、いわゆる「人見知り」を行動表現できる。また、来客(親密度が低いユーザA)が現れたとき、ロボット100は、来客から離れて家族(親密度が高いユーザB)の方に向かうこともある。この場合、ユーザBはロボット100が人見知りをして不安を感じていること、自分を頼っていること、を感じ取ることができる。このような行動表現により、ユーザBは、選ばれ、頼られることの喜び、それにともなう愛着の情を喚起される。
【0099】
一方、来客であるユーザAが頻繁に訪れ、声を掛け、タッチをするとロボット100のユーザAに対する親密度は徐々に上昇し、ロボット100はユーザAに対して人見知り行動(離脱行動)をしなくなる。ユーザAも自分にロボット100が馴染んできてくれたことを感じ取ることで、ロボット100に対する愛着を抱くことができる。
【0100】
なお、以上の行動選択は、常に実行されるとは限らない。例えば、ロボット100の好奇心を示す内部パラメータが高くなっているときには、好奇心を満たす場所を求める行動マップが重視されるため、ロボット100は親密度に影響された行動を選択しない可能性もある。また、玄関に設置されている外部センサ114がユーザの帰宅を検知した場合には、ユーザのお出迎え行動を最優先で実行するかもしれない。
【0101】
次に、ロボット100がユーザと自然な距離感を保つための制御について説明する。
本実施形態のロボット100は、視野に入ったユーザの属性や親密度(選好性)に応じてそのユーザとの距離感を適度に保ち、生物的に自然な行動をエミュレートする。認識部156は「選好性判定部」としても機能する。また、その距離に応じて自然な角度でユーザの顔を見上げる仕草をとることにより、ユーザに愛着を感じさせる。以下、その詳細について説明する。
【0102】
図8は、ユーザとの距離を制御する方法を表す模式図である。
ロボット100は、カメラ410の被写体からユーザ(対象物)を抽出してその画像を分析するとともに、対応するユーザ情報があればそれを参照し、ユーザとの距離が適切となるよう移動する。本実施形態におけるロボット100の身長(高さ)は、50センチメートル程度を想定している。この身長のロボット100がユーザの顔を視認するとき、必然的に頭部を傾けて見上げる状態になる。見上げる角度を大きくし、ユーザの顔を視認するためには、ロボット100はユーザに近づく必要があるし、見上げる角度を小さくすれば、ロボット100はユーザから離れる必要がある。見上げる角度を一定にして、その時のユーザの顔の視認状態を維持するようにロボット100の前進後退動作を制御することで、ユーザとの自然な距離感を維持しながら、ロボット100をユーザに追従させることができる。つまり、ロボット100とユーザとの明確な距離を測定しなくとも、自然な距離感を維持することができる。
【0103】
図8において、天球撮像範囲418は、全天球カメラ400による撮像範囲である。全天球カメラ400は、ロボット100の上方半球略全域を一度に撮像可能である。認識部156は、天球撮像範囲418のうち対象物414の方向を含む所定範囲である撮像領域420の画像(撮像画像)を分析する。なお、本実施形態では、被写体のうち、人間(ユーザ)や動物(ペット)のように対話やスキンシップの対象となる生物を「対象物」とよぶが、特に人間のみを対象物としてもよい。
【0104】
認識部156は、撮像領域420に所定の特徴を有する被写体が存在するか画像分析を行う。本実施形態では、撮像領域420から対象物414を画像認識する処理をロボット100の認識部156が実行する。変形例においては、その画像認識をサーバ200の認識部212が実行してもよいし、サーバ200の認識部212およびロボット100の認識部156の双方が実行してもよい。
【0105】
認識部156は、被写体からの対象物414の特定に際し、温度センサ406によりその被写体の周辺温度分布を計測し、その被写体が発熱体、特に、摂氏30〜40度程度の発熱体であるか否かを判定する。認識部156は「温度判定部」としても機能する。人間やペットなどの恒温動物は発熱体であるため、この温度計測によりオーディオやテレビ、壁、鏡などを対象物414の候補から除外できる。
【0106】
認識部156は、さらに、形状測定センサ408により被写体の三次元形状を測定し、その被写体が所定の形状を有する物体であるか否かを判定する。例えば、認識部156は、被写体が凹凸形状を有するか否かを判定する。凹凸形状を有しないとき、被写体はテレビ、壁、鏡などの平面体であると考えられるため、これらを対象物414の候補から除外できる。より好ましくは、形状測定センサ408により、被写体の立体形状の特徴を検出することが望ましい。人間の顔や動物の顔の形状上の特徴(鼻の位置や口の形など)を認識できれば、オーディオやテレビなどの無生物を対象物414の候補からより確実に除外しやすい。個人データ格納部218には、形状測定センサ408により各クラスタの顔の特徴情報も格納される。このため、さらに好ましくは、形状測定センサ408により、対象物414が誰であるかを特定してもよい。
【0107】
このようにして温度センサ406および形状測定センサ408により対象物414の候補(「対象物候補」という)が特定されると、その対象物候補を高解像度カメラ402にて撮像する。このとき、画面中央にその対象物候補の全体が含まれるよう画角を調整する。既に述べたように、高解像度カメラ402の光軸は視線と一致する。このため、ロボット100の視線の方向に対象物候補が存在することとなる。認識部156は、その高解像度カメラ402の画像に基づき、その対象物候補が対象物414であることを特定する。
【0108】
例えば、2つの目と1つの口に相当する部分を有している、肌色である、動いている、服を着ているなど、生物に特有の身体的・行動的特徴を有する対象物候補が対象物414として認識される。そして、この対象物414の顔を特定するために、公知の顔認識技術が用いられる。この顔認識では、例えば対象物414の画像から顔のエッジ部分を検出して顔領域を特定し、その顔領域の画像に対して予め設定された特徴量のパターン(目、鼻、口の配置など)を対比する。この対比における類似度が基準値以上であれば、顔であると判定できる。対象物414が複数ある場合、複数の顔を特定する。
【0109】
認識部156は、このように対象物414を特定した後、さらに対象物414の高さと顔の大きさを特定する。具体的には、撮像画面から対象物414における特徴点を抽出し、その特徴点の高さを「対象物の高さ」として特定する。本実施形態では、顔の中心で前方に突き出る鼻を特徴点として抽出し、対象物414の高さを特定する。また、顔の輪郭を抽出し、その縦方向の長さを「顔の大きさ」として特定する。撮像画面において、顔として認識した領域(「顔領域」ともいう)の大きさ、つまり顔領域の面積が所定の範囲になるようにロボット100の前進後退動作を制御する。顔領域の面積を大きくすれば、対象物414との距離感は近くなり、顔領域の面積を小さくすれば対象物414との距離感は遠くなる。
【0110】
対象物414が複数あるときには、その高さおよび顔の大きさ情報に基づき、距離感の調整対象となる対象物414を特定する。対象物414が単数であるときは、これを調整対象とする。そして、調整対象となった対象物414の属性や親密度に応じて見上げ角を設定し、対象物414に対面したときにその見上げ角での視線上に対象物414の顔がくるよう、対象物414との距離(「対面距離」ともいう)を制御する。例えば、両親と子供が集合している状況で、子供にアプローチする場合、超音波センサーを使って子供との正確な距離を計測することは難しい。しかし、子供の顔を視認し、見上げ角を一定にした上で、子供の顔領域の面積が一定の範囲内に収まるように制御すれば、子供にあわせて距離感を調整できる。
【0111】
図9は、見上げ角の設定方法の一例を示す図である。
ロボット100の視線の上下範囲(つまり頭部の可動範囲)は、水平方向(二点鎖線参照)に対して−45度〜+45度(点線参照)とされている。生物のように、頭部の可動域で被写体を快適な視野角に入れる感覚を再現するものである。このため、ロボット100の見上げ角θ(水平方向に対する上向き角度)は、0〜45度の範囲で調整される。見上げる仕草を自然に見せるため、基準値として30度(一点鎖線参照)が設定される。
【0112】
ロボット100にて認識される親密度が同じである場合、対象物414が大人であるか子供であるか、また男性であるか女性であるか等の属性に応じて対面距離dが異なる。すなわち、大人414m,414fよりも子供414cのほうが距離は近くなる。また、大人であれば、その身長に応じて距離が異なる。図示の例では、大人の男性414mとの距離dmよりも女性414fとの距離dfが近くなり、子供414cとの距離dcはさらに近くなっている。このように、大きいものからは離れ、小さいものには近づくという動物の本能的な距離感の調整を、見上げ角を一定にした状態で、顔領域の面積が所定の範囲内に収まるように前進後退制御をおこなうという画一的な処理で実現できる。
【0113】
仮にこの三人が横並びである場合(
図8参照)、ロボット100は、高さの小さい子供414cとの距離dcを優先する。すなわち、移動制御部152は、子供414cとの距離dcとなるようロボット100を移動させる。このとき、ロボット100の仕草を自然に見せるために、ロボット100が子供414cに所定距離以内(例えば5m以内)に近づいたときに、頭部の駆動を開始して見上げ角θが徐々に設定値に近づくよう制御する。
【0114】
なお、ロボット100が対象物414に近づく速度は緩やかでよい。それにより、対面距離が設定されつつも、対象物414がロボット100に触れることができる。すなわち、ユーザの意向に応じたロボット100とのスキンシップが確保される。
【0115】
図10は、見上げ角の設定方法の他の例を示す図である。
図10(a)は対象物が複数存在する場合を示し、
図10(b)は親密度に応じた見上げ角の変化を示す。
図10(a)に示すように、例えば子供414cの傍で父親414mがしゃがみ、ロボット100に呼びかけているような場合、親密表現をしている父親414mに応えるのが自然であり、共感が得られるものと考えられる。そこで、このように対象物414が複数存在する場合、特定された両者の高さの差Δhが基準値以下(例えば20cm以下に相当する画面上の高さ)であれば、顔が大きいほうの対象物414を距離制御の基準とする。図示の例では、移動制御部152は、ロボット100を父親414mに対して正対させ、見上げ角θが設定値(例えば30度)となる位置に移動させる。動作制御部154は、その移動の過程で見上げ角θが徐々にその設定値に近づくように頭部を駆動する。「高さの差Δh」および「基準値」は、画像処理におけるピクセル数で設定してもよい。
【0116】
見上げ角θは、対象物414の親密度に応じて可変とされる。すなわち、対象物414の親密度が以前よりも高くなった場合、
図10(b)に示すように、見上げ角θが以前の角度(例えば30度:細い一点鎖線参照)よりも大きな角度(例えば40度:太い一点鎖線参照)となるように設定変更される。その結果、ロボット100と対象物414との距離がd1からd2へと小さくなる。それにより、ペットが飼い主に慣れて距離感を縮めるのと同様、ロボット100が対象物414に対して以前よりも好意をもっていることを表現できる。
【0117】
図11は、見上げ角を決定する際に参照される設定テーブルを表す図である。
この設定テーブルは、見上げ角と親密度との対応関係が定義されたデータテーブルである。図示の例では、標準的な親密度(「標準親密度」という)を21以上40以下とし、それに対応する見上げ角θを30度としている。対象物414の親密度がその標準親密度よりも高くなると、見上げ角θは30度よりも大きくなる。このとき、ロボット100は以前よりも対象物414に近づいて見つめる仕草をする。それにより、ロボット100が対象物414に対して以前よりも好意をもっていることを表現できる。
【0118】
逆に、対象物414の親密度がその標準親密度よりも低くなると、見上げ角θは30度よりも小さくなる。このとき、ロボット100は以前よりも対象物414から遠ざかって見つめる仕草をする。それにより、対象物414の愛情不足に対する不満や警戒心を表現できる。このように、親密度に応じて距離感を変化させることにより、ロボット100の行動選択を人間的・生物的なものにできる。
【0119】
図12は、ロボット100の動作制御を例示するフローチャートである。
本図の処理は、所定の制御周期にて繰り返し実行される。以下、対象物414がユーザである場合を例に説明する。
【0120】
内部センサ128は、定期的にロボット100の周囲を撮像し、周辺温度を計測する。全天球カメラ400により被写体が捉えられると、認識部156は、温度センサ406および形状測定センサ408の検出情報に基づいてその被写体がユーザであるか否かを判定する。その被写体がユーザであった場合(S10のY)、認識部156は、高解像度カメラ402によりユーザの顔を認識し、これを追尾する(S12)。
【0121】
認識部156は、高解像度カメラ402の画像に基づき、ユーザの高さhを判定し(S14)、またそのユーザの顔の大きさを判定する(S16)。ユーザが複数存在する場合(S18のY)、その複数のユーザの高さの差Δhが基準値以内でなければ(S20のN)、距離調整の対象として低い方のユーザを設定する(S22)。一方、高さの差Δhが基準値以内であれば(S20のY)、顔が大きい方のユーザを設定する(S24)。ユーザが一人である場合(S18のN)、S20〜S24の処理をスキップする。このとき設定されたユーザを「設定ユーザ」ともよぶ。
【0122】
認識部156は、設定ユーザの情報を取得し、その親密度を判定する(S26)。設定ユーザの情報がなければ、親密度を標準親密度として仮判定する。そして、その親密度を用いて設定テーブル(
図11)を参照し、見上げ角θを設定する(S28)。
【0123】
移動制御部152は、ロボット100を設定ユーザに正対させ(S30)、その設定ユーザの方向へ移動させる(S32)。このとき、動作制御部154は、その移動の過程で見上げ角θが徐々にその設定値に近づくように頭部を駆動する。なお、ユーザがその見上げ角θに相当する距離よりもロボット100に接近している場合、移動制御部152は、その距離となるようロボット100を設定ユーザから遠ざける。ユーザを検出しない場合(S10のN)、S12〜S32の処理をスキップして一旦処理を終了する。
【0124】
以上、実施形態に基づいてロボット100およびロボット100を含むロボットシステム300について説明した。本実施形態によれば、ロボット100が、ユーザの高さや顔の大きさに応じてそのユーザとの距離感を制御する。大きい人とは距離をとり、小さい人とは距離を近づける。このような動作により、ユーザからみてロボット100との自然な距離感を保つことができる。この距離感は見上げ角の設定によるものであり、ロボット100は自然な角度でユーザに眼差しを向ける。そのため、ユーザに心地よさを感じさせることもできる。
【0125】
このように見上げ角が一定(設定値)となるように制御するため、ユーザがしゃがんでロボット100との触れ合いを求めると、ロボット100はそのユーザに近づく行為をとる。このため、ロボット100に近寄ってほしいというユーザの気持ちに素直に応えることができる。
【0126】
また、その見上げ角が親密度の高低に応じて変化する。親密度が高くなると、見上げ角は大きくなる方向に変化する。それにより、ロボット100がユーザに対してスキンシップを求めるような仕草も表現できる。逆に、親密度が低くなると、見上げ角は小さくなる方向に変化する。それにより、ロボット100がユーザに対して警戒感を示す、あるいは人見知りをするなどの仕草も表現できる。
【0127】
例えばペット等の動物と人との関係を想定した場合、人が立っているときには動物とある程度の距離感を保つのが自然である。動物が人に接近してじゃれ付くのは、よほど好意があるときである。本実施形態によれば、親密度に応じてロボット100の見上げ角を制御することにより、このような生物的に自然な行動(感覚的でシンプルな行動)をエミュレートできる。
【0128】
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【0129】
1つのロボット100と1つのサーバ200、複数の外部センサ114によりロボットシステム300が構成されるとして説明したが、ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部がロボット100に割り当てられてもよい。1つのサーバ200が複数のロボット100をコントロールしてもよいし、複数のサーバ200が協働して1以上のロボット100をコントロールしてもよい。
【0130】
ロボット100やサーバ200以外の第3の装置が、機能の一部を担ってもよい。
図7において説明したロボット100の各機能とサーバ200の各機能の集合体は大局的には1つの「ロボット」として把握することも可能である。1つまたは複数のハードウェアに対して、本発明を実現するために必要な複数の機能をどのように配分するかは、各ハードウェアの処理能力やロボットシステム300に求められる仕様等に鑑みて決定されればよい。
【0131】
上述したように、「狭義におけるロボット」とはサーバ200を含まないロボット100のことであるが、「広義におけるロボット」はロボットシステム300のことである。サーバ200の機能の多くは、将来的にはロボット100に統合されていく可能性も考えられる。
【0132】
上記実施形態では、カメラ410として、全天球カメラ400と高解像度カメラ402を含む構成を例示した。変形例においては、コスト低減等のため、高解像度カメラ402を省略してもよい。すなわち、全天球カメラ400による天球撮像範囲418の一部として、対象物414を含む撮像画面を切り出してもよい。ただし、対象物414(ユーザ)の顔認識を高精度に維持するためには、上記実施形態のように、高解像度カメラ402を併用するのが好ましい。上記本実施形態では、高解像度カメラ402の光軸とロボット100の視線とを一致させているため、見上げ角の調整は光軸方向の調整にもなり、制御がシンプルになる。
【0133】
あるいは逆に、全天球カメラ400を省略し、高解像度カメラ402によって対象物414を特定してもよい。ただしその場合、頭部を常時駆動して周囲を撮像する必要がある。また、高解像度カメラ402の撮像視野に対象物414が入った途端に追尾を開始するようになり、ロボット100の動作がぎこちないものとなりやすい。この点、全天球カメラ400によれば、カメラ自体を動かさなくとも、対象物414の検出が容易である。このため、上記実施形態のように、全天球カメラ400と高解像度カメラ402とを併用するのが好ましい。
【0134】
本実施形態では、対象物414をカメラ410,温度センサ406および形状測定センサ408によりセンシングし、ロボット100の認識部156により認識処理を実行している。変形例においては、認識処理の一部または全部がサーバ200の認識部212により実行されてもよい。また、内部センサ128の機能の一部は外部センサ114に搭載されてもよい。例えば、外部センサ114にカメラ410を搭載し、外部センサ114の画像情報をサーバ200にて分析し、その分析結果に基づいてロボット100が対象物414の位置を特定する実装も可能である。
【0135】
上記実施形態では、全天球カメラ400をツノ112に設け、ロボット100の頭部と一体に動く構成とした。変形例においては、全天球カメラ400を頭部と独立した部位(視線の動きに左右されない位置)に設けてもよい。例えば、全天球カメラ400をベースプレート328に固定し、頭部の上方に突き出る構成としてもよい。それにより、全天球カメラ400による画像を頭部の動きと切り離すことができ、対象物414の位置を特定するための演算処理がシンプルになり、その処理負荷を低減できる。
【0136】
本実施形態では述べなかったが、対象物414の認識のためにマイクロフォンアレイ404を併用してもよい。マイクロフォンアレイ404により対象物414を検出し、対象物414への方向を特定してもよい。また、マイクロフォンアレイ404をロボット100に装着する代わりにロボット100の複数箇所にマイクロフォンを配置してもよい。
【0137】
上記実施形態では、ロボット100が対象物414に正対して距離感を調整する(主に近づける)例を示した。変形例においては、ロボット100が対象物414から離れる場合に、同様の距離感が得られるよう制御してもよい。例えば、ロボット100が対象物414に追いかけられた際に、その対象物414の高さに応じた距離を保ちつつ逃げるよう制御してもよい。その場合、ロボット100は対象物414に対して背を向けることとなるが、全天球カメラ400の画像を用いて距離を制御することができる。あるいは、ロボット100の背後から対象物414が接近することを全天球カメラ400により検出し、ロボット100を対象物414に正対させるように向き直す制御を実行してもよい。そして、その対象物414の親密度に応じてロボット100に後ずさりをさせるなどの制御を実行してもよい。
【0138】
その場合、ロボット100の視線は基本的に対象物414の反対側を向くこととなるが、制御アルゴリズムをシンプルにするために、後頭部に顔があると仮定した「仮想の見上げ角」を演算上設定してもよい。それにより、ユーザと正対したときと同様の設定テーブルを使用することが可能となる。このような制御は、全天球カメラ400の撮像画面を切り出すことで容易に実現できる。
【0139】
上記実施形態では、対象物414の高さに応じて距離を調整する例を示した。変形例においては、対象物414の幅を含む大きさに応じて距離を制御してもよい。体の大きさは、身長のみならず、幅方向のボリュームからも感じ取れることを考慮する。体の大きなユーザとは相対的に距離を大きくとり、体の小さなユーザには相対的に近づくよう制御する。このような動作は、概ね生物的動作に合致したものとなる。
【0140】
上記実施形態では、対象物414の鼻を特徴点として抽出し、その鼻の高さを対象物414の高さとして特定した。変形例においては、その他の特徴点を設定して対象物414の高さを特定してもよい。例えば、対象物414の頭部(顔)の輪郭を特定し、その頭頂部の高さを対象物414の高さとしてもよい。また、上記実施形態では、顔の輪郭を抽出し、その縦方向の長さを「顔の大きさ」として特定した。変形例においては、例えば顔の輪郭から算出される顔の面積を「顔の大きさ」として特定してもよい。
【0141】
上記実施形態では、カメラの撮像領域に入る対象物414が複数存在する場合として、親子がほぼ同位置にいる例を示したが、複数の対象物が互いに離れているときのように遠近感を考慮すべき場合にも、同様の制御を行うことができる。例えばロボット100の近くにユーザC、遠くにユーザDがいる場合、撮像画面上においてユーザCのほうが高く、顔も大きくなる。このため、近いほうのユーザに対して距離制御を実行する。生物的動作を考慮しても、自身に近いものに反応するのが自然であり、理にかなっている。
【0142】
上記実施形態では、ロボット100が対象物414に接近する際、所定距離以内に近づいたときに頭部の駆動を開始し、見上げ角を徐々に設定値に近づける例を示した。変形例においては、ロボット100の見上げ角を基本的に固定し、その見上げ角のまま対象物414に接近させてもよい。そして、対象物414の全身が高解像度カメラ402の画角(視野角)に入ったときに、ロボット100を停止させてもよい。このような構成により、ロボット100の頭部を動かす頻度を下げることができ、制御負荷が低減される。
【0143】
上記実施形態では、ロボット100の見上げ角θが一定となるよう対象物414との距離を制御した。具体的には、ロボット100が対象物414に対して所定距離以内に近づいたときに頭部の駆動を開始し、見上げ角を徐々に設定値に近づけつつ、ロボット100そのものが対象物414に徐々に近づき、見上げ角が設定値となったときに停止するようにした。したがって、具体的に距離を測ってロボット100の移動を制御してはいない。変形例においては、ロボット100が被写体までの距離を検出する測距センサを備えてもよい。そして、見上げ角が設定値となるときの対象物414との距離(設定距離)を演算し、その設定距離が満たされるようロボット100を移動させてもよい。その際、測距センサの検出情報を逐次取得し、設定距離となる手前から頭部を駆動して414を見上げる動作を開始してもよい。そして、設定距離となったタイミングで見上げ角が設定値となるように制御してもよい。
【0144】
上記実施形態では、対象物414をユーザ(人間)としたが、犬や猫などの動物を含めてもよい。それにより、ロボット100が動物と適度な距離で対面するような演出を表現できる。
【0145】
上記実施形態では述べなかったが、ロボット100が見上げ動作をする場合、カメラの撮像状態が逆光状態となることが多い。このため、逆光状態でもロボット100が対象物414を正確に認識できるよう、撮像画像に対して補正処理を行ってもよい。具体的には、撮像画像の全体を明るくするよう露出補正してもよい。あるいは、撮像画像の明るい箇所を除いて露出を上げる(明るくする)補正をしてもよい。対象物414の特徴部分(顔など)を中心に露出を上げてもよい。HDR(High-dynamic-range rendering)による補正を行ってもよい。認識部156は、このような補正後の画像に基づいて対象物414の特徴を抽出するなど、上述した認識処理を行ってもよい。その撮像画像がユーザに提供されるものではなく、ロボット100の内部処理(画像認識)に用いられるものであるため、対象物414と無関係の画像部分についての「色飛び」や「色潰れ」は特に問題とならない。
【0146】
上記実施形態では、全天球カメラ400を例示したが、これに代わり、半天球カメラを採用してもよい。あるいは、全天球カメラ400の上天球のみを撮像対象としてもよい。ただし、これらの天球カメラは、一般にその撮像画像(天球画像)の歪みが大きいため、認識部156は、その天球画像の歪みを小さくするよう補正した後、画像認識を行うことが好ましい。
【0147】
ロボットの見上げ角を一定にして対象物との距離を保つ場合、画面上の対象物の特定部位(顔や特徴点)の位置および大きさが維持されるようにロボットの前進および後進を制御する。ここで、「見上げ角」は、ピッチ軸の回転角度(「ピッチ角」ともいう)に対応する。カメラによる上下方向(見上げ/見下ろし方向)の撮像範囲は、ピッチ角の調整により変化させることができる。すなわち、ロボットの見上げ角を一定にしつつ対象物との距離を制御する場合、ピッチ角を一定にした状態で画面に映りこむ対象物の特定部位が画面上の設定領域(設定位置および設定範囲)に維持されるようにロボットを移動制御すればよい。