(57)【要約】【課題】ユーザに追従して可動部を移動させる処理を内部で行う音声対話ロボットにおいて、可動部の動作状況を把握しない外部装置からの動作指示を受け付けた場合であっても、指示された動作を適切に実行可能とする。【解決手段】ユーザと音声対話を行う音声対話ロボットであって、本体と、前記本体に対して相対的に移動可能な可動部と、前記可動部がユーザに追従するように前記可動部を移動させる追従制御部と、前記追従制御部による前記可動部の移動に応じて、前記可動部の仮原点を設定する仮原点設定部と、前記可動部の動作指示を取得する取得部と、前記仮原点を基準として、前記動作指示にしたがって前記可動部を移動させる動作実行部と、を備える。【選択図】図６
2018183856.tif 000002
【特許請求の範囲】
【請求項１】
ユーザと音声対話を行う音声対話ロボットであって、
本体と、
前記本体に対して相対的に移動可能な可動部と、
前記可動部がユーザに追従するように前記可動部を移動させる追従制御部と、
前記追従制御部による前記可動部の移動に応じて、前記可動部の仮原点を設定する仮原点設定部と、
前記可動部の動作指示を取得する取得部と、
前記仮原点を基準として、前記動作指示にしたがって前記可動部を移動させる動作実行部と、
を備える、音声対話ロボット。
【請求項２】
前記可動部はあらかじめ定められた原点からの移動量を指定して制御されるものであり、
前記動作実行部は、前記動作指示により指定される移動量に前記原点と前記仮原点の差分を加えた移動量を指定して、前記可動部を移動させる、
請求項１に記載の音声対話ロボット。
【請求項３】
前記追従制御部は、前記可動部が前記ユーザの方向を向くように前記可動部を移動させ、
前記仮原点設定部は、前記追従制御部によって前記可動部が移動させられた位置を仮原点に設定する、
請求項１または２に記載の音声対話ロボット。
【請求項４】
前記仮原点設定部は、前記追従制御部による移動後の前記可動部の現在位置を基準として前記可動部に所定の動作を行わせると前記可動部の可動範囲を超える場合は、前記所定の動作が前記可動範囲に入るように前記仮原点を設定する、
請求項３に記載の音声対話ロボット。
【請求項５】
前記仮原点設定部は、前記動作指示の取得後に仮原点を設定するものであり、
前記動作指示によって指示される動作を、前記追従制御部による移動後の前記可動部の現在位置を基準として実行しても、前記可動部の可動範囲を超えない場合には、前記現在位置を仮原点として設定し、
前記動作指示によって指示される動作を、前記現在位置を基準として実行すると、前記可動部の可動範囲を超える場合には、前記指示された動作が前記可動範囲に入るように前記仮原点を設定する、
請求項２に記載の音声対話ロボット。
【請求項６】
前記追従制御部は、前記動作指示に基づいて前記動作実行部が前記可動部を移動させている間は、追従動作を行わない、
請求項１から５のいずれか１項に記載の音声対話ロボット。
【請求項７】
前記追従制御部は、カメラによって撮影される画像から求められるユーザの方向、または、マイクから取得される音声から求められるユーザの方向を向くように、前記可動部を移動させる、
請求項１から６のいずれか１項に記載の音声対話ロボット。
【請求項８】
前記取得部は、前記追従制御部による前記可動部の移動を検知しない装置から前記動作指示を取得する、
請求項１から７のいずれか１項に記載の音声対話ロボット。
【請求項９】
請求項１から８のいずれか１項に記載の音声対話ロボットと、
前記音声対話ロボットと無線通信により接続される制御装置であって、前記音声対話ロボットに対して前記動作指示を送信する動作指示送信部を備える制御装置と、
を備える音声対話システム。
【請求項１０】
本体と前記本体に対して相対的に移動可能な可動部とを有しユーザと音声対話を行う音声対話ロボットの制御方法であって、
前記可動部がユーザに追従するように前記可動部を移動させる追従制御ステップと、
前記追従制御ステップにおける前記可動部の移動に応じて、前記可動部の仮原点を設定する仮原点設定ステップと、
前記可動部の動作指示を取得する取得ステップと、
前記仮原点を基準として、前記動作指示にしたがって前記可動部を移動させる動作実行ステップと、
を備える、音声対話ロボットの制御方法。
【請求項１１】
請求項１０に記載の方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声対話ロボットおよび音声対話システムに関する。
【背景技術】
【０００２】
音声対話ロボットとスマートフォンなどの制御コンピュータとが連携して動作する音声対話システムが利用されている。このようなシステムでは、音声対話ロボットはユーザとのインタフェース装置として利用され、音声認識処理や応答文作成処理は、スマートフォンあるいはスマートフォンから依頼されたサーバ装置が行う。そして、スマートフォンがロボット端末に対して発話指示を行う。
【０００３】
この際に、発話内容に応じた動作をロボット端末に指示する場合もある。例えば、スマートフォンからロボットに「こんにちは」と発話させる際に、ロボットに対して挨拶動作（例えば、上下への首振り動作）を指示することが考えられる。このような動作指示は、ロボット本体を基準とする座標系における移動方向・距離で指定される場合がある。
【０００４】
また、ユーザと音声対話を行う音声対話ロボットの中には、ユーザが存在する方向にロボットの顔を向ける追従機能を持つものがある。例えば、ユーザの声がする方向に顔を向ける話者追従や、撮影画像中でユーザの顔を検知した方向にロボットの顔を向ける顔追従機能が知られている（特許文献１，２）。
【０００５】
音声対話ロボットとスマートフォンなどの制御コンピュータを連携するシステムであっても、ユーザへの追従処理は、スマートフォンを利用せずに音声対話ロボット内で行う場合もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−６８１９７号公報
【特許文献２】特開２００８−８７１４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ユーザへの追従処理を音声対話ロボットが自ら行い、動作状況を制御コンピュータに通知しない場合には、制御コンピュータでは音声対話ロボットの動作状況を把握できない。したがって、制御コンピュータから初期位置を基準として動作指示を出すと、ロボットにおける動作が本来意図したものとずれてしまうという問題が生じる。
【０００８】
本発明の目的は、ユーザに追従して可動部を移動させる処理を内部で行う音声対話ロボットにおいて、可動部の動作状況を把握しない外部装置からの動作指示を受け付けた場合であっても、指示された動作を適切に実行可能とすることにある。
【課題を解決するための手段】
【０００９】
本発明の一態様は、ユーザと音声対話を行う音声対話ロボットであって、
本体と、
前記本体に対して相対的に移動可能な可動部と、
前記可動部がユーザに追従するように前記可動部を移動させる追従制御部と、
前記追従制御部による前記可動部の移動に応じて、前記可動部の仮原点を設定する仮原点設定部と、
前記可動部の動作指示を取得する取得部と、
前記仮原点を基準として、前記動作指示にしたがって前記可動部を移動させる動作実行部と、
を備えることを特徴とする。
【００１０】
本態様における可動部は任意のものであってよいが、例えばロボットが人あるいは動物を模したものである場合には、可動部は頭・手・足の少なくとも何れかであってよい。可動部の動作は特に限定されず、回転動作や直線動作またはこれらの組み合わせてあってよい。また、可動部の動作の自由度は１自由度であってもよいし多自由度であってもよい。
【００１１】
本態様において、可動部はあらかじめ定められた原点（ゼロ点）からの移動量を指定して制御されるものであってよい。この原点は、例えば、可動部が初期位置にある際のモータ原点である。本態様における動作実行部は、動作指示により指定される移動量に原点と仮原点の差分を加えた移動量を指定して、可動部を移動させてもよい。
【００１２】
このように本態様においては、追従制御部によって可動部が移動された場合に、動作指示によって指定される動作は、仮原点を基準として行われる。したがって、可動部の状況を考慮しない動作指示であっても適切な動作を行うことができる。
【００１３】
本態様における追従制御部は、可動部がユーザの方向を向くように可動部を移動させてもよい。例えば、ユーザ発話（音声）の到来方向に可動部が向くように制御したり、撮影画像中におけるユーザの顔の検知方向に可動部が向くように制御したりしてもよい。本態様における仮原点設定部は、追従制御部によって前記可動部が移動させられた位置を仮原点に設定してもよい。
【００１４】
ここで、追従制御によって可動部が移動させられた際の位置をモータ仮原点として設定すると、仮原点を基準とした動作が可動部の可動範囲を超えてしまう事態が生じうる。
【００１５】
このような問題に対処するために、動作指示によって指示されうる動作（想定される動作）が、可動範囲に入るように仮原点の位置を調整するとよい。このような仮原点は、想定される全ての動作が可動範囲に入るように、ロボットに１つのみ設定してもよい。あるいは、想定される動作ごとに、各動作が可動範囲に入るように仮原点をそれぞれ設定してもよい。
【００１６】
仮原点の設定は、追従処理制御部によって可動部が移動したときに行う代わりに、動作指示の取得後に行ってもよい。この場合、記仮原点設定部は、動作指示によって指示される動作を、可動部の現在位置（追従制御部による移動後の位置）を基準として実行しても可動部の可動範囲を超えない場合には、現在位置を仮原点として設定する。一方、動作指示によって指示される動作を現在位置を基準として実行すると可動部の可動範囲を超える場合には、仮原点設定部は、指示された動作が可動範囲に入るように仮原点を設定する。
【００１７】
あるいは、仮原点はあくまでも追従制御部によって前記可動部が移動させられた位置としてもよい。そして、このような仮原点を基準とすると現に動作指示によって指示された動作が可動範囲を超える場合に、一時的に原点を変更してもよい。例えば、指示された動作が可動範囲に入るような第２原点を一時的に設定し、この第２原点を基準として指示された動作を行うようにしてもよい。
【００１８】
本態様において、動作指示に基づいて動作実行部が可動部を移動させている間は、追従制御部は追従動作を行わなくてよい。追従動作を行うと、指示された動作を適切に行えなくなるためである。
【００１９】
本発明の第二の態様は、上述した音声対話ロボットと制御装置からなる音声対話システムである。制御装置は、音声対話ロボットと無線通信により接続され、音声対話ロボットに対して前記動作指示を送信する動作指示送信部を備える。ここで、制御装置は、音声対話ロボットの可動部の動作状況（例えば、追従制御部による移動）を検知しない装置であってよい。
【００２０】
なお、本発明は、上記手段の少なくとも一部を備える音声対話ロボットあるいは音声対話システムとして捉えることもできる。本発明は、また、上記処理の少なくとも一部を実行する音声対話ロボットの制御方法として捉えることができる。また、本発明は、この方法をコンピュータに実行させるためのコンピュータプログラム、あるいはこのコンピュータプログラムを非一時的に記憶したコンピュータ可読記憶媒体として捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００２１】
本発明によれば、ユーザに追従して可動部を移動させる処理を内部で行う音声対話ロボットにおいて、可動部の動作状況を把握しない外部装置からの動作指示を受け付けた場合であっても、指示された動作を適切に実行可能となる。
【図面の簡単な説明】
【００２２】
【図１】図１は、実施形態に係る音声対話システムのシステム構成を示す図である。
【図２】図２（Ａ）〜図２（Ｄ）は、音声対話ロボットの外観を示す図である。
【図３】図３は、実施形態に係る音声対話ロボットの機能構成を示す図である。
【図４】図４（Ａ）および図４（Ｂ）は、音声対話ロボットによる追従処理および仮原点設定処理の流れを示すフローチャートである。
【図５】図５（Ａ）および図５（Ｂ）は、仮原点設定処理を説明する図である。
【図６】図６（Ａ）および図６（Ｂ）は、仮原点設定処理を説明する図である。
【図７】図７は、動作指示受領時の可動部制御処理の流れを示すフローチャートである。
【図８】図８は、動作指示受領時の可動部制御処理の流れを示すフローチャートである。
【図９】図９（Ａ）〜図９（Ｄ）は、追従処理を内部で行う音声対話ロボット、可動部の動作状況を把握しない外部装置から動作指示を受け付けた場合の問題点を説明する図である。
【発明を実施するための形態】
【００２３】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【００２４】
＜概要＞
図１は本実施形態に係る音声対話システムのシステム構成を示す図である。本実施形態に係る音声対話システムは、図１に示すように、互いに無線通信により接続された、ロボット（音声対話ロボット）１００、スマートフォン１１０、音声認識サーバ２００、対話サーバ３００から構成される。ロボット１００とスマートフォン１１０の間の通信は、Bluetooth（登録商標）とすることができる。スマートフォン１１０と音声認識サーバ２０
０および対話サーバ３００との間の通信は、携帯電話通信（ＬＴＥなど）であってもよいしWi-Fiであってもよく、また有線通信であってもよい。
【００２５】
本実施形態においては、ロボット１００はマイクおよびスピーカーを有するフロントエンドのユーザインタフェース装置として用いられ、ロボット１００に入力されたユーザ音
声はスマートフォン１１０に送られる。スマートフォン１１０は、音声認識サーバ２００を用いて音声認識処理を行い、対話サーバ３００を用いて対話文（応答文）生成を行う。スマートフォン１１０は、音声合成処理により対話文の音声データを生成したロボット１００に送信し、ロボット１００は受信した音声データをスピーカーから再生する。この処理を繰り返すことで、ユーザと音声対話システムの間の対話が進行する。このような処理を分散化した音声対話システム自体は公知であるため、それぞれの構成や処理についての詳細な説明は省略する。
【００２６】
図２（Ａ）はロボット１００の外観の概要を示す。ロボット１００は、胴体（本体）１０および頭部２０を有する。図２（Ｂ）に示すように、頭部２０は、モータ３０によって胴体１０に対して相対的に回転可能に構成される。本実施形態において頭部２０は２自由度の関節体により胴体１０と接続されており、図２（Ｃ）および図２（Ｄ）示すような回転（ロールおよびピッチ）が可能である。関節を駆動するためおよび関節の状態を取得するために、モータ３０としてサーボモータが利用される。
【００２７】
ロボット１００は、頭部２０以外にも手や足なども移動可能として構成してもよいが、本明細書においては頭部２０のみが移動可能であるとして説明する。
【００２８】
本実施形態におけるロボット１００の音声出力処理や姿勢制御処理（頭部の移動制御処理）は、原則としてスマートフォン１１０からの指示によって行われる。ただし、ロボット１００は、対話中のユーザの方向に頭部を向ける追従処理を内部で自律的に実施する。ここで、追従処理による頭部２０の位置や状態はスマートフォン１１０には通知されないものとする。したがって、スマートフォン１１０は追従処理による頭部２０の姿勢を把握できず、スマートフォン１１０からロボット１００の姿勢制御コマンドを発するとロボット１００の姿勢が適切に動作しない恐れがある。
【００２９】
本実施形態においては、スマートフォン１１０からロボット１００への動作指示は、ロボット１００の座標原点を基準とする。したがって、追従機能によってロボット１００の頭部２０が初期位置から異なる向きを向いていると、スマートフォン１１０からの動作指示は意図したとおりに動かない。例えば、動作指示が現在の頭部の向きを中心とした首振り動作を意図したものであっても、首振り動作は初期位置を中心とした動作となるため、追従処理によって頭部が初期位置から異なる位置に移動させられているとその場での首振り動作とはならない。
【００３０】
図９（Ａ）は、ロボット１００とユーザ５００が正対している状態を示す。図９（Ｂ）に示すように、ユーザ５００が移動すると、ロボット１００は追従処理によって頭部の向きを変え、頭部（顔）がユーザ５００と正対するようにする。この状態で、スマートフォン１１０から、±２０度の首振り動作を行う動作指示を受信すると、本来は図９（Ｃ）に示すように現在の状態からの首振り動作９１を行うことが適切であるにもかかわらず、図９（Ｄ）に示すように原点９０を基準とした首振り動作９２が行われてしまい適切ではない。
【００３１】
＜構成＞
本実施形態においては、このような問題を解消するために、ロボット１００に次のような機能を持たせる。
【００３２】
図３は、ロボット１００の構成のうち、主に可動部（頭部２０）の動作に関する機能部を示す。ロボット１００は、図３に示すように、スピーカー１０１、マイク１０２、話者追従部１０３、カメラ１０４、顔追従部１０５、仮原点設定部１０６、動作指示受信部１０７、動作指示実行部１０８、可動部制御部１０９を備える。ロボット１００は、マイク
ロプロセッサなどの演算装置、メモリなどの記憶部、通信装置などを含むコンピュータであり、演算装置がプログラムを実行することにより、話者追従部１０３、顔追従部１０５、仮原点設定部１０６、動作指示受信部１０７、動作指示実行部１０８、可動部制御部１０９の機能が実現される。これらの一部または全部の機能は、専用の電気回路によって実現されてもかまわない。
【００３３】
スピーカー１０１は、スマートフォン１１０から受信した音声データを出力する。マイク１０２は、ユーザの発話音声を取得する。マイク１０２は、音声のアナログデータをデジタルデータにＡ／Ｄ変換する。デジタル音声データは、通信を介してスマートフォン１１０に送信されるとともに、話者追従部１０３に入力される。
【００３４】
話者追従部（追従制御部）１０３は、マイク１０２への入力音声データから話者の方向を特定する。話者追従部１０３は、人の声がする方向を話者の方向として決定してもよいし、話者の個人が特定できている場合には特定の声紋を有する声がする方向を話者の方向として決定してもよい。話者追従部１０３は、可動部制御部１０９に指示して、頭部２０が特定された話者方向を向くように指示する。
【００３５】
カメラ１０４は、ロボット１００の周囲の画像を撮影する。カメラ１０４によって撮影された画像データは、通信を介してスマートフォン１１０に送信されるとともに、顔追従部１０５に入力される。
【００３６】
顔追従部（追従制御部）１０５は、カメラ１０４の撮影画像データの中から顔を検出する。顔追従部１０５は、顔一般を検出する顔検出技術を用いてユーザの顔を検出してもよいし、話者の個人が特定できている場合には特定の顔を検出する顔検出技術（顔照合技術）を用いてユーザの顔を検出してもよい。顔追従部１０５は、画像中における顔の位置をロボットに対して相対的な位置に変換し、頭部２０がこの方向を向くように可動部制御部１０９に指示する。
【００３７】
仮原点設定部１０６は、モータ３０の仮原点を設定する。モータ３０には原点（ゼロ点とも称される）設定されており、この原点を基準として制御される。本実施形態では頭部２０を動かすために２つのモータ３０が利用されており、これら２つのモータ３０に対してそれぞれ原点が設定される。原点は、頭部２０が胴体１０に対して初期位置（典型的には頭部２０が真正面を向いている状態）におけるモータ位置である。仮原点設定部１０６は、話者追従部１０３や顔追従部１０５によって頭部２０の向きが変更された場合に、各モータ３０の一時的な原点（仮原点と称する）を設定する。モータ３０に仮原点が設定されても、原点は変更されない。
【００３８】
仮原点設定部１０６がどのように仮原点を設定するかについては、フローチャートを用いた後述の説明の中で詳細に行う。
【００３９】
なお、話者追従部１０３および顔追従部１０５の両方がユーザの追跡を見失った場合には、仮原点設定部１０６は仮原点の設定を解除する、あるいは原点を仮原点として設定する。
【００４０】
動作指示受信部（取得部）１０７は、スマートフォン１１０の動作指示送信部１１１から動作指示を受信し、動作指示実行部１０８に送る。動作指示には、「頭部２０を水平方向２０度の位置に向ける」や「頭部２０を水平方向−１０度〜＋１０度の範囲で往復動作させる」などの指示がされる。ここで、本実施形態においては、スマートフォン１１０からの指示は一般にモータの原点を基準とするものと解釈される。すなわち、前者の指示は頭部を初期位置＋２０度の位置に向けるという指示であり、後者の指示は頭部を初期位置
−１０度から初期位置＋１０度の範囲で往復動作させる、という指示として解釈される。
【００４１】
動作指示実行部（動作実行部）１０８は、受信した動作指示と、仮原点設定部１０６によって設定された仮原点を考慮して、受信した動作指示を、仮原点を基準とする指示に変換する。具体的には、動作指示実行部１０８は、仮原点が設定されている場合には、仮原点と原点の差分をオフセットとして決定し、動作指示によって指示される位置にオフセットを足した位置に頭部２０を移動させるように、可動部制御部１０９に指示する。可動部制御部１０９は、原点を基準として頭部２０のモータを駆動するため、仮原点を基準とする動作を行わせるために、上述のオフセットを加える。
【００４２】
可動部制御部１０９は、頭部２０を駆動するモータ３０を制御する。可動部制御部１０９は、モータの制御位置を入力として受け付け、モータ原点を基準としてモータが当該制御位置に移動するように駆動する。すなわち、可動部制御部１０９は、モータ原点からの移動量の指定を受けて頭部２０を制御する。
【００４３】
スマートフォン１１０の動作指示送信部１１１は、ロボット１００に行わせる動作を含む動作指示を生成して、通信部を介してロボット１００の動作指示受信部１０７に送信する。例えば、スマートフォン１１０は、対話文出力指示とともに動作指示を送信して、「こんにちは」という発話を行いつつ顔を上下に振るという動作をロボット１００に行わせる。
【００４４】
＜処理＞
ロボット１００が行う処理について説明する。
【００４５】
［１．追従処理および仮原点設定処理］
図４（Ａ）は、ロボット１００が行う追従処理を説明するフローチャートである。ステップＳ１０２において、話者追従部１０３または顔追従部１０５がユーザを検出したか（あるいは検出しているか）否かを判断する。すなわち、話者追従部１０３がマイク１０２からの入力音声から話者の方向を特定できているか、または、顔追従部１０５がカメラ１０４の撮影画像から顔を検出してその方向を特定できているかがステップＳ１０２において判断される。
【００４６】
話者追従部１０３と顔追従部１０５のどちらもユーザを検出していないとき（ステップＳ１０２−ＮＯ）には、ステップＳ１０８に進む。ステップＳ１０８では、可動部制御部１０９は、頭部２０を初期位置に移動させる（初期位置以外にある場合）。そして、ステップＳ１１０において、仮原点設定部１０６は、仮原点の設定を解除する。仮原点の設定解除処理は、仮原点を未設定とするものであってもよいし、仮原点を原点位置に設定するものであってもよい。
【００４７】
話者追従部１０３と顔追従部１０５の少なくとも何れかがユーザを検出しているとき（ステップＳ１０２−ＹＥＳ）には、ステップＳ１０４に進む。ステップＳ１０４では、話者追従部１０３または顔追従部１０５からの指示により、頭部２０がユーザの方向を向くように制御する。なお、話者追従部１０３と顔追従部１０５の両方がユーザの方向を検出している場合には、顔追従部１０５の検出結果を優先する。顔追従部１０５による検出結果の方が高精度なためである。
【００４８】
ステップＳ１０６において、仮原点設定部１０６は、頭部２０の向きに基づいて仮原点を設定する。仮原点設定処理の詳細は、図４（Ｂ）のフローチャートに示されている。図４（Ｂ）を参照して、仮原点設定処理Ｓ１０６の詳細を説明する。
【００４９】
ステップＳ２０２において、仮原点設定部１０６は、現在の顔位置で所定動作が可能であるか否かを判断する。ロボット１００の頭部２０には、その可動範囲があらかじめ定められている。所定動作は、スマートフォン１１０から指示されることが想定される動作である。仮原点設定部１０６は、頭部２０が現在向いている方向（位置）を基準として所定動作を行った場合に、頭部２０が可動範囲に収まるか可動範囲を超えてしまうかを判断する。
【００５０】
頭部２０の移動が可動範囲に収まる場合（Ｓ２０２−ＹＥＳ）には、仮原点設定部１０６は、現在の頭部２０の位置（モータ位置）を仮原点に設定する（Ｓ２０４）。一方、頭部２０の移動が可動範囲を超える場合（Ｓ２０２−ＮＯ）には、仮原点設定部１０６は、仮原点を基準として所定の動作を行った場合に、頭部２０の移動範囲が可動範囲に入るように仮原点を設定する（Ｓ２０６）。
【００５１】
図５，６を参照して具体的に説明する。図５，６はロボット１００を上側から見た図である。なお、ここでは説明の簡略化のために、水平方向での顔振り動作（ロール動作）のみを考慮するが、首の縦振りや、縦と横を組み合わせた頭部の移動も同様に扱える。
【００５２】
図５（Ａ）に示すように、頭部２０には可動範囲５１があらかじめ定められている。この例では、頭部２０は原点５０（初期位置）に対して＋４５度から−４５度の範囲で移動可能である。図５（Ａ）の例では、追従処理によって顔（頭部２０）の向きが原点から−１０度（左向きに１０度）回転している。現在位置５２は、追従処理後の頭部の位置（モータ位置）を示す。ここで、スマートフォン１１０から指示されることが想定される動作として、基準点を中心として±２０度の範囲内で頭部２０を移動させる動作（首振り動作）であるとする。図５（Ａ）の範囲５３は、頭部２０の現在位置５２を基準として所定動作を行ったときの頭部の移動範囲を示している。
【００５３】
この例では、現在位置５２を基準として±２０度の首振り動作（所定動作）を行うと、頭部は原点５０を基準として−３０度から＋１０度の範囲で移動することになり、頭部２０は可動範囲を超えない（Ｓ２０２−ＹＥＳ）。したがって、仮原点設定部１０６は、図５（Ｂ）に示すように、頭部２０の現在位置５２を仮原点５４として設定する（Ｓ２０４）。
【００５４】
図６（Ａ）は図５（Ａ）と同様の図であるが、追従処理によって顔（頭部２０）の向きが原点から−３０度（左向きに３０度）回転しており、頭部２０の位置は現在位置５２’で示される位置にある。ここで、現在位置５２’を基準として±２０度の首振り動作（所定動作）を行うと、頭部は原点５０を基準として−５０度から−１０度の範囲（範囲５３’として示される）で移動することになり、頭部２０は可動範囲を超えてしまう（Ｓ２０２−ＮＯ）。
【００５５】
そこで、仮原点設定部１０６は、仮原点の条件を満たすように決定する（Ｓ２０６）。（条件１）仮原点を基準として所定動作（例：±２０度の首振り動作）を行ったときに、頭部２０の移動範囲が可動範囲に入る。
（条件２）仮原点は、条件１を満たす位置のうち頭部２０の現在位置から最も近い位置である。
【００５６】
この例では、図５（Ｂ）に示すように、原点５０を基準として−２５度の位置が仮原点５４’として設定される。これにより、仮原点５４’を基準として±２０度の首振り動作を行った時の頭部の動作範囲５３’’は、頭部の可動範囲５１に入る。
【００５７】
［２．動作指示受領時の処理］
次に、図７を参照して、ロボット１００がスマートフォン１１０から動作指示を受信した時の処理について説明する。
【００５８】
ステップＳ３０２において、動作指示受信部１０７が、スマートフォン１１０の動作指示受信部１０７から動作指示を受信する。するとステップＳ３０４において、ロボット１００は、動作指示に基づく制御を行う前に、話者追従部１０３および顔追従部１０５の追従処理の機能をオフにする。これは、動作指示にしたがって頭部２０を動かしている間に追従機能が働いて、頭部２０が動作指示と異なる動作をしてしまうことを防止するためである。
【００５９】
ステップＳ３０６において、動作指示実行部１０８は、仮原点設定部１０６によって仮原点が設定されているか否かを判断する。仮原点が設定されている場合（Ｓ３０６−ＹＥＳ）には、ステップＳ３０８に進んで、動作指示実行部１０８は、仮原点と原点の差分、すなわち「仮原点−原点」をオフセットとして決定し、ステップＳ３１２に進む。仮原点が設定されていない場合（Ｓ３０６−ＮＯ）には、ステップＳ３１０においてオフセットをゼロに設定し、ステップＳ３１２に進む。
【００６０】
ステップＳ３１２において、動作指示実行部１０８は、動作指示により指定される移動量に対してオフセットを加えた上で、可動部制御部１０９に対して制御指示を行う。なお、可動部制御部１０９は原点を基準として頭部２０の制御を行うが、上述のように仮原点と原点の差分をオフセットとして加えているので、仮原点を基準とした動作が行われることになる。たとえば、図５（Ａ）の例では図５（Ｂ）に符号５３で示す範囲での動作が行われ、図６（Ａ）の例では図６（Ｂ）に符号５３’’で示す範囲での動作が行われる。
【００６１】
＜本実施形態の有利な効果＞
本実施形態によれば、スマートフォン１１０からロボット１００の可動部（頭部）の動作を指示する際に、スマートフォン１１０がロボット１００の可動部の状態を把握していなくても、原点（初期位置）を基準とした動作指示により適切な動作が可能である。具体的には、ユーザへの追従処理が行われており、頭部２０の向きが初期位置（原点）からずれている場合に、原点を基準とした制御ではなく、追従動作に応じて決定される仮原点を基準として動作が行われるため動作が適切なものとなる。
【００６２】
また、追従処理による移動後の可動部（頭部）の位置を単純に仮原点に設定するのではなく、可動部の可動範囲と想定される動作を考慮して仮原点を設定しているので、スマートフォン１１０から指示される動作を行った時に、可動範囲を超えることがない。この場合、頭部の現在位置を基準とした動作とは異なる動作が行われることになるが、可動範囲を超えて制御しようとするよりはスマートフォン１１０からの指示に従った動作が行われることになる。
【００６３】
また、本実施形態においては、原点を置き換えるのではなく、原点は維持したまま仮原点を設定しているので、仮原点が設定されている間も原点を基準とする処理も実行可能であり、また、原点の再設定も容易である。
【００６４】
＜第１の実施形態の変形例＞
上記の説明では、スマートフォン１１０から指示される想定動作が１つのみの場合を例に説明したが、想定動作が複数ある場合にも適用できることは容易に理解できるであろう。例えば、複数の想定動作の動作範囲を全て含む範囲を用いて上記と同様の処理を行うことで対応できる。あるいは、想定動作が複数ある場合には、想定動作ごとに仮原点を設定してもよい。この場合、ロボット１００は動作指示を受け取った場合に、指示されている動作がどの想定動作に該当するかを判断し、対応する仮原点を使用すればよい。
【００６５】
上記の説明では、１つの軸回りの動作のみを対象として説明したが、複数の軸回りの動作についても同様に処理をすることができる。また、回転動作に限られず直線動作についても同様に処理することができる。
【００６６】
上記の説明では、話者追従機能および顔追従機能のオンオフをステップＳ３０４，Ｓ３１４において明示的に指示しているが、動作指示に基づいて可動部が移動されているときに自動的に追従機能をオフにするようにしてもよい。例えば、動作指示実行部１０８によって動作指示に従った可動部の動作が開始されると、これを話者追従部１０３および顔追従部１０５が検知して追従機能をオフにするように構成すればよい。また、話者追従部１０３および顔追従部１０５は、動作指示に従った可動部の動作が所定時間（例えば５００ミリ秒）以上行われていないことを検知した場合に追従機能をオンにするように構成してもよい。
【００６７】
また、スマートフォン１１０からの動作指示の全てを仮原点を基準として実行する必要はない。スマートフォン１１０からロボット１００に送信する動作指示に、原点を基準として実行すべきか仮原点を基準として実行すべきかを表す情報（フラグやメッセージ種別など）を含めて、ロボット１００はこの情報に応じて処理を切り替えてもよい。
【００６８】
＜第２の実施形態＞
本実施形態は、第１の実施形態と基本的に同様の構成を有し同様の処理を行うが、仮原点設定処理のタイミングが第１の実施形態と異なる。第１の実施形態では、追従動作によって頭部２０（可動部）を移動させた際に仮原点を設定しているが、本実施形態ではスマートフォン１１０からの動作指示を取得した後に仮原点を設定する。
【００６９】
本実施形態における追従処理は、第１の実施形態（図４（Ａ））基本的に同様であるが、ステップＳ１０６およびＳ１１０の処理が行われないという点が異なる。したがって、詳しい説明は省略する。
【００７０】
図８は、本実施形態における動作指示受領時の処理を説明するフローチャートである。第１の実施形態とその相違は、動作指示の取得後かつ追従制御をオフにした後（ステップＳ３０２−Ｓ３０４の後）に、仮原点設定処理Ｓ１０６が設けられている点である。仮原点設定処理Ｓ１０６自体は、第１の実施形態と同様であり、図４（Ｂ）に示すとおりである。
【００７１】
本実施形態においても、第１の実施形態と同様の効果を得ることができる。本実施形態は、スマートフォン１１０から指示される想定動作が複数ある時に、第１の実施形態よりも次の点で有利である。
【００７２】
第１の実施形態において複数の動作の全体的な動作範囲を用いて仮原点を設定する手法と比較すると、現在位置を基準として指定された動作が可能であるにもかかわらず、現在位置とは異なる仮原点を基準として動作されてしまうことを抑制できる。したがって、動作指示によって指示されている動作を、より忠実に実行できる。
【００７３】
第１の実施形態において複数の動作ごとに仮原点を設定する手法と比較すると、本実施形態では複数の仮原点を算出・記憶する必要がない点で有利である。
【００７４】
＜変形例＞
上記の実施形態および変形例の構成は、本発明の技術的思想を逸脱しない範囲内で、適宜組み合わせて利用することができる。また、本発明は、その技術的思想を逸脱しない範
囲で適宜変更を加えて実現しても構わない。
【００７５】
上記の説明では、ユーザに追従する可動部が頭部であるが、可動部は必ずしも頭部である必要はなく、手や足あるいはその他の任意の部位であってよい。また、ロボット１００は人型である必要はなく形状は特に限定されない。たとえば、ロボット１００は、動物や機械を模したロボットであってもよい。
【００７６】
ロボット１００に対して指示を送信する装置はスマートフォンである必要はなく、任意のコンピュータであってよい。例えば、ノート型コンピュータやタブレット型コンピュータなどであってもよい。
【００７７】
音声対話システムは、上記の実施形態のようにロボット、スマートフォン、音声認識サーバ、対話サーバなどにより構成する必要は無い。上記の機能が実現できれば、システム全体をどのように構成してもよい。例えば、全ての機能を１つの装置で実行してもよい。あるいは、上記実施形態において１つの装置で実施している機能を複数の装置で分担して実行してもよい。また、各機能は上述の装置で実行する必要は無い。例えば、スマートフォンで実行している処理の一部をロボットにおいて実行するように構成してもかまわない。
【００７８】
上記の説明は、ロボット１００の可動部の追従処理により動作がスマートフォン１１０に通知されないことを前提としている。しかしながら、追従処理による可動部の状態がスマートフォン１１０に通知されてもかまわない。このような場合であっても、本発明の手法を用いることで、スマートフォン１１０がロボット１００の可動部の状態を気にすることなく可動部を適切に制御できるという効果が得られる。
【符号の説明】
【００７９】
１００：ロボット
１１０：スマートフォン
２００：音声認識サーバ
３００：対話サーバ
【図１】
2018183856.tif 000003
【図２】
2018183856.tif 000004
【図３】
2018183856.tif 000005
【図４】
2018183856.tif 000006
【図５】
2018183856.tif 000007
【図６】
2018183856.tif 000008
【図７】
2018183856.tif 000009
【図８】
2018183856.tif 000010
【図９】
2018183856.tif 000011